From: Chris Lattner Date: Wed, 29 Sep 2010 05:05:03 +0000 (+0000) Subject: fix rdar://8490728 - llvm-mc rejects gpr64 form of 'movmskpd' X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=6f4202726339815c7167ef2f00858c766c9ffea9;p=oota-llvm.git fix rdar://8490728 - llvm-mc rejects gpr64 form of 'movmskpd' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115029 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/X86InstrSSE.td b/lib/Target/X86/X86InstrSSE.td index a34360f4f59..35d0622803e 100644 --- a/lib/Target/X86/X86InstrSSE.td +++ b/lib/Target/X86/X86InstrSSE.td @@ -1420,9 +1420,11 @@ let AddedComplexity = 10 in { /// sse12_extr_sign_mask - sse 1 & 2 unpack and interleave multiclass sse12_extr_sign_mask { - def rr : PI<0x50, MRMSrcReg, (outs GR32:$dst), (ins RC:$src), - !strconcat(asm, "\t{$src, $dst|$dst, $src}"), + def rr32 : PI<0x50, MRMSrcReg, (outs GR32:$dst), (ins RC:$src), + !strconcat(asm, "\t{$src, $dst|$dst, $src}"), [(set GR32:$dst, (Int RC:$src))], d>; + def rr64 : PI<0x50, MRMSrcReg, (outs GR64:$dst), (ins RC:$src), + !strconcat(asm, "\t{$src, $dst|$dst, $src}"), [], d>, REX_W; } // Mask creation diff --git a/test/MC/AsmParser/X86/x86_instructions.s b/test/MC/AsmParser/X86/x86_instructions.s index 19702ce5b04..d182917d2da 100644 --- a/test/MC/AsmParser/X86/x86_instructions.s +++ b/test/MC/AsmParser/X86/x86_instructions.s @@ -459,3 +459,10 @@ cvttpd2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5 // CHECK: cvttpd2dq 3735928559(%ebx,%ecx,8), %xmm5 // CHECK: encoding: [0x67,0x66,0x0f,0xe6,0xac,0xcb,0xef,0xbe,0xad,0xde] +// rdar://8490728 - llvm-mc rejects 'movmskpd' +movmskpd %xmm6, %rax +// CHECK: movmskpd %xmm6, %rax +// CHECK: encoding: [0x66,0x48,0x0f,0x50,0xc6] +movmskpd %xmm6, %eax +// CHECK: movmskpd %xmm6, %eax +// CHECK: encoding: [0x66,0x0f,0x50,0xc6]