[clang] [llvm] [ConstantRange] Estimate tighter lower (upper) bounds for masked binary and (or) (PR #120352)

Stephen Senran Zhang via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 30 18:34:02 PST 2024


================
@@ -2720,6 +2720,22 @@ TEST_F(ConstantRangeTest, binaryAnd) {
   EXPECT_EQ(R16_32.binaryAnd(R0_99), R0_32);
   EXPECT_EQ(R0_99.binaryAnd(R16_32), R0_32);
 
+  // 'And' with leading bits are masked (with common leading bits stripped)
----------------
zsrkmyn wrote:

Oh, if you're asking wrapped set, e.g., `[254, 1)` (or `[-2, 1)`), the algorithm bails out early at [here](https://github.com/llvm/llvm-project/commit/9c49208195b25c6cf5bdbd0f6d85ed5f8348812d#diff-b4f991f8e64d4fd23608e9ac00520c91429ad1dca8ea91f8be3a2922ea465dbdR1553). In such case, 0 is always in the range.

https://github.com/llvm/llvm-project/pull/120352


More information about the llvm-commits mailing list