Lines Matching refs:KnownBits

21 static KnownBits computeForAddCarry(  in computeForAddCarry()
22 const KnownBits &LHS, const KnownBits &RHS, in computeForAddCarry()
44 KnownBits KnownOut; in computeForAddCarry()
50 KnownBits KnownBits::computeForAddCarry( in computeForAddCarry()
51 const KnownBits &LHS, const KnownBits &RHS, const KnownBits &Carry) { in computeForAddCarry()
57 KnownBits KnownBits::computeForAddSub(bool Add, bool NSW, in computeForAddSub()
58 const KnownBits &LHS, KnownBits RHS) { in computeForAddSub()
59 KnownBits KnownOut; in computeForAddSub()
88 KnownBits KnownBits::computeForSubBorrow(const KnownBits &LHS, KnownBits RHS, in computeForSubBorrow()
89 const KnownBits &Borrow) { in computeForSubBorrow()
100 KnownBits KnownBits::sextInReg(unsigned SrcBitWidth) const { in sextInReg()
109 KnownBits Result; in sextInReg()
117 KnownBits KnownBits::makeGE(const APInt &Val) const { in makeGE()
126 return KnownBits(Zero, One | MaskedVal); in makeGE()
129 KnownBits KnownBits::umax(const KnownBits &LHS, const KnownBits &RHS) { in umax()
142 KnownBits L = LHS.makeGE(RHS.getMinValue()); in umax()
143 KnownBits R = RHS.makeGE(LHS.getMinValue()); in umax()
147 KnownBits KnownBits::umin(const KnownBits &LHS, const KnownBits &RHS) { in umin()
149 auto Flip = [](const KnownBits &Val) { return KnownBits(Val.One, Val.Zero); }; in umin()
153 KnownBits KnownBits::smax(const KnownBits &LHS, const KnownBits &RHS) { in smax()
155 auto Flip = [](const KnownBits &Val) { in smax()
161 return KnownBits(Zero, One); in smax()
166 KnownBits KnownBits::smin(const KnownBits &LHS, const KnownBits &RHS) { in smin()
168 auto Flip = [](const KnownBits &Val) { in smin()
174 return KnownBits(Zero, One); in smin()
186 KnownBits KnownBits::shl(const KnownBits &LHS, const KnownBits &RHS, bool NUW, in shl()
189 auto ShiftByConst = [&](const KnownBits &LHS, unsigned ShiftAmt) { in shl()
190 KnownBits Known; in shl()
211 KnownBits Known(BitWidth); in shl()
271 KnownBits KnownBits::lshr(const KnownBits &LHS, const KnownBits &RHS, in lshr()
274 auto ShiftByConst = [&](const KnownBits &LHS, unsigned ShiftAmt) { in lshr()
275 KnownBits Known = LHS; in lshr()
284 KnownBits Known(BitWidth); in lshr()
317 KnownBits KnownBits::ashr(const KnownBits &LHS, const KnownBits &RHS, in ashr()
320 auto ShiftByConst = [&](const KnownBits &LHS, unsigned ShiftAmt) { in ashr()
321 KnownBits Known = LHS; in ashr()
328 KnownBits Known(BitWidth); in ashr()
365 std::optional<bool> KnownBits::eq(const KnownBits &LHS, const KnownBits &RHS) { in eq()
373 std::optional<bool> KnownBits::ne(const KnownBits &LHS, const KnownBits &RHS) { in ne()
379 std::optional<bool> KnownBits::ugt(const KnownBits &LHS, const KnownBits &RHS) { in ugt()
389 std::optional<bool> KnownBits::uge(const KnownBits &LHS, const KnownBits &RHS) { in uge()
395 std::optional<bool> KnownBits::ult(const KnownBits &LHS, const KnownBits &RHS) { in ult()
399 std::optional<bool> KnownBits::ule(const KnownBits &LHS, const KnownBits &RHS) { in ule()
403 std::optional<bool> KnownBits::sgt(const KnownBits &LHS, const KnownBits &RHS) { in sgt()
413 std::optional<bool> KnownBits::sge(const KnownBits &LHS, const KnownBits &RHS) { in sge()
419 std::optional<bool> KnownBits::slt(const KnownBits &LHS, const KnownBits &RHS) { in slt()
423 std::optional<bool> KnownBits::sle(const KnownBits &LHS, const KnownBits &RHS) { in sle()
427 KnownBits KnownBits::abs(bool IntMinIsPoison) const { in abs()
433 KnownBits KnownAbs(getBitWidth()); in abs()
437 KnownBits Tmp = *this; in abs()
447 KnownBits::makeConstant(APInt(getBitWidth(), 0)), Tmp); in abs()
486 static KnownBits computeForSatAddSub(bool Add, bool Signed, in computeForSatAddSub()
487 const KnownBits &LHS, in computeForSatAddSub()
488 const KnownBits &RHS) { in computeForSatAddSub()
492 KnownBits Res = KnownBits::computeForAddSub(Add, /*NSW*/ false, LHS, RHS); in computeForSatAddSub()
494 auto SignBitKnown = [&](const KnownBits &K) { in computeForSatAddSub()
634 KnownBits KnownBits::sadd_sat(const KnownBits &LHS, const KnownBits &RHS) { in sadd_sat()
637 KnownBits KnownBits::ssub_sat(const KnownBits &LHS, const KnownBits &RHS) { in ssub_sat()
640 KnownBits KnownBits::uadd_sat(const KnownBits &LHS, const KnownBits &RHS) { in uadd_sat()
643 KnownBits KnownBits::usub_sat(const KnownBits &LHS, const KnownBits &RHS) { in usub_sat()
647 KnownBits KnownBits::mul(const KnownBits &LHS, const KnownBits &RHS, in mul()
730 KnownBits Res(BitWidth); in mul()
745 KnownBits KnownBits::mulhs(const KnownBits &LHS, const KnownBits &RHS) { in mulhs()
749 KnownBits WideLHS = LHS.sext(2 * BitWidth); in mulhs()
750 KnownBits WideRHS = RHS.sext(2 * BitWidth); in mulhs()
754 KnownBits KnownBits::mulhu(const KnownBits &LHS, const KnownBits &RHS) { in mulhu()
758 KnownBits WideLHS = LHS.zext(2 * BitWidth); in mulhu()
759 KnownBits WideRHS = RHS.zext(2 * BitWidth); in mulhu()
763 static KnownBits divComputeLowBit(KnownBits Known, const KnownBits &LHS, in divComputeLowBit()
764 const KnownBits &RHS, bool Exact) { in divComputeLowBit()
799 KnownBits KnownBits::sdiv(const KnownBits &LHS, const KnownBits &RHS, in sdiv()
807 KnownBits Known(BitWidth); in sdiv()
858 KnownBits KnownBits::udiv(const KnownBits &LHS, const KnownBits &RHS, in udiv()
862 KnownBits Known(BitWidth); in udiv()
887 KnownBits KnownBits::remGetLowBits(const KnownBits &LHS, const KnownBits &RHS) { in remGetLowBits()
895 return KnownBits(ZerosMask, OnesMask); in remGetLowBits()
897 return KnownBits(BitWidth); in remGetLowBits()
900 KnownBits KnownBits::urem(const KnownBits &LHS, const KnownBits &RHS) { in urem()
903 KnownBits Known = remGetLowBits(LHS, RHS); in urem()
919 KnownBits KnownBits::srem(const KnownBits &LHS, const KnownBits &RHS) { in srem()
922 KnownBits Known = remGetLowBits(LHS, RHS); in srem()
946 KnownBits &KnownBits::operator&=(const KnownBits &RHS) { in operator &=()
954 KnownBits &KnownBits::operator|=(const KnownBits &RHS) { in operator |=()
962 KnownBits &KnownBits::operator^=(const KnownBits &RHS) { in operator ^=()
971 KnownBits KnownBits::blsi() const { in blsi()
973 KnownBits Known(Zero, APInt(BitWidth, 0)); in blsi()
982 KnownBits KnownBits::blsmsk() const { in blsmsk()
984 KnownBits Known(BitWidth); in blsmsk()
992 void KnownBits::print(raw_ostream &OS) const { in print()
1006 void KnownBits::dump() const { in dump()