https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81800

Wilco <wilco at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
                 CC|                            |wilco at gcc dot gnu.org
         Resolution|FIXED                       |---

--- Comment #10 from Wilco <wilco at gcc dot gnu.org> ---
This isn't fixed since GCC now emits for the example (-mabi=ilp32 -O2
-fno-math-errno -ftrapping-math -fno-fp-int-builtin-inexact):

f:
        frintx  d0, d0
        fcvtzs  x0, d0
        ret

So it is now ignoring FE_INVALID. The underlying reason is the builtin
expansion of lrint automatically falls back to llrint if lrint optab doesn't
exist.

The fix is disabling lrint if the floating type size is larger than
sizeof(long) so the lrint library function is called instead.

Reply via email to