Issue |
133367
|
Summary |
Missed Optimization: (f1 > 0 ? f1 : -f1) < (f2 > 0 ? f2 : -f2) —> fabs(f1) < fabs(f2)
|
Labels |
new issue
|
Assignees |
|
Reporter |
Cancelll
|
godbolt: https://godbolt.org/z/x14zx1EPs
alive2: https://alive2.llvm.org/ce/z/EUy5V5
```llvm
define i1 @src1(double %.11946, double %.11936) {
%1 = fcmp oge double %.11936, 0.000000e+00
%2 = fneg double %.11936
%3 = select i1 %1, double %.11936, double %2
%4 = fcmp oge double %.11946, 0.000000e+00
%5 = fneg double %.11946
%6 = select i1 %4, double %.11946, double %5
%7 = fcmp olt double %3, %6
ret i1 %7
}
define i1 @tgt1(double %.11946, double %.11936) local_unnamed_addr #0 {
%abs11936 = tail call double @llvm.fabs.f64(double %.11936)
%abs11946 = tail call double @llvm.fabs.f64(double %.11946)
%cmp = fcmp olt double %abs11936, %abs11946
ret i1 %cmp
}
```
The pattern is found here: https://github.com/dtcxzyw/llvm-opt-benchmark/blob/cb4e34a37f79854522d0721f3fb2023e63c83f67/bench/openblas/optimized/dhgeqz.ll#L2383-L2389
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs