[llvm-commits] [llvm] r50278 - in /llvm/trunk/lib/Target/X86: X86InstrInfo.td X86InstrMMX.td

Evan Cheng evan.cheng at apple.com
Fri Apr 25 11:19:55 PDT 2008


Author: evancheng
Date: Fri Apr 25 13:19:54 2008
New Revision: 50278

URL: http://llvm.org/viewvc/llvm-project?rev=50278&view=rev
Log:
Fix MMX_MOVQ2DQrr pattern. It's illegal to do a bitconvert from a smaller type to a larger one.

Modified:
    llvm/trunk/lib/Target/X86/X86InstrInfo.td
    llvm/trunk/lib/Target/X86/X86InstrMMX.td

Modified: llvm/trunk/lib/Target/X86/X86InstrInfo.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrInfo.td?rev=50278&r1=50277&r2=50278&view=diff

==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrInfo.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrInfo.td Fri Apr 25 13:19:54 2008
@@ -2758,13 +2758,13 @@
 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"

Modified: llvm/trunk/lib/Target/X86/X86InstrMMX.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrMMX.td?rev=50278&r1=50277&r2=50278&view=diff

==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrMMX.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrMMX.td Fri Apr 25 13:19:54 2008
@@ -189,8 +189,10 @@
 
 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}",





More information about the llvm-commits mailing list