Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
# Check 64bit AVX scalar instructions

	.allow_index_reg
	.text
_start:

# Tests for op xmm/mem64, xmm
	vcomisd %xmm4,%xmm6
	vcomisd (%rcx),%xmm4
	vucomisd %xmm4,%xmm6
	vucomisd (%rcx),%xmm4

# Tests for op mem64, xmm
	vmovsd (%rcx),%xmm4

# Tests for op xmm, mem64
	vmovsd %xmm4,(%rcx)

# Tests for op xmm/mem64, regl
	vcvtsd2si %xmm4,%ecx
	vcvtsd2si (%rcx),%ecx
	vcvttsd2si %xmm4,%ecx
	vcvttsd2si (%rcx),%ecx

# Tests for op xmm/mem64, regq
	vcvtsd2si %xmm4,%rcx
	vcvtsd2si (%rcx),%rcx
	vcvttsd2si %xmm4,%rcx
	vcvttsd2si (%rcx),%rcx

# Tests for op regq/mem64, xmm, xmm
	vcvtsi2sdq %rcx,%xmm4,%xmm6
	vcvtsi2sdq (%rcx),%xmm4,%xmm6
	vcvtsi2ssq %rcx,%xmm4,%xmm6
	vcvtsi2ssq (%rcx),%xmm4,%xmm6

# Tests for op imm8, xmm/mem64, xmm, xmm
	vcmpsd $7,%xmm4,%xmm6,%xmm2
	vcmpsd $7,(%rcx),%xmm6,%xmm2
	vroundsd $7,%xmm4,%xmm6,%xmm2
	vroundsd $7,(%rcx),%xmm6,%xmm2

# Tests for op xmm/mem64, xmm, xmm
	vaddsd %xmm4,%xmm6,%xmm2
	vaddsd (%rcx),%xmm6,%xmm2
	vcvtsd2ss %xmm4,%xmm6,%xmm2
	vcvtsd2ss (%rcx),%xmm6,%xmm2
	vdivsd %xmm4,%xmm6,%xmm2
	vdivsd (%rcx),%xmm6,%xmm2
	vmaxsd %xmm4,%xmm6,%xmm2
	vmaxsd (%rcx),%xmm6,%xmm2
	vminsd %xmm4,%xmm6,%xmm2
	vminsd (%rcx),%xmm6,%xmm2
	vmulsd %xmm4,%xmm6,%xmm2
	vmulsd (%rcx),%xmm6,%xmm2
	vsqrtsd %xmm4,%xmm6,%xmm2
	vsqrtsd (%rcx),%xmm6,%xmm2
	vsubsd %xmm4,%xmm6,%xmm2
	vsubsd (%rcx),%xmm6,%xmm2
	vcmpeqsd %xmm4,%xmm6,%xmm2
	vcmpeqsd (%rcx),%xmm6,%xmm2
	vcmpltsd %xmm4,%xmm6,%xmm2
	vcmpltsd (%rcx),%xmm6,%xmm2
	vcmplesd %xmm4,%xmm6,%xmm2
	vcmplesd (%rcx),%xmm6,%xmm2
	vcmpunordsd %xmm4,%xmm6,%xmm2
	vcmpunordsd (%rcx),%xmm6,%xmm2
	vcmpneqsd %xmm4,%xmm6,%xmm2
	vcmpneqsd (%rcx),%xmm6,%xmm2
	vcmpnltsd %xmm4,%xmm6,%xmm2
	vcmpnltsd (%rcx),%xmm6,%xmm2
	vcmpnlesd %xmm4,%xmm6,%xmm2
	vcmpnlesd (%rcx),%xmm6,%xmm2
	vcmpordsd %xmm4,%xmm6,%xmm2
	vcmpordsd (%rcx),%xmm6,%xmm2
	vcmpeq_uqsd %xmm4,%xmm6,%xmm2
	vcmpeq_uqsd (%rcx),%xmm6,%xmm2
	vcmpngesd %xmm4,%xmm6,%xmm2
	vcmpngesd (%rcx),%xmm6,%xmm2
	vcmpngtsd %xmm4,%xmm6,%xmm2
	vcmpngtsd (%rcx),%xmm6,%xmm2
	vcmpfalsesd %xmm4,%xmm6,%xmm2
	vcmpfalsesd (%rcx),%xmm6,%xmm2
	vcmpneq_oqsd %xmm4,%xmm6,%xmm2
	vcmpneq_oqsd (%rcx),%xmm6,%xmm2
	vcmpgesd %xmm4,%xmm6,%xmm2
	vcmpgesd (%rcx),%xmm6,%xmm2
	vcmpgtsd %xmm4,%xmm6,%xmm2
	vcmpgtsd (%rcx),%xmm6,%xmm2
	vcmptruesd %xmm4,%xmm6,%xmm2
	vcmptruesd (%rcx),%xmm6,%xmm2
	vcmpeq_ossd %xmm4,%xmm6,%xmm2
	vcmpeq_ossd (%rcx),%xmm6,%xmm2
	vcmplt_oqsd %xmm4,%xmm6,%xmm2
	vcmplt_oqsd (%rcx),%xmm6,%xmm2
	vcmple_oqsd %xmm4,%xmm6,%xmm2
	vcmple_oqsd (%rcx),%xmm6,%xmm2
	vcmpunord_ssd %xmm4,%xmm6,%xmm2
	vcmpunord_ssd (%rcx),%xmm6,%xmm2
	vcmpneq_ussd %xmm4,%xmm6,%xmm2
	vcmpneq_ussd (%rcx),%xmm6,%xmm2
	vcmpnlt_uqsd %xmm4,%xmm6,%xmm2
	vcmpnlt_uqsd (%rcx),%xmm6,%xmm2
	vcmpnle_uqsd %xmm4,%xmm6,%xmm2
	vcmpnle_uqsd (%rcx),%xmm6,%xmm2
	vcmpord_ssd %xmm4,%xmm6,%xmm2
	vcmpord_ssd (%rcx),%xmm6,%xmm2
	vcmpeq_ussd %xmm4,%xmm6,%xmm2
	vcmpeq_ussd (%rcx),%xmm6,%xmm2
	vcmpnge_uqsd %xmm4,%xmm6,%xmm2
	vcmpnge_uqsd (%rcx),%xmm6,%xmm2
	vcmpngt_uqsd %xmm4,%xmm6,%xmm2
	vcmpngt_uqsd (%rcx),%xmm6,%xmm2
	vcmpfalse_ossd %xmm4,%xmm6,%xmm2
	vcmpfalse_ossd (%rcx),%xmm6,%xmm2
	vcmpneq_ossd %xmm4,%xmm6,%xmm2
	vcmpneq_ossd (%rcx),%xmm6,%xmm2
	vcmpge_oqsd %xmm4,%xmm6,%xmm2
	vcmpge_oqsd (%rcx),%xmm6,%xmm2
	vcmpgt_oqsd %xmm4,%xmm6,%xmm2
	vcmpgt_oqsd (%rcx),%xmm6,%xmm2
	vcmptrue_ussd %xmm4,%xmm6,%xmm2
	vcmptrue_ussd (%rcx),%xmm6,%xmm2

