[MC] Align fragments when -mc-relax-all flag is used
[oota-llvm.git] / test / MC / X86 / x86-16.s
1 // RUN: llvm-mc -triple i386-unknown-unknown-code16 --show-encoding %s | FileCheck %s
2
3         movl $0x12345678, %ebx
4 // CHECK: movl
5 // CHECK: encoding: [0x66,0xbb,0x78,0x56,0x34,0x12]
6         pause
7 // CHECK: pause
8 // CHECK: encoding: [0xf3,0x90]
9         sfence
10 // CHECK: sfence
11 // CHECK: encoding: [0x0f,0xae,0xf8]
12         lfence
13 // CHECK: lfence
14 // CHECK: encoding: [0x0f,0xae,0xe8]
15         mfence
16         stgi
17 // CHECK: stgi
18 // CHECK: encoding: [0x0f,0x01,0xdc]
19         clgi
20 // CHECK: clgi
21 // CHECK: encoding: [0x0f,0x01,0xdd]
22
23         rdtscp
24 // CHECK: rdtscp
25 // CHECK:  encoding: [0x0f,0x01,0xf9]
26
27
28 // CHECK: movl  %eax, 16(%ebp)          # encoding: [0x67,0x66,0x89,0x45,0x10]
29         movl    %eax, 16(%ebp)
30 // CHECK: movl  %eax, -16(%ebp)          # encoding: [0x67,0x66,0x89,0x45,0xf0]
31         movl    %eax, -16(%ebp)
32
33 // CHECK: testb %bl, %cl                # encoding: [0x84,0xd9]
34         testb %bl, %cl
35
36 // CHECK: cmpl  %eax, %ebx              # encoding: [0x66,0x39,0xc3]
37         cmpl %eax, %ebx
38
39 // CHECK: addw  %ax, %ax                # encoding: [0x01,0xc0]
40         addw %ax, %ax
41
42 // CHECK: shrl  %eax                    # encoding: [0x66,0xd1,0xe8]
43         shrl $1, %eax
44
45 // CHECK: shll  %eax                    # encoding: [0x66,0xd1,0xe0]
46         sall $1, %eax
47 // CHECK: shll  %eax                    # encoding: [0x66,0xd1,0xe0]
48         sal $1, %eax
49
50 // moffset forms of moves
51
52 // CHECK: movb 0, %al  # encoding: [0xa0,0x00,0x00]
53 movb    0, %al
54
55 // CHECK: movw 0, %ax  # encoding: [0xa1,0x00,0x00]
56 movw    0, %ax
57
58 // CHECK: movl 0, %eax  # encoding: [0x66,0xa1,0x00,0x00]
59 movl    0, %eax
60
61 into
62 // CHECK: into
63 // CHECK:  encoding: [0xce]
64 int3
65 // CHECK: int3
66 // CHECK:  encoding: [0xcc]
67 int $4
68 // CHECK: int $4
69 // CHECK:  encoding: [0xcd,0x04]
70 int $255
71 // CHECK: int $255
72 // CHECK:  encoding: [0xcd,0xff]
73
74 // CHECK: pushfw        # encoding: [0x9c]
75         pushf
76 // CHECK: pushfl        # encoding: [0x66,0x9c]
77         pushfl
78 // CHECK: popfw         # encoding: [0x9d]
79         popf
80 // CHECK: popfl         # encoding: [0x66,0x9d]
81         popfl
82
83 retl
84 // CHECK: ret
85 // CHECK:  encoding: [0x66,0xc3]
86
87 // CHECK: cmoval        %eax, %edx
88 // CHECK:  encoding: [0x66,0x0f,0x47,0xd0]
89                 cmoval  %eax,%edx
90
91 // CHECK: cmovael       %eax, %edx
92 // CHECK:  encoding: [0x66,0x0f,0x43,0xd0]
93                 cmovael %eax,%edx
94
95 // CHECK: cmovbel       %eax, %edx
96 // CHECK:  encoding: [0x66,0x0f,0x46,0xd0]
97                 cmovbel %eax,%edx
98
99 // CHECK: cmovbl        %eax, %edx
100 // CHECK:  encoding: [0x66,0x0f,0x42,0xd0]
101                 cmovbl  %eax,%edx
102
103 // CHECK: cmovbw %bx, %bx
104 cmovnae %bx,%bx
105
106
107 // CHECK: cmovbel       %eax, %edx
108 // CHECK:  encoding: [0x66,0x0f,0x46,0xd0]
109                 cmovbel %eax,%edx
110
111 // CHECK: cmovbl        %eax, %edx
112 // CHECK:  encoding: [0x66,0x0f,0x42,0xd0]
113                 cmovcl  %eax,%edx
114
115 // CHECK: cmovel        %eax, %edx
116 // CHECK:  encoding: [0x66,0x0f,0x44,0xd0]
117                 cmovel  %eax,%edx
118
119 // CHECK: cmovgl        %eax, %edx
120 // CHECK:  encoding: [0x66,0x0f,0x4f,0xd0]
121                 cmovgl  %eax,%edx
122
123 // CHECK: cmovgel       %eax, %edx
124 // CHECK:  encoding: [0x66,0x0f,0x4d,0xd0]
125                 cmovgel %eax,%edx
126
127 // CHECK: cmovll        %eax, %edx
128 // CHECK:  encoding: [0x66,0x0f,0x4c,0xd0]
129                 cmovll  %eax,%edx
130
131 // CHECK: cmovlel       %eax, %edx
132 // CHECK:  encoding: [0x66,0x0f,0x4e,0xd0]
133                 cmovlel %eax,%edx
134
135 // CHECK: cmovbel       %eax, %edx
136 // CHECK:  encoding: [0x66,0x0f,0x46,0xd0]
137                 cmovnal %eax,%edx
138
139 // CHECK: cmovnel       %eax, %edx
140 // CHECK:  encoding: [0x66,0x0f,0x45,0xd0]
141                 cmovnel %eax,%edx
142
143 // CHECK: cmovael       %eax, %edx
144 // CHECK:  encoding: [0x66,0x0f,0x43,0xd0]
145                 cmovnbl %eax,%edx
146
147 // CHECK: cmoval        %eax, %edx
148 // CHECK:  encoding: [0x66,0x0f,0x47,0xd0]
149                 cmovnbel        %eax,%edx
150
151 // CHECK: cmovael       %eax, %edx
152 // CHECK:  encoding: [0x66,0x0f,0x43,0xd0]
153                 cmovncl %eax,%edx
154
155 // CHECK: cmovnel       %eax, %edx
156 // CHECK:  encoding: [0x66,0x0f,0x45,0xd0]
157                 cmovnel %eax,%edx
158
159 // CHECK: cmovlel       %eax, %edx
160 // CHECK:  encoding: [0x66,0x0f,0x4e,0xd0]
161                 cmovngl %eax,%edx
162
163 // CHECK: cmovgel       %eax, %edx
164 // CHECK:  encoding: [0x66,0x0f,0x4d,0xd0]
165                 cmovnl  %eax,%edx
166
167 // CHECK: cmovnel       %eax, %edx
168 // CHECK:  encoding: [0x66,0x0f,0x45,0xd0]
169                 cmovnel %eax,%edx
170
171 // CHECK: cmovlel       %eax, %edx
172 // CHECK:  encoding: [0x66,0x0f,0x4e,0xd0]
173                 cmovngl %eax,%edx
174
175 // CHECK: cmovll        %eax, %edx
176 // CHECK:  encoding: [0x66,0x0f,0x4c,0xd0]
177                 cmovngel        %eax,%edx
178
179 // CHECK: cmovgel       %eax, %edx
180 // CHECK:  encoding: [0x66,0x0f,0x4d,0xd0]
181                 cmovnll %eax,%edx
182
183 // CHECK: cmovgl        %eax, %edx
184 // CHECK:  encoding: [0x66,0x0f,0x4f,0xd0]
185                 cmovnlel        %eax,%edx
186
187 // CHECK: cmovnol       %eax, %edx
188 // CHECK:  encoding: [0x66,0x0f,0x41,0xd0]
189                 cmovnol %eax,%edx
190
191 // CHECK: cmovnpl       %eax, %edx
192 // CHECK:  encoding: [0x66,0x0f,0x4b,0xd0]
193                 cmovnpl %eax,%edx
194
195 // CHECK: cmovnsl       %eax, %edx
196 // CHECK:  encoding: [0x66,0x0f,0x49,0xd0]
197                 cmovnsl %eax,%edx
198
199 // CHECK: cmovnel       %eax, %edx
200 // CHECK:  encoding: [0x66,0x0f,0x45,0xd0]
201                 cmovnzl %eax,%edx
202
203 // CHECK: cmovol        %eax, %edx
204 // CHECK:  encoding: [0x66,0x0f,0x40,0xd0]
205                 cmovol  %eax,%edx
206
207 // CHECK: cmovpl        %eax, %edx
208 // CHECK:  encoding: [0x66,0x0f,0x4a,0xd0]
209                 cmovpl  %eax,%edx
210
211 // CHECK: cmovsl        %eax, %edx
212 // CHECK:  encoding: [0x66,0x0f,0x48,0xd0]
213                 cmovsl  %eax,%edx
214
215 // CHECK: cmovel        %eax, %edx
216 // CHECK:  encoding: [0x66,0x0f,0x44,0xd0]
217                 cmovzl  %eax,%edx
218
219 // CHECK: fmul  %st(0)
220 // CHECK:  encoding: [0xd8,0xc8]
221         fmul %st(0), %st
222
223 // CHECK: fadd  %st(0)
224 // CHECK:  encoding: [0xd8,0xc0]
225         fadd %st(0), %st
226
227 // CHECK: fsub  %st(0)
228 // CHECK:  encoding: [0xd8,0xe0]
229         fsub %st(0), %st
230
231 // CHECK: fsubr %st(0)
232 // CHECK:  encoding: [0xd8,0xe8]
233         fsubr %st(0), %st
234
235 // CHECK: fdivr %st(0)
236 // CHECK:  encoding: [0xd8,0xf8]
237         fdivr %st(0), %st
238
239 // CHECK: fdiv  %st(0)
240 // CHECK:  encoding: [0xd8,0xf0]
241         fdiv %st(0), %st
242
243 // CHECK: movl  %cs, %eax
244 // CHECK:  encoding: [0x66,0x8c,0xc8]
245         movl %cs, %eax
246
247 // CHECK: movw  %cs, %ax
248 // CHECK:  encoding: [0x8c,0xc8]
249         movw %cs, %ax
250
251 // CHECK: movl  %cs, (%eax)
252 // CHECK:  encoding: [0x67,0x66,0x8c,0x08]
253         movl %cs, (%eax)
254
255 // CHECK: movw  %cs, (%eax)
256 // CHECK:  encoding: [0x67,0x8c,0x08]
257         movw %cs, (%eax)
258
259 // CHECK: movl  %eax, %cs
260 // CHECK:  encoding: [0x66,0x8e,0xc8]
261         movl %eax, %cs
262
263 // CHECK: movl  (%eax), %cs
264 // CHECK:  encoding: [0x67,0x66,0x8e,0x08]
265         movl (%eax), %cs
266
267 // CHECK: movw  (%eax), %cs
268 // CHECK:  encoding: [0x67,0x8e,0x08]
269         movw (%eax), %cs
270
271 // CHECK: movl  %cr0, %eax
272 // CHECK:  encoding: [0x0f,0x20,0xc0]
273         movl %cr0,%eax
274
275 // CHECK: movl  %cr1, %eax
276 // CHECK:  encoding: [0x0f,0x20,0xc8]
277         movl %cr1,%eax
278
279 // CHECK: movl  %cr2, %eax
280 // CHECK:  encoding: [0x0f,0x20,0xd0]
281         movl %cr2,%eax
282
283 // CHECK: movl  %cr3, %eax
284 // CHECK:  encoding: [0x0f,0x20,0xd8]
285         movl %cr3,%eax
286
287 // CHECK: movl  %cr4, %eax
288 // CHECK:  encoding: [0x0f,0x20,0xe0]
289         movl %cr4,%eax
290
291 // CHECK: movl  %dr0, %eax
292 // CHECK:  encoding: [0x0f,0x21,0xc0]
293         movl %dr0,%eax
294
295 // CHECK: movl  %dr1, %eax
296 // CHECK:  encoding: [0x0f,0x21,0xc8]
297         movl %dr1,%eax
298
299 // CHECK: movl  %dr1, %eax
300 // CHECK:  encoding: [0x0f,0x21,0xc8]
301         movl %dr1,%eax
302
303 // CHECK: movl  %dr2, %eax
304 // CHECK:  encoding: [0x0f,0x21,0xd0]
305         movl %dr2,%eax
306
307 // CHECK: movl  %dr3, %eax
308 // CHECK:  encoding: [0x0f,0x21,0xd8]
309         movl %dr3,%eax
310
311 // CHECK: movl  %dr4, %eax
312 // CHECK:  encoding: [0x0f,0x21,0xe0]
313         movl %dr4,%eax
314
315 // CHECK: movl  %dr5, %eax
316 // CHECK:  encoding: [0x0f,0x21,0xe8]
317         movl %dr5,%eax
318
319 // CHECK: movl  %dr6, %eax
320 // CHECK:  encoding: [0x0f,0x21,0xf0]
321         movl %dr6,%eax
322
323 // CHECK: movl  %dr7, %eax
324 // CHECK:  encoding: [0x0f,0x21,0xf8]
325         movl %dr7,%eax
326
327 // CHECK: wait
328 // CHECK:  encoding: [0x9b]
329         fwait
330
331 // CHECK: [0x66,0x65,0xa1,0x7c,0x00]
332         movl    %gs:124, %eax
333
334 // CHECK: pusha
335 // CHECK:  encoding: [0x60]
336                 pusha
337
338 // CHECK: popa
339 // CHECK:  encoding: [0x61]
340                 popa
341
342 // CHECK: pushaw
343 // CHECK:  encoding: [0x60]
344                 pushaw
345
346 // CHECK: popaw
347 // CHECK:  encoding: [0x61]
348                 popaw
349
350 // CHECK: pushal
351 // CHECK:  encoding: [0x66,0x60]
352                 pushal
353
354 // CHECK: popal
355 // CHECK:  encoding: [0x66,0x61]
356                 popal
357
358 // CHECK: jmpw *8(%eax)
359 // CHECK:   encoding: [0x67,0xff,0x60,0x08]
360         jmp     *8(%eax)
361
362 // CHECK: jmpl *8(%eax)
363 // CHECK:   encoding: [0x67,0x66,0xff,0x60,0x08]
364         jmpl    *8(%eax)
365
366 // CHECK: lcalll $2, $4660
367 // CHECK:   encoding: [0x66,0x9a,0x34,0x12,0x00,0x00,0x02,0x00]
368 lcalll $0x2, $0x1234
369
370
371 L1:
372   jcxz L1
373 // CHECK: jcxz L1
374 // CHECK:   encoding: [0xe3,A]
375   jecxz L1
376 // CHECK: jecxz L1
377 // CHECK:   encoding: [0x67,0xe3,A]
378
379 iret
380 // CHECK: iretw
381 // CHECK: encoding: [0xcf]
382 iretw
383 // CHECK: iretw
384 // CHECK: encoding: [0xcf]
385 iretl
386 // CHECK: iretl
387 // CHECK: encoding: [0x66,0xcf]
388
389 sysret
390 // CHECK: sysretl
391 // CHECK: encoding: [0x0f,0x07]
392 sysretl
393 // CHECK: sysretl
394 // CHECK: encoding: [0x0f,0x07]
395
396 testl   %ecx, -24(%ebp)
397 // CHECK: testl -24(%ebp), %ecx
398 testl   -24(%ebp), %ecx
399 // CHECK: testl -24(%ebp), %ecx
400
401
402 push %cs
403 // CHECK: pushw %cs
404 // CHECK: encoding: [0x0e]
405 push %ds
406 // CHECK: pushw %ds
407 // CHECK: encoding: [0x1e]
408 push %ss
409 // CHECK: pushw %ss
410 // CHECK: encoding: [0x16]
411 push %es
412 // CHECK: pushw %es
413 // CHECK: encoding: [0x06]
414 push %fs
415 // CHECK: pushw %fs
416 // CHECK: encoding: [0x0f,0xa0]
417 push %gs
418 // CHECK: pushw %gs
419 // CHECK: encoding: [0x0f,0xa8]
420
421 pushw %cs
422 // CHECK: pushw %cs
423 // CHECK: encoding: [0x0e]
424 pushw %ds
425 // CHECK: pushw %ds
426 // CHECK: encoding: [0x1e]
427 pushw %ss
428 // CHECK: pushw %ss
429 // CHECK: encoding: [0x16]
430 pushw %es
431 // CHECK: pushw %es
432 // CHECK: encoding: [0x06]
433 pushw %fs
434 // CHECK: pushw %fs
435 // CHECK: encoding: [0x0f,0xa0]
436 pushw %gs
437 // CHECK: pushw %gs
438 // CHECK: encoding: [0x0f,0xa8]
439
440 pushl %cs
441 // CHECK: pushl %cs
442 // CHECK: encoding: [0x66,0x0e]
443 pushl %ds
444 // CHECK: pushl %ds
445 // CHECK: encoding: [0x66,0x1e]
446 pushl %ss
447 // CHECK: pushl %ss
448 // CHECK: encoding: [0x66,0x16]
449 pushl %es
450 // CHECK: pushl %es
451 // CHECK: encoding: [0x66,0x06]
452 pushl %fs
453 // CHECK: pushl %fs
454 // CHECK: encoding: [0x66,0x0f,0xa0]
455 pushl %gs
456 // CHECK: pushl %gs
457 // CHECK: encoding: [0x66,0x0f,0xa8]
458
459 pop %ss
460 // CHECK: popw  %ss
461 // CHECK: encoding: [0x17]
462 pop %ds
463 // CHECK: popw  %ds
464 // CHECK: encoding: [0x1f]
465 pop %es
466 // CHECK: popw  %es
467 // CHECK: encoding: [0x07]
468
469 popl %ss
470 // CHECK: popl  %ss
471 // CHECK: encoding: [0x66,0x17]
472 popl %ds
473 // CHECK: popl  %ds
474 // CHECK: encoding: [0x66,0x1f]
475 popl %es
476 // CHECK: popl  %es
477 // CHECK: encoding: [0x66,0x07]
478
479 pushfd
480 // CHECK: pushfl
481 popfd
482 // CHECK: popfl
483 pushfl
484 // CHECK: pushfl
485 popfl
486 // CHECK: popfl
487
488
489         setc    %bl
490         setnae  %bl
491         setnb   %bl
492         setnc   %bl
493         setna   %bl
494         setnbe  %bl
495         setpe   %bl
496         setpo   %bl
497         setnge  %bl
498         setnl   %bl
499         setng   %bl
500         setnle  %bl
501
502         setneb  %cl // CHECK: setne %cl
503         setcb   %bl // CHECK: setb %bl
504         setnaeb %bl // CHECK: setb %bl
505
506
507 // CHECK: lcalll        $31438, $31438
508 // CHECK: lcalll        $31438, $31438
509 // CHECK: ljmpl $31438, $31438
510 // CHECK: ljmpl $31438, $31438
511
512 calll   $0x7ace,$0x7ace
513 lcalll  $0x7ace,$0x7ace
514 jmpl    $0x7ace,$0x7ace
515 ljmpl   $0x7ace,$0x7ace
516
517 // CHECK: lcallw        $31438, $31438
518 // CHECK: lcallw        $31438, $31438
519 // CHECK: ljmpw $31438, $31438
520 // CHECK: ljmpw $31438, $31438
521
522 callw   $0x7ace,$0x7ace
523 lcallw  $0x7ace,$0x7ace
524 jmpw    $0x7ace,$0x7ace
525 ljmpw   $0x7ace,$0x7ace
526
527 // CHECK: lcallw        $31438, $31438
528 // CHECK: lcallw        $31438, $31438
529 // CHECK: ljmpw $31438, $31438
530 // CHECK: ljmpw $31438, $31438
531
532 call    $0x7ace,$0x7ace
533 lcall   $0x7ace,$0x7ace
534 jmp     $0x7ace,$0x7ace
535 ljmp    $0x7ace,$0x7ace
536
537 // CHECK: calll a
538  calll a
539
540 // CHECK:       incb    %al # encoding: [0xfe,0xc0]
541         incb %al
542
543 // CHECK:       incw    %ax # encoding: [0x40]
544         incw %ax
545
546 // CHECK:       incl    %eax # encoding: [0x66,0x40]
547         incl %eax
548
549 // CHECK:       decb    %al # encoding: [0xfe,0xc8]
550         decb %al
551
552 // CHECK:       decw    %ax # encoding: [0x48]
553         decw %ax
554
555 // CHECK:       decl    %eax # encoding: [0x66,0x48]
556         decl %eax
557
558 // CHECK: pshufw $14, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x0e]
559 pshufw $14, %mm4, %mm0
560
561 // CHECK: pshufw $90, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x5a]
562 pshufw $90, %mm4, %mm0
563
564 // CHECK: aaa
565 // CHECK:  encoding: [0x37]
566                 aaa
567
568 // CHECK: aad   $1
569 // CHECK:  encoding: [0xd5,0x01]
570                 aad     $1
571
572 // CHECK: aad
573 // CHECK:  encoding: [0xd5,0x0a]
574                 aad     $0xA
575
576 // CHECK: aad
577 // CHECK:  encoding: [0xd5,0x0a]
578                 aad
579
580 // CHECK: aam   $2
581 // CHECK:  encoding: [0xd4,0x02]
582                 aam     $2
583
584 // CHECK: aam
585 // CHECK:  encoding: [0xd4,0x0a]
586                 aam     $0xA
587
588 // CHECK: aam
589 // CHECK:  encoding: [0xd4,0x0a]
590                 aam
591
592 // CHECK: aas
593 // CHECK:  encoding: [0x3f]
594                 aas
595
596 // CHECK: daa
597 // CHECK:  encoding: [0x27]
598                 daa
599
600 // CHECK: das
601 // CHECK:  encoding: [0x2f]
602                 das
603
604 // CHECK: retw  $31438
605 // CHECK:  encoding: [0xc2,0xce,0x7a]
606                 retw    $0x7ace
607
608 // CHECK: lretw $31438
609 // CHECK:  encoding: [0xca,0xce,0x7a]
610                 lretw   $0x7ace
611
612 // CHECK: retw  $31438
613 // CHECK:  encoding: [0xc2,0xce,0x7a]
614                 ret     $0x7ace
615
616 // CHECK: lretw $31438
617 // CHECK:  encoding: [0xca,0xce,0x7a]
618                 lret    $0x7ace
619
620 // CHECK: retl  $31438
621 // CHECK:  encoding: [0x66,0xc2,0xce,0x7a]
622                 retl    $0x7ace
623
624 // CHECK: lretl $31438
625 // CHECK:  encoding: [0x66,0xca,0xce,0x7a]
626                 lretl   $0x7ace
627
628 // CHECK: bound 2(%eax), %bx
629 // CHECK:  encoding: [0x67,0x62,0x58,0x02]
630                 bound   2(%eax),%bx
631
632 // CHECK: bound 4(%ebx), %ecx
633 // CHECK:  encoding: [0x67,0x66,0x62,0x4b,0x04]
634                 bound   4(%ebx),%ecx
635
636 // CHECK: arpl  %bx, %bx
637 // CHECK:  encoding: [0x63,0xdb]
638                 arpl    %bx,%bx
639
640 // CHECK: arpl  %bx, 6(%ecx)
641 // CHECK:  encoding: [0x67,0x63,0x59,0x06]
642                 arpl    %bx,6(%ecx)
643
644 // CHECK: lgdtw 4(%eax)
645 // CHECK:  encoding: [0x67,0x0f,0x01,0x50,0x04]
646                 lgdtw   4(%eax)
647
648 // CHECK: lgdtw 4(%eax)
649 // CHECK:  encoding: [0x67,0x0f,0x01,0x50,0x04]
650                 lgdt    4(%eax)
651
652 // CHECK: lgdtl 4(%eax)
653 // CHECK:  encoding: [0x67,0x66,0x0f,0x01,0x50,0x04]
654                 lgdtl   4(%eax)
655
656 // CHECK: lidtw 4(%eax)
657 // CHECK:  encoding: [0x67,0x0f,0x01,0x58,0x04]
658                 lidtw   4(%eax)
659
660 // CHECK: lidtw 4(%eax)
661 // CHECK:  encoding: [0x67,0x0f,0x01,0x58,0x04]
662                 lidt    4(%eax)
663
664 // CHECK: lidtl 4(%eax)
665 // CHECK:  encoding: [0x67,0x66,0x0f,0x01,0x58,0x04]
666                 lidtl   4(%eax)
667
668 // CHECK: sgdtw 4(%eax)
669 // CHECK:  encoding: [0x67,0x0f,0x01,0x40,0x04]
670                 sgdtw   4(%eax)
671
672 // CHECK: sgdtw 4(%eax)
673 // CHECK:  encoding: [0x67,0x0f,0x01,0x40,0x04]
674                 sgdt    4(%eax)
675
676 // CHECK: sgdtl 4(%eax)
677 // CHECK:  encoding: [0x67,0x66,0x0f,0x01,0x40,0x04]
678                 sgdtl   4(%eax)
679
680 // CHECK: sidtw 4(%eax)
681 // CHECK:  encoding: [0x67,0x0f,0x01,0x48,0x04]
682                 sidtw   4(%eax)
683
684 // CHECK: sidtw 4(%eax)
685 // CHECK:  encoding: [0x67,0x0f,0x01,0x48,0x04]
686                 sidt    4(%eax)
687
688 // CHECK: sidtl 4(%eax)
689 // CHECK:  encoding: [0x67,0x66,0x0f,0x01,0x48,0x04]
690                 sidtl   4(%eax)
691
692 // CHECK: fcompi        %st(2)
693 // CHECK:  encoding: [0xdf,0xf2]
694                 fcompi  %st(2), %st
695
696 // CHECK: fcompi        %st(2)
697 // CHECK:  encoding: [0xdf,0xf2]
698                 fcompi  %st(2)
699
700 // CHECK: fcompi
701 // CHECK:  encoding: [0xdf,0xf1]
702                 fcompi
703
704 // CHECK: fucompi       %st(2)
705 // CHECK:  encoding: [0xdf,0xea]
706                 fucompi %st(2),%st
707
708 // CHECK: fucompi       %st(2)
709 // CHECK:  encoding: [0xdf,0xea]
710                 fucompi %st(2)
711
712 // CHECK: fucompi
713 // CHECK:  encoding: [0xdf,0xe9]
714                 fucompi
715
716 // CHECK: fldcw 32493
717 // CHECK:  encoding: [0xd9,0x2e,0xed,0x7e]
718                 fldcww  0x7eed
719
720 // CHECK: fldcw 32493
721 // CHECK:  encoding: [0xd9,0x2e,0xed,0x7e]
722                 fldcw   0x7eed
723
724 // CHECK: fnstcw        32493
725 // CHECK:  encoding: [0xd9,0x3e,0xed,0x7e]
726                 fnstcww 0x7eed
727
728 // CHECK: fnstcw        32493
729 // CHECK:  encoding: [0xd9,0x3e,0xed,0x7e]
730                 fnstcw  0x7eed
731
732 // CHECK: wait
733 // CHECK:  encoding: [0x9b]
734                 fstcww  0x7eed
735
736 // CHECK: wait
737 // CHECK:  encoding: [0x9b]
738                 fstcw   0x7eed
739
740 // CHECK: fnstsw        32493
741 // CHECK:  encoding: [0xdd,0x3e,0xed,0x7e]
742                 fnstsww 0x7eed
743
744 // CHECK: fnstsw        32493
745 // CHECK:  encoding: [0xdd,0x3e,0xed,0x7e]
746                 fnstsw  0x7eed
747
748 // CHECK: wait
749 // CHECK:  encoding: [0x9b]
750                 fstsww  0x7eed
751
752 // CHECK: wait
753 // CHECK:  encoding: [0x9b]
754                 fstsw   0x7eed
755
756 // CHECK: verr  32493
757 // CHECK:  encoding: [0x0f,0x00,0x26,0xed,0x7e]
758                 verrw   0x7eed
759
760 // CHECK: verr  32493
761 // CHECK:  encoding: [0x0f,0x00,0x26,0xed,0x7e]
762                 verr    0x7eed
763
764 // CHECK: wait
765 // CHECK:  encoding: [0x9b]
766                 fclex
767
768 // CHECK: fnclex
769 // CHECK:  encoding: [0xdb,0xe2]
770                 fnclex
771
772 // CHECK: ud2
773 // CHECK:  encoding: [0x0f,0x0b]
774                 ud2
775
776 // CHECK: ud2
777 // CHECK:  encoding: [0x0f,0x0b]
778                 ud2a
779
780 // CHECK: ud2b
781 // CHECK:  encoding: [0x0f,0xb9]
782                 ud2b
783
784 // CHECK: loope 0
785 // CHECK: encoding: [0xe1,A]
786         loopz 0
787
788 // CHECK: loopne 0
789 // CHECK: encoding: [0xe0,A]
790         loopnz 0
791
792 // CHECK: outsb (%si), %dx # encoding: [0x6e]
793 // CHECK: outsb
794 // CHECK: outsb
795         outsb
796         outsb   %ds:(%si), %dx
797         outsb   (%si), %dx
798
799 // CHECK: outsw (%si), %dx # encoding: [0x6f]
800 // CHECK: outsw
801 // CHECK: outsw
802         outsw
803         outsw   %ds:(%si), %dx
804         outsw   (%si), %dx
805
806 // CHECK: outsl (%si), %dx # encoding: [0x66,0x6f]
807 // CHECK: outsl
808         outsl
809         outsl   %ds:(%si), %dx
810         outsl   (%si), %dx
811
812 // CHECK: insb %dx, %es:(%di) # encoding: [0x6c]
813 // CHECK: insb
814         insb
815         insb    %dx, %es:(%di)
816
817 // CHECK: insw %dx, %es:(%di) # encoding: [0x6d]
818 // CHECK: insw
819         insw
820         insw    %dx, %es:(%di)
821
822 // CHECK: insl %dx, %es:(%di) # encoding: [0x66,0x6d]
823 // CHECK: insl
824         insl
825         insl    %dx, %es:(%di)
826
827 // CHECK: movsb (%si), %es:(%di) # encoding: [0xa4]
828 // CHECK: movsb
829 // CHECK: movsb
830         movsb
831         movsb   %ds:(%si), %es:(%di)
832         movsb   (%si), %es:(%di)
833
834 // CHECK: movsw (%si), %es:(%di) # encoding: [0xa5]
835 // CHECK: movsw
836 // CHECK: movsw
837         movsw
838         movsw   %ds:(%si), %es:(%di)
839         movsw   (%si), %es:(%di)
840
841 // CHECK: movsl (%si), %es:(%di) # encoding: [0x66,0xa5]
842 // CHECK: movsl
843 // CHECK: movsl
844         movsl
845         movsl   %ds:(%si), %es:(%di)
846         movsl   (%si), %es:(%di)
847
848 // CHECK: lodsb (%si), %al # encoding: [0xac]
849 // CHECK: lodsb
850 // CHECK: lodsb
851 // CHECK: lodsb
852 // CHECK: lodsb
853         lodsb
854         lodsb   %ds:(%si), %al
855         lodsb   (%si), %al
856         lods    %ds:(%si), %al
857         lods    (%si), %al
858
859 // CHECK: lodsw (%si), %ax # encoding: [0xad]
860 // CHECK: lodsw
861 // CHECK: lodsw
862 // CHECK: lodsw
863 // CHECK: lodsw
864         lodsw
865         lodsw   %ds:(%si), %ax
866         lodsw   (%si), %ax
867         lods    %ds:(%si), %ax
868         lods    (%si), %ax
869
870 // CHECK: lodsl (%si), %eax # encoding: [0x66,0xad]
871 // CHECK: lodsl
872 // CHECK: lodsl
873 // CHECK: lodsl
874 // CHECK: lodsl
875         lodsl
876         lodsl   %ds:(%si), %eax
877         lodsl   (%si), %eax
878         lods    %ds:(%si), %eax
879         lods    (%si), %eax
880
881 // CHECK: stosb %al, %es:(%di) # encoding: [0xaa]
882 // CHECK: stosb
883 // CHECK: stosb
884         stosb
885         stosb   %al, %es:(%di)
886         stos    %al, %es:(%di)
887
888 // CHECK: stosw %ax, %es:(%di) # encoding: [0xab]
889 // CHECK: stosw
890 // CHECK: stosw
891         stosw
892         stosw   %ax, %es:(%di)
893         stos    %ax, %es:(%di)
894
895 // CHECK: stosl %eax, %es:(%di) # encoding: [0x66,0xab]
896 // CHECK: stosl
897 // CHECK: stosl
898         stosl
899         stosl   %eax, %es:(%di)
900         stos    %eax, %es:(%di)
901
902 // CHECK: strw
903 // CHECK: encoding: [0x0f,0x00,0xc8]
904         str %ax
905
906 // CHECK: strl
907 // CHECK: encoding: [0x66,0x0f,0x00,0xc8]
908         str %eax
909
910
911 // CHECK: fsubp
912 // CHECK: encoding: [0xde,0xe1]
913 fsubp %st,%st(1)
914
915 // CHECK: fsubp %st(2)
916 // CHECK: encoding: [0xde,0xe2]
917 fsubp   %st, %st(2)
918
919 // CHECK: xchgl %eax, %eax
920 // CHECK: encoding: [0x66,0x90]
921 xchgl %eax, %eax
922
923 // CHECK: xchgw %ax, %ax
924 // CHECK: encoding: [0x90]
925 xchgw %ax, %ax
926
927 // CHECK: xchgl %ecx, %eax
928 // CHECK: encoding: [0x66,0x91]
929 xchgl %ecx, %eax
930
931 // CHECK: xchgl %ecx, %eax
932 // CHECK: encoding: [0x66,0x91]
933 xchgl %eax, %ecx
934
935 // CHECK: retw
936 // CHECK: encoding: [0xc3]
937 retw
938
939 // CHECK: retl
940 // CHECK: encoding: [0x66,0xc3]
941 retl
942
943 // CHECK: lretw
944 // CHECK: encoding: [0xcb]
945 lretw
946
947 // CHECK: lretl
948 // CHECK: encoding: [0x66,0xcb]
949 lretl