https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118505
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=82666 --- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Note in this case the fcsel is on the critial path which slows down things. So the pass split path is trying to split the critial path but it looks like there needs to be some heurstics here on this. For integer types, having a csel might be ok while for float, splitting the path might be right approach. So maybe the easiest fix would be add: ``` if (!ANY_INTEGRAL_TYPE_P (TREE_TYPE (lhs)) return true; ``` Right after: ``` tree lhs = gimple_assign_lhs (stmt); ``` In poor_ifcvt_pred . That assumes floating point csel is worse off than integer csel. Note I filed the FMA issue as PR 118506 (though I thought there was another bug about that but I did't look yet).