# Tests for op xmm/mem32, xmm, xmm
	vaddss %xmm4,%xmm6,%xmm2
	vaddss (%rcx),%xmm6,%xmm2
	vcvtss2sd %xmm4,%xmm6,%xmm2
	vcvtss2sd (%rcx),%xmm6,%xmm2
	vdivss %xmm4,%xmm6,%xmm2
	vdivss (%rcx),%xmm6,%xmm2
	vmaxss %xmm4,%xmm6,%xmm2
	vmaxss (%rcx),%xmm6,%xmm2
	vminss %xmm4,%xmm6,%xmm2
	vminss (%rcx),%xmm6,%xmm2
	vmulss %xmm4,%xmm6,%xmm2
	vmulss (%rcx),%xmm6,%xmm2
	vrcpss %xmm4,%xmm6,%xmm2
	vrcpss (%rcx),%xmm6,%xmm2
	vrsqrtss %xmm4,%xmm6,%xmm2
	vrsqrtss (%rcx),%xmm6,%xmm2
	vsqrtss %xmm4,%xmm6,%xmm2
	vsqrtss (%rcx),%xmm6,%xmm2
	vsubss %xmm4,%xmm6,%xmm2
	vsubss (%rcx),%xmm6,%xmm2
	vcmpeqss %xmm4,%xmm6,%xmm2
	vcmpeqss (%rcx),%xmm6,%xmm2
	vcmpltss %xmm4,%xmm6,%xmm2
	vcmpltss (%rcx),%xmm6,%xmm2
	vcmpless %xmm4,%xmm6,%xmm2
	vcmpless (%rcx),%xmm6,%xmm2
	vcmpunordss %xmm4,%xmm6,%xmm2
	vcmpunordss (%rcx),%xmm6,%xmm2
	vcmpneqss %xmm4,%xmm6,%xmm2
	vcmpneqss (%rcx),%xmm6,%xmm2
	vcmpnltss %xmm4,%xmm6,%xmm2
	vcmpnltss (%rcx),%xmm6,%xmm2
	vcmpnless %xmm4,%xmm6,%xmm2
	vcmpnless (%rcx),%xmm6,%xmm2
	vcmpordss %xmm4,%xmm6,%xmm2
	vcmpordss (%rcx),%xmm6,%xmm2
	vcmpeq_uqss %xmm4,%xmm6,%xmm2
	vcmpeq_uqss (%rcx),%xmm6,%xmm2
	vcmpngess %xmm4,%xmm6,%xmm2
	vcmpngess (%rcx),%xmm6,%xmm2
	vcmpngtss %xmm4,%xmm6,%xmm2
	vcmpngtss (%rcx),%xmm6,%xmm2
	vcmpfalsess %xmm4,%xmm6,%xmm2
	vcmpfalsess (%rcx),%xmm6,%xmm2
	vcmpneq_oqss %xmm4,%xmm6,%xmm2
	vcmpneq_oqss (%rcx),%xmm6,%xmm2
	vcmpgess %xmm4,%xmm6,%xmm2
	vcmpgess (%rcx),%xmm6,%xmm2
	vcmpgtss %xmm4,%xmm6,%xmm2
	vcmpgtss (%rcx),%xmm6,%xmm2
	vcmptruess %xmm4,%xmm6,%xmm2
	vcmptruess (%rcx),%xmm6,%xmm2
	vcmpeq_osss %xmm4,%xmm6,%xmm2
	vcmpeq_osss (%rcx),%xmm6,%xmm2
	vcmplt_oqss %xmm4,%xmm6,%xmm2
	vcmplt_oqss (%rcx),%xmm6,%xmm2
	vcmple_oqss %xmm4,%xmm6,%xmm2
	vcmple_oqss (%rcx),%xmm6,%xmm2
	vcmpunord_sss %xmm4,%xmm6,%xmm2
	vcmpunord_sss (%rcx),%xmm6,%xmm2
	vcmpneq_usss %xmm4,%xmm6,%xmm2
	vcmpneq_usss (%rcx),%xmm6,%xmm2
	vcmpnlt_uqss %xmm4,%xmm6,%xmm2
	vcmpnlt_uqss (%rcx),%xmm6,%xmm2
	vcmpnle_uqss %xmm4,%xmm6,%xmm2
	vcmpnle_uqss (%rcx),%xmm6,%xmm2
	vcmpord_sss %xmm4,%xmm6,%xmm2
	vcmpord_sss (%rcx),%xmm6,%xmm2
	vcmpeq_usss %xmm4,%xmm6,%xmm2
	vcmpeq_usss (%rcx),%xmm6,%xmm2
	vcmpnge_uqss %xmm4,%xmm6,%xmm2
	vcmpnge_uqss (%rcx),%xmm6,%xmm2
	vcmpngt_uqss %xmm4,%xmm6,%xmm2
	vcmpngt_uqss (%rcx),%xmm6,%xmm2
	vcmpfalse_osss %xmm4,%xmm6,%xmm2
	vcmpfalse_osss (%rcx),%xmm6,%xmm2
	vcmpneq_osss %xmm4,%xmm6,%xmm2
	vcmpneq_osss (%rcx),%xmm6,%xmm2
	vcmpge_oqss %xmm4,%xmm6,%xmm2
	vcmpge_oqss (%rcx),%xmm6,%xmm2
	vcmpgt_oqss %xmm4,%xmm6,%xmm2
	vcmpgt_oqss (%rcx),%xmm6,%xmm2
	vcmptrue_usss %xmm4,%xmm6,%xmm2
	vcmptrue_usss (%rcx),%xmm6,%xmm2

