Recommit r201059 and r201060 with hopefully a fix for its original failure.
[oota-llvm.git] / test / MC / X86 / x86-32-coverage.s
index ea30e8d022ffa49ced635074e21eeece0735de9a..732874b91872e8be150f421e8aa9a72d58598ff9 100644 (file)
 // CHECK:      leave
                leave
 
+// CHECK:      leave
+               leavel
+
 // CHECK:      seto    %bl
                seto    %bl
 
 // CHECK:      nop
                nop
 
+// CHECK: flds (%edi)
+// CHECK:  encoding: [0xd9,0x07]
+               flds    (%edi)
+
+// CHECK: filds        (%edi)
+// CHECK:  encoding: [0xdf,0x07]
+               filds   (%edi)
+
 // CHECK:      fldl    3735928559(%ebx,%ecx,8)
                fldl    0xdeadbeef(%ebx,%ecx,8)
 
 // CHECK:      sysexit
                sysexit
 
+// CHECK:      sysexitl
+               sysexitl
+
 // CHECK:      ud2
                ud2
 
-// CHECK:      movnti  %ecx, 3735928559(%ebx,%ecx,8)
+// CHECK:      movntil %ecx, 3735928559(%ebx,%ecx,8)
                movnti  %ecx,0xdeadbeef(%ebx,%ecx,8)
 
 // CHECK:      clflush 3735928559(%ebx,%ecx,8)
 // CHECK:      cvtps2pi        %xmm5, %mm3
                cvtps2pi        %xmm5,%mm3
 
-// CHECK:      cvtsi2ss        %ecx, %xmm5
-               cvtsi2ss        %ecx,%xmm5
+// CHECK:      cvtsi2ssl       %ecx, %xmm5
+               cvtsi2ssl       %ecx,%xmm5
 
-// CHECK:      cvtsi2ss        3735928559(%ebx,%ecx,8), %xmm5
-               cvtsi2ss        0xdeadbeef(%ebx,%ecx,8),%xmm5
+// CHECK:      cvtsi2ssl       3735928559(%ebx,%ecx,8), %xmm5
+               cvtsi2ssl       0xdeadbeef(%ebx,%ecx,8),%xmm5
 
 // CHECK:      cvttps2pi       3735928559(%ebx,%ecx,8), %mm3
                cvttps2pi       0xdeadbeef(%ebx,%ecx,8),%mm3
 // CHECK:      cvtpi2pd        %mm3, %xmm5
                cvtpi2pd        %mm3,%xmm5
 
-// CHECK:      cvtsi2sd        %ecx, %xmm5
-               cvtsi2sd        %ecx,%xmm5
+// CHECK:      cvtsi2sdl       %ecx, %xmm5
+               cvtsi2sdl       %ecx,%xmm5
 
-// CHECK:      cvtsi2sd        3735928559(%ebx,%ecx,8), %xmm5
-               cvtsi2sd        0xdeadbeef(%ebx,%ecx,8),%xmm5
+// CHECK:      cvtsi2sdl       3735928559(%ebx,%ecx,8), %xmm5
+               cvtsi2sdl       0xdeadbeef(%ebx,%ecx,8),%xmm5
 
 // CHECK:      divpd   %xmm5, %xmm5
                divpd   %xmm5,%xmm5
 // CHECK:  encoding: [0xc9]
                leave
 
+// CHECK: leave
+// CHECK:  encoding: [0xc9]
+               leavel
+
 // CHECK: seto %bl
 // CHECK:  encoding: [0x0f,0x90,0xc3]
                seto    %bl
 // CHECK:  encoding: [0xd9,0xca]
                fxch    %st(2)
 
+// CHECK: fcom %st(1)
+// CHECK:  encoding: [0xd8,0xd1]
+               fcom
+
 // CHECK: fcom %st(2)
 // CHECK:  encoding: [0xd8,0xd2]
                fcom    %st(2)
 // CHECK:  encoding: [0xda,0x15,0x78,0x56,0x34,0x12]
                ficoml  0x12345678
 
+// CHECK: fcomp        %st(1)
+// CHECK:  encoding: [0xd8,0xd9]
+               fcomp
+
 // CHECK: fcomp        %st(2)
 // CHECK:  encoding: [0xd8,0xda]
                fcomp   %st(2)
 // CHECK:  encoding: [0x0f,0x35]
                sysexit
 
