Lines Matching defs:Sh0
23 bool canTryToConstantAddTwoShiftAmounts(Value *Sh0, Value *ShAmt0, Value *Sh1,
31 // Sh0 (Sh1 X, Q), K
40 (Sh0->getType()->getScalarSizeInBits() - 1) +
59 BinaryOperator *Sh0, const SimplifyQuery &SQ,
64 if (!match(Sh0,
84 if (!canTryToConstantAddTwoShiftAmounts(Sh0, ShAmt0, Sh1, ShAmt1))
88 bool HadTwoRightShifts = match(Sh0, m_Shr(m_Value(), m_Value())) &&
96 Instruction::BinaryOps ShiftOpcode = Sh0->getOpcode();
97 bool IdenticalShOpcodes = Sh0->getOpcode() == Sh1->getOpcode();
105 !match(Sh0, m_c_BinOp(m_OneUse(m_Value()), m_Value())))
111 SQ.getWithInstruction(Sh0)));
154 NewShift->setHasNoUnsignedWrap(Sh0->hasNoUnsignedWrap() &&
156 NewShift->setHasNoSignedWrap(Sh0->hasNoSignedWrap() &&
159 NewShift->setIsExact(Sh0->isExact() && Sh1->isExact());
166 Ret = CastInst::Create(Instruction::Trunc, NewShift, Sh0->getType());