# Tests for op xmm/mem32, xmm
	vcomiss %xmm4,%xmm6
	vcomiss (%rcx),%xmm4
	vucomiss %xmm4,%xmm6
	vucomiss (%rcx),%xmm4

# Tests for op mem32, xmm
	vmovss (%rcx),%xmm4

# Tests for op xmm, mem32
	vmovss %xmm4,(%rcx)

# Tests for op xmm/mem32, regl
	vcvtss2si %xmm4,%ecx
	vcvtss2si (%rcx),%ecx
	vcvttss2si %xmm4,%ecx
	vcvttss2si (%rcx),%ecx

# Tests for op xmm/mem32, regq
	vcvtss2si %xmm4,%rcx
	vcvtss2si (%rcx),%rcx
	vcvttss2si %xmm4,%rcx
	vcvttss2si (%rcx),%rcx

# Tests for op regl/mem32, xmm, xmm
	vcvtsi2sd %ecx,%xmm4,%xmm6
	vcvtsi2sdl (%rcx),%xmm4,%xmm6
	vcvtsi2ss %ecx,%xmm4,%xmm6
	vcvtsi2ssl (%rcx),%xmm4,%xmm6

# Tests for op imm8, xmm/mem32, xmm, xmm
	vcmpss $7,%xmm4,%xmm6,%xmm2
	vcmpss $7,(%rcx),%xmm6,%xmm2
	vroundss $7,%xmm4,%xmm6,%xmm2
	vroundss $7,(%rcx),%xmm6,%xmm2

# Tests for op xmm, xmm, xmm
	vmovsd %xmm4,%xmm6,%xmm2
	vmovss %xmm4,%xmm6,%xmm2

