mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-21 21:29:41 +00:00
All v2f64 shuffle cases can be handled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27044 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4822bd4308
commit
5217a5b58c
@ -655,3 +655,7 @@ call _foo
|
||||
|
||||
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.
|
||||
|
@ -2329,7 +2329,10 @@ SDOperand X86TargetLowering::LowerOperation(SDOperand Op, SelectionDAG &DAG) {
|
||||
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.
|
||||
|
Loading…
x
Reference in New Issue
Block a user