[llvm-commits] CVS: llvm/lib/Target/X86/X86ISelLowering.cpp

Chris Lattner sabre at nondot.org
Thu May 17 10:13:36 PDT 2007



Changes in directory llvm/lib/Target/X86:

X86ISelLowering.cpp updated: 1.402 -> 1.403
---
Log message:

This is the correct fix for PR1427: http://llvm.org/PR1427 .  This fixes mmx-shuffle.ll and doesn't
cause other regressions.


---
Diffs of the changes:  (+5 -2)

 X86ISelLowering.cpp |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)


Index: llvm/lib/Target/X86/X86ISelLowering.cpp
diff -u llvm/lib/Target/X86/X86ISelLowering.cpp:1.402 llvm/lib/Target/X86/X86ISelLowering.cpp:1.403
--- llvm/lib/Target/X86/X86ISelLowering.cpp:1.402	Thu May 17 02:50:14 2007
+++ llvm/lib/Target/X86/X86ISelLowering.cpp	Thu May 17 12:13:13 2007
@@ -2675,7 +2675,8 @@
       return Op;
     }
 
-    if (X86::isSHUFPMask(PermMask.Val))
+    if (X86::isSHUFPMask(PermMask.Val) &&
+        MVT::getSizeInBits(VT) != 64)    // Don't do this for MMX.
       return Op;
 
     // Handle v8i16 shuffle high / low shuffle node pair.
@@ -2712,7 +2713,9 @@
     }
   }
 
-  if (NumElems == 4) {
+  if (NumElems == 4 && 
+      // Don't do this for MMX.
+      MVT::getSizeInBits(VT) != 64) {
     MVT::ValueType MaskVT = PermMask.getValueType();
     MVT::ValueType MaskEVT = MVT::getVectorBaseType(MaskVT);
     SmallVector<std::pair<int, int>, 8> Locs;






More information about the llvm-commits mailing list