#Tests with different memory and register operands.
	vcvtsi2sdl 0x12345678,%xmm8,%xmm15
	vcvtsi2sdl (%rbp),%xmm8,%xmm15
	vcvtsi2sdl (%rsp),%xmm8,%xmm15
	vcvtsi2sdl 0x99(%rbp),%xmm8,%xmm15
	vcvtsi2sdl 0x99(%r15),%xmm8,%xmm15
	vcvtsi2sdl 0x99(%rip),%xmm8,%xmm15
	vcvtsi2sdl 0x99(%rsp),%xmm8,%xmm15
	vcvtsi2sdl 0x99(%r12),%xmm8,%xmm15
	vcvtsi2sdl -0x99(,%riz),%xmm8,%xmm15
	vcvtsi2sdl -0x99(,%riz,2),%xmm8,%xmm15
	vcvtsi2sdl -0x99(%rbx,%riz),%xmm8,%xmm15
	vcvtsi2sdl -0x99(%rbx,%riz,2),%xmm8,%xmm15
	vcvtsi2sdl -0x99(%r12,%r15,4),%xmm8,%xmm15
	vcvtsi2sdl -0x99(%r8,%r15,8),%xmm8,%xmm15
	vcvtsi2sdl -0x99(%rbp,%r13,4),%xmm8,%xmm15
	vcvtsi2sdl -0x99(%rsp,%r12,1),%xmm8,%xmm15
# Tests for all register operands.
	vcvtsd2si %xmm8,%r8d
	vcvtsi2sdl %r8d,%xmm8,%xmm15
# Tests for different memory/register operand
	vcvtsd2si (%rcx),%r8
	vcvtss2si (%rcx),%r8

	.intel_syntax noprefix

# Tests for op xmm/mem64, xmm
	vcomisd xmm6,xmm4
	vcomisd xmm4,QWORD PTR [rcx]
	vcomisd xmm4,[rcx]
	vucomisd xmm6,xmm4
	vucomisd xmm4,QWORD PTR [rcx]
	vucomisd xmm4,[rcx]

# Tests for op mem64, xmm
	vmovsd xmm4,QWORD PTR [rcx]
	vmovsd xmm4,[rcx]

# Tests for op xmm, mem64
	vmovsd QWORD PTR [rcx],xmm4
	vmovsd [rcx],xmm4

# Tests for op xmm/mem64, regl
	vcvtsd2si ecx,xmm4
	vcvtsd2si ecx,QWORD PTR [rcx]
	vcvtsd2si ecx,[rcx]
	vcvttsd2si ecx,xmm4
	vcvttsd2si ecx,QWORD PTR [rcx]
	vcvttsd2si ecx,[rcx]

# Tests for op xmm/mem64, regq
	vcvtsd2si rcx,xmm4
	vcvtsd2si rcx,QWORD PTR [rcx]
	vcvtsd2si rcx,[rcx]
	vcvttsd2si rcx,xmm4
	vcvttsd2si rcx,QWORD PTR [rcx]
	vcvttsd2si rcx,[rcx]

# Tests for op regq/mem64, xmm, xmm
	vcvtsi2sdq xmm6,xmm4,rcx
	vcvtsi2sdq xmm6,xmm4,QWORD PTR [rcx]
	vcvtsi2sdq xmm6,xmm4,[rcx]
	vcvtsi2ssq xmm6,xmm4,rcx
	vcvtsi2ssq xmm6,xmm4,QWORD PTR [rcx]
	vcvtsi2ssq xmm6,xmm4,[rcx]

# Tests for op imm8, xmm/mem64, xmm, xmm
	vcmpsd xmm2,xmm6,xmm4,7
	vcmpsd xmm2,xmm6,QWORD PTR [rcx],7
	vcmpsd xmm2,xmm6,[rcx],7
	vroundsd xmm2,xmm6,xmm4,7
	vroundsd xmm2,xmm6,QWORD PTR [rcx],7
	vroundsd xmm2,xmm6,[rcx],7

