http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59424
Marek Polacek <mpolacek at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mpolacek at gcc dot gnu.org --- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> --- I can observe the same behavior with trunk. For func2, we compute a < b ? a : b first and then call sqrtf on that, while for func3 we have return a < b ? ABS_EXPR <a> : ABS_EXPR <b>;. Perhaps that's the reason why ifcvt doesn't optimize this using UNSPEC_IEEE_MIN.