Lines Matching defs:Known2
84 ForeachKnownBits(Bits, [&](const KnownBits &Known2) {
85 KnownBits Computed = BitsFn(Known1, Known2);
91 ForeachNumInKnownBits(Known2, [&](const APInt &N2) {
100 EXPECT_TRUE(checkResult(Name, Exact, Computed, {Known1, Known2},
106 !Known1.hasConflict() && !Known2.hasConflict()) {
119 ForeachKnownBits(Bits, [&](const KnownBits &Known2) {
127 ForeachNumInKnownBits(Known2, [&](const APInt &N2) {
140 KnownBits::computeForAddCarry(Known1, Known2, KnownCarry);
153 ForeachKnownBits(Bits, [&](const KnownBits &Known2) {
166 ForeachNumInKnownBits(Known2, [&](const APInt &N2) {
199 IsAdd, /*NSW=*/false, /*NUW=*/false, Known1, Known2);
200 EXPECT_TRUE(checkResult(Name, Exact, Computed, {Known1, Known2},
204 IsAdd, /*NSW=*/true, /*NUW=*/false, Known1, Known2);
206 {Known1, Known2},
210 IsAdd, /*NSW=*/false, /*NUW=*/true, Known1, Known2);
212 {Known1, Known2},
216 IsAdd, /*NSW=*/true, /*NUW=*/true, Known1, Known2);
218 ComputedNSWAndNUW, {Known1, Known2},
232 ForeachKnownBits(Bits, [&](const KnownBits &Known2) {
240 ForeachNumInKnownBits(Known2, [&](const APInt &N2) {
253 KnownBits::computeForSubBorrow(Known1, Known2, KnownBorrow);
287 [](const KnownBits &Known1, const KnownBits &Known2) {
288 return Known1 & Known2;
293 [](const KnownBits &Known1, const KnownBits &Known2) {
294 return Known1 | Known2;
299 [](const KnownBits &Known1, const KnownBits &Known2) {
300 return Known1 ^ Known2;
305 [](const KnownBits &Known1, const KnownBits &Known2) {
306 return KnownBits::add(Known1, Known2);
311 [](const KnownBits &Known1, const KnownBits &Known2) {
312 return KnownBits::sub(Known1, Known2);
323 [](const KnownBits &Known1, const KnownBits &Known2) {
324 return KnownBits::udiv(Known1, Known2);
334 [](const KnownBits &Known1, const KnownBits &Known2) {
335 return KnownBits::udiv(Known1, Known2, /*Exact=*/true);
345 [](const KnownBits &Known1, const KnownBits &Known2) {
346 return KnownBits::sdiv(Known1, Known2);
356 [](const KnownBits &Known1, const KnownBits &Known2) {
357 return KnownBits::sdiv(Known1, Known2, /*Exact=*/true);
404 [](const KnownBits &Known1, const KnownBits &Known2) {
405 return KnownBits::shl(Known1, Known2);
415 [](const KnownBits &Known1, const KnownBits &Known2) {
416 return KnownBits::shl(Known1, Known2, /*NUW=*/true);
428 [](const KnownBits &Known1, const KnownBits &Known2) {
429 return KnownBits::shl(Known1, Known2, /*NUW=*/false, /*NSW=*/true);
441 [](const KnownBits &Known1, const KnownBits &Known2) {
442 return KnownBits::shl(Known1, Known2, /*NUW=*/true, /*NSW=*/true);
456 [](const KnownBits &Known1, const KnownBits &Known2) {
457 return KnownBits::lshr(Known1, Known2);
467 [](const KnownBits &Known1, const KnownBits &Known2) {
468 return KnownBits::lshr(Known1, Known2, /*ShAmtNonZero=*/false,
481 [](const KnownBits &Known1, const KnownBits &Known2) {
482 return KnownBits::ashr(Known1, Known2);
492 [](const KnownBits &Known1, const KnownBits &Known2) {
493 return KnownBits::ashr(Known1, Known2, /*ShAmtNonZero=*/false,
506 [](const KnownBits &Known1, const KnownBits &Known2) {
507 return KnownBits::mul(Known1, Known2);
576 ForeachKnownBits(Bits, [&](const KnownBits &Known2) {
589 ForeachNumInKnownBits(Known2, [&](const APInt &N2) {
613 std::optional<bool> KnownEQ = KnownBits::eq(Known1, Known2);
614 std::optional<bool> KnownNE = KnownBits::ne(Known1, Known2);
615 std::optional<bool> KnownUGT = KnownBits::ugt(Known1, Known2);
616 std::optional<bool> KnownUGE = KnownBits::uge(Known1, Known2);
617 std::optional<bool> KnownULT = KnownBits::ult(Known1, Known2);
618 std::optional<bool> KnownULE = KnownBits::ule(Known1, Known2);
619 std::optional<bool> KnownSGT = KnownBits::sgt(Known1, Known2);
620 std::optional<bool> KnownSGE = KnownBits::sge(Known1, Known2);
621 std::optional<bool> KnownSLT = KnownBits::slt(Known1, Known2);
622 std::optional<bool> KnownSLE = KnownBits::sle(Known1, Known2);
624 if (Known1.hasConflict() || Known2.hasConflict())
774 ForeachKnownBits(Bits, [&](const KnownBits &Known2) {
777 ForeachNumInKnownBits(Known2, [&](const APInt &N2) {
781 if (!Known1.hasConflict() && !Known2.hasConflict()) {
783 KnownBits::haveNoCommonBitsSet(Known1, Known2));
817 ForeachKnownBits(Bits, [&](const KnownBits &Known2) {
818 KnownBits Computed = KnownBits::mul(Known1, Known2);
824 ForeachNumInKnownBits(Known2, [&](const APInt &N2) {
840 EXPECT_TRUE(checkResult("mul", Exact, Computed, {Known1, Known2},