# Tests for op xmm/mem64, xmm, xmm
	vaddsd xmm2,xmm6,xmm4
	vaddsd xmm2,xmm6,QWORD PTR [rcx]
	vaddsd xmm2,xmm6,[rcx]
	vcvtsd2ss xmm2,xmm6,xmm4
	vcvtsd2ss xmm2,xmm6,QWORD PTR [rcx]
	vcvtsd2ss xmm2,xmm6,[rcx]
	vdivsd xmm2,xmm6,xmm4
	vdivsd xmm2,xmm6,QWORD PTR [rcx]
	vdivsd xmm2,xmm6,[rcx]
	vmaxsd xmm2,xmm6,xmm4
	vmaxsd xmm2,xmm6,QWORD PTR [rcx]
	vmaxsd xmm2,xmm6,[rcx]
	vminsd xmm2,xmm6,xmm4
	vminsd xmm2,xmm6,QWORD PTR [rcx]
	vminsd xmm2,xmm6,[rcx]
	vmulsd xmm2,xmm6,xmm4
	vmulsd xmm2,xmm6,QWORD PTR [rcx]
	vmulsd xmm2,xmm6,[rcx]
	vsqrtsd xmm2,xmm6,xmm4
	vsqrtsd xmm2,xmm6,QWORD PTR [rcx]
	vsqrtsd xmm2,xmm6,[rcx]
	vsubsd xmm2,xmm6,xmm4
	vsubsd xmm2,xmm6,QWORD PTR [rcx]
	vsubsd xmm2,xmm6,[rcx]
	vcmpeqsd xmm2,xmm6,xmm4
	vcmpeqsd xmm2,xmm6,QWORD PTR [rcx]
	vcmpeqsd xmm2,xmm6,[rcx]
	vcmpltsd xmm2,xmm6,xmm4
	vcmpltsd xmm2,xmm6,QWORD PTR [rcx]
	vcmpltsd xmm2,xmm6,[rcx]
	vcmplesd xmm2,xmm6,xmm4
	vcmplesd xmm2,xmm6,QWORD PTR [rcx]
	vcmplesd xmm2,xmm6,[rcx]
	vcmpunordsd xmm2,xmm6,xmm4
	vcmpunordsd xmm2,xmm6,QWORD PTR [rcx]
	vcmpunordsd xmm2,xmm6,[rcx]
	vcmpneqsd xmm2,xmm6,xmm4
	vcmpneqsd xmm2,xmm6,QWORD PTR [rcx]
	vcmpneqsd xmm2,xmm6,[rcx]
	vcmpnltsd xmm2,xmm6,xmm4
	vcmpnltsd xmm2,xmm6,QWORD PTR [rcx]
	vcmpnltsd xmm2,xmm6,[rcx]
	vcmpnlesd xmm2,xmm6,xmm4
	vcmpnlesd xmm2,xmm6,QWORD PTR [rcx]
	vcmpnlesd xmm2,xmm6,[rcx]
	vcmpordsd xmm2,xmm6,xmm4
	vcmpordsd xmm2,xmm6,QWORD PTR [rcx]
	vcmpordsd xmm2,xmm6,[rcx]
	vcmpeq_uqsd xmm2,xmm6,xmm4
	vcmpeq_uqsd xmm2,xmm6,QWORD PTR [rcx]
	vcmpeq_uqsd xmm2,xmm6,[rcx]
	vcmpngesd xmm2,xmm6,xmm4
	vcmpngesd xmm2,xmm6,QWORD PTR [rcx]
	vcmpngesd xmm2,xmm6,[rcx]
	vcmpngtsd xmm2,xmm6,xmm4
	vcmpngtsd xmm2,xmm6,QWORD PTR [rcx]
	vcmpngtsd xmm2,xmm6,[rcx]
	vcmpfalsesd xmm2,xmm6,xmm4
	vcmpfalsesd xmm2,xmm6,QWORD PTR [rcx]
	vcmpfalsesd xmm2,xmm6,[rcx]
	vcmpneq_oqsd xmm2,xmm6,xmm4
	vcmpneq_oqsd xmm2,xmm6,QWORD PTR [rcx]
	vcmpneq_oqsd xmm2,xmm6,[rcx]
	vcmpgesd xmm2,xmm6,xmm4
	vcmpgesd xmm2,xmm6,QWORD PTR [rcx]
	vcmpgesd xmm2,xmm6,[rcx]
	vcmpgtsd xmm2,xmm6,xmm4
	vcmpgtsd xmm2,xmm6,QWORD PTR [rcx]
	vcmpgtsd xmm2,xmm6,[rcx]
	vcmptruesd xmm2,xmm6,xmm4
	vcmptruesd xmm2,xmm6,QWORD PTR [rcx]
	vcmptruesd xmm2,xmm6,[rcx]
	vcmpeq_ossd xmm2,xmm6,xmm4
	vcmpeq_ossd xmm2,xmm6,QWORD PTR [rcx]
	vcmpeq_ossd xmm2,xmm6,[rcx]
	vcmplt_oqsd xmm2,xmm6,xmm4
	vcmplt_oqsd xmm2,xmm6,QWORD PTR [rcx]
	vcmplt_oqsd xmm2,xmm6,[rcx]
	vcmple_oqsd xmm2,xmm6,xmm4
	vcmple_oqsd xmm2,xmm6,QWORD PTR [rcx]
	vcmple_oqsd xmm2,xmm6,[rcx]
	vcmpunord_ssd xmm2,xmm6,xmm4
	vcmpunord_ssd xmm2,xmm6,QWORD PTR [rcx]
	vcmpunord_ssd xmm2,xmm6,[rcx]
	vcmpneq_ussd xmm2,xmm6,xmm4
	vcmpneq_ussd xmm2,xmm6,QWORD PTR [rcx]
	vcmpneq_ussd xmm2,xmm6,[rcx]
	vcmpnlt_uqsd xmm2,xmm6,xmm4
	vcmpnlt_uqsd xmm2,xmm6,QWORD PTR [rcx]
	vcmpnlt_uqsd xmm2,xmm6,[rcx]
	vcmpnle_uqsd xmm2,xmm6,xmm4
	vcmpnle_uqsd xmm2,xmm6,QWORD PTR [rcx]
	vcmpnle_uqsd xmm2,xmm6,[rcx]
	vcmpord_ssd xmm2,xmm6,xmm4
	vcmpord_ssd xmm2,xmm6,QWORD PTR [rcx]
	vcmpord_ssd xmm2,xmm6,[rcx]
	vcmpeq_ussd xmm2,xmm6,xmm4
	vcmpeq_ussd xmm2,xmm6,QWORD PTR [rcx]
	vcmpeq_ussd xmm2,xmm6,[rcx]
	vcmpnge_uqsd xmm2,xmm6,xmm4
	vcmpnge_uqsd xmm2,xmm6,QWORD PTR [rcx]
	vcmpnge_uqsd xmm2,xmm6,[rcx]
	vcmpngt_uqsd xmm2,xmm6,xmm4
	vcmpngt_uqsd xmm2,xmm6,QWORD PTR [rcx]
	vcmpngt_uqsd xmm2,xmm6,[rcx]
	vcmpfalse_ossd xmm2,xmm6,xmm4
	vcmpfalse_ossd xmm2,xmm6,QWORD PTR [rcx]
	vcmpfalse_ossd xmm2,xmm6,[rcx]
	vcmpneq_ossd xmm2,xmm6,xmm4
	vcmpneq_ossd xmm2,xmm6,QWORD PTR [rcx]
	vcmpneq_ossd xmm2,xmm6,[rcx]
	vcmpge_oqsd xmm2,xmm6,xmm4
	vcmpge_oqsd xmm2,xmm6,QWORD PTR [rcx]
	vcmpge_oqsd xmm2,xmm6,[rcx]
	vcmpgt_oqsd xmm2,xmm6,xmm4
	vcmpgt_oqsd xmm2,xmm6,QWORD PTR [rcx]
	vcmpgt_oqsd xmm2,xmm6,[rcx]
	vcmptrue_ussd xmm2,xmm6,xmm4
	vcmptrue_ussd xmm2,xmm6,QWORD PTR [rcx]
	vcmptrue_ussd xmm2,xmm6,[rcx]

