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

Reply via email to