Changes in directory llvm/lib/Target/X86:

README.txt updated: 1.71 -> 1.72
X86ISelLowering.cpp updated: 1.126 -> 1.127
---
Log message:

All v2f64 shuffle cases can be handled.

---
Diffs of the changes:  (+8 -1)

 README.txt          |    4 ++++
 X86ISelLowering.cpp |    5 ++++-
 2 files changed, 8 insertions(+), 1 deletion(-)


Index: llvm/lib/Target/X86/README.txt
diff -u llvm/lib/Target/X86/README.txt:1.71 llvm/lib/Target/X86/README.txt:1.72
--- llvm/lib/Target/X86/README.txt:1.71 Thu Mar 23 20:57:03 2006
+++ llvm/lib/Target/X86/README.txt      Fri Mar 24 00:40:32 2006
@@ -655,3 +655,7 @@
 
 Obviously it would have been better for the first mov (or any op) to store
 directly %esp[0] if there are no other uses.
+
+//===---------------------------------------------------------------------===//
+
+Add more vector shuffle special cases using unpckhps and unpcklps.


Index: llvm/lib/Target/X86/X86ISelLowering.cpp
diff -u llvm/lib/Target/X86/X86ISelLowering.cpp:1.126 
llvm/lib/Target/X86/X86ISelLowering.cpp:1.127
--- llvm/lib/Target/X86/X86ISelLowering.cpp:1.126       Thu Mar 23 20:58:06 2006
+++ llvm/lib/Target/X86/X86ISelLowering.cpp     Fri Mar 24 00:40:32 2006
@@ -2329,7 +2329,10 @@
         return DAG.getNode(ISD::VECTOR_SHUFFLE, VT, V1,
                            DAG.getNode(ISD::UNDEF, V1.getValueType()),
                            PermMask);
-    } else if (NumElems == 2 || X86::isSHUFPMask(PermMask.Val)) {
+    } else if (NumElems == 2) {
+      // All v2f64 cases are handled.
+      return SDOperand();
+    } else if (X86::isSHUFPMask(PermMask.Val)) {
       SDOperand Elt = PermMask.getOperand(0);
       if (cast<ConstantSDNode>(Elt)->getValue() >= NumElems) {
         // Swap the operands and change mask.



_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to