Lines Matching refs:Shr
1342 Instruction *InstCombiner::FoldICmpShrCst(ICmpInst &ICI, BinaryOperator *Shr, in FoldICmpShrCst() argument
1357 if (ICI.isSigned() != (Shr->getOpcode() == Instruction::AShr)) in FoldICmpShrCst()
1363 if (Shr->getOpcode() == Instruction::AShr && in FoldICmpShrCst()
1364 (!Shr->isExact() || ShAmtVal == TypeBits - 1)) in FoldICmpShrCst()
1368 Worklist.Add(Shr); in FoldICmpShrCst()
1371 ConstantInt::get(Shr->getType(), APInt::getOneBitSet(TypeBits, ShAmtVal)); in FoldICmpShrCst()
1374 Shr->getOpcode() == Instruction::AShr ? in FoldICmpShrCst()
1375 Builder->CreateSDiv(Shr->getOperand(0), DivCst, "", Shr->isExact()) : in FoldICmpShrCst()
1376 Builder->CreateUDiv(Shr->getOperand(0), DivCst, "", Shr->isExact()); in FoldICmpShrCst()
1398 if (Shr->getOpcode() == Instruction::LShr) in FoldICmpShrCst()
1412 if (Shr->hasOneUse() && Shr->isExact()) in FoldICmpShrCst()
1413 return new ICmpInst(ICI.getPredicate(), Shr->getOperand(0), ShiftedCmpRHS); in FoldICmpShrCst()
1415 if (Shr->hasOneUse()) { in FoldICmpShrCst()
1420 Value *And = Builder->CreateAnd(Shr->getOperand(0), in FoldICmpShrCst()
1421 Mask, Shr->getName()+".mask"); in FoldICmpShrCst()