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