[llvm] [LVI] Look through pointer operand when evaluating ptrtoints (PR #162627)

Antonio Frighetto via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 9 09:18:27 PDT 2025


antoniofrighetto wrote:

Reduced from CI failure:
```llvm
; ./bin/opt -S -p correlated-propagation test.ll

define i32 @src(ptr %p, i1 %cond) {
entry:
  %q = load ptr, ptr %p, align 8
  %cmp = icmp ne ptr %q, inttoptr (i64 -4096 to ptr)
  call void @llvm.assume(i1 %cmp)
  %cmp.1 = icmp ne ptr %q, inttoptr (i64 -8192 to ptr)
  call void @llvm.assume(i1 %cmp.1)
  br i1 %cond, label %bb.switch, label %bb.default

bb.switch:
  %p.val = ptrtoint ptr %q to i64
  switch i64 %p.val, label %bb.default [
    i64 -4096, label %bb.1
    i64 -8192, label %bb.1
  ]

bb.1:
  ret i32 0

bb.default:
  ret i32 1
}
```

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


More information about the llvm-commits mailing list