Lines Matching refs:KnownBits

21 static KnownBits computeForAddCarry(const KnownBits &LHS, const KnownBits &RHS,  in computeForAddCarry()
38 KnownBits KnownOut; in computeForAddCarry()
44 KnownBits KnownBits::computeForAddCarry( in computeForAddCarry()
45 const KnownBits &LHS, const KnownBits &RHS, const KnownBits &Carry) { in computeForAddCarry()
51 KnownBits KnownBits::computeForAddSub(bool Add, bool NSW, bool NUW, in computeForAddSub()
52 const KnownBits &LHS, in computeForAddSub()
53 const KnownBits &RHS) { in computeForAddSub()
55 KnownBits KnownOut(BitWidth); in computeForAddSub()
68 KnownBits NotRHS = RHS; in computeForAddSub()
137 KnownBits KnownBits::computeForSubBorrow(const KnownBits &LHS, KnownBits RHS, in computeForSubBorrow()
138 const KnownBits &Borrow) { in computeForSubBorrow()
149 KnownBits KnownBits::sextInReg(unsigned SrcBitWidth) const { in sextInReg()
158 KnownBits Result; in sextInReg()
166 KnownBits KnownBits::makeGE(const APInt &Val) const { in makeGE()
175 return KnownBits(Zero, One | MaskedVal); in makeGE()
178 KnownBits KnownBits::umax(const KnownBits &LHS, const KnownBits &RHS) { in umax()
191 KnownBits L = LHS.makeGE(RHS.getMinValue()); in umax()
192 KnownBits R = RHS.makeGE(LHS.getMinValue()); in umax()
196 KnownBits KnownBits::umin(const KnownBits &LHS, const KnownBits &RHS) { in umin()
198 auto Flip = [](const KnownBits &Val) { return KnownBits(Val.One, Val.Zero); }; in umin()
202 KnownBits KnownBits::smax(const KnownBits &LHS, const KnownBits &RHS) { in smax()
204 auto Flip = [](const KnownBits &Val) { in smax()
210 return KnownBits(Zero, One); in smax()
215 KnownBits KnownBits::smin(const KnownBits &LHS, const KnownBits &RHS) { in smin()
217 auto Flip = [](const KnownBits &Val) { in smin()
223 return KnownBits(Zero, One); in smin()
228 KnownBits KnownBits::abdu(const KnownBits &LHS, const KnownBits &RHS) { in abdu()
240 KnownBits Diff0 = in abdu()
242 KnownBits Diff1 = in abdu()
247 KnownBits KnownBits::abds(KnownBits LHS, KnownBits RHS) { in abds()
271 KnownBits Diff0 = in abds()
273 KnownBits Diff1 = in abds()
285 KnownBits KnownBits::shl(const KnownBits &LHS, const KnownBits &RHS, bool NUW, in shl()
288 auto ShiftByConst = [&](const KnownBits &LHS, unsigned ShiftAmt) { in shl()
289 KnownBits Known; in shl()
310 KnownBits Known(BitWidth); in shl()
370 KnownBits KnownBits::lshr(const KnownBits &LHS, const KnownBits &RHS, in lshr()
373 auto ShiftByConst = [&](const KnownBits &LHS, unsigned ShiftAmt) { in lshr()
374 KnownBits Known = LHS; in lshr()
383 KnownBits Known(BitWidth); in lshr()
428 KnownBits KnownBits::ashr(const KnownBits &LHS, const KnownBits &RHS, in ashr()
431 auto ShiftByConst = [&](const KnownBits &LHS, unsigned ShiftAmt) { in ashr()
432 KnownBits Known = LHS; in ashr()
439 KnownBits Known(BitWidth); in ashr()
488 std::optional<bool> KnownBits::eq(const KnownBits &LHS, const KnownBits &RHS) { in eq()
496 std::optional<bool> KnownBits::ne(const KnownBits &LHS, const KnownBits &RHS) { in ne()
502 std::optional<bool> KnownBits::ugt(const KnownBits &LHS, const KnownBits &RHS) { in ugt()
512 std::optional<bool> KnownBits::uge(const KnownBits &LHS, const KnownBits &RHS) { in uge()
518 std::optional<bool> KnownBits::ult(const KnownBits &LHS, const KnownBits &RHS) { in ult()
522 std::optional<bool> KnownBits::ule(const KnownBits &LHS, const KnownBits &RHS) { in ule()
526 std::optional<bool> KnownBits::sgt(const KnownBits &LHS, const KnownBits &RHS) { in sgt()
536 std::optional<bool> KnownBits::sge(const KnownBits &LHS, const KnownBits &RHS) { in sge()
542 std::optional<bool> KnownBits::slt(const KnownBits &LHS, const KnownBits &RHS) { in slt()
546 std::optional<bool> KnownBits::sle(const KnownBits &LHS, const KnownBits &RHS) { in sle()
550 KnownBits KnownBits::abs(bool IntMinIsPoison) const { in abs()
556 KnownBits KnownAbs(getBitWidth()); in abs()
560 KnownBits Tmp = *this; in abs()
570 KnownBits::makeConstant(APInt(getBitWidth(), 0)), Tmp); in abs()
608 static KnownBits computeForSatAddSub(bool Add, bool Signed, in computeForSatAddSub()
609 const KnownBits &LHS, in computeForSatAddSub()
610 const KnownBits &RHS) { in computeForSatAddSub()
613 KnownBits Res = in computeForSatAddSub()
614 KnownBits::computeForAddSub(Add, /*NSW=*/false, /*NUW=*/false, LHS, RHS); in computeForSatAddSub()
616 auto SignBitKnown = [&](const KnownBits &K) { in computeForSatAddSub()
753 KnownBits KnownBits::sadd_sat(const KnownBits &LHS, const KnownBits &RHS) { in sadd_sat()
756 KnownBits KnownBits::ssub_sat(const KnownBits &LHS, const KnownBits &RHS) { in ssub_sat()
759 KnownBits KnownBits::uadd_sat(const KnownBits &LHS, const KnownBits &RHS) { in uadd_sat()
762 KnownBits KnownBits::usub_sat(const KnownBits &LHS, const KnownBits &RHS) { in usub_sat()
766 static KnownBits avgCompute(KnownBits LHS, KnownBits RHS, bool IsCeil, in avgCompute()
777 KnownBits KnownBits::avgFloorS(const KnownBits &LHS, const KnownBits &RHS) { in avgFloorS()
782 KnownBits KnownBits::avgFloorU(const KnownBits &LHS, const KnownBits &RHS) { in avgFloorU()
787 KnownBits KnownBits::avgCeilS(const KnownBits &LHS, const KnownBits &RHS) { in avgCeilS()
792 KnownBits KnownBits::avgCeilU(const KnownBits &LHS, const KnownBits &RHS) { in avgCeilU()
797 KnownBits KnownBits::mul(const KnownBits &LHS, const KnownBits &RHS, in mul()
879 KnownBits Res(BitWidth); in mul()
894 KnownBits KnownBits::mulhs(const KnownBits &LHS, const KnownBits &RHS) { in mulhs()
897 KnownBits WideLHS = LHS.sext(2 * BitWidth); in mulhs()
898 KnownBits WideRHS = RHS.sext(2 * BitWidth); in mulhs()
902 KnownBits KnownBits::mulhu(const KnownBits &LHS, const KnownBits &RHS) { in mulhu()
905 KnownBits WideLHS = LHS.zext(2 * BitWidth); in mulhu()
906 KnownBits WideRHS = RHS.zext(2 * BitWidth); in mulhu()
910 static KnownBits divComputeLowBit(KnownBits Known, const KnownBits &LHS, in divComputeLowBit()
911 const KnownBits &RHS, bool Exact) { in divComputeLowBit()
946 KnownBits KnownBits::sdiv(const KnownBits &LHS, const KnownBits &RHS, in sdiv()
953 KnownBits Known(BitWidth); in sdiv()
1002 KnownBits KnownBits::udiv(const KnownBits &LHS, const KnownBits &RHS, in udiv()
1005 KnownBits Known(BitWidth); in udiv()
1029 KnownBits KnownBits::remGetLowBits(const KnownBits &LHS, const KnownBits &RHS) { in remGetLowBits()
1037 return KnownBits(ZerosMask, OnesMask); in remGetLowBits()
1039 return KnownBits(BitWidth); in remGetLowBits()
1042 KnownBits KnownBits::urem(const KnownBits &LHS, const KnownBits &RHS) { in urem()
1043 KnownBits Known = remGetLowBits(LHS, RHS); in urem()
1059 KnownBits KnownBits::srem(const KnownBits &LHS, const KnownBits &RHS) { in srem()
1060 KnownBits Known = remGetLowBits(LHS, RHS); in srem()
1084 KnownBits &KnownBits::operator&=(const KnownBits &RHS) { in operator &=()
1092 KnownBits &KnownBits::operator|=(const KnownBits &RHS) { in operator |=()
1100 KnownBits &KnownBits::operator^=(const KnownBits &RHS) { in operator ^=()
1109 KnownBits KnownBits::blsi() const { in blsi()
1111 KnownBits Known(Zero, APInt(BitWidth, 0)); in blsi()
1120 KnownBits KnownBits::blsmsk() const { in blsmsk()
1122 KnownBits Known(BitWidth); in blsmsk()
1130 void KnownBits::print(raw_ostream &OS) const { in print()
1144 void KnownBits::dump() const { in dump()