[Bug tree-optimization/124180] [16 Regression] No longer vectorized due to missed if-conversion
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Feb 23 08:41:21 GMT 2026
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124180
--- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #8)
...
>
> v_35 = _5 + 5.0e-1;
> if (v_35 > 6.5535e+4)
> goto <bb 8>; [50.00%]
> else
> goto <bb 7>; [50.00%]
>
> <bb 7> [local count: 477815112]:
> _36 = v_35 < 0.0;
> _37 = _36 ? 0.0 : v_35;
>
> <bb 8> [local count: 955630224]:
> # iftmp.4_38 = PHI <6.5535e+4(6), _37(7)>
> _39 = (short unsigned int) iftmp.4_38;
>
> PRE would anticipate the float to int conversion on the constant edge.
> I think phiopt has the issue that the source, as written, at least
> has the (min) > (a) FP comparison conditional, and that also raises
> FP exceptions.
Of course with context, v_35 > 6.5535e+4 already raised INVALID then,
so raising INVALID again on v_35 < 0.0 might be considered OK (with
alternate exception mechanism this might be observable though).
More information about the Gcc-bugs
mailing list