Lines Matching defs:N2

252           ForeachNumInConstantRange(CR2, [&](const APInt &N2) {
253 if (std::optional<APInt> ResultN = IntFn(N1, N2))
733 [](const APInt &N1, const APInt &N2) {
734 return N1 + N2;
797 [](const APInt &N1, const APInt &N2) -> std::optional<APInt> {
799 APInt Res = N1.sadd_ov(N2, IsOverflow);
850 [](const APInt &N1, const APInt &N2) -> std::optional<APInt> {
852 APInt Res = N1.uadd_ov(N2, IsOverflow);
889 [](const APInt &N1, const APInt &N2) -> std::optional<APInt> {
891 APInt Res1 = N1.uadd_ov(N2, IsOverflow1);
892 APInt Res2 = N1.sadd_ov(N2, IsOverflow2);
926 [](const APInt &N1, const APInt &N2) {
927 return N1 - N2;
937 [](const APInt &N1, const APInt &N2) -> std::optional<APInt> {
939 APInt Res = N1.ssub_ov(N2, IsOverflow);
949 [](const APInt &N1, const APInt &N2) -> std::optional<APInt> {
951 APInt Res = N1.usub_ov(N2, IsOverflow);
961 [](const APInt &N1, const APInt &N2) -> std::optional<APInt> {
963 APInt Res1 = N1.usub_ov(N2, IsOverflow1);
964 APInt Res2 = N1.ssub_ov(N2, IsOverflow2);
1029 [](const APInt &N1, const APInt &N2) {
1030 return N1 * N2;
1108 [](const APInt &N1, const APInt &N2) -> std::optional<APInt> {
1110 APInt Res = N1.umul_ov(N2, IsOverflow);
1120 [](const APInt &N1, const APInt &N2) -> std::optional<APInt> {
1122 APInt Res = N1.smul_ov(N2, IsOverflow);
1133 [](const APInt &N1, const APInt &N2) -> std::optional<APInt> {
1135 APInt Res1 = N1.umul_ov(N2, IsOverflow1);
1136 APInt Res2 = N1.smul_ov(N2, IsOverflow2);
1150 [](const APInt &N1, const APInt &N2) { return N1 * N2; }, PreferSmallest,
1175 [](const APInt &N1, const APInt &N2) {
1176 return APIntOps::umax(N1, N2);
1205 [](const APInt &N1, const APInt &N2) {
1206 return APIntOps::smax(N1, N2);
1231 [](const APInt &N1, const APInt &N2) {
1232 return APIntOps::umin(N1, N2);
1260 [](const APInt &N1, const APInt &N2) {
1261 return APIntOps::smin(N1, N2);
1308 ForeachNumInConstantRange(CR2, [&](const APInt &N2) {
1310 if (N2 == 0)
1314 if (N1.isMinSignedValue() && N2.isAllOnes())
1317 APInt N = N1.sdiv(N2);
1386 [](const APInt &N1, const APInt &N2) -> std::optional<APInt> {
1387 if (N2.isZero())
1389 return N1.urem(N2);
1461 [](const APInt &N1, const APInt &N2) -> std::optional<APInt> {
1462 if (N2.isZero())
1464 return N1.srem(N2);
1505 [](const APInt &N1, const APInt &N2) -> std::optional<APInt> {
1506 if (N2.uge(N2.getBitWidth()))
1508 return N1.shl(N2);
1525 [](const APInt &N1, const APInt &N2) -> std::optional<APInt> {
1527 APInt Res = N1.ushl_ov(N2, IsOverflow);
1537 [](const APInt &N1, const APInt &N2) -> std::optional<APInt> {
1539 APInt Res = N1.sshl_ov(N2, IsOverflow);
1549 [](const APInt &N1, const APInt &N2) -> std::optional<APInt> {
1551 APInt Res1 = N1.ushl_ov(N2, IsOverflow1);
1552 APInt Res2 = N1.sshl_ov(N2, IsOverflow2);
1698 ForeachNumInConstantRange(CR2, [&](const APInt &N2) {
1699 Exhaustive &= ICmpInst::compare(N1, N2, Pred);
1950 ForeachNumInConstantRange(CR, [&](const APInt &N2) {
1951 if (OverflowFn(N1, N2))
1972 [](const APInt &N1, const APInt &N2) {
1974 (void) N1.uadd_ov(N2, Overflow);
1979 [](const APInt &N1, const APInt &N2) {
1981 (void) N1.sadd_ov(N2, Overflow);
1986 [](const APInt &N1, const APInt &N2) {
1988 (void) N1.usub_ov(N2, Overflow);
1993 [](const APInt &N1, const APInt &N2) {
1995 (void) N1.ssub_ov(N2, Overflow);
2000 [](const APInt &N1, const APInt &N2) {
2002 (void) N1.umul_ov(N2, Overflow);
2007 [](const APInt &N1, const APInt &N2) {
2009 (void) N1.smul_ov(N2, Overflow);
2014 [](const APInt &N1, const APInt &N2) {
2016 (void)N1.ushl_ov(N2, Overflow);
2021 [](const APInt &N1, const APInt &N2) {
2023 (void)N1.sshl_ov(N2, Overflow);
2306 // Loop over all N1 in CR1 and N2 in CR2 and check whether any of the
2312 ForeachNumInConstantRange(CR2, [&](const APInt &N2) {
2314 if (!OverflowFn(IsOverflowHigh, N1, N2)) {
2359 [](bool &IsOverflowHigh, const APInt &N1, const APInt &N2) {
2361 (void) N1.uadd_ov(N2, Overflow);
2372 [](bool &IsOverflowHigh, const APInt &N1, const APInt &N2) {
2374 (void) N1.usub_ov(N2, Overflow);
2385 [](bool &IsOverflowHigh, const APInt &N1, const APInt &N2) {
2387 (void) N1.umul_ov(N2, Overflow);
2398 [](bool &IsOverflowHigh, const APInt &N1, const APInt &N2) {
2400 (void) N1.sadd_ov(N2, Overflow);
2411 [](bool &IsOverflowHigh, const APInt &N1, const APInt &N2) {
2413 (void) N1.ssub_ov(N2, Overflow);
2535 [](const APInt &N1, const APInt &N2) {
2536 return N1.uadd_sat(N2);
2546 [](const APInt &N1, const APInt &N2) {
2547 return N1.usub_sat(N2);
2557 [](const APInt &N1, const APInt &N2) { return N1.umul_sat(N2); },
2566 [](const APInt &N1, const APInt &N2) { return N1.ushl_sat(N2); },
2575 [](const APInt &N1, const APInt &N2) {
2576 return N1.sadd_sat(N2);
2586 [](const APInt &N1, const APInt &N2) {
2587 return N1.ssub_sat(N2);
2597 [](const APInt &N1, const APInt &N2) { return N1.smul_sat(N2); },
2606 [](const APInt &N1, const APInt &N2) { return N1.sshl_sat(N2); },
2758 [](const APInt &N1, const APInt &N2) { return N1 & N2; }, PreferSmallest,
2796 [](const APInt &N1, const APInt &N2) { return N1 | N2; }, PreferSmallest,
2824 [](const APInt &N1, const APInt &N2) {
2825 return N1 ^ N2;
2861 ForeachNumInConstantRange(CR2, [&](const APInt &N2) {
2864 TrulyEquivalent &= ICmpInst::compare(N1, N2, SrcPred) ==
2865 ICmpInst::compare(N1, N2, TgtPred);