[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / MC / X86 / x86-64.s
blob67b962c563eb57d3535d5bc3d5e697e86041223b
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 // CHECK: ljmpl *%cs:305419896
403 // CHECK: encoding: [0x2e,0xff,0x2c,0x25,0x78,0x56,0x34,0x12]
404 ljmp %cs:*0x12345678
406 // rdar://8444631
407 // CHECK: enter $31438, $0
408 // CHECK: encoding: [0xc8,0xce,0x7a,0x00]
409 // CHECK: enter $31438, $1
410 // CHECK: encoding: [0xc8,0xce,0x7a,0x01]
411 // CHECK: enter $31438, $127
412 // CHECK: encoding: [0xc8,0xce,0x7a,0x7f]
413 enter $0x7ace,$0
414 enter $0x7ace,$1
415 enter $0x7ace,$0x7f
418 // rdar://8456364
419 // CHECK: movw %cs, %ax
420 mov %cs, %ax
422 // rdar://8456391
423 fcmovb %st(1), %st // CHECK: fcmovb %st(1), %st
424 fcmove %st(1), %st // CHECK: fcmove %st(1), %st
425 fcmovbe %st(1), %st // CHECK: fcmovbe %st(1), %st
426 fcmovu %st(1), %st // CHECK: fcmovu %st(1), %st
428 fcmovnb %st(1), %st // CHECK: fcmovnb %st(1), %st
429 fcmovne %st(1), %st // CHECK: fcmovne %st(1), %st
430 fcmovnbe %st(1), %st // CHECK: fcmovnbe %st(1), %st
431 fcmovnu %st(1), %st // CHECK: fcmovnu %st(1), %st
433 fcmovnae %st(1), %st // CHECK: fcmovb %st(1), %st
434 fcmovna %st(1), %st // CHECK: fcmovbe %st(1), %st
436 fcmovae %st(1), %st // CHECK: fcmovnb %st(1), %st
437 fcmova %st(1), %st // CHECK: fcmovnbe %st(1), %st
439 // rdar://8456417
440 .byte (88 + 1) & 15 // CHECK: .byte 9
442 // rdar://8456412
443 mov %rdx, %cr0
444 // CHECK: movq %rdx, %cr0
445 // CHECK: encoding: [0x0f,0x22,0xc2]
446 mov %rdx, %cr4
447 // CHECK: movq %rdx, %cr4
448 // CHECK: encoding: [0x0f,0x22,0xe2]
449 mov %rdx, %cr8
450 // CHECK: movq %rdx, %cr8
451 // CHECK: encoding: [0x44,0x0f,0x22,0xc2]
452 mov %rdx, %cr15
453 // CHECK: movq %rdx, %cr15
454 // CHECK: encoding: [0x44,0x0f,0x22,0xfa]
455 mov %rdx, %dr15
456 // CHECK: movq %rdx, %dr15
457 // CHECK: encoding: [0x44,0x0f,0x23,0xfa]
458 mov %rdx, %db15
459 // CHECK: movq %rdx, %dr15
460 // CHECK: encoding: [0x44,0x0f,0x23,0xfa]
462 // rdar://8456371 - Handle commutable instructions written backward.
463 // CHECK: faddp %st, %st(1)
464 // CHECK: fmulp %st, %st(2)
465 faddp %st, %st(1)
466 fmulp %st, %st(2)
468 // rdar://8468087 - Encode these accurately, they are not synonyms.
469 // CHECK: fmul %st, %st(1)
470 // CHECK: encoding: [0xdc,0xc9]
471 // CHECK: fmul %st(1)
472 // CHECK: encoding: [0xd8,0xc9]
473 fmul %st, %st(1)
474 fmul %st(1), %st
476 // CHECK: fadd %st, %st(1)
477 // CHECK: encoding: [0xdc,0xc1]
478 // CHECK: fadd %st(1)
479 // CHECK: encoding: [0xd8,0xc1]
480 fadd %st, %st(1)
481 fadd %st(1), %st
484 // rdar://8416805
485 // CHECK: xorb %al, %al
486 // CHECK: encoding: [0x30,0xc0]
487 // CHECK: xorw %di, %di
488 // CHECK: encoding: [0x66,0x31,0xff]
489 // CHECK: xorl %esi, %esi
490 // CHECK: encoding: [0x31,0xf6]
491 // CHECK: xorq %rsi, %rsi
492 // CHECK: encoding: [0x48,0x31,0xf6]
493 clrb %al
494 clr %di
495 clr %esi
496 clr %rsi
498 // rdar://8456378
499 cltq // CHECK: cltq
500 cdqe // CHECK: cltq
501 cwde // CHECK: cwtl
502 cwtl // CHECK: cwtl
504 // rdar://8416805
505 cbw // CHECK: cbtw
506 cwd // CHECK: cwtd
507 cdq // CHECK: cltd
508 cqo // CHECK: cqto
510 // rdar://8456378 and PR7557 - fstsw
511 fstsw %ax
512 // CHECK: wait
513 // CHECK: fnstsw
514 fstsw (%rax)
515 // CHECK: wait
516 // CHECK: fnstsw (%rax)
518 // PR8259
519 fstcw (%rsp)
520 // CHECK: wait
521 // CHECK: fnstcw (%rsp)
523 // PR8259
524 fstcw (%rsp)
525 // CHECK: wait
526 // CHECK: fnstcw (%rsp)
528 // PR8258
529 finit
530 // CHECK: wait
531 // CHECK: fninit
533 fsave 32493
534 // CHECK: wait
535 // CHECK: fnsave 32493
538 // rdar://8456382 - cvtsd2si support.
539 cvtsd2si %xmm1, %rax
540 // CHECK: cvtsd2si %xmm1, %rax
541 // CHECK: encoding: [0xf2,0x48,0x0f,0x2d,0xc1]
542 cvtsd2si %xmm1, %eax
543 // CHECK: cvtsd2si %xmm1, %eax
544 // CHECK: encoding: [0xf2,0x0f,0x2d,0xc1]
546 cvtsd2siq %xmm0, %rax // CHECK: cvtsd2si %xmm0, %rax
547 cvtsd2sil %xmm0, %eax // CHECK: cvtsd2si %xmm0, %eax
548 cvtsd2si %xmm0, %rax // CHECK: cvtsd2si %xmm0, %rax
551 cvttpd2dq %xmm1, %xmm0 // CHECK: cvttpd2dq %xmm1, %xmm0
552 cvttpd2dq (%rax), %xmm0 // CHECK: cvttpd2dq (%rax), %xmm0
554 cvttps2dq %xmm1, %xmm0 // CHECK: cvttps2dq %xmm1, %xmm0
555 cvttps2dq (%rax), %xmm0 // CHECK: cvttps2dq (%rax), %xmm0
557 // rdar://8456376 - llvm-mc rejects 'roundss'
558 roundss $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0a,0xc0,0x0e]
559 roundps $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x08,0xc0,0x0e]
560 roundsd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0b,0xc0,0x0e]
561 roundpd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x09,0xc0,0x0e]
564 // rdar://8482675 - 32-bit mem operand support in 64-bit mode (0x67 prefix)
565 leal 8(%eax), %esi
566 // CHECK: leal 8(%eax), %esi
567 // CHECK: encoding: [0x67,0x8d,0x70,0x08]
568 leaq 8(%eax), %rsi
569 // CHECK: leaq 8(%eax), %rsi
570 // CHECK: encoding: [0x67,0x48,0x8d,0x70,0x08]
571 leaq 8(%rax), %rsi
572 // CHECK: leaq 8(%rax), %rsi
573 // CHECK: encoding: [0x48,0x8d,0x70,0x08]
576 cvttpd2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5
577 // CHECK: cvttpd2dq 3735928559(%ebx,%ecx,8), %xmm5
578 // CHECK: encoding: [0x67,0x66,0x0f,0xe6,0xac,0xcb,0xef,0xbe,0xad,0xde]
580 // rdar://8490728 - llvm-mc rejects 'movmskpd'
581 movmskpd %xmm6, %rax
582 // CHECK: movmskpd %xmm6, %eax
583 // CHECK: encoding: [0x66,0x0f,0x50,0xc6]
584 movmskpd %xmm6, %eax
585 // CHECK: movmskpd %xmm6, %eax
586 // CHECK: encoding: [0x66,0x0f,0x50,0xc6]
588 // rdar://8491845 - Gas supports commuted forms of non-commutable instructions.
589 fdivrp %st, %st(1) // CHECK: encoding: [0xde,0xf9]
590 fdivrp %st(1), %st // CHECK: encoding: [0xde,0xf9]
592 fsubrp %st, %st(1) // CHECK: encoding: [0xde,0xe9]
593 fsubrp %st(1), %st // CHECK: encoding: [0xde,0xe9]
595 // also PR8861
596 fdivp %st, %st(1) // CHECK: encoding: [0xde,0xf1]
597 fdivp %st(1), %st // CHECK: encoding: [0xde,0xf1]
600 movl foo(%rip), %eax
601 // CHECK: movl foo(%rip), %eax
602 // CHECK: encoding: [0x8b,0x05,A,A,A,A]
603 // CHECK: fixup A - offset: 2, value: foo-4, kind: reloc_riprel_4byte
605 movb $12, foo(%rip)
606 // CHECK: movb $12, foo(%rip)
607 // CHECK: encoding: [0xc6,0x05,A,A,A,A,0x0c]
608 // CHECK: fixup A - offset: 2, value: foo-5, kind: reloc_riprel_4byte
610 movw $12, foo(%rip)
611 // CHECK: movw $12, foo(%rip)
612 // CHECK: encoding: [0x66,0xc7,0x05,A,A,A,A,0x0c,0x00]
613 // CHECK: fixup A - offset: 3, value: foo-6, kind: reloc_riprel_4byte
615 movl $12, foo(%rip)
616 // CHECK: movl $12, foo(%rip)
617 // CHECK: encoding: [0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
618 // CHECK: fixup A - offset: 2, value: foo-8, kind: reloc_riprel_4byte
620 // rdar://37247000
621 movl $12, 1024(%rip)
622 // CHECK: movl $12, 1024(%rip)
623 // CHECK: encoding: [0xc7,0x05,0x00,0x04,0x00,0x00,0x0c,0x00,0x00,0x00]
625 movq $12, foo(%rip)
626 // CHECK: movq $12, foo(%rip)
627 // CHECK: encoding: [0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
628 // CHECK: fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte
630 movl foo(%eip), %eax
631 // CHECK: movl foo(%eip), %eax
632 // CHECK: encoding: [0x67,0x8b,0x05,A,A,A,A]
633 // CHECK: fixup A - offset: 3, value: foo-4, kind: reloc_riprel_4byte
635 movb $12, foo(%eip)
636 // CHECK: movb $12, foo(%eip)
637 // CHECK: encoding: [0x67,0xc6,0x05,A,A,A,A,0x0c]
638 // CHECK: fixup A - offset: 3, value: foo-5, kind: reloc_riprel_4byte
640 movw $12, foo(%eip)
641 // CHECK: movw $12, foo(%eip)
642 // CHECK: encoding: [0x67,0x66,0xc7,0x05,A,A,A,A,0x0c,0x00]
643 // CHECK: fixup A - offset: 4, value: foo-6, kind: reloc_riprel_4byte
645 movl $12, foo(%eip)
646 // CHECK: movl $12, foo(%eip)
647 // CHECK: encoding: [0x67,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
648 // CHECK: fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte
650 movq $12, foo(%eip)
651 // CHECK: movq $12, foo(%eip)
652 // CHECK: encoding: [0x67,0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
653 // CHECK: fixup A - offset: 4, value: foo-8, kind: reloc_riprel_4byte
655 // CHECK: addq $-424, %rax
656 // CHECK: encoding: [0x48,0x05,0x58,0xfe,0xff,0xff]
657 addq $-424, %rax
660 // CHECK: movq _foo@GOTPCREL(%rip), %rax
661 // CHECK: encoding: [0x48,0x8b,0x05,A,A,A,A]
662 // CHECK: fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
663 movq _foo@GOTPCREL(%rip), %rax
665 // CHECK: movq _foo@GOTPCREL(%rip), %r14
666 // CHECK: encoding: [0x4c,0x8b,0x35,A,A,A,A]
667 // CHECK: fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
668 movq _foo@GOTPCREL(%rip), %r14
670 // CHECK: movq _foo@GOTPCREL(%eip), %rax
671 // CHECK: encoding: [0x67,0x48,0x8b,0x05,A,A,A,A]
672 // CHECK: fixup A - offset: 4, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
673 movq _foo@GOTPCREL(%eip), %rax
675 // CHECK: movq _foo@GOTPCREL(%eip), %r14
676 // CHECK: encoding: [0x67,0x4c,0x8b,0x35,A,A,A,A]
677 // CHECK: fixup A - offset: 4, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
678 movq _foo@GOTPCREL(%eip), %r14
680 // CHECK: movq (%r13,%rax,8), %r13
681 // CHECK: encoding: [0x4d,0x8b,0x6c,0xc5,0x00]
682 movq 0x00(%r13,%rax,8),%r13
684 // CHECK: testq %rax, %rbx
685 // CHECK: encoding: [0x48,0x85,0xc3]
686 testq %rax, %rbx
688 // CHECK: cmpq %rbx, %r14
689 // CHECK: encoding: [0x49,0x39,0xde]
690 cmpq %rbx, %r14
692 // rdar://7947167
694 movsq
695 // CHECK: movsq
696 // CHECK: encoding: [0x48,0xa5]
698 movsl
699 // CHECK: movsl
700 // CHECK: encoding: [0xa5]
702 stosq
703 // CHECK: stosq
704 // CHECK: encoding: [0x48,0xab]
705 stosl
706 // CHECK: stosl
707 // CHECK: encoding: [0xab]
710 // Not moffset forms of moves, they are x86-32 only! rdar://7947184
711 movb 0, %al // CHECK: movb 0, %al # encoding: [0x8a,0x04,0x25,0x00,0x00,0x00,0x00]
712 movw 0, %ax // CHECK: movw 0, %ax # encoding: [0x66,0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
713 movl 0, %eax // CHECK: movl 0, %eax # encoding: [0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
715 // CHECK: pushfq # encoding: [0x9c]
716 pushf
717 // CHECK: pushfq # encoding: [0x9c]
718 pushfq
719 // CHECK: popfq # encoding: [0x9d]
720 popf
721 // CHECK: popfq # encoding: [0x9d]
722 popfq
724 // CHECK: movabsq $-281474976710654, %rax
725 // CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
726 movabsq $0xFFFF000000000002, %rax
728 // CHECK: movabsq $-281474976710654, %rax
729 // CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
730 movq $0xFFFF000000000002, %rax
732 // CHECK: movabsq 81985529216486895, %rax
733 // CHECK: encoding: [0x48,0xa1,0xef,0xcd,0xab,0x89,0x67,0x45,0x23,0x01]
734 movabsq 0x123456789abcdef, %rax
736 // CHECK: movq $-65536, %rax
737 // CHECK: encoding: [0x48,0xc7,0xc0,0x00,0x00,0xff,0xff]
738 movq $0xFFFFFFFFFFFF0000, %rax
740 // CHECK: movq $-256, %rax
741 // CHECK: encoding: [0x48,0xc7,0xc0,0x00,0xff,0xff,0xff]
742 movq $0xFFFFFFFFFFFFFF00, %rax
744 // CHECK: movq $10, %rax
745 // CHECK: encoding: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00]
746 movq $10, %rax
748 // CHECK: movq 81985529216486895, %rax
749 // CHECK: encoding: [0x48,0x8b,0x04,0x25,0xef,0xcd,0xab,0x89]
750 movq 0x123456789abcdef, %rax
752 // CHECK: movabsb -6066930261531658096, %al
753 // CHECK: encoding: [0xa0,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
754 movabsb 0xabcdef1234567890,%al
756 // CHECK: movabsw -6066930261531658096, %ax
757 // CHECK: encoding: [0x66,0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
758 movabsw 0xabcdef1234567890,%ax
760 // CHECK: movabsl -6066930261531658096, %eax
761 // CHECK: encoding: [0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
762 movabsl 0xabcdef1234567890,%eax
764 // CHECK: movabsq -6066930261531658096, %rax
765 // CHECK: encoding: [0x48,0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
766 movabsq 0xabcdef1234567890, %rax
768 // CHECK: movabsb %al, -6066930261531658096
769 // CHECK: encoding: [0xa2,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
770 movabsb %al,0xabcdef1234567890
772 // CHECK: movabsw %ax, -6066930261531658096
773 // CHECK: encoding: [0x66,0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
774 movabsw %ax,0xabcdef1234567890
776 // CHECK: movabsl %eax, -6066930261531658096
777 // CHECK: encoding: [0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
778 movabsl %eax,0xabcdef1234567890
780 // CHECK: movabsq %rax, -6066930261531658096
781 // CHECK: encoding: [0x48,0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
782 movabsq %rax,0xabcdef1234567890
784 // rdar://8014869
786 // CHECK: ret
787 // CHECK: encoding: [0xc3]
788 retq
790 // CHECK: sete %al
791 // CHECK: encoding: [0x0f,0x94,0xc0]
792 setz %al
794 // CHECK: setne %al
795 // CHECK: encoding: [0x0f,0x95,0xc0]
796 setnz %al
798 // CHECK: je 0
799 // CHECK: encoding: [0x74,A]
800 jz 0
802 // CHECK: jne
803 // CHECK: encoding: [0x75,A]
804 jnz 0
806 // PR9264
807 btl $1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
808 bt $1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
810 // rdar://8017515
811 btq $0x01,%rdx
812 // CHECK: btq $1, %rdx
813 // CHECK: encoding: [0x48,0x0f,0xba,0xe2,0x01]
815 //rdar://8017633
816 // CHECK: movzbl %al, %esi
817 // CHECK: encoding: [0x0f,0xb6,0xf0]
818 movzx %al, %esi
820 // CHECK: movzbq %al, %rsi
821 // CHECK: encoding: [0x48,0x0f,0xb6,0xf0]
822 movzx %al, %rsi
824 // CHECK: movsbw %al, %ax
825 // CHECK: encoding: [0x66,0x0f,0xbe,0xc0]
826 movsx %al, %ax
828 // CHECK: movsbl %al, %eax
829 // CHECK: encoding: [0x0f,0xbe,0xc0]
830 movsx %al, %eax
832 // CHECK: movswl %ax, %eax
833 // CHECK: encoding: [0x0f,0xbf,0xc0]
834 movsx %ax, %eax
836 // CHECK: movsbq %bl, %rax
837 // CHECK: encoding: [0x48,0x0f,0xbe,0xc3]
838 movsx %bl, %rax
840 // CHECK: movswq %cx, %rax
841 // CHECK: encoding: [0x48,0x0f,0xbf,0xc1]
842 movsx %cx, %rax
844 // CHECK: movslq %edi, %rax
845 // CHECK: encoding: [0x48,0x63,0xc7]
846 movsx %edi, %rax
848 // CHECK: movzbw %al, %ax
849 // CHECK: encoding: [0x66,0x0f,0xb6,0xc0]
850 movzx %al, %ax
852 // CHECK: movzbl %al, %eax
853 // CHECK: encoding: [0x0f,0xb6,0xc0]
854 movzx %al, %eax
856 // CHECK: movzwl %ax, %eax
857 // CHECK: encoding: [0x0f,0xb7,0xc0]
858 movzx %ax, %eax
860 // CHECK: movzbq %bl, %rax
861 // CHECK: encoding: [0x48,0x0f,0xb6,0xc3]
862 movzx %bl, %rax
864 // CHECK: movzwq %cx, %rax
865 // CHECK: encoding: [0x48,0x0f,0xb7,0xc1]
866 movzx %cx, %rax
868 // CHECK: movsbw (%rax), %ax
869 // CHECK: encoding: [0x66,0x0f,0xbe,0x00]
870 movsx (%rax), %ax
872 // CHECK: movzbw (%rax), %ax
873 // CHECK: encoding: [0x66,0x0f,0xb6,0x00]
874 movzx (%rax), %ax
876 // CHECK: movzbq 1280(%rbx,%r11), %r12
877 // CHECK: encoding: [0x4e,0x0f,0xb6,0xa4,0x1b,0x00,0x05,0x00,0x00]
878 movzb 1280(%rbx, %r11), %r12
880 // rdar://7873482
881 // CHECK: [0x65,0x8b,0x04,0x25,0x7c,0x00,0x00,0x00]
882 movl %gs:124, %eax
884 // CHECK: jmpq *8(%rax)
885 // CHECK: encoding: [0xff,0x60,0x08]
886 jmp *8(%rax)
888 // CHECK: btq $61, -216(%rbp)
889 // CHECK: encoding: [0x48,0x0f,0xba,0xa5,0x28,0xff,0xff,0xff,0x3d]
890 btq $61, -216(%rbp)
893 // rdar://8061602
895 jecxz L1
896 // CHECK: jecxz L1
897 // CHECK: encoding: [0x67,0xe3,A]
898 jrcxz L1
899 // CHECK: jrcxz L1
900 // CHECK: encoding: [0xe3,A]
902 // PR8061
903 xchgl 368(%rax),%ecx
904 // CHECK: xchgl %ecx, 368(%rax)
905 xchgl %ecx, 368(%rax)
906 // CHECK: xchgl %ecx, 368(%rax)
908 // rdar://8407548
909 xchg 0xdeadbeef(%rbx,%rcx,8),%bl
910 // CHECK: xchgb %bl, 3735928559(%rbx,%rcx,8)
914 // PR7254
915 lock incl 1(%rsp)
916 // CHECK: lock
917 // CHECK: incl 1(%rsp)
919 // rdar://8741045
920 lock/incl 1(%rsp)
921 // CHECK: lock
922 // CHECK: incl 1(%rsp)
925 lock addq %rsi, (%rdi)
926 // CHECK: lock
927 // CHECK: addq %rsi, (%rdi)
928 // CHECK: encoding: [0xf0,0x48,0x01,0x37]
930 lock subq %rsi, (%rdi)
931 // CHECK: lock
932 // CHECK: subq %rsi, (%rdi)
933 // CHECK: encoding: [0xf0,0x48,0x29,0x37]
935 lock andq %rsi, (%rdi)
936 // CHECK: lock
937 // CHECK: andq %rsi, (%rdi)
938 // CHECK: encoding: [0xf0,0x48,0x21,0x37]
940 lock orq %rsi, (%rdi)
941 // CHECK: lock
942 // CHECK: orq %rsi, (%rdi)
943 // CHECK: encoding: [0xf0,0x48,0x09,0x37]
945 lock xorq %rsi, (%rdi)
946 // CHECK: lock
947 // CHECK: xorq %rsi, (%rdi)
948 // CHECK: encoding: [0xf0,0x48,0x31,0x37]
950 xacquire lock addq %rax, (%rax)
951 // CHECK: xacquire
952 // CHECK: encoding: [0xf2]
953 // CHECK: lock
954 // CHECK: addq %rax, (%rax)
955 // CHECK: encoding: [0xf0,0x48,0x01,0x00]
957 xrelease lock addq %rax, (%rax)
958 // CHECK: xrelease
959 // CHECK: encoding: [0xf3]
960 // CHECK: lock
961 // CHECK: addq %rax, (%rax)
962 // CHECK: encoding: [0xf0,0x48,0x01,0x00]
964 // rdar://8033482
965 rep movsl
966 // CHECK: rep
967 // CHECK: movsl
968 // CHECK: encoding: [0xf3,0xa5]
971 // rdar://8403974
972 iret
973 // CHECK: iretl
974 // CHECK: encoding: [0xcf]
975 iretw
976 // CHECK: iretw
977 // CHECK: encoding: [0x66,0xcf]
978 iretl
979 // CHECK: iretl
980 // CHECK: encoding: [0xcf]
981 iretq
982 // CHECK: iretq
983 // CHECK: encoding: [0x48,0xcf]
985 // rdar://8416805
986 // CHECK: retw $31438
987 // CHECK: encoding: [0x66,0xc2,0xce,0x7a]
988 retw $0x7ace
990 // CHECK: lretw $31438
991 // CHECK: encoding: [0x66,0xca,0xce,0x7a]
992 lretw $0x7ace
994 // PR8592
995 lretq // CHECK: lretq # encoding: [0x48,0xcb]
996 lretl // CHECK: lretl # encoding: [0xcb]
997 lret // CHECK: lretl # encoding: [0xcb]
998 lretw // CHECK: lretw # encoding: [0x66,0xcb]
1000 // rdar://8403907
1001 sysret
1002 // CHECK: sysretl
1003 // CHECK: encoding: [0x0f,0x07]
1004 sysretl
1005 // CHECK: sysretl
1006 // CHECK: encoding: [0x0f,0x07]
1007 sysretq
1008 // CHECK: sysretq
1009 // CHECK: encoding: [0x48,0x0f,0x07]
1011 // rdar://8407242
1012 push %fs
1013 // CHECK: pushq %fs
1014 // CHECK: encoding: [0x0f,0xa0]
1015 push %gs
1016 // CHECK: pushq %gs
1017 // CHECK: encoding: [0x0f,0xa8]
1019 pushw %fs
1020 // CHECK: pushw %fs
1021 // CHECK: encoding: [0x66,0x0f,0xa0]
1022 pushw %gs
1023 // CHECK: pushw %gs
1024 // CHECK: encoding: [0x66,0x0f,0xa8]
1027 pop %fs
1028 // CHECK: popq %fs
1029 // CHECK: encoding: [0x0f,0xa1]
1030 pop %gs
1031 // CHECK: popq %gs
1032 // CHECK: encoding: [0x0f,0xa9]
1034 popw %fs
1035 // CHECK: popw %fs
1036 // CHECK: encoding: [0x66,0x0f,0xa1]
1037 popw %gs
1038 // CHECK: popw %gs
1039 // CHECK: encoding: [0x66,0x0f,0xa9]
1041 // rdar://8438816
1042 fildq -8(%rsp)
1043 fildll -8(%rsp)
1044 // CHECK: fildll -8(%rsp)
1045 // CHECK: encoding: [0xdf,0x6c,0x24,0xf8]
1046 // CHECK: fildll -8(%rsp)
1047 // CHECK: encoding: [0xdf,0x6c,0x24,0xf8]
1049 // CHECK: callq a
1050 callq a
1052 // CHECK: leaq -40(%rbp), %r15
1053 leaq -40(%rbp), %r15
1057 // rdar://8013734 - Alias dr6=db6
1058 mov %dr6, %rax
1059 mov %db6, %rax
1060 // CHECK: movq %dr6, %rax
1061 // CHECK: movq %dr6, %rax
1064 // INC/DEC encodings.
1065 incb %al // CHECK: incb %al # encoding: [0xfe,0xc0]
1066 incw %ax // CHECK: incw %ax # encoding: [0x66,0xff,0xc0]
1067 incl %eax // CHECK: incl %eax # encoding: [0xff,0xc0]
1068 decb %al // CHECK: decb %al # encoding: [0xfe,0xc8]
1069 decw %ax // CHECK: decw %ax # encoding: [0x66,0xff,0xc8]
1070 decl %eax // CHECK: decl %eax # encoding: [0xff,0xc8]
1072 // rdar://8416805
1073 // CHECK: lgdtq 4(%rax)
1074 // CHECK: encoding: [0x0f,0x01,0x50,0x04]
1075 lgdt 4(%rax)
1077 // CHECK: lgdtq 4(%rax)
1078 // CHECK: encoding: [0x0f,0x01,0x50,0x04]
1079 lgdtq 4(%rax)
1081 // CHECK: lidtq 4(%rax)
1082 // CHECK: encoding: [0x0f,0x01,0x58,0x04]
1083 lidt 4(%rax)
1085 // CHECK: lidtq 4(%rax)
1086 // CHECK: encoding: [0x0f,0x01,0x58,0x04]
1087 lidtq 4(%rax)
1089 // CHECK: sgdtq 4(%rax)
1090 // CHECK: encoding: [0x0f,0x01,0x40,0x04]
1091 sgdt 4(%rax)
1093 // CHECK: sgdtq 4(%rax)
1094 // CHECK: encoding: [0x0f,0x01,0x40,0x04]
1095 sgdtq 4(%rax)
1097 // CHECK: sidtq 4(%rax)
1098 // CHECK: encoding: [0x0f,0x01,0x48,0x04]
1099 sidt 4(%rax)
1101 // CHECK: sidtq 4(%rax)
1102 // CHECK: encoding: [0x0f,0x01,0x48,0x04]
1103 sidtq 4(%rax)
1106 // rdar://8208615
1107 mov (%rsi), %gs // CHECK: movw (%rsi), %gs # encoding: [0x8e,0x2e]
1108 mov %gs, (%rsi) // CHECK: movw %gs, (%rsi) # encoding: [0x8c,0x2e]
1111 // rdar://8431864
1112 //CHECK: divb %bl
1113 //CHECK: divw %bx
1114 //CHECK: divl %ecx
1115 //CHECK: divl 3735928559(%ebx,%ecx,8)
1116 //CHECK: divl 69
1117 //CHECK: divl 32493
1118 //CHECK: divl 3133065982
1119 //CHECK: divl 305419896
1120 //CHECK: idivb %bl
1121 //CHECK: idivw %bx
1122 //CHECK: idivl %ecx
1123 //CHECK: idivl 3735928559(%ebx,%ecx,8)
1124 //CHECK: idivl 69
1125 //CHECK: idivl 32493
1126 //CHECK: idivl 3133065982
1127 //CHECK: idivl 305419896
1128 div %bl,%al
1129 div %bx,%ax
1130 div %ecx,%eax
1131 div 0xdeadbeef(%ebx,%ecx,8),%eax
1132 div 0x45,%eax
1133 div 0x7eed,%eax
1134 div 0xbabecafe,%eax
1135 div 0x12345678,%eax
1136 idiv %bl,%al
1137 idiv %bx,%ax
1138 idiv %ecx,%eax
1139 idiv 0xdeadbeef(%ebx,%ecx,8),%eax
1140 idiv 0x45,%eax
1141 idiv 0x7eed,%eax
1142 idiv 0xbabecafe,%eax
1143 idiv 0x12345678,%eax
1145 // PR8524
1146 movd %rax, %mm5 // CHECK: movq %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8]
1147 movd %mm5, %rbx // CHECK: movq %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb]
1148 movq %rax, %mm5 // CHECK: movq %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8]
1149 movq %mm5, %rbx // CHECK: movq %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb]
1151 rex64 // CHECK: rex64 # encoding: [0x48]
1152 data16 // CHECK: data16 # encoding: [0x66]
1154 // CHECK: data16
1155 // CHECK: encoding: [0x66]
1156 // CHECK: lgdtq 4(%rax)
1157 // CHECK: encoding: [0x0f,0x01,0x50,0x04]
1158 data16 lgdt 4(%rax)
1160 // PR8855
1161 movq 18446744073709551615,%rbx // CHECK: movq -1, %rbx
1163 // PR8946
1164 movdqu %xmm0, %xmm1 // CHECK: movdqu %xmm0, %xmm1 # encoding: [0xf3,0x0f,0x6f,0xc8]
1166 // PR8935
1167 xgetbv // CHECK: xgetbv # encoding: [0x0f,0x01,0xd0]
1168 xsetbv // CHECK: xsetbv # encoding: [0x0f,0x01,0xd1]
1170 // CHECK: loope 0
1171 // CHECK: encoding: [0xe1,A]
1172 loopz 0
1174 // CHECK: loopne 0
1175 // CHECK: encoding: [0xe0,A]
1176 loopnz 0
1178 // CHECK: outsb (%rsi), %dx # encoding: [0x6e]
1179 // CHECK: outsb
1180 // CHECK: outsb
1181 outsb
1182 outsb %ds:(%rsi), %dx
1183 outsb (%rsi), %dx
1185 // CHECK: outsw (%rsi), %dx # encoding: [0x66,0x6f]
1186 // CHECK: outsw
1187 // CHECK: outsw
1188 outsw
1189 outsw %ds:(%rsi), %dx
1190 outsw (%rsi), %dx
1192 // CHECK: outsl (%rsi), %dx # encoding: [0x6f]
1193 // CHECK: outsl
1194 outsl
1195 outsl %ds:(%rsi), %dx
1196 outsl (%rsi), %dx
1198 // CHECK: insb %dx, %es:(%rdi) # encoding: [0x6c]
1199 // CHECK: insb
1200 insb
1201 insb %dx, %es:(%rdi)
1203 // CHECK: insw %dx, %es:(%rdi) # encoding: [0x66,0x6d]
1204 // CHECK: insw
1205 insw
1206 insw %dx, %es:(%rdi)
1208 // CHECK: insl %dx, %es:(%rdi) # encoding: [0x6d]
1209 // CHECK: insl
1210 insl
1211 insl %dx, %es:(%rdi)
1213 // CHECK: movsb (%rsi), %es:(%rdi) # encoding: [0xa4]
1214 // CHECK: movsb
1215 // CHECK: movsb
1216 movsb
1217 movsb %ds:(%rsi), %es:(%rdi)
1218 movsb (%rsi), %es:(%rdi)
1220 // CHECK: movsw (%rsi), %es:(%rdi) # encoding: [0x66,0xa5]
1221 // CHECK: movsw
1222 // CHECK: movsw
1223 movsw
1224 movsw %ds:(%rsi), %es:(%rdi)
1225 movsw (%rsi), %es:(%rdi)
1227 // CHECK: movsl (%rsi), %es:(%rdi) # encoding: [0xa5]
1228 // CHECK: movsl
1229 // CHECK: movsl
1230 movsl
1231 movsl %ds:(%rsi), %es:(%rdi)
1232 movsl (%rsi), %es:(%rdi)
1233 // rdar://10883092
1234 // CHECK: movsl
1235 movsl (%rsi), (%rdi)
1237 // CHECK: movsq (%rsi), %es:(%rdi) # encoding: [0x48,0xa5]
1238 // CHECK: movsq
1239 // CHECK: movsq
1240 movsq
1241 movsq %ds:(%rsi), %es:(%rdi)
1242 movsq (%rsi), %es:(%rdi)
1244 // CHECK: lodsb (%rsi), %al # encoding: [0xac]
1245 // CHECK: lodsb
1246 // CHECK: lodsb
1247 // CHECK: lodsb
1248 // CHECK: lodsb
1249 lodsb
1250 lodsb %ds:(%rsi), %al
1251 lodsb (%rsi), %al
1252 lods %ds:(%rsi), %al
1253 lods (%rsi), %al
1255 // CHECK: lodsw (%rsi), %ax # encoding: [0x66,0xad]
1256 // CHECK: lodsw
1257 // CHECK: lodsw
1258 // CHECK: lodsw
1259 // CHECK: lodsw
1260 lodsw
1261 lodsw %ds:(%rsi), %ax
1262 lodsw (%rsi), %ax
1263 lods %ds:(%rsi), %ax
1264 lods (%rsi), %ax
1266 // CHECK: lodsl (%rsi), %eax # encoding: [0xad]
1267 // CHECK: lodsl
1268 // CHECK: lodsl
1269 // CHECK: lodsl
1270 // CHECK: lodsl
1271 lodsl
1272 lodsl %ds:(%rsi), %eax
1273 lodsl (%rsi), %eax
1274 lods %ds:(%rsi), %eax
1275 lods (%rsi), %eax
1277 // CHECK: lodsq (%rsi), %rax # encoding: [0x48,0xad]
1278 // CHECK: lodsq
1279 // CHECK: lodsq
1280 // CHECK: lodsq
1281 // CHECK: lodsq
1282 lodsq
1283 lodsq %ds:(%rsi), %rax
1284 lodsq (%rsi), %rax
1285 lods %ds:(%rsi), %rax
1286 lods (%rsi), %rax
1288 // CHECK: stosb %al, %es:(%rdi) # encoding: [0xaa]
1289 // CHECK: stosb
1290 // CHECK: stosb
1291 stosb
1292 stosb %al, %es:(%rdi)
1293 stos %al, %es:(%rdi)
1295 // CHECK: stosw %ax, %es:(%rdi) # encoding: [0x66,0xab]
1296 // CHECK: stosw
1297 // CHECK: stosw
1298 stosw
1299 stosw %ax, %es:(%rdi)
1300 stos %ax, %es:(%rdi)
1302 // CHECK: stosl %eax, %es:(%rdi) # encoding: [0xab]
1303 // CHECK: stosl
1304 // CHECK: stosl
1305 stosl
1306 stosl %eax, %es:(%rdi)
1307 stos %eax, %es:(%rdi)
1309 // CHECK: stosq %rax, %es:(%rdi) # encoding: [0x48,0xab]
1310 // CHECK: stosq
1311 // CHECK: stosq
1312 stosq
1313 stosq %rax, %es:(%rdi)
1314 stos %rax, %es:(%rdi)
1316 // CHECK: strw
1317 // CHECK: encoding: [0x66,0x0f,0x00,0xc8]
1318 str %ax
1320 // CHECK: strl
1321 // CHECK: encoding: [0x0f,0x00,0xc8]
1322 str %eax
1324 // CHECK: strw
1325 // CHECK: encoding: [0x66,0x0f,0x00,0xc8]
1326 str %ax
1328 // CHECK: strq
1329 // CHECK: encoding: [0x48,0x0f,0x00,0xc8]
1330 str %rax
1332 // CHECK: movq %rdi, %xmm0
1333 // CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7]
1334 movq %rdi,%xmm0
1336 // CHECK: movq %xmm0, %rax
1337 // CHECK: encoding: [0x66,0x48,0x0f,0x7e,0xc0]
1338 movq %xmm0, %rax
1340 // CHECK: movntil %eax, (%rdi)
1341 // CHECK: encoding: [0x0f,0xc3,0x07]
1342 // CHECK: movntil
1343 movntil %eax, (%rdi)
1344 movnti %eax, (%rdi)
1346 // CHECK: movntiq %rax, (%rdi)
1347 // CHECK: encoding: [0x48,0x0f,0xc3,0x07]
1348 // CHECK: movntiq
1349 movntiq %rax, (%rdi)
1350 movnti %rax, (%rdi)
1352 // CHECK: pclmulqdq $17, %xmm0, %xmm1
1353 // CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x11]
1354 pclmulhqhqdq %xmm0, %xmm1
1356 // CHECK: pclmulqdq $1, %xmm0, %xmm1
1357 // CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x01]
1358 pclmulqdq $1, %xmm0, %xmm1
1360 // CHECK: pclmulqdq $16, (%rdi), %xmm1
1361 // CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x10]
1362 pclmullqhqdq (%rdi), %xmm1
1364 // CHECK: pclmulqdq $0, (%rdi), %xmm1
1365 // CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x00]
1366 pclmulqdq $0, (%rdi), %xmm1
1368 // PR10345
1369 // CHECK: nop
1370 // CHECK: encoding: [0x90]
1371 xchgq %rax, %rax
1373 // CHECK: xchgl %eax, %eax
1374 // CHECK: encoding: [0x87,0xc0]
1375 xchgl %eax, %eax
1377 // CHECK: xchgw %ax, %ax
1378 // CHECK: encoding: [0x66,0x90]
1379 xchgw %ax, %ax
1381 // CHECK: xchgl %ecx, %eax
1382 // CHECK: encoding: [0x91]
1383 xchgl %ecx, %eax
1385 // CHECK: xchgl %ecx, %eax
1386 // CHECK: encoding: [0x91]
1387 xchgl %eax, %ecx
1389 // CHECK: sysexit
1390 // CHECK: encoding: [0x0f,0x35]
1391 sysexit
1393 // CHECK: sysexitl
1394 // CHECK: encoding: [0x0f,0x35]
1395 sysexitl
1397 // CHECK: sysexitq
1398 // CHECK: encoding: [0x48,0x0f,0x35]
1399 sysexitq
1401 // CHECK: clac
1402 // CHECK: encoding: [0x0f,0x01,0xca]
1403 clac
1405 // CHECK: stac
1406 // CHECK: encoding: [0x0f,0x01,0xcb]
1407 stac
1409 // CHECK: faddp %st, %st(1)
1410 // CHECK: fmulp %st, %st(1)
1411 // CHECK: fsubp %st, %st(1)
1412 // CHECK: fsubrp %st, %st(1)
1413 // CHECK: fdivp %st, %st(1)
1414 // CHECK: fdivrp %st, %st(1)
1415 faddp %st, %st(1)
1416 fmulp %st, %st(1)
1417 fsubp %st, %st(1)
1418 fsubrp %st, %st(1)
1419 fdivp %st, %st(1)
1420 fdivrp %st, %st(1)
1422 // CHECK: faddp %st, %st(1)
1423 // CHECK: fmulp %st, %st(1)
1424 // CHECK: fsubp %st, %st(1)
1425 // CHECK: fsubrp %st, %st(1)
1426 // CHECK: fdivp %st, %st(1)
1427 // CHECK: fdivrp %st, %st(1)
1428 faddp %st(1), %st
1429 fmulp %st(1), %st
1430 fsubp %st(1), %st
1431 fsubrp %st(1), %st
1432 fdivp %st(1), %st
1433 fdivrp %st(1), %st
1435 // CHECK: faddp %st, %st(1)
1436 // CHECK: fmulp %st, %st(1)
1437 // CHECK: fsubp %st, %st(1)
1438 // CHECK: fsubrp %st, %st(1)
1439 // CHECK: fdivp %st, %st(1)
1440 // CHECK: fdivrp %st, %st(1)
1441 faddp %st(1)
1442 fmulp %st(1)
1443 fsubp %st(1)
1444 fsubrp %st(1)
1445 fdivp %st(1)
1446 fdivrp %st(1)
1448 // CHECK: faddp %st, %st(1)
1449 // CHECK: fmulp %st, %st(1)
1450 // CHECK: fsubp %st, %st(1)
1451 // CHECK: fsubrp %st, %st(1)
1452 // CHECK: fdivp %st, %st(1)
1453 // CHECK: fdivrp %st, %st(1)
1454 faddp
1455 fmulp
1456 fsubp
1457 fsubrp
1458 fdivp
1459 fdivrp
1461 // CHECK: fadd %st(1)
1462 // CHECK: fmul %st(1)
1463 // CHECK: fsub %st(1)
1464 // CHECK: fsubr %st(1)
1465 // CHECK: fdiv %st(1)
1466 // CHECK: fdivr %st(1)
1467 fadd %st(1), %st
1468 fmul %st(1), %st
1469 fsub %st(1), %st
1470 fsubr %st(1), %st
1471 fdiv %st(1), %st
1472 fdivr %st(1), %st
1474 // CHECK: fadd %st, %st(1)
1475 // CHECK: fmul %st, %st(1)
1476 // CHECK: fsub %st, %st(1)
1477 // CHECK: fsubr %st, %st(1)
1478 // CHECK: fdiv %st, %st(1)
1479 // CHECK: fdivr %st, %st(1)
1480 fadd %st, %st(1)
1481 fmul %st, %st(1)
1482 fsub %st, %st(1)
1483 fsubr %st, %st(1)
1484 fdiv %st, %st(1)
1485 fdivr %st, %st(1)
1487 // CHECK: fadd %st(1)
1488 // CHECK: fmul %st(1)
1489 // CHECK: fsub %st(1)
1490 // CHECK: fsubr %st(1)
1491 // CHECK: fdiv %st(1)
1492 // CHECK: fdivr %st(1)
1493 fadd %st(1)
1494 fmul %st(1)
1495 fsub %st(1)
1496 fsubr %st(1)
1497 fdiv %st(1)
1498 fdivr %st(1)
1500 // CHECK: movd %xmm0, %eax
1501 // CHECK: movq %xmm0, %rax
1502 // CHECK: movq %xmm0, %rax
1503 // CHECK: vmovd %xmm0, %eax
1504 // CHECK: vmovq %xmm0, %rax
1505 // CHECK: vmovq %xmm0, %rax
1506 movd %xmm0, %eax
1507 movq %xmm0, %rax
1508 movq %xmm0, %rax
1509 vmovd %xmm0, %eax
1510 vmovd %xmm0, %rax
1511 vmovq %xmm0, %rax
1513 // CHECK: seto 3735928559(%r10,%r9,8)
1514 // CHECK: encoding: [0x43,0x0f,0x90,0x84,0xca,0xef,0xbe,0xad,0xde]
1515 seto 0xdeadbeef(%r10,%r9,8)
1517 // CHECK: monitorx
1518 // CHECK: encoding: [0x0f,0x01,0xfa]
1519 monitorx
1521 // CHECK: monitorx
1522 // CHECK: encoding: [0x0f,0x01,0xfa]
1523 monitorx %rax, %rcx, %rdx
1525 // CHECK: mwaitx
1526 // CHECK: encoding: [0x0f,0x01,0xfb]
1527 mwaitx
1529 // CHECK: mwaitx
1530 // CHECK: encoding: [0x0f,0x01,0xfb]
1531 mwaitx %rax, %rcx, %rbx
1533 // CHECK: clzero
1534 // CHECK: encoding: [0x0f,0x01,0xfc]
1535 clzero
1537 // CHECK: clzero
1538 // CHECK: encoding: [0x0f,0x01,0xfc]
1539 clzero %rax
1541 // CHECK: tlbsync
1542 // CHECK: encoding: [0x0f,0x01,0xff]
1543 tlbsync
1545 // CHECK: invlpgb
1546 // CHECK: encoding: [0x0f,0x01,0xfe]
1547 invlpgb %rax, %edx
1549 // CHECK: movl %r15d, (%r15,%r15)
1550 // CHECK: encoding: [0x47,0x89,0x3c,0x3f]
1551 movl %r15d, (%r15,%r15)
1553 // CHECK: nopq 3735928559(%rbx,%rcx,8)
1554 // CHECK: encoding: [0x48,0x0f,0x1f,0x84,0xcb,0xef,0xbe,0xad,0xde]
1555 nopq 0xdeadbeef(%rbx,%rcx,8)
1557 // CHECK: nopq %rax
1558 // CHECK: encoding: [0x48,0x0f,0x1f,0xc0]
1559 nopq %rax
1561 // CHECK: rdpid %rax
1562 // CHECK: encoding: [0xf3,0x0f,0xc7,0xf8]
1563 rdpid %rax
1565 // CHECK: ptwritel 3735928559(%rbx,%rcx,8)
1566 // CHECK: encoding: [0xf3,0x0f,0xae,0xa4,0xcb,0xef,0xbe,0xad,0xde]
1567 ptwritel 0xdeadbeef(%rbx,%rcx,8)
1569 // CHECK: ptwritel %eax
1570 // CHECK: encoding: [0xf3,0x0f,0xae,0xe0]
1571 ptwritel %eax
1573 // CHECK: ptwriteq 3735928559(%rbx,%rcx,8)
1574 // CHECK: encoding: [0xf3,0x48,0x0f,0xae,0xa4,0xcb,0xef,0xbe,0xad,0xde]
1575 ptwriteq 0xdeadbeef(%rbx,%rcx,8)
1577 // CHECK: ptwriteq %rax
1578 // CHECK: encoding: [0xf3,0x48,0x0f,0xae,0xe0]
1579 ptwriteq %rax
1581 // CHECK: wbnoinvd
1582 // CHECK: encoding: [0xf3,0x0f,0x09]
1583 wbnoinvd
1585 // CHECK: cldemote 4(%rax)
1586 // CHECK: encoding: [0x0f,0x1c,0x40,0x04]
1587 cldemote 4(%rax)
1589 // CHECK: cldemote 3735928559(%rbx,%rcx,8)
1590 // CHECK: encoding: [0x0f,0x1c,0x84,0xcb,0xef,0xbe,0xad,0xde]
1591 cldemote 0xdeadbeef(%rbx,%rcx,8)
1593 // CHECK: umonitor %r13
1594 // CHECK: encoding: [0xf3,0x41,0x0f,0xae,0xf5]
1595 umonitor %r13
1597 // CHECK: umonitor %rax
1598 // CHECK: encoding: [0xf3,0x0f,0xae,0xf0]
1599 umonitor %rax
1601 // CHECK: umonitor %eax
1602 // CHECK: encoding: [0x67,0xf3,0x0f,0xae,0xf0]
1603 umonitor %eax
1605 // CHECK: umwait %r15
1606 // CHECK: encoding: [0xf2,0x41,0x0f,0xae,0xf7]
1607 umwait %r15
1609 // CHECK: umwait %ebx
1610 // CHECK: encoding: [0xf2,0x0f,0xae,0xf3]
1611 umwait %ebx
1613 // CHECK: tpause %r15
1614 // CHECK: encoding: [0x66,0x41,0x0f,0xae,0xf7]
1615 tpause %r15
1617 // CHECK: tpause %ebx
1618 // CHECK: encoding: [0x66,0x0f,0xae,0xf3]
1619 tpause %ebx
1621 // CHECK: movdiri %r15, 485498096
1622 // CHECK: # encoding: [0x4c,0x0f,0x38,0xf9,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]
1623 movdiri %r15, 485498096
1625 // CHECK: movdiri %r15, (%rdx)
1626 // CHECK: # encoding: [0x4c,0x0f,0x38,0xf9,0x3a]
1627 movdiri %r15, (%rdx)
1629 // CHECK: movdiri %r15, 64(%rdx)
1630 // CHECK: # encoding: [0x4c,0x0f,0x38,0xf9,0x7a,0x40]
1631 movdiri %r15, 64(%rdx)
1633 // CHECK: movdir64b 485498096, %rax
1634 // CHECK: # encoding: [0x66,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1635 movdir64b 485498096, %rax
1637 // CHECK: movdir64b 485498096, %eax
1638 // CHECK: # encoding: [0x67,0x66,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1639 movdir64b 485498096, %eax
1641 // CHECK: movdir64b (%rdx), %r15
1642 // CHECK: # encoding: [0x66,0x44,0x0f,0x38,0xf8,0x3a]
1643 movdir64b (%rdx), %r15
1645 // CHECK: pconfig
1646 // CHECK: # encoding: [0x0f,0x01,0xc5]
1647 pconfig
1649 // CHECK: encls
1650 // CHECK: encoding: [0x0f,0x01,0xcf]
1651 encls
1653 // CHECK: enclu
1654 // CHECK: encoding: [0x0f,0x01,0xd7]
1655 enclu
1657 // CHECK: enclv
1658 // CHECK: encoding: [0x0f,0x01,0xc0]
1659 enclv
1661 // CHECK: movq %rax, %rbx
1662 // CHECK: encoding: [0x48,0x8b,0xd8]
1663 movq.s %rax, %rbx
1665 // CHECK: movq %rax, %rbx
1666 // CHECK: encoding: [0x48,0x8b,0xd8]
1667 mov.s %rax, %rbx
1669 // CHECK: movl %eax, %ebx
1670 // CHECK: encoding: [0x8b,0xd8]
1671 movl.s %eax, %ebx
1673 // CHECK: movl %eax, %ebx
1674 // CHECK: encoding: [0x8b,0xd8]
1675 mov.s %eax, %ebx
1677 // CHECK: movw %ax, %bx
1678 // CHECK: encoding: [0x66,0x8b,0xd8]
1679 movw.s %ax, %bx
1681 // CHECK: movw %ax, %bx
1682 // CHECK: encoding: [0x66,0x8b,0xd8]
1683 mov.s %ax, %bx
1685 // CHECK: movb %al, %bl
1686 // CHECK: encoding: [0x8a,0xd8]
1687 movb.s %al, %bl
1689 // CHECK: movb %al, %bl
1690 // CHECK: encoding: [0x8a,0xd8]
1691 mov.s %al, %bl
1693 // CHECK: movq %mm0, %mm1
1694 // CHECK: encoding: [0x0f,0x7f,0xc1]
1695 movq.s %mm0, %mm1
1697 // CHECK: movq %xmm0, %xmm1
1698 // CHECK: encoding: [0x66,0x0f,0xd6,0xc1]
1699 movq.s %xmm0, %xmm1
1701 // CHECK: movdqa %xmm0, %xmm1
1702 // CHECK: encoding: [0x66,0x0f,0x7f,0xc1]
1703 movdqa.s %xmm0, %xmm1
1705 // CHECK: movdqu %xmm0, %xmm1
1706 // CHECK: encoding: [0xf3,0x0f,0x7f,0xc1]
1707 movdqu.s %xmm0, %xmm1
1709 // CHECK: movaps %xmm0, %xmm1
1710 // CHECK: encoding: [0x0f,0x29,0xc1]
1711 movaps.s %xmm0, %xmm1
1713 // CHECK: movups %xmm0, %xmm1
1714 // CHECK: encoding: [0x0f,0x11,0xc1]
1715 movups.s %xmm0, %xmm1
1717 // CHECK: movapd %xmm0, %xmm1
1718 // CHECK: encoding: [0x66,0x0f,0x29,0xc1]
1719 movapd.s %xmm0, %xmm1
1721 // CHECK: movupd %xmm0, %xmm1
1722 // CHECK: encoding: [0x66,0x0f,0x11,0xc1]
1723 movupd.s %xmm0, %xmm1
1725 // CHECK: vmovq %xmm0, %xmm8
1726 // CHECK: encoding: [0xc4,0xc1,0x79,0xd6,0xc0]
1727 vmovq.s %xmm0, %xmm8
1729 // CHECK: vmovq %xmm8, %xmm0
1730 // CHECK: encoding: [0xc5,0x79,0xd6,0xc0]
1731 vmovq.s %xmm8, %xmm0
1733 // CHECK: vmovdqa %xmm0, %xmm8
1734 // CHECK: encoding: [0xc4,0xc1,0x79,0x7f,0xc0]
1735 vmovdqa.s %xmm0, %xmm8
1737 // CHECK: vmovdqa %xmm8, %xmm0
1738 // CHECK: encoding: [0xc5,0x79,0x7f,0xc0]
1739 vmovdqa.s %xmm8, %xmm0
1741 // CHECK: vmovdqu %xmm0, %xmm8
1742 // CHECK: encoding: [0xc4,0xc1,0x7a,0x7f,0xc0]
1743 vmovdqu.s %xmm0, %xmm8
1745 // CHECK: vmovdqu %xmm8, %xmm0
1746 // CHECK: encoding: [0xc5,0x7a,0x7f,0xc0]
1747 vmovdqu.s %xmm8, %xmm0
1749 // CHECK: vmovaps %xmm0, %xmm8
1750 // CHECK: encoding: [0xc4,0xc1,0x78,0x29,0xc0]
1751 vmovaps.s %xmm0, %xmm8
1753 // CHECK: vmovaps %xmm8, %xmm0
1754 // CHECK: encoding: [0xc5,0x78,0x29,0xc0]
1755 vmovaps.s %xmm8, %xmm0
1757 // CHECK: vmovups %xmm0, %xmm8
1758 // CHECK: encoding: [0xc4,0xc1,0x78,0x11,0xc0]
1759 vmovups.s %xmm0, %xmm8
1761 // CHECK: vmovups %xmm8, %xmm0
1762 // CHECK: encoding: [0xc5,0x78,0x11,0xc0]
1763 vmovups.s %xmm8, %xmm0
1765 // CHECK: vmovapd %xmm0, %xmm8
1766 // CHECK: encoding: [0xc4,0xc1,0x79,0x29,0xc0]
1767 vmovapd.s %xmm0, %xmm8
1769 // CHECK: vmovapd %xmm8, %xmm0
1770 // CHECK: encoding: [0xc5,0x79,0x29,0xc0]
1771 vmovapd.s %xmm8, %xmm0
1773 // CHECK: vmovupd %xmm0, %xmm8
1774 // CHECK: encoding: [0xc4,0xc1,0x79,0x11,0xc0]
1775 vmovupd.s %xmm0, %xmm8
1777 // CHECK: vmovupd %xmm8, %xmm0
1778 // CHECK: encoding: [0xc5,0x79,0x11,0xc0]
1779 vmovupd.s %xmm8, %xmm0
1781 // __asm __volatile(
1782 // "pushf \n\t"
1783 // "popf \n\t"
1784 // "rep \n\t"
1785 // ".byte 0x0f, 0xa7, 0xd0"
1786 // );
1787 // CHECK: pushfq
1788 // CHECK-NEXT: popfq
1789 // CHECK-NEXT: rep
1790 // CHECK-NEXT: .byte 15
1791 // CHECK-NEXT: .byte 167
1792 // CHECK-NEXT: .byte 208
1793 pushfq
1794 popfq
1796 .byte 15
1797 .byte 167
1798 .byte 208
1800 // CHECK: lock
1801 // CHECK: cmpxchgl
1802 cmp $0, %edx
1803 je 1f
1804 lock
1805 1: cmpxchgl %ecx,(%rdi)
1807 // CHECK: rep
1808 // CHECK-NEXT: byte
1810 .byte 0xa4 # movsb
1812 // CHECK: lock
1813 // This line has to be the last one in the file
1814 lock
1816 // CHECK: enqcmd 268435456(%ebp,%r14d,8), %esi
1817 // CHECK: encoding: [0x67,0xf2,0x42,0x0f,0x38,0xf8,0xb4,0xf5,0x00,0x00,0x00,0x10]
1818 enqcmd 0x10000000(%ebp, %r14d, 8), %esi
1820 // CHECK: enqcmd (%r9d), %edi
1821 // CHECK: encoding: [0x67,0xf2,0x41,0x0f,0x38,0xf8,0x39]
1822 enqcmd (%r9d), %edi
1824 // CHECK: enqcmd 8128(%ecx), %eax
1825 // CHECK: encoding: [0x67,0xf2,0x0f,0x38,0xf8,0x81,0xc0,0x1f,0x00,0x00]
1826 enqcmd 8128(%ecx), %eax
1828 // CHECK: enqcmd -8192(%edx), %ebx
1829 // CHECK: encoding: [0x67,0xf2,0x0f,0x38,0xf8,0x9a,0x00,0xe0,0xff,0xff]
1830 enqcmd -8192(%edx), %ebx
1832 // CHECK: enqcmd 485498096, %eax
1833 // CHECK: encoding: [0x67,0xf2,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1834 enqcmd 485498096, %eax
1836 // CHECK: enqcmds 268435456(%ebp,%r14d,8), %esi
1837 // CHECK: encoding: [0x67,0xf3,0x42,0x0f,0x38,0xf8,0xb4,0xf5,0x00,0x00,0x00,0x10]
1838 enqcmds 0x10000000(%ebp, %r14d, 8), %esi
1840 // CHECK: enqcmds (%r9d), %edi
1841 // CHECK: encoding: [0x67,0xf3,0x41,0x0f,0x38,0xf8,0x39]
1842 enqcmds (%r9d), %edi
1844 // CHECK: enqcmds 8128(%ecx), %eax
1845 // CHECK: encoding: [0x67,0xf3,0x0f,0x38,0xf8,0x81,0xc0,0x1f,0x00,0x00]
1846 enqcmds 8128(%ecx), %eax
1848 // CHECK: enqcmds -8192(%edx), %ebx
1849 // CHECK: encoding: [0x67,0xf3,0x0f,0x38,0xf8,0x9a,0x00,0xe0,0xff,0xff]
1850 enqcmds -8192(%edx), %ebx
1852 // CHECK: enqcmds 485498096, %eax
1853 // CHECK: encoding: [0x67,0xf3,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1854 enqcmds 485498096, %eax
1856 // CHECK: enqcmd 268435456(%rbp,%r14,8), %rsi
1857 // CHECK: encoding: [0xf2,0x42,0x0f,0x38,0xf8,0xb4,0xf5,0x00,0x00,0x00,0x10]
1858 enqcmd 0x10000000(%rbp, %r14, 8), %rsi
1860 // CHECK: enqcmd (%r9), %rdi
1861 // CHECK: encoding: [0xf2,0x41,0x0f,0x38,0xf8,0x39]
1862 enqcmd (%r9), %rdi
1864 // CHECK: enqcmd 8128(%rcx), %rax
1865 // CHECK: encoding: [0xf2,0x0f,0x38,0xf8,0x81,0xc0,0x1f,0x00,0x00]
1866 enqcmd 8128(%rcx), %rax
1868 // CHECK: enqcmd -8192(%rdx), %rbx
1869 // CHECK: encoding: [0xf2,0x0f,0x38,0xf8,0x9a,0x00,0xe0,0xff,0xff]
1870 enqcmd -8192(%rdx), %rbx
1872 // CHECK: enqcmd 485498096, %rax
1873 // CHECK: encoding: [0xf2,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1874 enqcmd 485498096, %rax
1876 // CHECK: enqcmds 268435456(%rbp,%r14,8), %rsi
1877 // CHECK: encoding: [0xf3,0x42,0x0f,0x38,0xf8,0xb4,0xf5,0x00,0x00,0x00,0x10]
1878 enqcmds 0x10000000(%rbp, %r14, 8), %rsi
1880 // CHECK: enqcmds (%r9), %rdi
1881 // CHECK: encoding: [0xf3,0x41,0x0f,0x38,0xf8,0x39]
1882 enqcmds (%r9), %rdi
1884 // CHECK: enqcmds 8128(%rcx), %rax
1885 // CHECK: encoding: [0xf3,0x0f,0x38,0xf8,0x81,0xc0,0x1f,0x00,0x00]
1886 enqcmds 8128(%rcx), %rax
1888 // CHECK: enqcmds -8192(%rdx), %rbx
1889 // CHECK: encoding: [0xf3,0x0f,0x38,0xf8,0x9a,0x00,0xe0,0xff,0xff]
1890 enqcmds -8192(%rdx), %rbx
1892 // CHECK: enqcmds 485498096, %rax
1893 // CHECK: encoding: [0xf3,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1894 enqcmds 485498096, %rax
1896 // CHECK: serialize
1897 // CHECK: encoding: [0x0f,0x01,0xe8]
1898 serialize
1900 // CHECK: xsusldtrk
1901 // CHECK: encoding: [0xf2,0x0f,0x01,0xe8]
1902 xsusldtrk
1904 // CHECK: xresldtrk
1905 // CHECK: encoding: [0xf2,0x0f,0x01,0xe9]
1906 xresldtrk
1908 // CHECK: ud1q %rdx, %rdi
1909 // CHECK: encoding: [0x48,0x0f,0xb9,0xfa]
1910 ud1 %rdx, %rdi
1912 // CHECK: ud1q (%rbx), %rcx
1913 // CHECK: encoding: [0x48,0x0f,0xb9,0x0b]
1914 ud2b (%rbx), %rcx
1916 // Requires no displacement by default
1917 // CHECK: movl $1, (%rax)
1918 // CHECK: encoding: [0xc7,0x00,0x01,0x00,0x00,0x00]
1919 // CHECK: movl $1, (%rax)
1920 // CHECK: encoding: [0xc7,0x40,0x00,0x01,0x00,0x00,0x00]
1921 // CHECK: movl $1, (%rax)
1922 // CHECK: encoding: [0xc7,0x80,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00]
1923 // CHECK: movl $1, (%rax)
1924 // CHECK: encoding: [0xc7,0x40,0x00,0x01,0x00,0x00,0x00]
1925 // CHECK: movl $1, (%rax)
1926 // CHECK: encoding: [0xc7,0x80,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00]
1927 movl $1, (%rax)
1928 {disp8} movl $1, (%rax)
1929 {disp32} movl $1, (%rax)
1930 movl.d8 $1, (%rax)
1931 movl.d32 $1, (%rax)
1933 // Requires disp8 by default
1934 // CHECK: movl $1, (%rbp)
1935 // CHECK: encoding: [0xc7,0x45,0x00,0x01,0x00,0x00,0x00]
1936 // CHECK: movl $1, (%rbp)
1937 // CHECK: encoding: [0xc7,0x45,0x00,0x01,0x00,0x00,0x00]
1938 // CHECK: movl $1, (%rbp)
1939 // CHECK: encoding: [0xc7,0x85,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00]
1940 movl $1, (%rbp)
1941 {disp8} movl $1, (%rbp)
1942 {disp32} movl $1, (%rbp)
1944 // Requires disp8 by default
1945 // CHECK: movl $1, (%r13)
1946 // CHECK: encoding: [0x41,0xc7,0x45,0x00,0x01,0x00,0x00,0x00]
1947 // CHECK: movl $1, (%r13)
1948 // CHECK: encoding: [0x41,0xc7,0x45,0x00,0x01,0x00,0x00,0x00]
1949 // CHECK: movl $1, (%r13)
1950 // CHECK: encoding: [0x41,0xc7,0x85,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00]
1951 movl $1, (%r13)
1952 {disp8} movl $1, (%r13)
1953 {disp32} movl $1, (%r13)
1955 // Requires disp8 by default
1956 // CHECK: movl $1, 8(%rax)
1957 // CHECK: encoding: [0xc7,0x40,0x08,0x01,0x00,0x00,0x00]
1958 // CHECK: movl $1, 8(%rax)
1959 // CHECK: encoding: [0xc7,0x40,0x08,0x01,0x00,0x00,0x00]
1960 // CHECK: movl $1, 8(%rax)
1961 // CHECK: encoding: [0xc7,0x80,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00]
1962 movl $1, 8(%rax)
1963 {disp8} movl $1, 8(%rax)
1964 {disp32} movl $1, 8(%rax)
1966 // Requires no displacement by default
1967 // CHECK: movl $1, (%rax,%rbx,4)
1968 // CHECK: encoding: [0xc7,0x04,0x98,0x01,0x00,0x00,0x00]
1969 // CHECK: movl $1, (%rax,%rbx,4)
1970 // CHECK: encoding: [0xc7,0x44,0x98,0x00,0x01,0x00,0x00,0x00]
1971 // CHECK: movl $1, (%rax,%rbx,4)
1972 // CHECK: encoding: [0xc7,0x84,0x98,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00]
1973 movl $1, (%rax,%rbx,4)
1974 {disp8} movl $1, (%rax,%rbx,4)
1975 {disp32} movl $1, (%rax,%rbx,4)
1977 // Requires disp8 by default.
1978 // CHECK: movl $1, 8(%rax,%rbx,4)
1979 // CHECK: encoding: [0xc7,0x44,0x98,0x08,0x01,0x00,0x00,0x00]
1980 // CHECK: movl $1, 8(%rax,%rbx,4)
1981 // CHECK: encoding: [0xc7,0x44,0x98,0x08,0x01,0x00,0x00,0x00]
1982 // CHECK: movl $1, 8(%rax,%rbx,4)
1983 // CHECK: encoding: [0xc7,0x84,0x98,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00]
1984 movl $1, 8(%rax,%rbx,4)
1985 {disp8} movl $1, 8(%rax,%rbx,4)
1986 {disp32} movl $1, 8(%rax,%rbx,4)
1988 // Requires disp8 by default.
1989 // CHECK: movl $1, (%rbp,%rbx,4)
1990 // CHECK: encoding: [0xc7,0x44,0x9d,0x00,0x01,0x00,0x00,0x00]
1991 // CHECK: movl $1, (%rbp,%rbx,4)
1992 // CHECK: encoding: [0xc7,0x44,0x9d,0x00,0x01,0x00,0x00,0x00]
1993 // CHECK: movl $1, (%rbp,%rbx,4)
1994 // CHECK: encoding: [0xc7,0x84,0x9d,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00]
1995 movl $1, (%rbp,%rbx,4)
1996 {disp8} movl $1, (%rbp,%rbx,4)
1997 {disp32} movl $1, (%rbp,%rbx,4)
1999 // Requires disp8 by default.
2000 // CHECK: movl $1, (%r13,%rbx,4)
2001 // CHECK: encoding: [0x41,0xc7,0x44,0x9d,0x00,0x01,0x00,0x00,0x00]
2002 // CHECK: movl $1, (%r13,%rbx,4)
2003 // CHECK: encoding: [0x41,0xc7,0x44,0x9d,0x00,0x01,0x00,0x00,0x00]
2004 // CHECK: movl $1, (%r13,%rbx,4)
2005 // CHECK: encoding: [0x41,0xc7,0x84,0x9d,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00]
2006 movl $1, (%r13,%rbx,4)
2007 {disp8} movl $1, (%r13,%rbx,4)
2008 {disp32} movl $1, (%r13,%rbx,4)
2010 // CHECK: seamcall
2011 // CHECK: encoding: [0x66,0x0f,0x01,0xcf]
2012 seamcall
2014 // CHECK: seamret
2015 // CHECK: encoding: [0x66,0x0f,0x01,0xcd]
2016 seamret
2018 // CHECK: seamops
2019 // CHECK: encoding: [0x66,0x0f,0x01,0xce]
2020 seamops
2022 // CHECK: tdcall
2023 // CHECK: encoding: [0x66,0x0f,0x01,0xcc]
2024 tdcall
2026 // CHECK: hreset
2027 // CHECK: encoding: [0xf3,0x0f,0x3a,0xf0,0xc0,0x01]
2028 hreset $1
2030 // CHECK: uiret
2031 // CHECK: encoding: [0xf3,0x0f,0x01,0xec]
2032 uiret
2034 // CHECK: clui
2035 // CHECK: encoding: [0xf3,0x0f,0x01,0xee]
2036 clui
2038 // CHECK: stui
2039 // CHECK: encoding: [0xf3,0x0f,0x01,0xef]
2040 stui
2042 // CHECK: testui
2043 // CHECK: encoding: [0xf3,0x0f,0x01,0xed]
2044 testui
2046 // CHECK: senduipi %rax
2047 // CHECK: encoding: [0xf3,0x0f,0xc7,0xf0]
2048 senduipi %rax
2050 // CHECK: senduipi %rdx
2051 // CHECK: encoding: [0xf3,0x0f,0xc7,0xf2]
2052 senduipi %rdx
2054 // CHECK: senduipi %r8
2055 // CHECK: encoding: [0xf3,0x41,0x0f,0xc7,0xf0]
2056 senduipi %r8
2058 // CHECK: senduipi %r13
2059 // CHECK: encoding: [0xf3,0x41,0x0f,0xc7,0xf5]
2060 senduipi %r13