[llvm] [InstCombine] Merge one-use GEP offsets during expansion (PR #147263)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 7 03:21:23 PDT 2025
nikic wrote:
Crashes:
```llvm
declare void @use(ptr)
define i64 @test(ptr %p, i64 %idx1, i64 %idx2, i64 %idx3) {
%gep1 = getelementptr i8, ptr %p, i64 %idx1
%gep2 = getelementptr i8, ptr %p, i64 8
call void @use(ptr %gep2)
%gep3 = getelementptr i8, ptr %gep2, i64 %idx2
%gep4 = getelementptr i8, ptr %gep3, i64 %idx3
call void @use(ptr %gep4)
%gep1.int = ptrtoint ptr %gep1 to i64
%gep4.int = ptrtoint ptr %gep4 to i64
%sub = sub i64 %gep1.int, %gep4.int
ret i64 %sub
}
```
https://github.com/llvm/llvm-project/pull/147263
More information about the llvm-commits
mailing list