+// CHECK: sysexitl
+// CHECK:  encoding: [0x0f,0x35]
+               sysexitl
+
 // CHECK: fxsave       3735928559(%ebx,%ecx,8)
 // CHECK:  encoding: [0x0f,0xae,0x84,0xcb,0xef,0xbe,0xad,0xde]
                fxsave  0xdeadbeef(%ebx,%ecx,8)
 // CHECK:  encoding: [0xdf,0xea]
                fucomip %st(2),%st
 
-// CHECK: movnti       %ecx, 3735928559(%ebx,%ecx,8)
+// CHECK: movntil      %ecx, 3735928559(%ebx,%ecx,8)
 // CHECK:  encoding: [0x0f,0xc3,0x8c,0xcb,0xef,0xbe,0xad,0xde]
                movnti  %ecx,0xdeadbeef(%ebx,%ecx,8)
 
-// CHECK: movnti       %ecx, 69
+// CHECK: movntil      %ecx, 69
 // CHECK:  encoding: [0x0f,0xc3,0x0d,0x45,0x00,0x00,0x00]
                movnti  %ecx,0x45
 
-// CHECK: movnti       %ecx, 32493
+// CHECK: movntil      %ecx, 32493
 // CHECK:  encoding: [0x0f,0xc3,0x0d,0xed,0x7e,0x00,0x00]
                movnti  %ecx,0x7eed
 
-// CHECK: movnti       %ecx, 3133065982
+// CHECK: movntil      %ecx, 3133065982
 // CHECK:  encoding: [0x0f,0xc3,0x0d,0xfe,0xca,0xbe,0xba]
                movnti  %ecx,0xbabecafe
 
-// CHECK: movnti       %ecx, 305419896
+// CHECK: movntil      %ecx, 305419896
 // CHECK:  encoding: [0x0f,0xc3,0x0d,0x78,0x56,0x34,0x12]
                movnti  %ecx,0x12345678
 
 // CHECK:  encoding: [0x0f,0x2d,0xdd]
                cvtps2pi        %xmm5,%mm3
 
-// CHECK: cvtsi2ss     %ecx, %xmm5
+// CHECK: cvtsi2ssl    %ecx, %xmm5
 // CHECK:  encoding: [0xf3,0x0f,0x2a,0xe9]
-               cvtsi2ss        %ecx,%xmm5
+               cvtsi2ssl       %ecx,%xmm5
 
-// CHECK: cvtsi2ss     3735928559(%ebx,%ecx,8), %xmm5
+// CHECK: cvtsi2ssl    3735928559(%ebx,%ecx,8), %xmm5
 // CHECK:  encoding: [0xf3,0x0f,0x2a,0xac,0xcb,0xef,0xbe,0xad,0xde]
-               cvtsi2ss        0xdeadbeef(%ebx,%ecx,8),%xmm5
+               cvtsi2ssl       0xdeadbeef(%ebx,%ecx,8),%xmm5
 
-// CHECK: cvtsi2ss     69, %xmm5
+// CHECK: cvtsi2ssl    69, %xmm5
 // CHECK:  encoding: [0xf3,0x0f,0x2a,0x2d,0x45,0x00,0x00,0x00]
-               cvtsi2ss        0x45,%xmm5
+               cvtsi2ssl       0x45,%xmm5
 
-// CHECK: cvtsi2ss     32493, %xmm5
+// CHECK: cvtsi2ssl    32493, %xmm5
 // CHECK:  encoding: [0xf3,0x0f,0x2a,0x2d,0xed,0x7e,0x00,0x00]
-               cvtsi2ss        0x7eed,%xmm5
+               cvtsi2ssl       0x7eed,%xmm5
 
-// CHECK: cvtsi2ss     3133065982, %xmm5
+// CHECK: cvtsi2ssl    3133065982, %xmm5
 // CHECK:  encoding: [0xf3,0x0f,0x2a,0x2d,0xfe,0xca,0xbe,0xba]
-               cvtsi2ss        0xbabecafe,%xmm5
+               cvtsi2ssl       0xbabecafe,%xmm5
 
-// CHECK: cvtsi2ss     305419896, %xmm5
+// CHECK: cvtsi2ssl    305419896, %xmm5
 // CHECK:  encoding: [0xf3,0x0f,0x2a,0x2d,0x78,0x56,0x34,0x12]
