Fix MMX_MOVQ2DQrr pattern. It's illegal to do a bitconvert from a smaller type to...
authorEvan Cheng <evan.cheng@apple.com>
Fri, 25 Apr 2008 18:19:54 +0000 (18:19 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Fri, 25 Apr 2008 18:19:54 +0000 (18:19 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50278 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrInfo.td
lib/Target/X86/X86InstrMMX.td

index e77b385ea631c5525b5c16b48e25b7853ab96faf..37a56ba74326ac111d6a4ae41d4a2ae580f2897a 100644 (file)
@@ -2758,13 +2758,13 @@ include "X86InstrFPStack.td"
 include "X86Instr64bit.td"
 
 //===----------------------------------------------------------------------===//
-// MMX and XMM Packed Integer support (requires MMX, SSE, and SSE2)
+// XMM Floating point support (requires SSE / SSE2)
 //===----------------------------------------------------------------------===//
 
-include "X86InstrMMX.td"
+include "X86InstrSSE.td"
 
 //===----------------------------------------------------------------------===//
-// XMM Floating point support (requires SSE / SSE2)
+// MMX and XMM Packed Integer support (requires MMX, SSE, and SSE2)
 //===----------------------------------------------------------------------===//
 
-include "X86InstrSSE.td"
+include "X86InstrMMX.td"
index 35c7b9040995e3e28fbc5ee47b62d01d9933c161..6d9c02ba88963ecf125c8ae08f7be0f91130fdd8 100644 (file)
@@ -189,8 +189,10 @@ def MMX_MOVDQ2Qrr : MMXID<0xD6, MRMDestMem, (outs VR64:$dst), (ins VR128:$src),
 
 def MMX_MOVQ2DQrr : MMXIS<0xD6, MRMDestMem, (outs VR128:$dst), (ins VR64:$src),
                           "movq2dq\t{$src, $dst|$dst, $src}",
-                          [(set VR128:$dst,
-                            (bitconvert (v1i64 VR64:$src)))]>;
+          [(set VR128:$dst,
+                (v2i64 (vector_shuffle immAllZerosV,
+                        (v2i64 (scalar_to_vector (i64 (bitconvert VR64:$src)))),
+                        MOVL_shuffle_mask)))]>;
 
 def MMX_MOVNTQmr  : MMXI<0xE7, MRMDestMem, (outs), (ins i64mem:$dst, VR64:$src),
                          "movntq\t{$src, $dst|$dst, $src}",