Lines Matching defs:Exact
30 static testing::AssertionResult checkResult(Twine Name, const KnownBits &Exact,
37 if (Exact.hasConflict() || Computed == Exact)
40 if (Computed.Zero.isSubsetOf(Exact.Zero) &&
41 Computed.One.isSubsetOf(Exact.One))
50 Result << "Computed = " << Computed << ", Exact = " << Exact;
60 KnownBits Exact(Bits);
61 Exact.Zero.setAllBits();
62 Exact.One.setAllBits();
66 Exact.One &= *Res;
67 Exact.Zero &= ~*Res;
71 if (!Exact.hasConflict()) {
72 EXPECT_TRUE(checkResult(Name, Exact, Computed, Known, CheckOptimality));
86 KnownBits Exact(Bits);
87 Exact.Zero.setAllBits();
88 Exact.One.setAllBits();
93 Exact.One &= *Res;
94 Exact.Zero &= ~*Res;
99 if (!Exact.hasConflict()) {
100 EXPECT_TRUE(checkResult(Name, Exact, Computed, {Known1, Known2},
105 if (RefinePoisonToZero && Exact.hasConflict() &&
123 KnownBits Exact(Bits);
124 Exact.Zero.setAllBits();
125 Exact.One.setAllBits();
133 Exact.One &= Add;
134 Exact.Zero &= ~Add;
141 if (!Exact.hasConflict()) {
142 EXPECT_EQ(Exact, Computed);
154 KnownBits Exact(Bits), ExactNSW(Bits), ExactNUW(Bits),
156 Exact.Zero.setAllBits();
157 Exact.One.setAllBits();
178 Exact.One &= Res;
179 Exact.Zero &= ~Res;
200 EXPECT_TRUE(checkResult(Name, Exact, Computed, {Known1, Known2},
236 KnownBits Exact(Bits);
237 Exact.Zero.setAllBits();
238 Exact.One.setAllBits();
246 Exact.One &= Sub;
247 Exact.Zero &= ~Sub;
254 if (!Exact.hasConflict()) {
255 EXPECT_EQ(Exact, Computed);
335 return KnownBits::udiv(Known1, Known2, /*Exact=*/true);
357 return KnownBits::sdiv(Known1, Known2, /*Exact=*/true);
469 /*Exact=*/true);
494 /*Exact=*/true);
819 KnownBits Exact(Bits);
820 Exact.Zero.setAllBits();
821 Exact.One.setAllBits();
826 Exact.One &= Res;
827 Exact.Zero &= ~Res;
831 if (!Exact.hasConflict()) {
835 Bits, (Exact.Zero | Exact.One).countTrailingOnes());
836 Exact.Zero &= Mask;
837 Exact.One &= Mask;
840 EXPECT_TRUE(checkResult("mul", Exact, Computed, {Known1, Known2},