Ping. Any objections to the patch? ________________________________________ From: [email protected] <[email protected]> on behalf of Tamar Christina <[email protected]> Sent: Monday, October 16, 2017 9:54:23 AM To: [email protected] Cc: nd; James Greenhalgh; Richard Earnshaw; Marcus Shawcroft; [email protected] Subject: Re: [PATCH][GCC][AArch64] Restrict lrint inlining on ILP32.
Ping? ________________________________________ From: [email protected] <[email protected]> on behalf of Tamar Christina <[email protected]> Sent: Wednesday, September 13, 2017 4:00:24 PM To: [email protected] Cc: nd; James Greenhalgh; Richard Earnshaw; Marcus Shawcroft; [email protected] Subject: [PATCH][GCC][AArch64] Restrict lrint inlining on ILP32. Hi All, The inlining of lrint isn't valid in all cases on ILP32 when -fno-math-errno is used because an inexact exception is raised in certain circumstances. Instead the restriction is placed such that the integer mode has to be larger or equal to the float mode in addition to either inexacts being allowed or not caring about trapping math. This prevents the overflow, and the inexact errors that may arise. Unfortunately I can't create a test for this as there is a bug where the pattern is always passed DI as the smallest mode, and later takes a sub-reg of it to SI. This would prevent an overflow where one was expected. This fixed PR/81800. Regtested on aarch64-none-linux-gnu and no regressions. Ok for trunk? Thanks, Tamar gcc/ 2017-09-13 Tamar Christina <[email protected]> PR target/81800 * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): Add flag_trapping_math and flag_fp_int_builtin_inexact. gcc/testsuite/ 2017-09-13 Tamar Christina <[email protected]> * gcc.target/aarch64/inline-lrint_2.c (dg-options): Add -fno-trapping-math. --
