// 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
// 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
+// 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
+// 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: [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
// 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: 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
// 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)
// 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