reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Transforms/InstCombine/InstCombineShifts.cpp
  683       switch (Op0BO->getOpcode()) {
  691         if (isLeftShift && Op0BO->getOperand(1)->hasOneUse() &&
  692             match(Op0BO->getOperand(1), m_Shr(m_Value(V1),
  695             Builder.CreateShl(Op0BO->getOperand(0), Op1, Op0BO->getName());
  695             Builder.CreateShl(Op0BO->getOperand(0), Op1, Op0BO->getName());
  697           Value *X = Builder.CreateBinOp(Op0BO->getOpcode(), YS, V1,
  698                                          Op0BO->getOperand(1)->getName());
  709         Value *Op0BOOp1 = Op0BO->getOperand(1);
  715             Builder.CreateShl(Op0BO->getOperand(0), Op1, Op0BO->getName());
  715             Builder.CreateShl(Op0BO->getOperand(0), Op1, Op0BO->getName());
  719           return BinaryOperator::Create(Op0BO->getOpcode(), YS, XM);
  726         if (isLeftShift && Op0BO->getOperand(0)->hasOneUse() &&
  727             match(Op0BO->getOperand(0), m_Shr(m_Value(V1),
  730             Builder.CreateShl(Op0BO->getOperand(1), Op1, Op0BO->getName());
  730             Builder.CreateShl(Op0BO->getOperand(1), Op1, Op0BO->getName());
  732           Value *X = Builder.CreateBinOp(Op0BO->getOpcode(), V1, YS,
  733                                          Op0BO->getOperand(0)->getName());
  744         if (isLeftShift && Op0BO->getOperand(0)->hasOneUse() &&
  745             match(Op0BO->getOperand(0),
  749             Builder.CreateShl(Op0BO->getOperand(1), Op1, Op0BO->getName());
  749             Builder.CreateShl(Op0BO->getOperand(1), Op1, Op0BO->getName());
  754           return BinaryOperator::Create(Op0BO->getOpcode(), XM, YS);
  765       if (match(Op0BO->getOperand(1), m_APInt(Op0C))) {
  766         if (canShiftBinOpWithConstantRHS(I, Op0BO)) {
  768                                      cast<Constant>(Op0BO->getOperand(1)), Op1);
  771             Builder.CreateBinOp(I.getOpcode(), Op0BO->getOperand(0), Op1);
  772           NewShift->takeName(Op0BO);
  774           return BinaryOperator::Create(Op0BO->getOpcode(), NewShift,
  782       if (isLeftShift && Op0BO->getOpcode() == Instruction::Sub &&
  783           match(Op0BO->getOperand(0), m_APInt(Op0C))) {
  785                                    cast<Constant>(Op0BO->getOperand(0)), Op1);
  787         Value *NewShift = Builder.CreateShl(Op0BO->getOperand(1), Op1);
  788         NewShift->takeName(Op0BO);