X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FMC%2FX86%2Fx86-32-coverage.s;h=732874b91872e8be150f421e8aa9a72d58598ff9;hb=ced275628057b8ed3679ff7df25a61dfcc04a645;hp=f97fc4bee03547dbad2a7710a6ce8a48b940e5c0;hpb=3286db670c689104c0df4f98fbb4a66f6e4d2db5;p=oota-llvm.git diff --git a/test/MC/X86/x86-32-coverage.s b/test/MC/X86/x86-32-coverage.s index f97fc4bee03..732874b9187 100644 --- a/test/MC/X86/x86-32-coverage.s +++ b/test/MC/X86/x86-32-coverage.s @@ -18,7 +18,7 @@ // CHECK: movswl 3735928559(%ebx,%ecx,8), %ecx movswl 0xdeadbeef(%ebx,%ecx,8),%ecx -// CHECK: movzbl 3735928559(%ebx,%ecx,8), %ecx # NOREX +// CHECK: movzbl 3735928559(%ebx,%ecx,8), %ecx movzbl 0xdeadbeef(%ebx,%ecx,8),%ecx // CHECK: movzwl 3735928559(%ebx,%ecx,8), %ecx @@ -267,6 +267,9 @@ // CHECK: leave leave +// CHECK: leave + leavel + // CHECK: seto %bl seto %bl @@ -369,6 +372,14 @@ // 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) @@ -489,10 +500,13 @@ // 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) @@ -882,11 +896,11 @@ // 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 @@ -1143,11 +1157,11 @@ // 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 @@ -3330,6 +3344,10 @@ // CHECK: encoding: [0xc9] leave +// CHECK: leave +// CHECK: encoding: [0xc9] + leavel + // CHECK: seto %bl // CHECK: encoding: [0x0f,0x90,0xc3] seto %bl @@ -3930,6 +3948,10 @@ // 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) @@ -3950,6 +3972,10 @@ // 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) @@ -4402,6 +4428,10 @@ // 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) @@ -4474,39 +4504,39 @@ // CHECK: encoding: [0xdb,0xda] fcmovnu %st(2),%st -// CHECK: fcomi %st(2), %st(0) +// CHECK: fcomi %st(2) // CHECK: encoding: [0xdb,0xf2] fcomi %st(2),%st -// CHECK: fucomi %st(2), %st(0) +// CHECK: fucomi %st(2) // CHECK: encoding: [0xdb,0xea] fucomi %st(2),%st -// CHECK: fcomip %st(2), %st(0) +// CHECK: fcompi %st(2) // CHECK: encoding: [0xdf,0xf2] fcomip %st(2),%st -// CHECK: fucomip %st(2), %st(0) +// CHECK: fucompi %st(2) // 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 @@ -7122,29 +7152,29 @@ // 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] @@ -8630,29 +8660,29 @@ // 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] @@ -11807,19 +11837,19 @@ // CHECK: movswl 305419896, %ecx movswl 0x12345678,%ecx -// CHECK: movzbl 3735928559(%ebx,%ecx,8), %ecx # NOREX +// CHECK: movzbl 3735928559(%ebx,%ecx,8), %ecx movzbl 0xdeadbeef(%ebx,%ecx,8),%ecx -// CHECK: movzbl 69, %ecx # NOREX +// CHECK: movzbl 69, %ecx movzbl 0x45,%ecx -// CHECK: movzbl 32493, %ecx # NOREX +// CHECK: movzbl 32493, %ecx movzbl 0x7eed,%ecx -// CHECK: movzbl 3133065982, %ecx # NOREX +// CHECK: movzbl 3133065982, %ecx movzbl 0xbabecafe,%ecx -// CHECK: movzbl 305419896, %ecx # NOREX +// CHECK: movzbl 305419896, %ecx movzbl 0x12345678,%ecx // CHECK: movzbw 3735928559(%ebx,%ecx,8), %bx @@ -14150,31 +14180,31 @@ // CHECK: fcmovnu %st(2), %st(0) fcmovnu %st(2),%st -// CHECK: fcomi %st(2), %st(0) +// CHECK: fcomi %st(2) fcomi %st(2),%st -// CHECK: fucomi %st(2), %st(0) +// CHECK: fucomi %st(2) fucomi %st(2),%st -// CHECK: fcomip %st(2), %st(0) +// CHECK: fcompi %st(2) fcomip %st(2),%st -// CHECK: fucomip %st(2), %st(0) +// 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) @@ -16178,23 +16208,23 @@ // 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 @@ -17312,23 +17342,23 @@ // 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 @@ -18386,6 +18416,9 @@ // CHECK: vmcall vmcall +// CHECK: vmfunc + vmfunc + // CHECK: vmclear 3735928559(%ebx,%ecx,8) vmclear 0xdeadbeef(%ebx,%ecx,8) @@ -18443,6 +18476,30 @@ // 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 @@ -19555,3 +19612,85 @@ // 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)