| Issue |
167183
|
| Summary |
Missed Optimization: Failure to simplify ((x << 2) + 31) & -4 to (x << 2) + 28
|
| Labels |
new issue
|
| Assignees |
|
| Reporter |
Leo0506
|
```
define i32 @src(ptr %arg0) {
%v0 = load i32, ptr %arg0, align 4
%v1 = shl i32 %v0, 2
%v2 = add i32 %v1, 31
%v3 = and i32 %v2, -4
ret i32 %v3
}
define i32 @tgt(ptr %arg0) {
%v0 = load i32, ptr %arg0, align 4
%v1 = shl i32 %v0, 2
%v2 = add i32 %v1, 28
ret i32 %v2
}
```
alive2: https://alive2.llvm.org/ce/z/a-NFt_
godbolt: https://godbolt.org/z/3jb6xKr8n
Pattern found in: https://github.com/dtcxzyw/llvm-opt-benchmark/blob/main/bench/linux/optimized/xfrm_user.ll
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs