Home | History | Annotate | Download | only in InstCombine

Lines Matching refs:Shr

1015 /// FoldICmpShrCst - Handle "icmp(([al]shr X, cst1), cst2)".
1016 Instruction *InstCombiner::FoldICmpShrCst(ICmpInst &ICI, BinaryOperator *Shr,
1031 if (ICI.isSigned() != (Shr->getOpcode() == Instruction::AShr))
1037 if (Shr->getOpcode() == Instruction::AShr &&
1038 (!Shr->isExact() || ShAmtVal == TypeBits - 1))
1042 Worklist.Add(Shr);
1045 ConstantInt::get(Shr->getType(), APInt::getOneBitSet(TypeBits, ShAmtVal));
1048 Shr->getOpcode() == Instruction::AShr ?
1049 Builder->CreateSDiv(Shr->getOperand(0), DivCst, "", Shr->isExact()) :
1050 Builder->CreateUDiv(Shr->getOperand(0), DivCst, "", Shr->isExact());
1072 if (Shr->getOpcode() == Instruction::LShr)
1086 if (Shr->hasOneUse() && Shr->isExact())
1087 return new ICmpInst(ICI.getPredicate(), Shr->getOperand(0), ShiftedCmpRHS);
1089 if (Shr->hasOneUse()) {
1094 Value *And = Builder->CreateAnd(Shr->getOperand(0),
1095 Mask, Shr->getName()+".mask");
1750 case Instruction::LShr: // (icmp pred (shr X, ShAmt), CI)
1759 // Handle exact shr's.