[PowerPC] Support b(cond)l in the asm parser
[oota-llvm.git] / test / MC / X86 / x86-64.s
index 80b12dbfc2ffded5c70d94d54a935c89acd27c24..521a0776d8af4152f5b9e28a6ec727f1de0672ee 100644 (file)
@@ -50,6 +50,9 @@
 // CHECK: ret
         ret
         
+// CHECK: retw
+        retw
+        
 // FIXME: Check that this matches SUB32ri8
 // CHECK: subl $1, %eax
         subl $1, %eax
 // rdar://8470918
 smovb // CHECK: movsb
 smovw // CHECK: movsw
-smovl // CHECK: movsl
+smovl // CHECK: movsd
 smovq // CHECK: movsq
 
 // rdar://8456361
 // CHECK: rep
-// CHECK: movsl
+// CHECK: movsd
         rep movsd
 
 // CHECK: rep
@@ -219,6 +222,12 @@ inb        $161, %al
 // CHECK: pushq        $1
 push $1
 
+// rdar://9716860
+pushq $1
+// CHECK: encoding: [0x6a,0x01]
+pushq $1111111
+// CHECK: encoding: [0x68,0x47,0xf4,0x10,0x00]
+
 // rdar://8017530
 // CHECK: sldtw        4
 sldt   4
@@ -232,10 +241,10 @@ cmovnzq %rbx, %rax
 
 // rdar://8407928
 // CHECK: inb  $127, %al
-// CHECK: inw  %dx, %ax
+// CHECK: inw  %dx
 // CHECK: outb %al, $127
-// CHECK: outw %ax, %dx
-// CHECK: inl  %dx, %eax
+// CHECK: outw %dx
+// CHECK: inl  %dx
 inb    $0x7f
 inw    %dx
 outb   $0x7f
@@ -244,12 +253,12 @@ inl       %dx
 
 
 // PR8114
-// CHECK: outb %al, %dx
-// CHECK: outb %al, %dx
-// CHECK: outw %ax, %dx
-// CHECK: outw %ax, %dx
-// CHECK: outl %eax, %dx
-// CHECK: outl %eax, %dx
+// CHECK: outb %dx
+// CHECK: outb %dx
+// CHECK: outw %dx
+// CHECK: outw %dx
+// CHECK: outl %dx
+// CHECK: outl %dx
 
 out    %al, (%dx)
 outb   %al, (%dx)
@@ -258,12 +267,12 @@ outw      %ax, (%dx)
 out    %eax, (%dx)
 outl   %eax, (%dx)
 
-// CHECK: inb  %dx, %al
-// CHECK: inb  %dx, %al
-// CHECK: inw  %dx, %ax
-// CHECK: inw  %dx, %ax
-// CHECK: inl  %dx, %eax
-// CHECK: inl  %dx, %eax
+// CHECK: inb  %dx
+// CHECK: inb  %dx
+// CHECK: inw  %dx
+// CHECK: inw  %dx
+// CHECK: inl  %dx
+// CHECK: inl  %dx
 
 in     (%dx), %al
 inb    (%dx), %al
@@ -274,16 +283,16 @@ inl       (%dx), %eax
 
 // rdar://8431422
 
-// CHECK: fxch %st(1)
-// CHECK: fucom        %st(1)
-// CHECK: fucomp       %st(1)
-// CHECK: faddp        %st(1)
+// CHECK: fxch
+// CHECK: fucom
+// CHECK: fucomp
+// CHECK: faddp
 // CHECK: faddp        %st(0)
-// CHECK: fsubp        %st(1)
-// CHECK: fsubrp       %st(1)
-// CHECK: fmulp        %st(1)
-// CHECK: fdivp        %st(1)
-// CHECK: fdivrp       %st(1)
+// CHECK: fsubp
+// CHECK: fsubrp
+// CHECK: fmulp
+// CHECK: fdivp
+// CHECK: fdivrp
 
 fxch
 fucom
@@ -296,11 +305,11 @@ fmulp
 fdivp
 fdivrp
 
-// CHECK: fcomi        %st(1)
+// CHECK: fcomi
 // CHECK: fcomi        %st(2)
-// CHECK: fucomi       %st(1)
-// CHECK: fucomi       %st(2)
-// CHECK: fucomi       %st(2)
+// CHECK: fucomi
+// CHECK: fucomi %st(2)
+// CHECK: fucomi %st(2)
 
 fcomi
 fcomi  %st(2)