# Tests for op xmm/mem32, xmm, xmm
	vaddss xmm2,xmm6,xmm4
	vaddss xmm2,xmm6,DWORD PTR [rcx]
	vaddss xmm2,xmm6,[rcx]
	vcvtss2sd xmm2,xmm6,xmm4
	vcvtss2sd xmm2,xmm6,DWORD PTR [rcx]
	vcvtss2sd xmm2,xmm6,[rcx]
	vdivss xmm2,xmm6,xmm4
	vdivss xmm2,xmm6,DWORD PTR [rcx]
	vdivss xmm2,xmm6,[rcx]
	vmaxss xmm2,xmm6,xmm4
	vmaxss xmm2,xmm6,DWORD PTR [rcx]
	vmaxss xmm2,xmm6,[rcx]
	vminss xmm2,xmm6,xmm4
	vminss xmm2,xmm6,DWORD PTR [rcx]
	vminss xmm2,xmm6,[rcx]
	vmulss xmm2,xmm6,xmm4
	vmulss xmm2,xmm6,DWORD PTR [rcx]
	vmulss xmm2,xmm6,[rcx]
	vrcpss xmm2,xmm6,xmm4
	vrcpss xmm2,xmm6,DWORD PTR [rcx]
	vrcpss xmm2,xmm6,[rcx]
	vrsqrtss xmm2,xmm6,xmm4
	vrsqrtss xmm2,xmm6,DWORD PTR [rcx]
	vrsqrtss xmm2,xmm6,[rcx]
	vsqrtss xmm2,xmm6,xmm4
	vsqrtss xmm2,xmm6,DWORD PTR [rcx]
	vsqrtss xmm2,xmm6,[rcx]
	vsubss xmm2,xmm6,xmm4
	vsubss xmm2,xmm6,DWORD PTR [rcx]
	vsubss xmm2,xmm6,[rcx]
	vcmpeqss xmm2,xmm6,xmm4
	vcmpeqss xmm2,xmm6,DWORD PTR [rcx]
	vcmpeqss xmm2,xmm6,[rcx]
	vcmpltss xmm2,xmm6,xmm4
	vcmpltss xmm2,xmm6,DWORD PTR [rcx]
	vcmpltss xmm2,xmm6,[rcx]
	vcmpless xmm2,xmm6,xmm4
	vcmpless xmm2,xmm6,DWORD PTR [rcx]
	vcmpless xmm2,xmm6,[rcx]
	vcmpunordss xmm2,xmm6,xmm4
	vcmpunordss xmm2,xmm6,DWORD PTR [rcx]
	vcmpunordss xmm2,xmm6,[rcx]
	vcmpneqss xmm2,xmm6,xmm4
	vcmpneqss xmm2,xmm6,DWORD PTR [rcx]
	vcmpneqss xmm2,xmm6,[rcx]
	vcmpnltss xmm2,xmm6,xmm4
	vcmpnltss xmm2,xmm6,DWORD PTR [rcx]
	vcmpnltss xmm2,xmm6,[rcx]
	vcmpnless xmm2,xmm6,xmm4
	vcmpnless xmm2,xmm6,DWORD PTR [rcx]
	vcmpnless xmm2,xmm6,[rcx]
	vcmpordss xmm2,xmm6,xmm4
	vcmpordss xmm2,xmm6,DWORD PTR [rcx]
	vcmpordss xmm2,xmm6,[rcx]
	vcmpeq_uqss xmm2,xmm6,xmm4
	vcmpeq_uqss xmm2,xmm6,DWORD PTR [rcx]
	vcmpeq_uqss xmm2,xmm6,[rcx]
	vcmpngess xmm2,xmm6,xmm4
	vcmpngess xmm2,xmm6,DWORD PTR [rcx]
	vcmpngess xmm2,xmm6,[rcx]
	vcmpngtss xmm2,xmm6,xmm4
	vcmpngtss xmm2,xmm6,DWORD PTR [rcx]
	vcmpngtss xmm2,xmm6,[rcx]
	vcmpfalsess xmm2,xmm6,xmm4
	vcmpfalsess xmm2,xmm6,DWORD PTR [rcx]
	vcmpfalsess xmm2,xmm6,[rcx]
	vcmpneq_oqss xmm2,xmm6,xmm4
	vcmpneq_oqss xmm2,xmm6,DWORD PTR [rcx]
	vcmpneq_oqss xmm2,xmm6,[rcx]
	vcmpgess xmm2,xmm6,xmm4
	vcmpgess xmm2,xmm6,DWORD PTR [rcx]
	vcmpgess xmm2,xmm6,[rcx]
	vcmpgtss xmm2,xmm6,xmm4
	vcmpgtss xmm2,xmm6,DWORD PTR [rcx]
	vcmpgtss xmm2,xmm6,[rcx]
	vcmptruess xmm2,xmm6,xmm4
	vcmptruess xmm2,xmm6,DWORD PTR [rcx]
	vcmptruess xmm2,xmm6,[rcx]
	vcmpeq_osss xmm2,xmm6,xmm4
	vcmpeq_osss xmm2,xmm6,DWORD PTR [rcx]
	vcmpeq_osss xmm2,xmm6,[rcx]
	vcmplt_oqss xmm2,xmm6,xmm4
	vcmplt_oqss xmm2,xmm6,DWORD PTR [rcx]
	vcmplt_oqss xmm2,xmm6,[rcx]
	vcmple_oqss xmm2,xmm6,xmm4
	vcmple_oqss xmm2,xmm6,DWORD PTR [rcx]
	vcmple_oqss xmm2,xmm6,[rcx]
	vcmpunord_sss xmm2,xmm6,xmm4
	vcmpunord_sss xmm2,xmm6,DWORD PTR [rcx]
	vcmpunord_sss xmm2,xmm6,[rcx]
	vcmpneq_usss xmm2,xmm6,xmm4
	vcmpneq_usss xmm2,xmm6,DWORD PTR [rcx]
	vcmpneq_usss xmm2,xmm6,[rcx]
	vcmpnlt_uqss xmm2,xmm6,xmm4
	vcmpnlt_uqss xmm2,xmm6,DWORD PTR [rcx]
	vcmpnlt_uqss xmm2,xmm6,[rcx]
	vcmpnle_uqss xmm2,xmm6,xmm4
	vcmpnle_uqss xmm2,xmm6,DWORD PTR [rcx]
	vcmpnle_uqss xmm2,xmm6,[rcx]
	vcmpord_sss xmm2,xmm6,xmm4
	vcmpord_sss xmm2,xmm6,DWORD PTR [rcx]
	vcmpord_sss xmm2,xmm6,[rcx]
	vcmpeq_usss xmm2,xmm6,xmm4
	vcmpeq_usss xmm2,xmm6,DWORD PTR [rcx]
	vcmpeq_usss xmm2,xmm6,[rcx]
	vcmpnge_uqss xmm2,xmm6,xmm4
	vcmpnge_uqss xmm2,xmm6,DWORD PTR [rcx]
	vcmpnge_uqss xmm2,xmm6,[rcx]
	vcmpngt_uqss xmm2,xmm6,xmm4
	vcmpngt_uqss xmm2,xmm6,DWORD PTR [rcx]
	vcmpngt_uqss xmm2,xmm6,[rcx]
	vcmpfalse_osss xmm2,xmm6,xmm4
	vcmpfalse_osss xmm2,xmm6,DWORD PTR [rcx]
	vcmpfalse_osss xmm2,xmm6,[rcx]
	vcmpneq_osss xmm2,xmm6,xmm4
	vcmpneq_osss xmm2,xmm6,DWORD PTR [rcx]
	vcmpneq_osss xmm2,xmm6,[rcx]
	vcmpge_oqss xmm2,xmm6,xmm4
	vcmpge_oqss xmm2,xmm6,DWORD PTR [rcx]
	vcmpge_oqss xmm2,xmm6,[rcx]
	vcmpgt_oqss xmm2,xmm6,xmm4
	vcmpgt_oqss xmm2,xmm6,DWORD PTR [rcx]
	vcmpgt_oqss xmm2,xmm6,[rcx]
	vcmptrue_usss xmm2,xmm6,xmm4
	vcmptrue_usss xmm2,xmm6,DWORD PTR [rcx]
	vcmptrue_usss xmm2,xmm6,[rcx]

