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

References

lib/Transforms/InstCombine/InstCombineShifts.cpp
  604   bool isLeftShift = I.getOpcode() == Instruction::Shl;
  612   if (I.getOpcode() != Instruction::AShr &&
  613       canEvaluateShifted(Op0, Op1C->getZExtValue(), isLeftShift, *this, &I)) {
  617                << *Op0 << "\n  SH: " << I << "\n");
  620         I, getShiftedValue(Op0, Op1C->getZExtValue(), isLeftShift, *this, DL));
  630   if (Instruction *FoldedShift = foldBinOpIntoSelectOrPhi(I))
  641     if (TrOp && I.isLogicalShift() && TrOp->isShift() &&
  647       Value *NSh = Builder.CreateBinOp(I.getOpcode(), TrOp, ShAmt, I.getName());
  647       Value *NSh = Builder.CreateBinOp(I.getOpcode(), TrOp, ShAmt, I.getName());
  661       if (I.getOpcode() == Instruction::Shl)
  664         assert(I.getOpcode() == Instruction::LShr && "Unknown logical shift");
  670                                      ConstantInt::get(I.getContext(), MaskV),
  674       return new TruncInst(And, I.getType());
  702           Constant *Mask = ConstantInt::get(I.getContext(), Bits);
  737           Constant *Mask = ConstantInt::get(I.getContext(), Bits);
  766         if (canShiftBinOpWithConstantRHS(I, Op0BO)) {
  767           Constant *NewRHS = ConstantExpr::get(I.getOpcode(),
  771             Builder.CreateBinOp(I.getOpcode(), Op0BO->getOperand(0), Op1);
  784         Constant *NewRHS = ConstantExpr::get(I.getOpcode(),
  810           canShiftBinOpWithConstantRHS(I, TBO)) {
  811         Constant *NewRHS = ConstantExpr::get(I.getOpcode(),
  815           Builder.CreateBinOp(I.getOpcode(), FalseVal, Op1);
  829           canShiftBinOpWithConstantRHS(I, FBO)) {
  830         Constant *NewRHS = ConstantExpr::get(I.getOpcode(),
  834           Builder.CreateBinOp(I.getOpcode(), TrueVal, Op1);