In the case where of 'select i1 , f32, f32' or select i1, f64, f64 prefer lowering to masked-moves over branches.
Fixes pr30561
Differential D25310
[X86] AVX512 fallback for floating-point scalar selects zvi on Oct 6 2016, 3:42 AM. Authored by
Details In the case where of 'select i1 , f32, f32' or select i1, f64, f64 prefer lowering to masked-moves over branches. Fixes pr30561
Diff Detail
Event TimelineComment Actions I'm not sure that RHS code is better than LHS. define float @pr30561_f32(float %a, float %b, double %c, double %d) { %c = fcmp oeq double %c, %d %cond = select i1 %c, float %a, float %b ret float %cond } Comment Actions After a consultation i believe that the RHS is at least as good as in the LHS, and in cases of branch-mispredictions the RHS is much better.
Note that the case in your example is already handled in line 16023. |