# Tests for op xmm/mem32, xmm
	vcomiss xmm6,xmm4
	vcomiss xmm4,DWORD PTR [rcx]
	vcomiss xmm4,[rcx]
	vucomiss xmm6,xmm4
	vucomiss xmm4,DWORD PTR [rcx]
	vucomiss xmm4,[rcx]

# Tests for op mem32, xmm
	vmovss xmm4,DWORD PTR [rcx]
	vmovss xmm4,[rcx]

# Tests for op xmm, mem32
	vmovss DWORD PTR [rcx],xmm4
	vmovss [rcx],xmm4

# Tests for op xmm/mem32, regl
	vcvtss2si ecx,xmm4
	vcvtss2si ecx,DWORD PTR [rcx]
	vcvtss2si ecx,[rcx]
	vcvttss2si ecx,xmm4
	vcvttss2si ecx,DWORD PTR [rcx]
	vcvttss2si ecx,[rcx]

# Tests for op xmm/mem32, regq
	vcvtss2si rcx,xmm4
	vcvtss2si rcx,DWORD PTR [rcx]
	vcvtss2si rcx,[rcx]
	vcvttss2si rcx,xmm4
	vcvttss2si rcx,DWORD PTR [rcx]
	vcvttss2si rcx,[rcx]

# Tests for op regl/mem32, xmm, xmm
	vcvtsi2sd xmm6,xmm4,ecx
	vcvtsi2sd xmm6,xmm4,DWORD PTR [rcx]
	vcvtsi2ss xmm6,xmm4,ecx
	vcvtsi2ss xmm6,xmm4,DWORD PTR [rcx]

