fix rdar://8490728 - llvm-mc rejects gpr64 form of 'movmskpd'
authorChris Lattner <sabre@nondot.org>
Wed, 29 Sep 2010 05:05:03 +0000 (05:05 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 29 Sep 2010 05:05:03 +0000 (05:05 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115029 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrSSE.td
test/MC/AsmParser/X86/x86_instructions.s

index a34360f4f597d14a6a6d697e2bb8b1e95e428422..35d0622803ed13617afcdbbe0391199705433c49 100644 (file)
@@ -1420,9 +1420,11 @@ let AddedComplexity = 10 in {
 /// sse12_extr_sign_mask - sse 1 & 2 unpack and interleave
 multiclass sse12_extr_sign_mask<RegisterClass RC, Intrinsic Int, string asm,
                                 Domain d> {
-  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
index 19702ce5b04d4a2a475f6c505a876b609c4d366a..d182917d2da0a49d2bc192d89e218ea7280962e8 100644 (file)
@@ -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]