-               cvtsi2ss        0x12345678,%xmm5
+               cvtsi2ssl       0x12345678,%xmm5
 
 // CHECK: cvttps2pi    3735928559(%ebx,%ecx,8), %mm3
 // CHECK:  encoding: [0x0f,0x2c,0x9c,0xcb,0xef,0xbe,0xad,0xde]
 // CHECK:  encoding: [0x66,0x0f,0x2a,0xeb]
                cvtpi2pd        %mm3,%xmm5
 
-// CHECK: cvtsi2sd     %ecx, %xmm5
+// CHECK: cvtsi2sdl    %ecx, %xmm5
 // CHECK:  encoding: [0xf2,0x0f,0x2a,0xe9]
-               cvtsi2sd        %ecx,%xmm5
+               cvtsi2sdl       %ecx,%xmm5
 
-// CHECK: cvtsi2sd     3735928559(%ebx,%ecx,8), %xmm5
+// CHECK: cvtsi2sdl    3735928559(%ebx,%ecx,8), %xmm5
 // CHECK:  encoding: [0xf2,0x0f,0x2a,0xac,0xcb,0xef,0xbe,0xad,0xde]
-               cvtsi2sd        0xdeadbeef(%ebx,%ecx,8),%xmm5
+               cvtsi2sdl       0xdeadbeef(%ebx,%ecx,8),%xmm5
 
-// CHECK: cvtsi2sd     69, %xmm5
+// CHECK: cvtsi2sdl    69, %xmm5
 // CHECK:  encoding: [0xf2,0x0f,0x2a,0x2d,0x45,0x00,0x00,0x00]
-               cvtsi2sd        0x45,%xmm5
+               cvtsi2sdl       0x45,%xmm5
 
-// CHECK: cvtsi2sd     32493, %xmm5
+// CHECK: cvtsi2sdl    32493, %xmm5
 // CHECK:  encoding: [0xf2,0x0f,0x2a,0x2d,0xed,0x7e,0x00,0x00]
-               cvtsi2sd        0x7eed,%xmm5
+               cvtsi2sdl       0x7eed,%xmm5
 
-// CHECK: cvtsi2sd     3133065982, %xmm5
+// CHECK: cvtsi2sdl    3133065982, %xmm5
 // CHECK:  encoding: [0xf2,0x0f,0x2a,0x2d,0xfe,0xca,0xbe,0xba]
-               cvtsi2sd        0xbabecafe,%xmm5
+               cvtsi2sdl       0xbabecafe,%xmm5
 
-// CHECK: cvtsi2sd     305419896, %xmm5
+// CHECK: cvtsi2sdl    305419896, %xmm5
 // CHECK:  encoding: [0xf2,0x0f,0x2a,0x2d,0x78,0x56,0x34,0x12]
-               cvtsi2sd        0x12345678,%xmm5
+               cvtsi2sdl       0x12345678,%xmm5
 
 // CHECK: divpd        3735928559(%ebx,%ecx,8), %xmm5
 // CHECK:  encoding: [0x66,0x0f,0x5e,0xac,0xcb,0xef,0xbe,0xad,0xde]
 // CHECK:      fucompi %st(2)
                fucomip %st(2),%st
 
-// CHECK:      movnti  %ecx, 3735928559(%ebx,%ecx,8)
+// CHECK:      movntil %ecx, 3735928559(%ebx,%ecx,8)
                movnti  %ecx,0xdeadbeef(%ebx,%ecx,8)
 
-// CHECK:      movnti  %ecx, 69
-               movnti  %ecx,0x45
+// CHECK:      movntil %ecx, 69
+               movntil %ecx,0x45
 
-// CHECK:      movnti  %ecx, 32493
+// CHECK:      movntil %ecx, 32493
                movnti  %ecx,0x7eed
 
-// CHECK:      movnti  %ecx, 3133065982
+// CHECK:      movntil %ecx, 3133065982
                movnti  %ecx,0xbabecafe
 
-// CHECK:      movnti  %ecx, 305419896
+// CHECK:      movntil %ecx, 305419896
                movnti  %ecx,0x12345678
 
 // CHECK:      clflush 3735928559(%ebx,%ecx,8)
 // CHECK:      cvtps2pi        %xmm5, %mm3
                cvtps2pi        %xmm5,%mm3
 
-// CHECK:      cvtsi2ss        %ecx, %xmm5
-               cvtsi2ss        %ecx,%xmm5
+// CHECK:      cvtsi2ssl       %ecx, %xmm5
+               cvtsi2ssl       %ecx,%xmm5
 
