https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94427
--- Comment #4 from Jan Hubicka <hubicka at gcc dot gnu.org> --- It is the same loop - it was float only in my mind (since the function return float value :) With loop splitting we no longer have the last iteration check, but we still have the underflow checks that are indeed likely predictable well and in unvectorized version may make sense to be not if converted. So I guess in unvectorized loop the 100% predictable conditonal should be still a win but vectorization should likely outweight that?