Issue |
152325
|
Summary |
Missed Optimization: eliminate redundant pointer alignment
|
Labels |
new issue
|
Assignees |
|
Reporter |
zxt5
|
```
define ptr @src(ptr %arg0) {
%2 = load ptr, ptr %arg0, align 8
%3 = ptrtoint ptr %2 to i64
%4 = and i64 %3, -8
%5 = inttoptr i64 %4 to ptr
%6 = getelementptr inbounds nuw i8, ptr %5, i64 40
ret ptr %6
}
define ptr @tgt(ptr %arg0) {
%2 = load ptr, ptr %arg0, align 8
%3 = getelementptr inbounds nuw i8, ptr %2, i64 40
ret ptr %3
}
```
Alive2: https://alive2.llvm.org/ce/z/2VSGnP
Godbolt: https://godbolt.org/z/4evE4f9EW
Found this pattern in https://github.com/dtcxzyw/llvm-opt-benchmark/blob/main/bench/openusd/optimized/instanceAdapter.ll
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs