Lines Matching defs:Shl
1671 bool IsShl = ShiftOpcode == Instruction::Shl;
1676 if (ShiftOpcode == Instruction::Shl) {
2230 static Instruction *foldICmpShlOne(ICmpInst &Cmp, Instruction *Shl,
2233 if (!match(Shl, m_Shl(m_One(), m_Value(Y))))
2236 Type *ShiftType = Shl->getType();
2275 BinaryOperator *Shl,
2278 if (Cmp.isEquality() && match(Shl->getOperand(0), m_APInt(ShiftVal)))
2279 return foldICmpShlConstConst(Cmp, Shl->getOperand(1), C, *ShiftVal);
2287 if (C.sle(0) && Shl->hasNoUnsignedWrap() && Shl->hasNoSignedWrap())
2288 return new ICmpInst(Pred, Shl->getOperand(0), Cmp.getOperand(1));
2293 (Shl->hasNoUnsignedWrap() || Shl->hasNoSignedWrap()))
2294 return new ICmpInst(Pred, Shl->getOperand(0), Cmp.getOperand(1));
2302 if (Shl->hasNoSignedWrap() &&
2305 return new ICmpInst(Pred, Shl->getOperand(0), Cmp.getOperand(1));
2308 if (!match(Shl->getOperand(1), m_APInt(ShiftAmt)))
2309 return foldICmpShlOne(Cmp, Shl, C);
2317 Value *X = Shl->getOperand(0);
2318 Type *ShType = Shl->getType();
2323 if (Shl->hasNoSignedWrap()) {
2348 if (Shl->hasNoUnsignedWrap()) {
2370 if (Cmp.isEquality() && Shl->hasOneUse()) {
2375 Value *And = Builder.CreateAnd(X, Mask, Shl->getName() + ".mask");
2382 if (Shl->hasOneUse() && isSignBitCheck(Pred, C, TrueIfSigned)) {
2387 Value *And = Builder.CreateAnd(X, Mask, Shl->getName() + ".mask");
2393 if (Cmp.isUnsigned() && Shl->hasOneUse()) {
2420 if (Shl->hasOneUse() && Amt != 0 &&
2446 Shl->hasNoSignedWrap()),
3814 case Instruction::Shl:
4224 case Instruction::Shl:
5323 case Instruction::Shl: {