-// CHECK:      cvtsi2ss        3735928559(%ebx,%ecx,8), %xmm5
-               cvtsi2ss        0xdeadbeef(%ebx,%ecx,8),%xmm5
+// CHECK:      cvtsi2ssl       3735928559(%ebx,%ecx,8), %xmm5
+               cvtsi2ssl       0xdeadbeef(%ebx,%ecx,8),%xmm5
 
-// CHECK:      cvtsi2ss        69, %xmm5
-               cvtsi2ss        0x45,%xmm5
+// CHECK:      cvtsi2ssl       69, %xmm5
+               cvtsi2ssl       0x45,%xmm5
 
-// CHECK:      cvtsi2ss        32493, %xmm5
-               cvtsi2ss        0x7eed,%xmm5
+// CHECK:      cvtsi2ssl       32493, %xmm5
+               cvtsi2ssl       0x7eed,%xmm5
 
-// CHECK:      cvtsi2ss        3133065982, %xmm5
-               cvtsi2ss        0xbabecafe,%xmm5
+// CHECK:      cvtsi2ssl       3133065982, %xmm5
+               cvtsi2ssl       0xbabecafe,%xmm5
 
-// CHECK:      cvtsi2ss        305419896, %xmm5
-               cvtsi2ss        0x12345678,%xmm5
+// CHECK:      cvtsi2ssl       305419896, %xmm5
+               cvtsi2ssl       0x12345678,%xmm5
 
 // CHECK:      cvttps2pi       3735928559(%ebx,%ecx,8), %mm3
                cvttps2pi       0xdeadbeef(%ebx,%ecx,8),%mm3
 // CHECK:      cvtpi2pd        %mm3, %xmm5
                cvtpi2pd        %mm3,%xmm5
 
-// CHECK:      cvtsi2sd        %ecx, %xmm5
-               cvtsi2sd        %ecx,%xmm5
+// CHECK:      cvtsi2sdl       %ecx, %xmm5
+               cvtsi2sdl       %ecx,%xmm5
 
-// CHECK:      cvtsi2sd        3735928559(%ebx,%ecx,8), %xmm5
-               cvtsi2sd        0xdeadbeef(%ebx,%ecx,8),%xmm5
+// CHECK:      cvtsi2sdl       3735928559(%ebx,%ecx,8), %xmm5
+               cvtsi2sdl       0xdeadbeef(%ebx,%ecx,8),%xmm5
 
-// CHECK:      cvtsi2sd        69, %xmm5
-               cvtsi2sd        0x45,%xmm5
+// CHECK:      cvtsi2sdl       69, %xmm5
+               cvtsi2sdl       0x45,%xmm5
 
-// CHECK:      cvtsi2sd        32493, %xmm5
-               cvtsi2sd        0x7eed,%xmm5
+// CHECK:      cvtsi2sdl       32493, %xmm5
+               cvtsi2sdl       0x7eed,%xmm5
 
-// CHECK:      cvtsi2sd        3133065982, %xmm5
-               cvtsi2sd        0xbabecafe,%xmm5
+// CHECK:      cvtsi2sdl       3133065982, %xmm5
+               cvtsi2sdl       0xbabecafe,%xmm5
 
-// CHECK:      cvtsi2sd        305419896, %xmm5
-               cvtsi2sd        0x12345678,%xmm5
+// CHECK:      cvtsi2sdl       305419896, %xmm5
+               cvtsi2sdl       0x12345678,%xmm5
 
 // CHECK:      divpd   3735928559(%ebx,%ecx,8), %xmm5
                divpd   0xdeadbeef(%ebx,%ecx,8),%xmm5
 // CHECK:      vmcall
                vmcall
 
+// CHECK:      vmfunc
+               vmfunc
+
 // CHECK:      vmclear 3735928559(%ebx,%ecx,8)
                vmclear 0xdeadbeef(%ebx,%ecx,8)
 
 // CHECK:      vmxon   305419896
                vmxon   0x12345678
 