@@ -308,10 +317,10 @@ fucomi
 fucomi %st(2)
 fucomi %st(2), %st
 
-// CHECK: fnstsw %ax
-// CHECK: fnstsw %ax
-// CHECK: fnstsw %ax
-// CHECK: fnstsw %ax
+// CHECK: fnstsw
+// CHECK: fnstsw
+// CHECK: fnstsw
+// CHECK: fnstsw
 
 fnstsw
 fnstsw %ax
@@ -333,15 +342,28 @@ rclb      $1, %bl   // CHECK: rclb %bl     # encoding: [0xd0,0xd3]
 rclb   $2, %bl   // CHECK: rclb $2, %bl # encoding: [0xc0,0xd3,0x02]
 
 // rdar://8418316
-// CHECK: shldw        $1, %bx, %bx
-// CHECK: shldw        $1, %bx, %bx
-// CHECK: shrdw        $1, %bx, %bx
-// CHECK: shrdw        $1, %bx, %bx
-
-shld   %bx,%bx
-shld   $1, %bx,%bx
-shrd   %bx,%bx
-shrd   $1, %bx,%bx
+// PR12173
+// CHECK: shldw        %cl, %bx, %dx
+// CHECK: shldw        %cl, %bx, %dx
+// CHECK: shldw        $1, %bx, %dx
+// CHECK: shldw        %cl, %bx, (%rax)
+// CHECK: shldw        %cl, %bx, (%rax)
+// CHECK: shrdw        %cl, %bx, %dx
+// CHECK: shrdw        %cl, %bx, %dx
+// CHECK: shrdw        $1, %bx, %dx
+// CHECK: shrdw        %cl, %bx, (%rax)
+// CHECK: shrdw        %cl, %bx, (%rax)
+
+shld  %bx, %dx
+shld  %cl, %bx, %dx
+shld  $1, %bx, %dx
+shld  %bx, (%rax)
+shld  %cl, %bx, (%rax)
+shrd  %bx, %dx
+shrd  %cl, %bx, %dx
+shrd  $1, %bx, %dx
+shrd  %bx, (%rax)
+shrd  %cl, %bx, (%rax)
 
 // CHECK: sldtl        %ecx
 // CHECK: encoding: [0x0f,0x00,0xc1]
@@ -453,11 +475,12 @@ cwtl  // CHECK: cwtl
 cbw   // CHECK: cbtw
 cwd   // CHECK: cwtd
 cdq   // CHECK: cltd
+cqo   // CHECK: cqto
 
 // rdar://8456378 and PR7557 - fstsw
 fstsw %ax
 // CHECK: wait
-// CHECK: fnstsw %ax
+// CHECK: fnstsw
 fstsw (%rax)
 // CHECK: wait
 // CHECK: fnstsw (%rax)
@@ -484,15 +507,15 @@ fsave     32493
 
 // rdar://8456382 - cvtsd2si support.
 cvtsd2si       %xmm1, %rax
-// CHECK: cvtsd2siq    %xmm1, %rax
+// CHECK: cvtsd2si     %xmm1, %rax
 // CHECK: encoding: [0xf2,0x48,0x0f,0x2d,0xc1]
 cvtsd2si       %xmm1, %eax
-// CHECK: cvtsd2sil    %xmm1, %eax
+// CHECK: cvtsd2si     %xmm1, %eax
 // CHECK: encoding: [0xf2,0x0f,0x2d,0xc1]
 
-cvtsd2siq %xmm0, %rax // CHECK: cvtsd2siq      %xmm0, %rax
-cvtsd2sil %xmm0, %eax // CHECK: cvtsd2sil      %xmm0, %eax
-cvtsd2si %xmm0, %rax  // CHECK: cvtsd2siq      %xmm0, %rax
+cvtsd2siq %xmm0, %rax // CHECK: cvtsd2si       %xmm0, %rax
+cvtsd2sil %xmm0, %eax // CHECK: cvtsd2si       %xmm0, %eax
+cvtsd2si %xmm0, %rax  // CHECK: cvtsd2si       %xmm0, %rax
 
 
 cvttpd2dq %xmm1, %xmm0  // CHECK: cvttpd2dq %xmm1, %xmm0
@@ -604,7 +627,7 @@ movsq
 // CHECK:   encoding: [0x48,0xa5]
 
 movsl
-// CHECK: movsl
+// CHECK: movsd
 // CHECK:   encoding: [0xa5]
 
 stosq
