[llvm-commits] CVS: llvm/lib/Target/X86/README.txt X86ISelLowering.cpp
Evan Cheng
evan.cheng at apple.com
Thu Mar 23 22:41:23 PST 2006
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.
More information about the llvm-commits
mailing list