# Tests for op imm8, xmm/mem32, xmm, xmm
	vcmpss xmm2,xmm6,xmm4,7
	vcmpss xmm2,xmm6,DWORD PTR [rcx],7
	vcmpss xmm2,xmm6,[rcx],7
	vroundss xmm2,xmm6,xmm4,7
	vroundss xmm2,xmm6,DWORD PTR [rcx],7
	vroundss xmm2,xmm6,[rcx],7

# Tests for op xmm, xmm, xmm
	vmovsd xmm2,xmm6,xmm4
	vmovss xmm2,xmm6,xmm4

#Tests with different memory and register operands.
	vcvtsi2sd xmm15,xmm8,DWORD PTR ds:0x12345678
	vcvtsi2sd xmm15,xmm8,DWORD PTR [rbp]
	vcvtsi2sd xmm15,xmm8,DWORD PTR [rbp+0x99]
	vcvtsi2sd xmm15,xmm8,DWORD PTR [r15+0x99]
	vcvtsi2sd xmm15,xmm8,DWORD PTR [rip+0x99]
	vcvtsi2sd xmm15,xmm8,DWORD PTR [rsp+0x99]
	vcvtsi2sd xmm15,xmm8,DWORD PTR [r12+0x99]
	vcvtsi2sd xmm15,xmm8,DWORD PTR [riz*1-0x99]
	vcvtsi2sd xmm15,xmm8,DWORD PTR [riz*2-0x99]
	vcvtsi2sd xmm15,xmm8,DWORD PTR [rbx+riz*1-0x99]
	vcvtsi2sd xmm15,xmm8,DWORD PTR [rbx+riz*2-0x99]
	vcvtsi2sd xmm15,xmm8,DWORD PTR [r12+r15*4-0x99]
	vcvtsi2sd xmm15,xmm8,DWORD PTR [r8+r15*8-0x99]
	vcvtsi2sd xmm15,xmm8,DWORD PTR [rbp+r12*4-0x99]
	vcvtsi2sd xmm15,xmm8,DWORD PTR [rsp+r13*1-0x99]
# Tests for all register operands.
	vcvtsd2si r8d,xmm8
	vcvtsi2sd xmm15,xmm8,r8d
# Tests for different memory/register operand
	vcvtsd2si r8,QWORD PTR  [rcx]
	vcvtss2si r8,DWORD PTR  [rcx]