+// CHECK:      vmrun %eax
+               vmrun %eax
+
+// CHECK:      vmmcall
+               vmmcall
+
+// CHECK:      vmload %eax
+               vmload %eax
+
+// CHECK:      vmsave %eax
+               vmsave %eax
+
+// CHECK:      stgi
+               stgi
+
+// CHECK:      clgi
+               clgi
+
+// CHECK:      skinit %eax
+               skinit %eax
+
+// CHECK:      invlpga %ecx, %eax
+               invlpga %ecx, %eax
+
 // CHECK:      phaddw  3735928559(%ebx,%ecx,8), %mm3
                phaddw  0xdeadbeef(%ebx,%ecx,8),%mm3
 
 
 // CHECK:      aeskeygenassist $125, (%edx,%eax,4), %xmm2
                 aeskeygenassist $125, (%edx,%eax,4), %xmm2
+
+// CHECK:   blendvps   (%eax), %xmm1   # encoding: [0x66,0x0f,0x38,0x14,0x08]
+            blendvps (%eax), %xmm1
+// CHECK:   blendvps   %xmm2, %xmm1    # encoding: [0x66,0x0f,0x38,0x14,0xca]
+            blendvps %xmm2, %xmm1
+
+// rdar://9795008
+// These instructions take a mask not an 8-bit sign extended value.
+// CHECK: blendps $129, %xmm2, %xmm1
+          blendps $0x81, %xmm2, %xmm1
+// CHECK: blendpd $129, %xmm2, %xmm1
+          blendpd $0x81, %xmm2, %xmm1
+// CHECK: pblendw $129, %xmm2, %xmm1
+          pblendw $0x81, %xmm2, %xmm1
+// CHECK: mpsadbw $129, %xmm2, %xmm1
+          mpsadbw $0x81, %xmm2, %xmm1
+// CHECK: dpps $129, %xmm2, %xmm1
+          dpps $0x81, %xmm2, %xmm1
+// CHECK: dppd $129, %xmm2, %xmm1
+          dppd $0x81, %xmm2, %xmm1
+// CHECK: insertps $129, %xmm2, %xmm1
+          insertps $0x81, %xmm2, %xmm1
+
+// PR13253 handle implicit optional third argument that must always be xmm0
+// CHECK: pblendvb %xmm2, %xmm1
+pblendvb %xmm2, %xmm1
+// CHECK: pblendvb %xmm2, %xmm1
+pblendvb %xmm0, %xmm2, %xmm1
+// CHECK: pblendvb (%eax), %xmm1
+pblendvb (%eax), %xmm1
+// CHECK: pblendvb (%eax), %xmm1
+pblendvb %xmm0, (%eax), %xmm1
+// CHECK: blendvpd %xmm2, %xmm1
+blendvpd %xmm2, %xmm1
+// CHECK: blendvpd %xmm2, %xmm1
+blendvpd %xmm0, %xmm2, %xmm1
+// CHECK: blendvpd (%eax), %xmm1
+blendvpd (%eax), %xmm1
+// CHECK: blendvpd (%eax), %xmm1
+blendvpd %xmm0, (%eax), %xmm1
+// CHECK: blendvps %xmm2, %xmm1
+blendvps %xmm2, %xmm1
+// CHECK: blendvps %xmm2, %xmm1
+blendvps %xmm0, %xmm2, %xmm1
+// CHECK: blendvps (%eax), %xmm1
+blendvps (%eax), %xmm1
+// CHECK: blendvps (%eax), %xmm1
+blendvps %xmm0, (%eax), %xmm1
+
+
+// CHECK: btl $4, (%eax)
+// CHECK: btw $4, (%eax)
+// CHECK: btl $4, (%eax)
+// CHECK: btq $4, (%eax)
+// CHECK: btsl $4, (%eax)
+// CHECK: btsw $4, (%eax)
+// CHECK: btsl $4, (%eax)
+// CHECK: btsq $4, (%eax)
+// CHECK: btrl $4, (%eax)
+// CHECK: btrw $4, (%eax)
+// CHECK: btrl $4, (%eax)
+// CHECK: btrq $4, (%eax)
+// CHECK: btcl $4, (%eax)
+// CHECK: btcw $4, (%eax)
+// CHECK: btcl $4, (%eax)
+// CHECK: btcq $4, (%eax)
+bt $4, (%eax)
+btw $4, (%eax)
+btl $4, (%eax)
+btq $4, (%eax)
+bts $4, (%eax)
+btsw $4, (%eax)
+btsl $4, (%eax)
+btsq $4, (%eax)
+btr $4, (%eax)
+btrw $4, (%eax)
+btrl $4, (%eax)
+btrq $4, (%eax)
+btc $4, (%eax)
+btcw $4, (%eax)
+btcl $4, (%eax)
+btcq $4, (%eax)