@@ -790,7 +813,7 @@ lock/incl 1(%rsp)
 rep movsl
 // CHECK: rep
 // CHECK: encoding: [0xf3]
-// CHECK: movsl
+// CHECK: movsd
 // CHECK: encoding: [0xa5]
 
 
@@ -821,6 +844,7 @@ iretq
 lretq  // CHECK: lretq # encoding: [0x48,0xcb]
 lretl  // CHECK: lretl # encoding: [0xcb]
 lret   // CHECK: lretl # encoding: [0xcb]
+lretw  // CHECK: lretw # encoding: [0x66,0xcb]
 
 // rdar://8403907
 sysret
@@ -1027,12 +1051,15 @@ xsetbv // CHECK: xsetbv # encoding: [0x0f,0x01,0xd1]
        movsw   %ds:(%rsi), %es:(%rdi)
        movsw   (%rsi), %es:(%rdi)
 
-// CHECK: movsl # encoding: [0xa5]
-// CHECK: movsl
-// CHECK: movsl
+// CHECK: movsd # encoding: [0xa5]
+// CHECK: movsd
+// CHECK: movsd
        movsl
        movsl   %ds:(%rsi), %es:(%rdi)
        movsl   (%rsi), %es:(%rdi)
+// rdar://10883092
+// CHECK: movsd
+       movsl   (%rsi), (%rdi)
 
 // CHECK: movsq # encoding: [0x48,0xa5]
 // CHECK: movsq
@@ -1128,3 +1155,84 @@ xsetbv // CHECK: xsetbv # encoding: [0x0f,0x01,0xd1]
 // CHECK: strq
 // CHECK: encoding: [0x48,0x0f,0x00,0xc8]
        str %rax
+
+// CHECK: movd %rdi, %xmm0
+// CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7]
+       movq %rdi,%xmm0
+
+// CHECK: movd %rdi, %xmm0
+// CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7]
+       movd %rdi,%xmm0
+
+// CHECK: movd  %xmm0, %rax
+// CHECK: encoding: [0x66,0x48,0x0f,0x7e,0xc0]
+        movd  %xmm0, %rax
+
+// CHECK: movntil %eax, (%rdi)
+// CHECK: encoding: [0x0f,0xc3,0x07]
+// CHECK: movntil
+movntil %eax, (%rdi)
+movnti %eax, (%rdi)
+
+// CHECK: movntiq %rax, (%rdi)
+// CHECK: encoding: [0x48,0x0f,0xc3,0x07]
+// CHECK: movntiq
+movntiq %rax, (%rdi)
+movnti %rax, (%rdi)
+
+// CHECK: pclmulqdq    $17, %xmm0, %xmm1
+// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x11]
+pclmulhqhqdq %xmm0, %xmm1
+
+// CHECK: pclmulqdq    $1, %xmm0, %xmm1
+// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x01]
+pclmulqdq $1, %xmm0, %xmm1
+
+// CHECK: pclmulqdq    $16, (%rdi), %xmm1
+// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x10]
+pclmullqhqdq (%rdi), %xmm1
+
+// CHECK: pclmulqdq    $0, (%rdi), %xmm1
+// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x00]
+pclmulqdq $0, (%rdi), %xmm1
+
+// PR10345
+// CHECK: xchgq %rax, %rax
+// CHECK: encoding: [0x48,0x90]
+xchgq %rax, %rax
+
+// CHECK: xchgl %eax, %eax
+// CHECK: encoding: [0x87,0xc0]
+xchgl %eax, %eax
+
+// CHECK: xchgw %ax, %ax
+// CHECK: encoding: [0x66,0x90]
+xchgw %ax, %ax
+
+// CHECK: xchgl %ecx, %eax
+// CHECK: encoding: [0x91]
+xchgl %ecx, %eax
+
+// CHECK: xchgl %ecx, %eax
+// CHECK: encoding: [0x91]
+xchgl %eax, %ecx
+
+// CHECK: sysexit
+// CHECK: encoding: [0x0f,0x35]
+sysexit
+
+// CHECK: sysexitl
+// CHECK: encoding: [0x0f,0x35]
+sysexitl
+
+// CHECK: sysexitq
+// CHECK: encoding: [0x48,0x0f,0x35]
+sysexitq
+
+// CHECK: clac
+// CHECK: encoding: [0x0f,0x01,0xca]
+clac
+
+// CHECK: stac
+// CHECK: encoding: [0x0f,0x01,0xcb]
+stac