https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81800
--- Comment #20 from Wilco <wilco at gcc dot gnu.org> --- Author: wilco Date: Wed Sep 4 13:06:55 2019 New Revision: 275374 URL: https://gcc.gnu.org/viewcvs?rev=275374&root=gcc&view=rev Log: [AArch64] Fix PR81800 PR81800 is about the lrint inline giving spurious FE_INEXACT exceptions. The previous change for PR81800 didn't fix this: when lrint is disabled in the backend, the midend will simply use llrint. This actually makes things worse since llrint now also ignores FE_INVALID exceptions! The fix is to disable lrint/llrint on double if the size of a long is smaller (ie. ilp32). gcc/ PR target/81800 * gcc/config/aarch64/aarch64.md (lrint): Disable lrint pattern if GPF operand is larger than a long int. testsuite/ PR target/81800 * gcc.target/aarch64/no-inline-lrint_3.c: New test. Added: branches/gcc-8-branch/gcc/testsuite/gcc.target/aarch64/no-inline-lrint_3.c Modified: branches/gcc-8-branch/gcc/ChangeLog branches/gcc-8-branch/gcc/config/aarch64/aarch64.md branches/gcc-8-branch/gcc/testsuite/ChangeLog