Issue |
154258
|
Summary |
Missed optimization: eliminate redundant 64-bit check in 16-bit-range test
|
Labels |
new issue
|
Assignees |
|
Reporter |
zxt5
|
```
define i1 @src(i32 %v3, i32 %v4) local_unnamed_addr #0 {
%v5 = shl i32 %v3, %v4
%v6 = sext i32 %v5 to i64
%v7 = add i32 %v5, 32768
%v8 = add nsw i64 %v6, 2147516416
%v9 = icmp samesign ult i64 %v8, 4294967296
%v131 = icmp ult i32 %v7, 65536
%v13 = select i1 %v9, i1 %v131, i1 false
ret i1 %v13
}
define i1 @tgt(i32 %v3, i32 %v4) local_unnamed_addr #0 {
%v5 = shl i32 %v3, %v4
%v6 = add i32 %v5, 32768
%v7 = icmp ult i32 %v6, 65536
ret i1 %v7
}
```
Alive2: https://alive2.llvm.org/ce/z/LqPTo5
Godbolt: https://godbolt.org/z/EhTMocTj7
Pattern found in https://github.com/dtcxzyw/llvm-opt-benchmark/blob/main/bench/ffmpeg/optimized/g723_1enc.ll
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs