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

Reply via email to