llvm/llvm-project
Missing FP optimization opportunities for fcmp ord operations
Chiusa
#49.175 aperta il 4 apr 2021
bugzillafloating-pointgood first issuellvm:optimizationsmissed-optimization
Metriche repository
- Star
- (26.378 stelle)
- Metriche merge PR
- (Merge medio 1g 2h) (1000 PR mergiate in 30 g)
Descrizione
| 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