[ARM] Better OR's for MVE compares
[llvm-core.git] / test / MC / X86 / x86-64.s
blobb2251ecb4473c5bee070e72e09de5625362411dd
1 // RUN: llvm-mc -triple x86_64-unknown-unknown -show-encoding %s > %t 2> %t.err
2 // RUN: FileCheck < %t %s
3 // RUN: FileCheck --check-prefix=CHECK-STDERR < %t.err %s
5 monitor
6 // CHECK: monitor
7 // CHECK: encoding: [0x0f,0x01,0xc8]
8 monitor %rax, %rcx, %rdx
9 // CHECK: monitor
10 // CHECK: encoding: [0x0f,0x01,0xc8]
11 mwait
12 // CHECK: mwait
13 // CHECK: encoding: [0x0f,0x01,0xc9]
14 mwait %rax, %rcx
15 // CHECK: mwait
16 // CHECK: encoding: [0x0f,0x01,0xc9]
18 // Suffix inference:
20 // CHECK: addl $0, %eax
21 add $0, %eax
22 // CHECK: addb $255, %al
23 add $0xFF, %al
24 // CHECK: orq %rax, %rdx
25 or %rax, %rdx
26 // CHECK: shlq $3, %rax
27 shl $3, %rax
30 // CHECK: subb %al, %al
31 subb %al, %al
33 // CHECK: addl $24, %eax
34 addl $24, %eax
36 // CHECK: movl %eax, 10(%ebp)
37 movl %eax, 10(%ebp)
38 // CHECK: movl %eax, 10(%ebp,%ebx)
39 movl %eax, 10(%ebp, %ebx)
40 // CHECK: movl %eax, 10(%ebp,%ebx,4)
41 movl %eax, 10(%ebp, %ebx, 4)
42 // CHECK: movl %eax, 10(,%ebx,4)
43 movl %eax, 10(, %ebx, 4)
45 // CHECK: movl 0, %eax
46 movl 0, %eax
47 // CHECK: movl $0, %eax
48 movl $0, %eax
50 // CHECK: ret
51 ret
53 // CHECK: retw
54 retw
56 // FIXME: Check that this matches SUB32ri8
57 // CHECK: subl $1, %eax
58 subl $1, %eax
60 // FIXME: Check that this matches SUB32ri8
61 // CHECK: subl $-1, %eax
62 subl $-1, %eax
64 // FIXME: Check that this matches SUB32ri
65 // CHECK: subl $256, %eax
66 subl $256, %eax
68 // FIXME: Check that this matches XOR64ri8
69 // CHECK: xorq $1, %rax
70 xorq $1, %rax
72 // FIXME: Check that this matches XOR64ri32
73 // CHECK: xorq $256, %rax
74 xorq $256, %rax
76 // FIXME: Check that this matches SUB8rr
77 // CHECK: subb %al, %bl
78 subb %al, %bl
80 // FIXME: Check that this matches SUB16rr
81 // CHECK: subw %ax, %bx
82 subw %ax, %bx
84 // FIXME: Check that this matches SUB32rr
85 // CHECK: subl %eax, %ebx
86 subl %eax, %ebx
88 // FIXME: Check that this matches the correct instruction.
89 // CHECK: callq *%rax
90 call *%rax
92 // FIXME: Check that this matches the correct instruction.
93 // CHECK: shldl %cl, %eax, %ebx
94 shldl %cl, %eax, %ebx
96 // CHECK: shll $2, %eax
97 shll $2, %eax
99 // CHECK: shll $2, %eax
100 sall $2, %eax
102 // CHECK: rep
103 // CHECK-NEXT: movsb
104 rep # comment
105 movsb
107 // CHECK: rep
108 // CHECK: insb
109 rep;insb
111 // CHECK: rep
112 // CHECK: outsb
113 rep;outsb
115 // CHECK: rep
116 // CHECK: movsb
117 rep;movsb
120 // rdar://8470918
121 smovb // CHECK: movsb
122 smovw // CHECK: movsw
123 smovl // CHECK: movsl
124 smovq // CHECK: movsq
126 // rdar://8456361
127 // CHECK: rep
128 // CHECK: movsl
129 rep movsd
131 // CHECK: rep
132 // CHECK: lodsb
133 rep;lodsb
135 // CHECK: rep
136 // CHECK: stosb
137 rep;stosb
139 // NOTE: repz and repe have the same opcode as rep
140 // CHECK: rep
141 // CHECK: cmpsb
142 repz;cmpsb
144 // NOTE: repnz has the same opcode as repne
145 // CHECK: repne
146 // CHECK: cmpsb
147 repnz;cmpsb
149 // NOTE: repe and repz have the same opcode as rep
150 // CHECK: rep
151 // CHECK: scasb
152 repe;scasb
154 // CHECK: repne
155 // CHECK: scasb
156 repne;scasb
158 // CHECK: lock
159 // CHECK: cmpxchgb %al, (%ebx)
160 lock;cmpxchgb %al, 0(%ebx)
162 // CHECK: cs
163 // CHECK: movb (%eax), %al
164 cs;movb 0(%eax), %al
166 // CHECK: ss
167 // CHECK: movb (%eax), %al
168 ss;movb 0(%eax), %al
170 // CHECK: ds
171 // CHECK: movb (%eax), %al
172 ds;movb 0(%eax), %al
174 // CHECK: es
175 // CHECK: movb (%eax), %al
176 es;movb 0(%eax), %al
178 // CHECK: fs
179 // CHECK: movb (%eax), %al
180 fs;movb 0(%eax), %al
182 // CHECK: gs
183 // CHECK: movb (%eax), %al
184 gs;movb 0(%eax), %al
186 // CHECK: fadd %st(0)
187 // CHECK: fadd %st(1)
188 // CHECK: fadd %st(7)
190 fadd %st(0)
191 fadd %st(1)
192 fadd %st(7)
194 // CHECK: leal 0, %eax
195 leal 0, %eax
197 // rdar://7986634 - Insensitivity on opcodes.
198 // CHECK: int3
199 INT3
201 // rdar://8735979 - int $3 -> int3
202 // CHECK: int3
203 int $3
206 // Allow scale factor without index register.
207 // CHECK: movaps %xmm3, (%esi)
208 // CHECK-STDERR: warning: scale factor without index register is ignored
209 movaps %xmm3, (%esi, 2)
211 // CHECK: imull $12, %eax
212 imul $12, %eax
214 // CHECK: imull %ecx, %eax
215 imull %ecx, %eax
218 // rdar://8208481
219 // CHECK: outb %al, $161
220 outb %al, $161
221 // CHECK: outw %ax, $128
222 outw %ax, $128
223 // CHECK: inb $161, %al
224 inb $161, %al
226 // rdar://8017621
227 // CHECK: pushq $1
228 push $1
230 // rdar://9716860
231 pushq $1
232 // CHECK: encoding: [0x6a,0x01]
233 pushq $1111111
234 // CHECK: encoding: [0x68,0x47,0xf4,0x10,0x00]
236 // rdar://8017530
237 // CHECK: sldtw 4
238 sldt 4
240 // rdar://8208499
241 // CHECK: cmovnew %bx, %ax
242 cmovnz %bx, %ax
243 // CHECK: cmovneq %rbx, %rax
244 cmovnzq %rbx, %rax
247 // rdar://8407928
248 // CHECK: inb $127, %al
249 // CHECK: inw %dx, %ax
250 // CHECK: outb %al, $127
251 // CHECK: outw %ax, %dx
252 // CHECK: inl %dx, %eax
253 inb $0x7f
254 inw %dx
255 outb $0x7f
256 outw %dx
257 inl %dx
260 // PR8114
261 // CHECK: outb %al, %dx
262 // CHECK: outb %al, %dx
263 // CHECK: outw %ax, %dx
264 // CHECK: outw %ax, %dx
265 // CHECK: outl %eax, %dx
266 // CHECK: outl %eax, %dx
268 out %al, (%dx)
269 outb %al, (%dx)
270 out %ax, (%dx)
271 outw %ax, (%dx)
272 out %eax, (%dx)
273 outl %eax, (%dx)
275 // CHECK: inb %dx, %al
276 // CHECK: inb %dx, %al
277 // CHECK: inw %dx, %ax
278 // CHECK: inw %dx, %ax
279 // CHECK: inl %dx, %eax
280 // CHECK: inl %dx, %eax
282 in (%dx), %al
283 inb (%dx), %al
284 in (%dx), %ax
285 inw (%dx), %ax
286 in (%dx), %eax
287 inl (%dx), %eax
289 //PR15455
291 outsb (%rsi), (%dx)
292 // CHECK: outsb (%rsi), %dx
293 outsw (%rsi), (%dx)
294 // CHECK: outsw (%rsi), %dx
295 outsl (%rsi), (%dx)
296 // CHECK: outsl (%rsi), %dx
298 insb (%dx), %es:(%rdi)
299 // CHECK: insb %dx, %es:(%rdi)
300 insw (%dx), %es:(%rdi)
301 // CHECK: insw %dx, %es:(%rdi)
302 insl (%dx), %es:(%rdi)
303 // CHECK: insl %dx, %es:(%rdi)
305 // rdar://8431422
307 // CHECK: fxch %st(1)
308 // CHECK: fucom %st(1)
309 // CHECK: fucomp %st(1)
310 // CHECK: faddp %st, %st(1)
311 // CHECK: faddp %st, %st(0)
312 // CHECK: fsubp %st, %st(1)
313 // CHECK: fsubrp %st, %st(1)
314 // CHECK: fmulp %st, %st(1)
315 // CHECK: fdivp %st, %st(1)
316 // CHECK: fdivrp %st, %st(1)
318 fxch
319 fucom
320 fucomp
321 faddp
322 faddp %st
323 fsubp
324 fsubrp
325 fmulp
326 fdivp
327 fdivrp
329 // CHECK: fcomi %st(1)
330 // CHECK: fcomi %st(2)
331 // CHECK: fucomi %st(1)
332 // CHECK: fucomi %st(2)
333 // CHECK: fucomi %st(2)
335 fcomi
336 fcomi %st(2)
337 fucomi
338 fucomi %st(2)
339 fucomi %st(2), %st
341 // CHECK: fnstsw %ax
342 // CHECK: fnstsw %ax
344 fnstsw
345 fnstsw %ax
347 // rdar://8431880
348 // CHECK: rclb %bl
349 // CHECK: rcll 3735928559(%ebx,%ecx,8)
350 // CHECK: rcrl %ecx
351 // CHECK: rcrl 305419896
352 rcl %bl
353 rcll 0xdeadbeef(%ebx,%ecx,8)
354 rcr %ecx
355 rcrl 0x12345678
357 rclb %bl // CHECK: rclb %bl # encoding: [0xd0,0xd3]
358 rclb $1, %bl // CHECK: rclb %bl # encoding: [0xd0,0xd3]
359 rclb $2, %bl // CHECK: rclb $2, %bl # encoding: [0xc0,0xd3,0x02]
361 // rdar://8418316
362 // PR12173
363 // CHECK: shldw %cl, %bx, %dx
364 // CHECK: shldw %cl, %bx, %dx
365 // CHECK: shldw $1, %bx, %dx
366 // CHECK: shldw %cl, %bx, (%rax)
367 // CHECK: shldw %cl, %bx, (%rax)
368 // CHECK: shrdw %cl, %bx, %dx
369 // CHECK: shrdw %cl, %bx, %dx
370 // CHECK: shrdw $1, %bx, %dx
371 // CHECK: shrdw %cl, %bx, (%rax)
372 // CHECK: shrdw %cl, %bx, (%rax)
374 shld %bx, %dx
375 shld %cl, %bx, %dx
376 shld $1, %bx, %dx
377 shld %bx, (%rax)
378 shld %cl, %bx, (%rax)
379 shrd %bx, %dx
380 shrd %cl, %bx, %dx
381 shrd $1, %bx, %dx
382 shrd %bx, (%rax)
383 shrd %cl, %bx, (%rax)
385 // CHECK: sldtl %ecx
386 // CHECK: encoding: [0x0f,0x00,0xc1]
387 // CHECK: sldtw %cx
388 // CHECK: encoding: [0x66,0x0f,0x00,0xc1]
390 sldt %ecx
391 sldt %cx
393 // CHECK: lcalll *3135175374
394 // CHECK: ljmpl *3135175374
395 // CHECK: lcalll *(%rax)
396 // CHECK: ljmpl *(%rax)
397 lcall *0xbadeface
398 ljmp *0xbadeface
399 lcall *(%rax)
400 ljmpl *(%rax)
402 // rdar://8444631
403 // CHECK: enter $31438, $0
404 // CHECK: encoding: [0xc8,0xce,0x7a,0x00]
405 // CHECK: enter $31438, $1
406 // CHECK: encoding: [0xc8,0xce,0x7a,0x01]
407 // CHECK: enter $31438, $127
408 // CHECK: encoding: [0xc8,0xce,0x7a,0x7f]
409 enter $0x7ace,$0
410 enter $0x7ace,$1
411 enter $0x7ace,$0x7f
414 // rdar://8456364
415 // CHECK: movw %cs, %ax
416 mov %cs, %ax
418 // rdar://8456391
419 fcmovb %st(1), %st // CHECK: fcmovb %st(1), %st
420 fcmove %st(1), %st // CHECK: fcmove %st(1), %st
421 fcmovbe %st(1), %st // CHECK: fcmovbe %st(1), %st
422 fcmovu %st(1), %st // CHECK: fcmovu %st(1), %st
424 fcmovnb %st(1), %st // CHECK: fcmovnb %st(1), %st
425 fcmovne %st(1), %st // CHECK: fcmovne %st(1), %st
426 fcmovnbe %st(1), %st // CHECK: fcmovnbe %st(1), %st
427 fcmovnu %st(1), %st // CHECK: fcmovnu %st(1), %st
429 fcmovnae %st(1), %st // CHECK: fcmovb %st(1), %st
430 fcmovna %st(1), %st // CHECK: fcmovbe %st(1), %st
432 fcmovae %st(1), %st // CHECK: fcmovnb %st(1), %st
433 fcmova %st(1), %st // CHECK: fcmovnbe %st(1), %st
435 // rdar://8456417
436 .byte (88 + 1) & 15 // CHECK: .byte 9
438 // rdar://8456412
439 mov %rdx, %cr0
440 // CHECK: movq %rdx, %cr0
441 // CHECK: encoding: [0x0f,0x22,0xc2]
442 mov %rdx, %cr4
443 // CHECK: movq %rdx, %cr4
444 // CHECK: encoding: [0x0f,0x22,0xe2]
445 mov %rdx, %cr8
446 // CHECK: movq %rdx, %cr8
447 // CHECK: encoding: [0x44,0x0f,0x22,0xc2]
448 mov %rdx, %cr15
449 // CHECK: movq %rdx, %cr15
450 // CHECK: encoding: [0x44,0x0f,0x22,0xfa]
451 mov %rdx, %dr15
452 // CHECK: movq %rdx, %dr15
453 // CHECK: encoding: [0x44,0x0f,0x23,0xfa]
454 mov %rdx, %db15
455 // CHECK: movq %rdx, %dr15
456 // CHECK: encoding: [0x44,0x0f,0x23,0xfa]
458 // rdar://8456371 - Handle commutable instructions written backward.
459 // CHECK: faddp %st, %st(1)
460 // CHECK: fmulp %st, %st(2)
461 faddp %st, %st(1)
462 fmulp %st, %st(2)
464 // rdar://8468087 - Encode these accurately, they are not synonyms.
465 // CHECK: fmul %st, %st(1)
466 // CHECK: encoding: [0xdc,0xc9]
467 // CHECK: fmul %st(1)
468 // CHECK: encoding: [0xd8,0xc9]
469 fmul %st, %st(1)
470 fmul %st(1), %st
472 // CHECK: fadd %st, %st(1)
473 // CHECK: encoding: [0xdc,0xc1]
474 // CHECK: fadd %st(1)
475 // CHECK: encoding: [0xd8,0xc1]
476 fadd %st, %st(1)
477 fadd %st(1), %st
480 // rdar://8416805
481 // CHECK: xorb %al, %al
482 // CHECK: encoding: [0x30,0xc0]
483 // CHECK: xorw %di, %di
484 // CHECK: encoding: [0x66,0x31,0xff]
485 // CHECK: xorl %esi, %esi
486 // CHECK: encoding: [0x31,0xf6]
487 // CHECK: xorq %rsi, %rsi
488 // CHECK: encoding: [0x48,0x31,0xf6]
489 clrb %al
490 clr %di
491 clr %esi
492 clr %rsi
494 // rdar://8456378
495 cltq // CHECK: cltq
496 cdqe // CHECK: cltq
497 cwde // CHECK: cwtl
498 cwtl // CHECK: cwtl
500 // rdar://8416805
501 cbw // CHECK: cbtw
502 cwd // CHECK: cwtd
503 cdq // CHECK: cltd
504 cqo // CHECK: cqto
506 // rdar://8456378 and PR7557 - fstsw
507 fstsw %ax
508 // CHECK: wait
509 // CHECK: fnstsw
510 fstsw (%rax)
511 // CHECK: wait
512 // CHECK: fnstsw (%rax)
514 // PR8259
515 fstcw (%rsp)
516 // CHECK: wait
517 // CHECK: fnstcw (%rsp)
519 // PR8259
520 fstcw (%rsp)
521 // CHECK: wait
522 // CHECK: fnstcw (%rsp)
524 // PR8258
525 finit
526 // CHECK: wait
527 // CHECK: fninit
529 fsave 32493
530 // CHECK: wait
531 // CHECK: fnsave 32493
534 // rdar://8456382 - cvtsd2si support.
535 cvtsd2si %xmm1, %rax
536 // CHECK: cvtsd2si %xmm1, %rax
537 // CHECK: encoding: [0xf2,0x48,0x0f,0x2d,0xc1]
538 cvtsd2si %xmm1, %eax
539 // CHECK: cvtsd2si %xmm1, %eax
540 // CHECK: encoding: [0xf2,0x0f,0x2d,0xc1]
542 cvtsd2siq %xmm0, %rax // CHECK: cvtsd2si %xmm0, %rax
543 cvtsd2sil %xmm0, %eax // CHECK: cvtsd2si %xmm0, %eax
544 cvtsd2si %xmm0, %rax // CHECK: cvtsd2si %xmm0, %rax
547 cvttpd2dq %xmm1, %xmm0 // CHECK: cvttpd2dq %xmm1, %xmm0
548 cvttpd2dq (%rax), %xmm0 // CHECK: cvttpd2dq (%rax), %xmm0
550 cvttps2dq %xmm1, %xmm0 // CHECK: cvttps2dq %xmm1, %xmm0
551 cvttps2dq (%rax), %xmm0 // CHECK: cvttps2dq (%rax), %xmm0
553 // rdar://8456376 - llvm-mc rejects 'roundss'
554 roundss $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0a,0xc0,0x0e]
555 roundps $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x08,0xc0,0x0e]
556 roundsd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0b,0xc0,0x0e]
557 roundpd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x09,0xc0,0x0e]
560 // rdar://8482675 - 32-bit mem operand support in 64-bit mode (0x67 prefix)
561 leal 8(%eax), %esi
562 // CHECK: leal 8(%eax), %esi
563 // CHECK: encoding: [0x67,0x8d,0x70,0x08]
564 leaq 8(%eax), %rsi
565 // CHECK: leaq 8(%eax), %rsi
566 // CHECK: encoding: [0x67,0x48,0x8d,0x70,0x08]
567 leaq 8(%rax), %rsi
568 // CHECK: leaq 8(%rax), %rsi
569 // CHECK: encoding: [0x48,0x8d,0x70,0x08]
572 cvttpd2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5
573 // CHECK: cvttpd2dq 3735928559(%ebx,%ecx,8), %xmm5
574 // CHECK: encoding: [0x67,0x66,0x0f,0xe6,0xac,0xcb,0xef,0xbe,0xad,0xde]
576 // rdar://8490728 - llvm-mc rejects 'movmskpd'
577 movmskpd %xmm6, %rax
578 // CHECK: movmskpd %xmm6, %eax
579 // CHECK: encoding: [0x66,0x0f,0x50,0xc6]
580 movmskpd %xmm6, %eax
581 // CHECK: movmskpd %xmm6, %eax
582 // CHECK: encoding: [0x66,0x0f,0x50,0xc6]
584 // rdar://8491845 - Gas supports commuted forms of non-commutable instructions.
585 fdivrp %st, %st(1) // CHECK: encoding: [0xde,0xf9]
586 fdivrp %st(1), %st // CHECK: encoding: [0xde,0xf9]
588 fsubrp %st, %st(1) // CHECK: encoding: [0xde,0xe9]
589 fsubrp %st(1), %st // CHECK: encoding: [0xde,0xe9]
591 // also PR8861
592 fdivp %st, %st(1) // CHECK: encoding: [0xde,0xf1]
593 fdivp %st(1), %st // CHECK: encoding: [0xde,0xf1]
596 movl foo(%rip), %eax
597 // CHECK: movl foo(%rip), %eax
598 // CHECK: encoding: [0x8b,0x05,A,A,A,A]
599 // CHECK: fixup A - offset: 2, value: foo-4, kind: reloc_riprel_4byte
601 movb $12, foo(%rip)
602 // CHECK: movb $12, foo(%rip)
603 // CHECK: encoding: [0xc6,0x05,A,A,A,A,0x0c]
604 // CHECK: fixup A - offset: 2, value: foo-5, kind: reloc_riprel_4byte
606 movw $12, foo(%rip)
607 // CHECK: movw $12, foo(%rip)
608 // CHECK: encoding: [0x66,0xc7,0x05,A,A,A,A,0x0c,0x00]
609 // CHECK: fixup A - offset: 3, value: foo-6, kind: reloc_riprel_4byte
611 movl $12, foo(%rip)
612 // CHECK: movl $12, foo(%rip)
613 // CHECK: encoding: [0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
614 // CHECK: fixup A - offset: 2, value: foo-8, kind: reloc_riprel_4byte
616 // rdar://37247000
617 movl $12, 1024(%rip)
618 // CHECK: movl $12, 1024(%rip)
619 // CHECK: encoding: [0xc7,0x05,0x00,0x04,0x00,0x00,0x0c,0x00,0x00,0x00]
621 movq $12, foo(%rip)
622 // CHECK: movq $12, foo(%rip)
623 // CHECK: encoding: [0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
624 // CHECK: fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte
626 movl foo(%eip), %eax
627 // CHECK: movl foo(%eip), %eax
628 // CHECK: encoding: [0x67,0x8b,0x05,A,A,A,A]
629 // CHECK: fixup A - offset: 3, value: foo-4, kind: reloc_riprel_4byte
631 movb $12, foo(%eip)
632 // CHECK: movb $12, foo(%eip)
633 // CHECK: encoding: [0x67,0xc6,0x05,A,A,A,A,0x0c]
634 // CHECK: fixup A - offset: 3, value: foo-5, kind: reloc_riprel_4byte
636 movw $12, foo(%eip)
637 // CHECK: movw $12, foo(%eip)
638 // CHECK: encoding: [0x67,0x66,0xc7,0x05,A,A,A,A,0x0c,0x00]
639 // CHECK: fixup A - offset: 4, value: foo-6, kind: reloc_riprel_4byte
641 movl $12, foo(%eip)
642 // CHECK: movl $12, foo(%eip)
643 // CHECK: encoding: [0x67,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
644 // CHECK: fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte
646 movq $12, foo(%eip)
647 // CHECK: movq $12, foo(%eip)
648 // CHECK: encoding: [0x67,0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
649 // CHECK: fixup A - offset: 4, value: foo-8, kind: reloc_riprel_4byte
651 // CHECK: addq $-424, %rax
652 // CHECK: encoding: [0x48,0x05,0x58,0xfe,0xff,0xff]
653 addq $-424, %rax
656 // CHECK: movq _foo@GOTPCREL(%rip), %rax
657 // CHECK: encoding: [0x48,0x8b,0x05,A,A,A,A]
658 // CHECK: fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
659 movq _foo@GOTPCREL(%rip), %rax
661 // CHECK: movq _foo@GOTPCREL(%rip), %r14
662 // CHECK: encoding: [0x4c,0x8b,0x35,A,A,A,A]
663 // CHECK: fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
664 movq _foo@GOTPCREL(%rip), %r14
666 // CHECK: movq _foo@GOTPCREL(%eip), %rax
667 // CHECK: encoding: [0x67,0x48,0x8b,0x05,A,A,A,A]
668 // CHECK: fixup A - offset: 4, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
669 movq _foo@GOTPCREL(%eip), %rax
671 // CHECK: movq _foo@GOTPCREL(%eip), %r14
672 // CHECK: encoding: [0x67,0x4c,0x8b,0x35,A,A,A,A]
673 // CHECK: fixup A - offset: 4, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
674 movq _foo@GOTPCREL(%eip), %r14
676 // CHECK: movq (%r13,%rax,8), %r13
677 // CHECK: encoding: [0x4d,0x8b,0x6c,0xc5,0x00]
678 movq 0x00(%r13,%rax,8),%r13
680 // CHECK: testq %rax, %rbx
681 // CHECK: encoding: [0x48,0x85,0xc3]
682 testq %rax, %rbx
684 // CHECK: cmpq %rbx, %r14
685 // CHECK: encoding: [0x49,0x39,0xde]
686 cmpq %rbx, %r14
688 // rdar://7947167
690 movsq
691 // CHECK: movsq
692 // CHECK: encoding: [0x48,0xa5]
694 movsl
695 // CHECK: movsl
696 // CHECK: encoding: [0xa5]
698 stosq
699 // CHECK: stosq
700 // CHECK: encoding: [0x48,0xab]
701 stosl
702 // CHECK: stosl
703 // CHECK: encoding: [0xab]
706 // Not moffset forms of moves, they are x86-32 only! rdar://7947184
707 movb 0, %al // CHECK: movb 0, %al # encoding: [0x8a,0x04,0x25,0x00,0x00,0x00,0x00]
708 movw 0, %ax // CHECK: movw 0, %ax # encoding: [0x66,0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
709 movl 0, %eax // CHECK: movl 0, %eax # encoding: [0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
711 // CHECK: pushfq # encoding: [0x9c]
712 pushf
713 // CHECK: pushfq # encoding: [0x9c]
714 pushfq
715 // CHECK: popfq # encoding: [0x9d]
716 popf
717 // CHECK: popfq # encoding: [0x9d]
718 popfq
720 // CHECK: movabsq $-281474976710654, %rax
721 // CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
722 movabsq $0xFFFF000000000002, %rax
724 // CHECK: movabsq $-281474976710654, %rax
725 // CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
726 movq $0xFFFF000000000002, %rax
728 // CHECK: movabsq 81985529216486895, %rax
729 // CHECK: encoding: [0x48,0xa1,0xef,0xcd,0xab,0x89,0x67,0x45,0x23,0x01]
730 movabsq 0x123456789abcdef, %rax
732 // CHECK: movq $-65536, %rax
733 // CHECK: encoding: [0x48,0xc7,0xc0,0x00,0x00,0xff,0xff]
734 movq $0xFFFFFFFFFFFF0000, %rax
736 // CHECK: movq $-256, %rax
737 // CHECK: encoding: [0x48,0xc7,0xc0,0x00,0xff,0xff,0xff]
738 movq $0xFFFFFFFFFFFFFF00, %rax
740 // CHECK: movq $10, %rax
741 // CHECK: encoding: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00]
742 movq $10, %rax
744 // CHECK: movq 81985529216486895, %rax
745 // CHECK: encoding: [0x48,0x8b,0x04,0x25,0xef,0xcd,0xab,0x89]
746 movq 0x123456789abcdef, %rax
748 // CHECK: movabsb -6066930261531658096, %al
749 // CHECK: encoding: [0xa0,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
750 movabsb 0xabcdef1234567890,%al
752 // CHECK: movabsw -6066930261531658096, %ax
753 // CHECK: encoding: [0x66,0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
754 movabsw 0xabcdef1234567890,%ax
756 // CHECK: movabsl -6066930261531658096, %eax
757 // CHECK: encoding: [0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
758 movabsl 0xabcdef1234567890,%eax
760 // CHECK: movabsq -6066930261531658096, %rax
761 // CHECK: encoding: [0x48,0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
762 movabsq 0xabcdef1234567890, %rax
764 // CHECK: movabsb %al, -6066930261531658096
765 // CHECK: encoding: [0xa2,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
766 movabsb %al,0xabcdef1234567890
768 // CHECK: movabsw %ax, -6066930261531658096
769 // CHECK: encoding: [0x66,0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
770 movabsw %ax,0xabcdef1234567890
772 // CHECK: movabsl %eax, -6066930261531658096
773 // CHECK: encoding: [0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
774 movabsl %eax,0xabcdef1234567890
776 // CHECK: movabsq %rax, -6066930261531658096
777 // CHECK: encoding: [0x48,0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
778 movabsq %rax,0xabcdef1234567890
780 // rdar://8014869
782 // CHECK: ret
783 // CHECK: encoding: [0xc3]
784 retq
786 // CHECK: sete %al
787 // CHECK: encoding: [0x0f,0x94,0xc0]
788 setz %al
790 // CHECK: setne %al
791 // CHECK: encoding: [0x0f,0x95,0xc0]
792 setnz %al
794 // CHECK: je 0
795 // CHECK: encoding: [0x74,A]
796 jz 0
798 // CHECK: jne
799 // CHECK: encoding: [0x75,A]
800 jnz 0
802 // PR9264
803 btl $1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
804 bt $1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
806 // rdar://8017515
807 btq $0x01,%rdx
808 // CHECK: btq $1, %rdx
809 // CHECK: encoding: [0x48,0x0f,0xba,0xe2,0x01]
811 //rdar://8017633
812 // CHECK: movzbl %al, %esi
813 // CHECK: encoding: [0x0f,0xb6,0xf0]
814 movzx %al, %esi
816 // CHECK: movzbq %al, %rsi
817 // CHECK: encoding: [0x48,0x0f,0xb6,0xf0]
818 movzx %al, %rsi
820 // CHECK: movsbw %al, %ax
821 // CHECK: encoding: [0x66,0x0f,0xbe,0xc0]
822 movsx %al, %ax
824 // CHECK: movsbl %al, %eax
825 // CHECK: encoding: [0x0f,0xbe,0xc0]
826 movsx %al, %eax
828 // CHECK: movswl %ax, %eax
829 // CHECK: encoding: [0x0f,0xbf,0xc0]
830 movsx %ax, %eax
832 // CHECK: movsbq %bl, %rax
833 // CHECK: encoding: [0x48,0x0f,0xbe,0xc3]
834 movsx %bl, %rax
836 // CHECK: movswq %cx, %rax
837 // CHECK: encoding: [0x48,0x0f,0xbf,0xc1]
838 movsx %cx, %rax
840 // CHECK: movslq %edi, %rax
841 // CHECK: encoding: [0x48,0x63,0xc7]
842 movsx %edi, %rax
844 // CHECK: movzbw %al, %ax
845 // CHECK: encoding: [0x66,0x0f,0xb6,0xc0]
846 movzx %al, %ax
848 // CHECK: movzbl %al, %eax
849 // CHECK: encoding: [0x0f,0xb6,0xc0]
850 movzx %al, %eax
852 // CHECK: movzwl %ax, %eax
853 // CHECK: encoding: [0x0f,0xb7,0xc0]
854 movzx %ax, %eax
856 // CHECK: movzbq %bl, %rax
857 // CHECK: encoding: [0x48,0x0f,0xb6,0xc3]
858 movzx %bl, %rax
860 // CHECK: movzwq %cx, %rax
861 // CHECK: encoding: [0x48,0x0f,0xb7,0xc1]
862 movzx %cx, %rax
864 // CHECK: movsbw (%rax), %ax
865 // CHECK: encoding: [0x66,0x0f,0xbe,0x00]
866 movsx (%rax), %ax
868 // CHECK: movzbw (%rax), %ax
869 // CHECK: encoding: [0x66,0x0f,0xb6,0x00]
870 movzx (%rax), %ax
873 // rdar://7873482
874 // CHECK: [0x65,0x8b,0x04,0x25,0x7c,0x00,0x00,0x00]
875 movl %gs:124, %eax
877 // CHECK: jmpq *8(%rax)
878 // CHECK: encoding: [0xff,0x60,0x08]
879 jmp *8(%rax)
881 // CHECK: btq $61, -216(%rbp)
882 // CHECK: encoding: [0x48,0x0f,0xba,0xa5,0x28,0xff,0xff,0xff,0x3d]
883 btq $61, -216(%rbp)
886 // rdar://8061602
888 jecxz L1
889 // CHECK: jecxz L1
890 // CHECK: encoding: [0x67,0xe3,A]
891 jrcxz L1
892 // CHECK: jrcxz L1
893 // CHECK: encoding: [0xe3,A]
895 // PR8061
896 xchgl 368(%rax),%ecx
897 // CHECK: xchgl %ecx, 368(%rax)
898 xchgl %ecx, 368(%rax)
899 // CHECK: xchgl %ecx, 368(%rax)
901 // rdar://8407548
902 xchg 0xdeadbeef(%rbx,%rcx,8),%bl
903 // CHECK: xchgb %bl, 3735928559(%rbx,%rcx,8)
907 // PR7254
908 lock incl 1(%rsp)
909 // CHECK: lock
910 // CHECK: incl 1(%rsp)
912 // rdar://8741045
913 lock/incl 1(%rsp)
914 // CHECK: lock
915 // CHECK: incl 1(%rsp)
918 lock addq %rsi, (%rdi)
919 // CHECK: lock
920 // CHECK: addq %rsi, (%rdi)
921 // CHECK: encoding: [0xf0,0x48,0x01,0x37]
923 lock subq %rsi, (%rdi)
924 // CHECK: lock
925 // CHECK: subq %rsi, (%rdi)
926 // CHECK: encoding: [0xf0,0x48,0x29,0x37]
928 lock andq %rsi, (%rdi)
929 // CHECK: lock
930 // CHECK: andq %rsi, (%rdi)
931 // CHECK: encoding: [0xf0,0x48,0x21,0x37]
933 lock orq %rsi, (%rdi)
934 // CHECK: lock
935 // CHECK: orq %rsi, (%rdi)
936 // CHECK: encoding: [0xf0,0x48,0x09,0x37]
938 lock xorq %rsi, (%rdi)
939 // CHECK: lock
940 // CHECK: xorq %rsi, (%rdi)
941 // CHECK: encoding: [0xf0,0x48,0x31,0x37]
943 xacquire lock addq %rax, (%rax)
944 // CHECK: xacquire
945 // CHECK: encoding: [0xf2]
946 // CHECK: lock
947 // CHECK: addq %rax, (%rax)
948 // CHECK: encoding: [0xf0,0x48,0x01,0x00]
950 xrelease lock addq %rax, (%rax)
951 // CHECK: xrelease
952 // CHECK: encoding: [0xf3]
953 // CHECK: lock
954 // CHECK: addq %rax, (%rax)
955 // CHECK: encoding: [0xf0,0x48,0x01,0x00]
957 // rdar://8033482
958 rep movsl
959 // CHECK: rep
960 // CHECK: movsl
961 // CHECK: encoding: [0xf3,0xa5]
964 // rdar://8403974
965 iret
966 // CHECK: iretl
967 // CHECK: encoding: [0xcf]
968 iretw
969 // CHECK: iretw
970 // CHECK: encoding: [0x66,0xcf]
971 iretl
972 // CHECK: iretl
973 // CHECK: encoding: [0xcf]
974 iretq
975 // CHECK: iretq
976 // CHECK: encoding: [0x48,0xcf]
978 // rdar://8416805
979 // CHECK: retw $31438
980 // CHECK: encoding: [0x66,0xc2,0xce,0x7a]
981 retw $0x7ace
983 // CHECK: lretw $31438
984 // CHECK: encoding: [0x66,0xca,0xce,0x7a]
985 lretw $0x7ace
987 // PR8592
988 lretq // CHECK: lretq # encoding: [0x48,0xcb]
989 lretl // CHECK: lretl # encoding: [0xcb]
990 lret // CHECK: lretl # encoding: [0xcb]
991 lretw // CHECK: lretw # encoding: [0x66,0xcb]
993 // rdar://8403907
994 sysret
995 // CHECK: sysretl
996 // CHECK: encoding: [0x0f,0x07]
997 sysretl
998 // CHECK: sysretl
999 // CHECK: encoding: [0x0f,0x07]
1000 sysretq
1001 // CHECK: sysretq
1002 // CHECK: encoding: [0x48,0x0f,0x07]
1004 // rdar://8407242
1005 push %fs
1006 // CHECK: pushq %fs
1007 // CHECK: encoding: [0x0f,0xa0]
1008 push %gs
1009 // CHECK: pushq %gs
1010 // CHECK: encoding: [0x0f,0xa8]
1012 pushw %fs
1013 // CHECK: pushw %fs
1014 // CHECK: encoding: [0x66,0x0f,0xa0]
1015 pushw %gs
1016 // CHECK: pushw %gs
1017 // CHECK: encoding: [0x66,0x0f,0xa8]
1020 pop %fs
1021 // CHECK: popq %fs
1022 // CHECK: encoding: [0x0f,0xa1]
1023 pop %gs
1024 // CHECK: popq %gs
1025 // CHECK: encoding: [0x0f,0xa9]
1027 popw %fs
1028 // CHECK: popw %fs
1029 // CHECK: encoding: [0x66,0x0f,0xa1]
1030 popw %gs
1031 // CHECK: popw %gs
1032 // CHECK: encoding: [0x66,0x0f,0xa9]
1034 // rdar://8438816
1035 fildq -8(%rsp)
1036 fildll -8(%rsp)
1037 // CHECK: fildll -8(%rsp)
1038 // CHECK: encoding: [0xdf,0x6c,0x24,0xf8]
1039 // CHECK: fildll -8(%rsp)
1040 // CHECK: encoding: [0xdf,0x6c,0x24,0xf8]
1042 // CHECK: callq a
1043 callq a
1045 // CHECK: leaq -40(%rbp), %r15
1046 leaq -40(%rbp), %r15
1050 // rdar://8013734 - Alias dr6=db6
1051 mov %dr6, %rax
1052 mov %db6, %rax
1053 // CHECK: movq %dr6, %rax
1054 // CHECK: movq %dr6, %rax
1057 // INC/DEC encodings.
1058 incb %al // CHECK: incb %al # encoding: [0xfe,0xc0]
1059 incw %ax // CHECK: incw %ax # encoding: [0x66,0xff,0xc0]
1060 incl %eax // CHECK: incl %eax # encoding: [0xff,0xc0]
1061 decb %al // CHECK: decb %al # encoding: [0xfe,0xc8]
1062 decw %ax // CHECK: decw %ax # encoding: [0x66,0xff,0xc8]
1063 decl %eax // CHECK: decl %eax # encoding: [0xff,0xc8]
1065 // rdar://8416805
1066 // CHECK: lgdtq 4(%rax)
1067 // CHECK: encoding: [0x0f,0x01,0x50,0x04]
1068 lgdt 4(%rax)
1070 // CHECK: lgdtq 4(%rax)
1071 // CHECK: encoding: [0x0f,0x01,0x50,0x04]
1072 lgdtq 4(%rax)
1074 // CHECK: lidtq 4(%rax)
1075 // CHECK: encoding: [0x0f,0x01,0x58,0x04]
1076 lidt 4(%rax)
1078 // CHECK: lidtq 4(%rax)
1079 // CHECK: encoding: [0x0f,0x01,0x58,0x04]
1080 lidtq 4(%rax)
1082 // CHECK: sgdtq 4(%rax)
1083 // CHECK: encoding: [0x0f,0x01,0x40,0x04]
1084 sgdt 4(%rax)
1086 // CHECK: sgdtq 4(%rax)
1087 // CHECK: encoding: [0x0f,0x01,0x40,0x04]
1088 sgdtq 4(%rax)
1090 // CHECK: sidtq 4(%rax)
1091 // CHECK: encoding: [0x0f,0x01,0x48,0x04]
1092 sidt 4(%rax)
1094 // CHECK: sidtq 4(%rax)
1095 // CHECK: encoding: [0x0f,0x01,0x48,0x04]
1096 sidtq 4(%rax)
1099 // rdar://8208615
1100 mov (%rsi), %gs // CHECK: movw (%rsi), %gs # encoding: [0x8e,0x2e]
1101 mov %gs, (%rsi) // CHECK: movw %gs, (%rsi) # encoding: [0x8c,0x2e]
1104 // rdar://8431864
1105 //CHECK: divb %bl
1106 //CHECK: divw %bx
1107 //CHECK: divl %ecx
1108 //CHECK: divl 3735928559(%ebx,%ecx,8)
1109 //CHECK: divl 69
1110 //CHECK: divl 32493
1111 //CHECK: divl 3133065982
1112 //CHECK: divl 305419896
1113 //CHECK: idivb %bl
1114 //CHECK: idivw %bx
1115 //CHECK: idivl %ecx
1116 //CHECK: idivl 3735928559(%ebx,%ecx,8)
1117 //CHECK: idivl 69
1118 //CHECK: idivl 32493
1119 //CHECK: idivl 3133065982
1120 //CHECK: idivl 305419896
1121 div %bl,%al
1122 div %bx,%ax
1123 div %ecx,%eax
1124 div 0xdeadbeef(%ebx,%ecx,8),%eax
1125 div 0x45,%eax
1126 div 0x7eed,%eax
1127 div 0xbabecafe,%eax
1128 div 0x12345678,%eax
1129 idiv %bl,%al
1130 idiv %bx,%ax
1131 idiv %ecx,%eax
1132 idiv 0xdeadbeef(%ebx,%ecx,8),%eax
1133 idiv 0x45,%eax
1134 idiv 0x7eed,%eax
1135 idiv 0xbabecafe,%eax
1136 idiv 0x12345678,%eax
1138 // PR8524
1139 movd %rax, %mm5 // CHECK: movq %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8]
1140 movd %mm5, %rbx // CHECK: movq %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb]
1141 movq %rax, %mm5 // CHECK: movq %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8]
1142 movq %mm5, %rbx // CHECK: movq %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb]
1144 rex64 // CHECK: rex64 # encoding: [0x48]
1145 data16 // CHECK: data16 # encoding: [0x66]
1147 // CHECK: data16
1148 // CHECK: encoding: [0x66]
1149 // CHECK: lgdtq 4(%rax)
1150 // CHECK: encoding: [0x0f,0x01,0x50,0x04]
1151 data16 lgdt 4(%rax)
1153 // PR8855
1154 movq 18446744073709551615,%rbx // CHECK: movq -1, %rbx
1156 // PR8946
1157 movdqu %xmm0, %xmm1 // CHECK: movdqu %xmm0, %xmm1 # encoding: [0xf3,0x0f,0x6f,0xc8]
1159 // PR8935
1160 xgetbv // CHECK: xgetbv # encoding: [0x0f,0x01,0xd0]
1161 xsetbv // CHECK: xsetbv # encoding: [0x0f,0x01,0xd1]
1163 // CHECK: loope 0
1164 // CHECK: encoding: [0xe1,A]
1165 loopz 0
1167 // CHECK: loopne 0
1168 // CHECK: encoding: [0xe0,A]
1169 loopnz 0
1171 // CHECK: outsb (%rsi), %dx # encoding: [0x6e]
1172 // CHECK: outsb
1173 // CHECK: outsb
1174 outsb
1175 outsb %ds:(%rsi), %dx
1176 outsb (%rsi), %dx
1178 // CHECK: outsw (%rsi), %dx # encoding: [0x66,0x6f]
1179 // CHECK: outsw
1180 // CHECK: outsw
1181 outsw
1182 outsw %ds:(%rsi), %dx
1183 outsw (%rsi), %dx
1185 // CHECK: outsl (%rsi), %dx # encoding: [0x6f]
1186 // CHECK: outsl
1187 outsl
1188 outsl %ds:(%rsi), %dx
1189 outsl (%rsi), %dx
1191 // CHECK: insb %dx, %es:(%rdi) # encoding: [0x6c]
1192 // CHECK: insb
1193 insb
1194 insb %dx, %es:(%rdi)
1196 // CHECK: insw %dx, %es:(%rdi) # encoding: [0x66,0x6d]
1197 // CHECK: insw
1198 insw
1199 insw %dx, %es:(%rdi)
1201 // CHECK: insl %dx, %es:(%rdi) # encoding: [0x6d]
1202 // CHECK: insl
1203 insl
1204 insl %dx, %es:(%rdi)
1206 // CHECK: movsb (%rsi), %es:(%rdi) # encoding: [0xa4]
1207 // CHECK: movsb
1208 // CHECK: movsb
1209 movsb
1210 movsb %ds:(%rsi), %es:(%rdi)
1211 movsb (%rsi), %es:(%rdi)
1213 // CHECK: movsw (%rsi), %es:(%rdi) # encoding: [0x66,0xa5]
1214 // CHECK: movsw
1215 // CHECK: movsw
1216 movsw
1217 movsw %ds:(%rsi), %es:(%rdi)
1218 movsw (%rsi), %es:(%rdi)
1220 // CHECK: movsl (%rsi), %es:(%rdi) # encoding: [0xa5]
1221 // CHECK: movsl
1222 // CHECK: movsl
1223 movsl
1224 movsl %ds:(%rsi), %es:(%rdi)
1225 movsl (%rsi), %es:(%rdi)
1226 // rdar://10883092
1227 // CHECK: movsl
1228 movsl (%rsi), (%rdi)
1230 // CHECK: movsq (%rsi), %es:(%rdi) # encoding: [0x48,0xa5]
1231 // CHECK: movsq
1232 // CHECK: movsq
1233 movsq
1234 movsq %ds:(%rsi), %es:(%rdi)
1235 movsq (%rsi), %es:(%rdi)
1237 // CHECK: lodsb (%rsi), %al # encoding: [0xac]
1238 // CHECK: lodsb
1239 // CHECK: lodsb
1240 // CHECK: lodsb
1241 // CHECK: lodsb
1242 lodsb
1243 lodsb %ds:(%rsi), %al
1244 lodsb (%rsi), %al
1245 lods %ds:(%rsi), %al
1246 lods (%rsi), %al
1248 // CHECK: lodsw (%rsi), %ax # encoding: [0x66,0xad]
1249 // CHECK: lodsw
1250 // CHECK: lodsw
1251 // CHECK: lodsw
1252 // CHECK: lodsw
1253 lodsw
1254 lodsw %ds:(%rsi), %ax
1255 lodsw (%rsi), %ax
1256 lods %ds:(%rsi), %ax
1257 lods (%rsi), %ax
1259 // CHECK: lodsl (%rsi), %eax # encoding: [0xad]
1260 // CHECK: lodsl
1261 // CHECK: lodsl
1262 // CHECK: lodsl
1263 // CHECK: lodsl
1264 lodsl
1265 lodsl %ds:(%rsi), %eax
1266 lodsl (%rsi), %eax
1267 lods %ds:(%rsi), %eax
1268 lods (%rsi), %eax
1270 // CHECK: lodsq (%rsi), %rax # encoding: [0x48,0xad]
1271 // CHECK: lodsq
1272 // CHECK: lodsq
1273 // CHECK: lodsq
1274 // CHECK: lodsq
1275 lodsq
1276 lodsq %ds:(%rsi), %rax
1277 lodsq (%rsi), %rax
1278 lods %ds:(%rsi), %rax
1279 lods (%rsi), %rax
1281 // CHECK: stosb %al, %es:(%rdi) # encoding: [0xaa]
1282 // CHECK: stosb
1283 // CHECK: stosb
1284 stosb
1285 stosb %al, %es:(%rdi)
1286 stos %al, %es:(%rdi)
1288 // CHECK: stosw %ax, %es:(%rdi) # encoding: [0x66,0xab]
1289 // CHECK: stosw
1290 // CHECK: stosw
1291 stosw
1292 stosw %ax, %es:(%rdi)
1293 stos %ax, %es:(%rdi)
1295 // CHECK: stosl %eax, %es:(%rdi) # encoding: [0xab]
1296 // CHECK: stosl
1297 // CHECK: stosl
1298 stosl
1299 stosl %eax, %es:(%rdi)
1300 stos %eax, %es:(%rdi)
1302 // CHECK: stosq %rax, %es:(%rdi) # encoding: [0x48,0xab]
1303 // CHECK: stosq
1304 // CHECK: stosq
1305 stosq
1306 stosq %rax, %es:(%rdi)
1307 stos %rax, %es:(%rdi)
1309 // CHECK: strw
1310 // CHECK: encoding: [0x66,0x0f,0x00,0xc8]
1311 str %ax
1313 // CHECK: strl
1314 // CHECK: encoding: [0x0f,0x00,0xc8]
1315 str %eax
1317 // CHECK: strw
1318 // CHECK: encoding: [0x66,0x0f,0x00,0xc8]
1319 str %ax
1321 // CHECK: strq
1322 // CHECK: encoding: [0x48,0x0f,0x00,0xc8]
1323 str %rax
1325 // CHECK: movq %rdi, %xmm0
1326 // CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7]
1327 movq %rdi,%xmm0
1329 // CHECK: movq %xmm0, %rax
1330 // CHECK: encoding: [0x66,0x48,0x0f,0x7e,0xc0]
1331 movq %xmm0, %rax
1333 // CHECK: movntil %eax, (%rdi)
1334 // CHECK: encoding: [0x0f,0xc3,0x07]
1335 // CHECK: movntil
1336 movntil %eax, (%rdi)
1337 movnti %eax, (%rdi)
1339 // CHECK: movntiq %rax, (%rdi)
1340 // CHECK: encoding: [0x48,0x0f,0xc3,0x07]
1341 // CHECK: movntiq
1342 movntiq %rax, (%rdi)
1343 movnti %rax, (%rdi)
1345 // CHECK: pclmulqdq $17, %xmm0, %xmm1
1346 // CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x11]
1347 pclmulhqhqdq %xmm0, %xmm1
1349 // CHECK: pclmulqdq $1, %xmm0, %xmm1
1350 // CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x01]
1351 pclmulqdq $1, %xmm0, %xmm1
1353 // CHECK: pclmulqdq $16, (%rdi), %xmm1
1354 // CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x10]
1355 pclmullqhqdq (%rdi), %xmm1
1357 // CHECK: pclmulqdq $0, (%rdi), %xmm1
1358 // CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x00]
1359 pclmulqdq $0, (%rdi), %xmm1
1361 // PR10345
1362 // CHECK: nop
1363 // CHECK: encoding: [0x90]
1364 xchgq %rax, %rax
1366 // CHECK: xchgl %eax, %eax
1367 // CHECK: encoding: [0x87,0xc0]
1368 xchgl %eax, %eax
1370 // CHECK: xchgw %ax, %ax
1371 // CHECK: encoding: [0x66,0x90]
1372 xchgw %ax, %ax
1374 // CHECK: xchgl %ecx, %eax
1375 // CHECK: encoding: [0x91]
1376 xchgl %ecx, %eax
1378 // CHECK: xchgl %ecx, %eax
1379 // CHECK: encoding: [0x91]
1380 xchgl %eax, %ecx
1382 // CHECK: sysexit
1383 // CHECK: encoding: [0x0f,0x35]
1384 sysexit
1386 // CHECK: sysexitl
1387 // CHECK: encoding: [0x0f,0x35]
1388 sysexitl
1390 // CHECK: sysexitq
1391 // CHECK: encoding: [0x48,0x0f,0x35]
1392 sysexitq
1394 // CHECK: clac
1395 // CHECK: encoding: [0x0f,0x01,0xca]
1396 clac
1398 // CHECK: stac
1399 // CHECK: encoding: [0x0f,0x01,0xcb]
1400 stac
1402 // CHECK: faddp %st, %st(1)
1403 // CHECK: fmulp %st, %st(1)
1404 // CHECK: fsubp %st, %st(1)
1405 // CHECK: fsubrp %st, %st(1)
1406 // CHECK: fdivp %st, %st(1)
1407 // CHECK: fdivrp %st, %st(1)
1408 faddp %st, %st(1)
1409 fmulp %st, %st(1)
1410 fsubp %st, %st(1)
1411 fsubrp %st, %st(1)
1412 fdivp %st, %st(1)
1413 fdivrp %st, %st(1)
1415 // CHECK: faddp %st, %st(1)
1416 // CHECK: fmulp %st, %st(1)
1417 // CHECK: fsubp %st, %st(1)
1418 // CHECK: fsubrp %st, %st(1)
1419 // CHECK: fdivp %st, %st(1)
1420 // CHECK: fdivrp %st, %st(1)
1421 faddp %st(1), %st
1422 fmulp %st(1), %st
1423 fsubp %st(1), %st
1424 fsubrp %st(1), %st
1425 fdivp %st(1), %st
1426 fdivrp %st(1), %st
1428 // CHECK: faddp %st, %st(1)
1429 // CHECK: fmulp %st, %st(1)
1430 // CHECK: fsubp %st, %st(1)
1431 // CHECK: fsubrp %st, %st(1)
1432 // CHECK: fdivp %st, %st(1)
1433 // CHECK: fdivrp %st, %st(1)
1434 faddp %st(1)
1435 fmulp %st(1)
1436 fsubp %st(1)
1437 fsubrp %st(1)
1438 fdivp %st(1)
1439 fdivrp %st(1)
1441 // CHECK: faddp %st, %st(1)
1442 // CHECK: fmulp %st, %st(1)
1443 // CHECK: fsubp %st, %st(1)
1444 // CHECK: fsubrp %st, %st(1)
1445 // CHECK: fdivp %st, %st(1)
1446 // CHECK: fdivrp %st, %st(1)
1447 faddp
1448 fmulp
1449 fsubp
1450 fsubrp
1451 fdivp
1452 fdivrp
1454 // CHECK: fadd %st(1)
1455 // CHECK: fmul %st(1)
1456 // CHECK: fsub %st(1)
1457 // CHECK: fsubr %st(1)
1458 // CHECK: fdiv %st(1)
1459 // CHECK: fdivr %st(1)
1460 fadd %st(1), %st
1461 fmul %st(1), %st
1462 fsub %st(1), %st
1463 fsubr %st(1), %st
1464 fdiv %st(1), %st
1465 fdivr %st(1), %st
1467 // CHECK: fadd %st, %st(1)
1468 // CHECK: fmul %st, %st(1)
1469 // CHECK: fsub %st, %st(1)
1470 // CHECK: fsubr %st, %st(1)
1471 // CHECK: fdiv %st, %st(1)
1472 // CHECK: fdivr %st, %st(1)
1473 fadd %st, %st(1)
1474 fmul %st, %st(1)
1475 fsub %st, %st(1)
1476 fsubr %st, %st(1)
1477 fdiv %st, %st(1)
1478 fdivr %st, %st(1)
1480 // CHECK: fadd %st(1)
1481 // CHECK: fmul %st(1)
1482 // CHECK: fsub %st(1)
1483 // CHECK: fsubr %st(1)
1484 // CHECK: fdiv %st(1)
1485 // CHECK: fdivr %st(1)
1486 fadd %st(1)
1487 fmul %st(1)
1488 fsub %st(1)
1489 fsubr %st(1)
1490 fdiv %st(1)
1491 fdivr %st(1)
1493 // CHECK: movd %xmm0, %eax
1494 // CHECK: movq %xmm0, %rax
1495 // CHECK: movq %xmm0, %rax
1496 // CHECK: vmovd %xmm0, %eax
1497 // CHECK: vmovq %xmm0, %rax
1498 // CHECK: vmovq %xmm0, %rax
1499 movd %xmm0, %eax
1500 movq %xmm0, %rax
1501 movq %xmm0, %rax
1502 vmovd %xmm0, %eax
1503 vmovd %xmm0, %rax
1504 vmovq %xmm0, %rax
1506 // CHECK: seto 3735928559(%r10,%r9,8)
1507 // CHECK: encoding: [0x43,0x0f,0x90,0x84,0xca,0xef,0xbe,0xad,0xde]
1508 seto 0xdeadbeef(%r10,%r9,8)
1510 // CHECK: monitorx
1511 // CHECK: encoding: [0x0f,0x01,0xfa]
1512 monitorx
1514 // CHECK: monitorx
1515 // CHECK: encoding: [0x0f,0x01,0xfa]
1516 monitorx %rax, %rcx, %rdx
1518 // CHECK: mwaitx
1519 // CHECK: encoding: [0x0f,0x01,0xfb]
1520 mwaitx
1522 // CHECK: mwaitx
1523 // CHECK: encoding: [0x0f,0x01,0xfb]
1524 mwaitx %rax, %rcx, %rbx
1526 // CHECK: clzero
1527 // CHECK: encoding: [0x0f,0x01,0xfc]
1528 clzero
1530 // CHECK: clzero
1531 // CHECK: encoding: [0x0f,0x01,0xfc]
1532 clzero %rax
1534 // CHECK: movl %r15d, (%r15,%r15)
1535 // CHECK: encoding: [0x47,0x89,0x3c,0x3f]
1536 movl %r15d, (%r15,%r15)
1538 // CHECK: nopq 3735928559(%rbx,%rcx,8)
1539 // CHECK: encoding: [0x48,0x0f,0x1f,0x84,0xcb,0xef,0xbe,0xad,0xde]
1540 nopq 0xdeadbeef(%rbx,%rcx,8)
1542 // CHECK: nopq %rax
1543 // CHECK: encoding: [0x48,0x0f,0x1f,0xc0]
1544 nopq %rax
1546 // CHECK: rdpid %rax
1547 // CHECK: encoding: [0xf3,0x0f,0xc7,0xf8]
1548 rdpid %rax
1550 // CHECK: ptwritel 3735928559(%rbx,%rcx,8)
1551 // CHECK: encoding: [0xf3,0x0f,0xae,0xa4,0xcb,0xef,0xbe,0xad,0xde]
1552 ptwritel 0xdeadbeef(%rbx,%rcx,8)
1554 // CHECK: ptwritel %eax
1555 // CHECK: encoding: [0xf3,0x0f,0xae,0xe0]
1556 ptwritel %eax
1558 // CHECK: ptwriteq 3735928559(%rbx,%rcx,8)
1559 // CHECK: encoding: [0xf3,0x48,0x0f,0xae,0xa4,0xcb,0xef,0xbe,0xad,0xde]
1560 ptwriteq 0xdeadbeef(%rbx,%rcx,8)
1562 // CHECK: ptwriteq %rax
1563 // CHECK: encoding: [0xf3,0x48,0x0f,0xae,0xe0]
1564 ptwriteq %rax
1566 // CHECK: wbnoinvd
1567 // CHECK: encoding: [0xf3,0x0f,0x09]
1568 wbnoinvd
1570 // CHECK: cldemote 4(%rax)
1571 // CHECK: encoding: [0x0f,0x1c,0x40,0x04]
1572 cldemote 4(%rax)
1574 // CHECK: cldemote 3735928559(%rbx,%rcx,8)
1575 // CHECK: encoding: [0x0f,0x1c,0x84,0xcb,0xef,0xbe,0xad,0xde]
1576 cldemote 0xdeadbeef(%rbx,%rcx,8)
1578 // CHECK: umonitor %r13
1579 // CHECK: encoding: [0xf3,0x41,0x0f,0xae,0xf5]
1580 umonitor %r13
1582 // CHECK: umonitor %rax
1583 // CHECK: encoding: [0xf3,0x0f,0xae,0xf0]
1584 umonitor %rax
1586 // CHECK: umonitor %eax
1587 // CHECK: encoding: [0x67,0xf3,0x0f,0xae,0xf0]
1588 umonitor %eax
1590 // CHECK: umwait %r15
1591 // CHECK: encoding: [0xf2,0x41,0x0f,0xae,0xf7]
1592 umwait %r15
1594 // CHECK: umwait %ebx
1595 // CHECK: encoding: [0xf2,0x0f,0xae,0xf3]
1596 umwait %ebx
1598 // CHECK: tpause %r15
1599 // CHECK: encoding: [0x66,0x41,0x0f,0xae,0xf7]
1600 tpause %r15
1602 // CHECK: tpause %ebx
1603 // CHECK: encoding: [0x66,0x0f,0xae,0xf3]
1604 tpause %ebx
1606 // CHECK: movdiri %r15, 485498096
1607 // CHECK: # encoding: [0x4c,0x0f,0x38,0xf9,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]
1608 movdiri %r15, 485498096
1610 // CHECK: movdiri %r15, (%rdx)
1611 // CHECK: # encoding: [0x4c,0x0f,0x38,0xf9,0x3a]
1612 movdiri %r15, (%rdx)
1614 // CHECK: movdiri %r15, 64(%rdx)
1615 // CHECK: # encoding: [0x4c,0x0f,0x38,0xf9,0x7a,0x40]
1616 movdiri %r15, 64(%rdx)
1618 // CHECK: movdir64b 485498096, %rax
1619 // CHECK: # encoding: [0x66,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1620 movdir64b 485498096, %rax
1622 // CHECK: movdir64b 485498096, %eax
1623 // CHECK: # encoding: [0x67,0x66,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1624 movdir64b 485498096, %eax
1626 // CHECK: movdir64b (%rdx), %r15
1627 // CHECK: # encoding: [0x66,0x44,0x0f,0x38,0xf8,0x3a]
1628 movdir64b (%rdx), %r15
1630 // CHECK: pconfig
1631 // CHECK: # encoding: [0x0f,0x01,0xc5]
1632 pconfig
1634 // CHECK: encls
1635 // CHECK: encoding: [0x0f,0x01,0xcf]
1636 encls
1638 // CHECK: enclu
1639 // CHECK: encoding: [0x0f,0x01,0xd7]
1640 enclu
1642 // CHECK: enclv
1643 // CHECK: encoding: [0x0f,0x01,0xc0]
1644 enclv
1646 // CHECK: movq %rax, %rbx
1647 // CHECK: encoding: [0x48,0x8b,0xd8]
1648 movq.s %rax, %rbx
1650 // CHECK: movq %rax, %rbx
1651 // CHECK: encoding: [0x48,0x8b,0xd8]
1652 mov.s %rax, %rbx
1654 // CHECK: movl %eax, %ebx
1655 // CHECK: encoding: [0x8b,0xd8]
1656 movl.s %eax, %ebx
1658 // CHECK: movl %eax, %ebx
1659 // CHECK: encoding: [0x8b,0xd8]
1660 mov.s %eax, %ebx
1662 // CHECK: movw %ax, %bx
1663 // CHECK: encoding: [0x66,0x8b,0xd8]
1664 movw.s %ax, %bx
1666 // CHECK: movw %ax, %bx
1667 // CHECK: encoding: [0x66,0x8b,0xd8]
1668 mov.s %ax, %bx
1670 // CHECK: movb %al, %bl
1671 // CHECK: encoding: [0x8a,0xd8]
1672 movb.s %al, %bl
1674 // CHECK: movb %al, %bl
1675 // CHECK: encoding: [0x8a,0xd8]
1676 mov.s %al, %bl
1678 // CHECK: movq %mm0, %mm1
1679 // CHECK: encoding: [0x0f,0x7f,0xc1]
1680 movq.s %mm0, %mm1
1682 // CHECK: movq %xmm0, %xmm1
1683 // CHECK: encoding: [0x66,0x0f,0xd6,0xc1]
1684 movq.s %xmm0, %xmm1
1686 // CHECK: movdqa %xmm0, %xmm1
1687 // CHECK: encoding: [0x66,0x0f,0x7f,0xc1]
1688 movdqa.s %xmm0, %xmm1
1690 // CHECK: movdqu %xmm0, %xmm1
1691 // CHECK: encoding: [0xf3,0x0f,0x7f,0xc1]
1692 movdqu.s %xmm0, %xmm1
1694 // CHECK: movaps %xmm0, %xmm1
1695 // CHECK: encoding: [0x0f,0x29,0xc1]
1696 movaps.s %xmm0, %xmm1
1698 // CHECK: movups %xmm0, %xmm1
1699 // CHECK: encoding: [0x0f,0x11,0xc1]
1700 movups.s %xmm0, %xmm1
1702 // CHECK: movapd %xmm0, %xmm1
1703 // CHECK: encoding: [0x66,0x0f,0x29,0xc1]
1704 movapd.s %xmm0, %xmm1
1706 // CHECK: movupd %xmm0, %xmm1
1707 // CHECK: encoding: [0x66,0x0f,0x11,0xc1]
1708 movupd.s %xmm0, %xmm1
1710 // CHECK: vmovq %xmm0, %xmm8
1711 // CHECK: encoding: [0xc4,0xc1,0x79,0xd6,0xc0]
1712 vmovq.s %xmm0, %xmm8
1714 // CHECK: vmovq %xmm8, %xmm0
1715 // CHECK: encoding: [0xc5,0x79,0xd6,0xc0]
1716 vmovq.s %xmm8, %xmm0
1718 // CHECK: vmovdqa %xmm0, %xmm8
1719 // CHECK: encoding: [0xc4,0xc1,0x79,0x7f,0xc0]
1720 vmovdqa.s %xmm0, %xmm8
1722 // CHECK: vmovdqa %xmm8, %xmm0
1723 // CHECK: encoding: [0xc5,0x79,0x7f,0xc0]
1724 vmovdqa.s %xmm8, %xmm0
1726 // CHECK: vmovdqu %xmm0, %xmm8
1727 // CHECK: encoding: [0xc4,0xc1,0x7a,0x7f,0xc0]
1728 vmovdqu.s %xmm0, %xmm8
1730 // CHECK: vmovdqu %xmm8, %xmm0
1731 // CHECK: encoding: [0xc5,0x7a,0x7f,0xc0]
1732 vmovdqu.s %xmm8, %xmm0
1734 // CHECK: vmovaps %xmm0, %xmm8
1735 // CHECK: encoding: [0xc4,0xc1,0x78,0x29,0xc0]
1736 vmovaps.s %xmm0, %xmm8
1738 // CHECK: vmovaps %xmm8, %xmm0
1739 // CHECK: encoding: [0xc5,0x78,0x29,0xc0]
1740 vmovaps.s %xmm8, %xmm0
1742 // CHECK: vmovups %xmm0, %xmm8
1743 // CHECK: encoding: [0xc4,0xc1,0x78,0x11,0xc0]
1744 vmovups.s %xmm0, %xmm8
1746 // CHECK: vmovups %xmm8, %xmm0
1747 // CHECK: encoding: [0xc5,0x78,0x11,0xc0]
1748 vmovups.s %xmm8, %xmm0
1750 // CHECK: vmovapd %xmm0, %xmm8
1751 // CHECK: encoding: [0xc4,0xc1,0x79,0x29,0xc0]
1752 vmovapd.s %xmm0, %xmm8
1754 // CHECK: vmovapd %xmm8, %xmm0
1755 // CHECK: encoding: [0xc5,0x79,0x29,0xc0]
1756 vmovapd.s %xmm8, %xmm0
1758 // CHECK: vmovupd %xmm0, %xmm8
1759 // CHECK: encoding: [0xc4,0xc1,0x79,0x11,0xc0]
1760 vmovupd.s %xmm0, %xmm8
1762 // CHECK: vmovupd %xmm8, %xmm0
1763 // CHECK: encoding: [0xc5,0x79,0x11,0xc0]
1764 vmovupd.s %xmm8, %xmm0
1766 // __asm __volatile(
1767 // "pushf \n\t"
1768 // "popf \n\t"
1769 // "rep \n\t"
1770 // ".byte 0x0f, 0xa7, 0xd0"
1771 // );
1772 // CHECK: pushfq
1773 // CHECK-NEXT: popfq
1774 // CHECK-NEXT: rep
1775 // CHECK-NEXT: .byte 15
1776 // CHECK-NEXT: .byte 167
1777 // CHECK-NEXT: .byte 208
1778 pushfq
1779 popfq
1781 .byte 15
1782 .byte 167
1783 .byte 208
1785 // CHECK: lock
1786 // CHECK: cmpxchgl
1787 cmp $0, %edx
1788 je 1f
1789 lock
1790 1: cmpxchgl %ecx,(%rdi)
1792 // CHECK: rep
1793 // CHECK-NEXT: byte
1795 .byte 0xa4 # movsb
1797 // CHECK: lock
1798 // This line has to be the last one in the file
1799 lock
1801 // CHECK: enqcmd 268435456(%ebp,%r14d,8), %esi
1802 // CHECK: encoding: [0x67,0xf2,0x42,0x0f,0x38,0xf8,0xb4,0xf5,0x00,0x00,0x00,0x10]
1803 enqcmd 0x10000000(%ebp, %r14d, 8), %esi
1805 // CHECK: enqcmd (%r9d), %edi
1806 // CHECK: encoding: [0x67,0xf2,0x41,0x0f,0x38,0xf8,0x39]
1807 enqcmd (%r9d), %edi
1809 // CHECK: enqcmd 8128(%ecx), %eax
1810 // CHECK: encoding: [0x67,0xf2,0x0f,0x38,0xf8,0x81,0xc0,0x1f,0x00,0x00]
1811 enqcmd 8128(%ecx), %eax
1813 // CHECK: enqcmd -8192(%edx), %ebx
1814 // CHECK: encoding: [0x67,0xf2,0x0f,0x38,0xf8,0x9a,0x00,0xe0,0xff,0xff]
1815 enqcmd -8192(%edx), %ebx
1817 // CHECK: enqcmd 485498096, %eax
1818 // CHECK: encoding: [0x67,0xf2,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1819 enqcmd 485498096, %eax
1821 // CHECK: enqcmds 268435456(%ebp,%r14d,8), %esi
1822 // CHECK: encoding: [0x67,0xf3,0x42,0x0f,0x38,0xf8,0xb4,0xf5,0x00,0x00,0x00,0x10]
1823 enqcmds 0x10000000(%ebp, %r14d, 8), %esi
1825 // CHECK: enqcmds (%r9d), %edi
1826 // CHECK: encoding: [0x67,0xf3,0x41,0x0f,0x38,0xf8,0x39]
1827 enqcmds (%r9d), %edi
1829 // CHECK: enqcmds 8128(%ecx), %eax
1830 // CHECK: encoding: [0x67,0xf3,0x0f,0x38,0xf8,0x81,0xc0,0x1f,0x00,0x00]
1831 enqcmds 8128(%ecx), %eax
1833 // CHECK: enqcmds -8192(%edx), %ebx
1834 // CHECK: encoding: [0x67,0xf3,0x0f,0x38,0xf8,0x9a,0x00,0xe0,0xff,0xff]
1835 enqcmds -8192(%edx), %ebx
1837 // CHECK: enqcmds 485498096, %eax
1838 // CHECK: encoding: [0x67,0xf3,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1839 enqcmds 485498096, %eax
1841 // CHECK: enqcmd 268435456(%rbp,%r14,8), %rsi
1842 // CHECK: encoding: [0xf2,0x42,0x0f,0x38,0xf8,0xb4,0xf5,0x00,0x00,0x00,0x10]
1843 enqcmd 0x10000000(%rbp, %r14, 8), %rsi
1845 // CHECK: enqcmd (%r9), %rdi
1846 // CHECK: encoding: [0xf2,0x41,0x0f,0x38,0xf8,0x39]
1847 enqcmd (%r9), %rdi
1849 // CHECK: enqcmd 8128(%rcx), %rax
1850 // CHECK: encoding: [0xf2,0x0f,0x38,0xf8,0x81,0xc0,0x1f,0x00,0x00]
1851 enqcmd 8128(%rcx), %rax
1853 // CHECK: enqcmd -8192(%rdx), %rbx
1854 // CHECK: encoding: [0xf2,0x0f,0x38,0xf8,0x9a,0x00,0xe0,0xff,0xff]
1855 enqcmd -8192(%rdx), %rbx
1857 // CHECK: enqcmd 485498096, %rax
1858 // CHECK: encoding: [0xf2,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1859 enqcmd 485498096, %rax
1861 // CHECK: enqcmds 268435456(%rbp,%r14,8), %rsi
1862 // CHECK: encoding: [0xf3,0x42,0x0f,0x38,0xf8,0xb4,0xf5,0x00,0x00,0x00,0x10]
1863 enqcmds 0x10000000(%rbp, %r14, 8), %rsi
1865 // CHECK: enqcmds (%r9), %rdi
1866 // CHECK: encoding: [0xf3,0x41,0x0f,0x38,0xf8,0x39]
1867 enqcmds (%r9), %rdi
1869 // CHECK: enqcmds 8128(%rcx), %rax
1870 // CHECK: encoding: [0xf3,0x0f,0x38,0xf8,0x81,0xc0,0x1f,0x00,0x00]
1871 enqcmds 8128(%rcx), %rax
1873 // CHECK: enqcmds -8192(%rdx), %rbx
1874 // CHECK: encoding: [0xf3,0x0f,0x38,0xf8,0x9a,0x00,0xe0,0xff,0xff]
1875 enqcmds -8192(%rdx), %rbx
1877 // CHECK: enqcmds 485498096, %rax
1878 // CHECK: encoding: [0xf3,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1879 enqcmds 485498096, %rax