From 694488f4770468f03b974180631c0fbfa21b28cc Mon Sep 17 00:00:00 2001 From: Eli Friedman Date: Sun, 31 Jan 2010 02:30:23 +0000 Subject: Add a small transform: transform -(X<getOperand(0), ConstantExpr::getNeg(DivRHS)); + // 0 - (C << X) -> (-C << X) + if (Op1I->getOpcode() == Instruction::Shl) + if (ConstantInt *CSI = dyn_cast(Op0)) + if (CSI->isZero()) + if (Value *ShlLHSNeg = dyn_castNegVal(Op1I->getOperand(0))) + return BinaryOperator::CreateShl(ShlLHSNeg, Op1I->getOperand(1)); + // X - X*C --> X * (1-C) ConstantInt *C2 = 0; if (dyn_castFoldableMul(Op1I, C2) == Op0) { -- cgit v1.2.3-18-g5258