diff options
author | Dale Johannesen <dalej@apple.com> | 2009-11-20 22:16:40 +0000 |
---|---|---|
committer | Dale Johannesen <dalej@apple.com> | 2009-11-20 22:16:40 +0000 |
commit | 56187db10c250ffe39acb633bdf719c8fe66a273 (patch) | |
tree | 57c0c4831190eb4ba56a9e69d389323aec7476ed /lib/Target | |
parent | a7c408162231566c5eff408a28585063f152ca27 (diff) | |
download | external_llvm-56187db10c250ffe39acb633bdf719c8fe66a273.zip external_llvm-56187db10c250ffe39acb633bdf719c8fe66a273.tar.gz external_llvm-56187db10c250ffe39acb633bdf719c8fe66a273.tar.bz2 |
Remove an incorrect overaggressive optimization
(PPC specific).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89496 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
-rw-r--r-- | lib/Target/PowerPC/PPCISelDAGToDAG.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/lib/Target/PowerPC/PPCISelDAGToDAG.cpp b/lib/Target/PowerPC/PPCISelDAGToDAG.cpp index fb9a240..1cdd51e 100644 --- a/lib/Target/PowerPC/PPCISelDAGToDAG.cpp +++ b/lib/Target/PowerPC/PPCISelDAGToDAG.cpp @@ -443,8 +443,7 @@ SDNode *PPCDAGToDAGISel::SelectBitfieldInsert(SDNode *N) { unsigned MB, ME; if (InsertMask && isRunOfOnes(InsertMask, MB, ME)) { - SDValue Tmp1, Tmp2, Tmp3; - bool DisjointMask = (TargetMask ^ InsertMask) == 0xFFFFFFFF; + SDValue Tmp1, Tmp2; if ((Op1Opc == ISD::SHL || Op1Opc == ISD::SRL) && isInt32Immediate(Op1.getOperand(1), Value)) { @@ -461,10 +460,9 @@ SDNode *PPCDAGToDAGISel::SelectBitfieldInsert(SDNode *N) { Op1 = Op1.getOperand(0); } } - - Tmp3 = (Op0Opc == ISD::AND && DisjointMask) ? Op0.getOperand(0) : Op0; + SH &= 31; - SDValue Ops[] = { Tmp3, Op1, getI32Imm(SH), getI32Imm(MB), + SDValue Ops[] = { Op0, Op1, getI32Imm(SH), getI32Imm(MB), getI32Imm(ME) }; return CurDAG->getMachineNode(PPC::RLWIMI, dl, MVT::i32, Ops, 5); } |