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