[Bug target/81800] [8/9 regression] on aarch64 ilp32 lrint should not be inlined as two instructions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81800 --- Comment #20 from Wilco --- 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
[Bug target/81800] [8/9 regression] on aarch64 ilp32 lrint should not be inlined as two instructions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81800 --- Comment #19 from Wilco --- Author: wilco Date: Wed Sep 4 12:42:22 2019 New Revision: 275373 URL: https://gcc.gnu.org/viewcvs?rev=275373&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-9-branch/gcc/testsuite/gcc.target/aarch64/no-inline-lrint_3.c Modified: branches/gcc-9-branch/gcc/ChangeLog branches/gcc-9-branch/gcc/config/aarch64/aarch64.md branches/gcc-9-branch/gcc/testsuite/ChangeLog
[Bug target/81800] [8/9 regression] on aarch64 ilp32 lrint should not be inlined as two instructions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81800 Wilco changed: What|Removed |Added Known to work||10.0 Summary|[8/9/10 regression] on |[8/9 regression] on aarch64 |aarch64 ilp32 lrint should |ilp32 lrint should not be |not be inlined as two |inlined as two instructions |instructions| --- Comment #18 from Wilco --- Fixed on trunk so far.
[Bug target/81800] [8/9 regression] on aarch64 ilp32 lrint should not be inlined as two instructions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81800 --- Comment #16 from Wilco --- (In reply to Jakub Jelinek from comment #15) > (In reply to Wilco from comment #14) > > (In reply to Jakub Jelinek from comment #13) > > > Patches should be pinged after a week if they aren't reviewed, > > > furthermore, > > > it is better to CC explicitly relevant maintainers. > > > > I've got about 10 patches waiting, I'll ping after stage 1 opens. > > This PR is marked as 8/9 Regression though, therefore it should be resolved > if possible already for GCC 9 and maybe even for GCC 8.4 too. It's a minor issue. I can't see how it could be more important than serious code generation bugs (eg. setjmp/longjmp) that affect many GCC versions and targets.
[Bug target/81800] [8/9 regression] on aarch64 ilp32 lrint should not be inlined as two instructions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81800 --- Comment #15 from Jakub Jelinek --- (In reply to Wilco from comment #14) > (In reply to Jakub Jelinek from comment #13) > > Patches should be pinged after a week if they aren't reviewed, furthermore, > > it is better to CC explicitly relevant maintainers. > > I've got about 10 patches waiting, I'll ping after stage 1 opens. This PR is marked as 8/9 Regression though, therefore it should be resolved if possible already for GCC 9 and maybe even for GCC 8.4 too.
[Bug target/81800] [8/9 regression] on aarch64 ilp32 lrint should not be inlined as two instructions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81800 --- Comment #14 from Wilco --- (In reply to Jakub Jelinek from comment #13) > Patches should be pinged after a week if they aren't reviewed, furthermore, > it is better to CC explicitly relevant maintainers. I've got about 10 patches waiting, I'll ping after stage 1 opens.
[Bug target/81800] [8/9 regression] on aarch64 ilp32 lrint should not be inlined as two instructions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81800 Richard Biener changed: What|Removed |Added Priority|P3 |P2
[Bug target/81800] [8/9 regression] on aarch64 ilp32 lrint should not be inlined as two instructions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81800 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #13 from Jakub Jelinek --- Patches should be pinged after a week if they aren't reviewed, furthermore, it is better to CC explicitly relevant maintainers.
[Bug target/81800] [8/9 regression] on aarch64 ilp32 lrint should not be inlined as two instructions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81800 Richard Biener changed: What|Removed |Added Target Milestone|8.0 |8.4