Lines Matching defs:Shl
1693 bool IsShl = ShiftOpcode == Instruction::Shl;
1698 if (ShiftOpcode == Instruction::Shl) {
2280 static Instruction *foldICmpShlLHSC(ICmpInst &Cmp, Instruction *Shl,
2284 if (!match(Shl, m_NUWShl(m_APInt(C2), m_Value(Y))))
2287 Type *ShiftType = Shl->getType();
2331 BinaryOperator *Shl,
2334 if (Cmp.isEquality() && match(Shl->getOperand(0), m_APInt(ShiftVal)))
2335 return foldICmpShlConstConst(Cmp, Shl->getOperand(1), C, *ShiftVal);
2343 if (C.sle(0) && Shl->hasNoUnsignedWrap() && Shl->hasNoSignedWrap())
2344 return new ICmpInst(Pred, Shl->getOperand(0), Cmp.getOperand(1));
2349 (Shl->hasNoUnsignedWrap() || Shl->hasNoSignedWrap()))
2350 return new ICmpInst(Pred, Shl->getOperand(0), Cmp.getOperand(1));
2358 if (Shl->hasNoSignedWrap() &&
2361 return new ICmpInst(Pred, Shl->getOperand(0), Cmp.getOperand(1));
2364 if (!match(Shl->getOperand(1), m_APInt(ShiftAmt)))
2365 return foldICmpShlLHSC(Cmp, Shl, C);
2373 Value *X = Shl->getOperand(0);
2374 Type *ShType = Shl->getType();
2379 if (Shl->hasNoSignedWrap()) {
2404 if (Shl->hasNoUnsignedWrap()) {
2426 if (Cmp.isEquality() && Shl->hasOneUse()) {
2431 Value *And = Builder.CreateAnd(X, Mask, Shl->getName() + ".mask");
2438 if (Shl->hasOneUse() && isSignBitCheck(Pred, C, TrueIfSigned)) {
2443 Value *And = Builder.CreateAnd(X, Mask, Shl->getName() + ".mask");
2449 if (Cmp.isUnsigned() && Shl->hasOneUse()) {
2476 if (Shl->hasOneUse() && Amt != 0 &&
2501 Shl->hasNoSignedWrap()),
3975 case Instruction::Shl:
4402 case Instruction::Shl:
5534 case Instruction::Shl: {