diff options
| author | Benjamin Kramer <benny.kra@googlemail.com> | 2013-02-04 15:52:32 +0000 |
|---|---|---|
| committer | Benjamin Kramer <benny.kra@googlemail.com> | 2013-02-04 15:52:32 +0000 |
| commit | c35d526489b1e385b894e0ca9a0200e080835e46 (patch) | |
| tree | 9a7fbf9cb741745ec017e4900dde4fe9e82ee01f /llvm/lib | |
| parent | 428b3e48e209dd459f4cfa42c49425c0dc549b11 (diff) | |
| download | bcm5719-llvm-c35d526489b1e385b894e0ca9a0200e080835e46.tar.gz bcm5719-llvm-c35d526489b1e385b894e0ca9a0200e080835e46.zip | |
Disable a couple more vector splat optimizations on PPC.
I didn't see those because the test case used "not grep". FileCheck the test and
XFAIL it, preserving the old optimization, so this can be fixed eventually.
llvm-svn: 174330
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCISelLowering.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp index 4cd0fc484a1..5631c933a19 100644 --- a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp +++ b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp @@ -5138,14 +5138,16 @@ SDValue PPCTargetLowering::LowerBUILD_VECTOR(SDValue Op, // Three instruction sequences. // Odd, in range [17,31]: (vsplti C)-(vsplti -16). - if (SextVal >= 0 && SextVal <= 31) { + // FIXME: Disabled because the add gets constant folded. + if (0 && SextVal >= 0 && SextVal <= 31) { SDValue LHS = BuildSplatI(SextVal-16, SplatSize, MVT::Other, DAG, dl); SDValue RHS = BuildSplatI(-16, SplatSize, MVT::Other, DAG, dl); LHS = DAG.getNode(ISD::SUB, dl, LHS.getValueType(), LHS, RHS); return DAG.getNode(ISD::BITCAST, dl, Op.getValueType(), LHS); } // Odd, in range [-31,-17]: (vsplti C)+(vsplti -16). - if (SextVal >= -31 && SextVal <= 0) { + // FIXME: Disabled because the add gets constant folded. + if (0 && SextVal >= -31 && SextVal <= 0) { SDValue LHS = BuildSplatI(SextVal+16, SplatSize, MVT::Other, DAG, dl); SDValue RHS = BuildSplatI(-16, SplatSize, MVT::Other, DAG, dl); LHS = DAG.getNode(ISD::ADD, dl, LHS.getValueType(), LHS, RHS); |

