llvm/llvm-project
Missing FP optimization opportunities for fcmp ord operations
Geschlossen
#49.175 geöffnet am 04.04.2021
bugzillafloating-pointgood first issuellvm:optimizationsmissed-optimization
Repository-Metriken
- Stars
- (26.378 Sterne)
- PR-Merge-Metriken
- (Durchschn. Merge 1T 2h) (1.000 gemergte PRs in 30 T)
Beschreibung
| Bugzilla Link | 49831 |
| Version | trunk |
| OS | All |
| Blocks | llvm/llvm-project#49274 |
| CC | @RKSimon,@rotateright |
Extended Description
; Excerpted from llvm/test/Transforms/InstCombine/and-fcmp.ll
define i1 @_commute_logical(i1 %z, float %c, float %d) {
%ord1 = fcmp ninf ord float %c, 0.0
%and = select i1 %ord1, i1 %z, i1 false
%ord2 = fcmp ninf reassoc ord float %d, 0.0
%r = select i1 %ord2, i1 %and, i1 false
ret i1 %r
}
This can be optimized to
%c.fr = freeze float %c
%ord1 = fcmp ord float %c.fr, %d
%r = select i1 %ord1, i1 %z, i1 false
Alive2 link: https://alive2.llvm.org/ce/z/QfkJak