mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-16 14:31:59 +00:00
decouple MMX check from regular splat checks. Some refactoring is coming, and MMX should be left alone to be easily removed after moving to intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113247 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
673bf78bb5
commit
58277b17c3
@ -5271,12 +5271,16 @@ X86TargetLowering::LowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG) const {
|
|||||||
if (isZeroShuffle(SVOp))
|
if (isZeroShuffle(SVOp))
|
||||||
return getZeroVector(VT, Subtarget->hasSSE2(), DAG, dl);
|
return getZeroVector(VT, Subtarget->hasSSE2(), DAG, dl);
|
||||||
|
|
||||||
|
// FIXME: this is somehow handled during isel by MMX pattern fragments. Remove
|
||||||
|
// the check or come up with another solution when all MMX move to intrinsics,
|
||||||
|
// but don't allow this to be considered legal, we don't want vector_shuffle
|
||||||
|
// operations to be matched during isel anymore.
|
||||||
|
if (isMMX && SVOp->isSplat())
|
||||||
|
return Op;
|
||||||
|
|
||||||
// Promote splats to v4f32.
|
// Promote splats to v4f32.
|
||||||
if (SVOp->isSplat()) {
|
if (SVOp->isSplat())
|
||||||
if (isMMX)
|
|
||||||
return Op;
|
|
||||||
return PromoteSplat(SVOp, DAG);
|
return PromoteSplat(SVOp, DAG);
|
||||||
}
|
|
||||||
|
|
||||||
// If the shuffle can be profitably rewritten as a narrower shuffle, then
|
// If the shuffle can be profitably rewritten as a narrower shuffle, then
|
||||||
// do it!
|
// do it!
|
||||||
|
Loading…
x
Reference in New Issue
Block a user