Fix PR10949. Fix the encoding of VMOVPQIto64rr.
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Mon, 19 Sep 2011 23:36:59 +0000 (23:36 +0000)
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Mon, 19 Sep 2011 23:36:59 +0000 (23:36 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140098 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrSSE.td
test/MC/X86/x86_64-avx-encoding.s

index fdf119e4767a9c7ce17c43b1e4bf4fd9f5284196..f9330dc7d38fd07abdd9d742374c780c05400bc3 100644 (file)
@@ -4172,11 +4172,11 @@ def MOVPDI2DImr  : PDI<0x7E, MRMDestMem, (outs), (ins i32mem:$dst, VR128:$src),
 //===---------------------------------------------------------------------===//
 // Move Packed Doubleword Int first element to Doubleword Int
 //
-let isCodeGenOnly = 1 in
-def VMOVPQIto64rr : VRPDI<0x7E, MRMDestReg, (outs GR64:$dst), (ins VR128:$src),
+def VMOVPQIto64rr : I<0x7E, MRMDestReg, (outs GR64:$dst), (ins VR128:$src),
                           "mov{d|q}\t{$src, $dst|$dst, $src}",
                           [(set GR64:$dst, (vector_extract (v2i64 VR128:$src),
-                                                           (iPTR 0)))]>;
+                                                           (iPTR 0)))]>,
+                      TB, OpSize, VEX, VEX_W, Requires<[HasAVX, In64BitMode]>;
 
 def MOVPQIto64rr : RPDI<0x7E, MRMDestReg, (outs GR64:$dst), (ins VR128:$src),
                         "mov{d|q}\t{$src, $dst|$dst, $src}",
index e35800facc47e2f07cc1023548d0abe9b6dce647..8d1f6ca4c88f8b45ba1ce978d07609b076eeebae 100644 (file)
@@ -1448,6 +1448,10 @@ vdivpd  -4(%rcx,%rbx,8), %xmm10, %xmm11
 // CHECK: encoding: [0xc4,0x61,0xf9,0x6e,0xf0]
           vmovd  %rax, %xmm14
 
+// CHECK: vmovd %xmm0, %rax
+// CHECK: encoding: [0xc4,0xe1,0xf9,0x7e,0xc0]
+          vmovd %xmm0, %rax
+
 // CHECK: vmovq  %xmm14, (%rax)
 // CHECK: encoding: [0xc5,0x79,0xd6,0x30]
           vmovq  %xmm14, (%rax)