[Bug c/69918] [6 regression] gcc.dg/torture/builtin-integral-1.c FAILs
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Feb 23 17:39:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69918
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2016-02-23
CC| |jakub at gcc dot gnu.org
Ever confirmed|0 |1
--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
So, what seems to be going on is that Solaris is the only target that adds
-std=c99 in add_options_for_c99_runtime, and -std=c99 (as opposed to
-std=gnu99) enables -fexcess-precision=standard, which on Solaris (but also on
i386-linux)
means there is more code.
With -fexcess-precision=fast we e.g. get:
_388 = (double) i1_63(D);
_389 = (double) i2_335(D);
_390 = _388 * _389;
_391 = (long double) _390;
_392 = __builtin_ceill (_391);
while with -fexcess-precision=standard we get corresponding:
_398 = (double) i1_63(D);
_399 = (long double) _398;
_400 = (double) i2_335(D);
_401 = (long double) _400;
_402 = _399 * _401;
_403 = __builtin_ceill (_402);
GCC is actually able to optimize even the latter, but only with --param
max-ssa-name-query-depth=3 or higher (default is 2).
Thus, for testsuite only fix for this PR, one possibility is add
-fexcess-precision=fast
to dg-options, another one is to add
-param max-ssa-name-query-depth=3
to dg-options.
Or, perhaps we could bump the max-ssa-name-query-depth default from 2 to 3.
I'll bootstrap/regtest this last option on x86_64-linux and i686-linux, to see
if it doesn't break anything.
Richard, any preferences?
More information about the Gcc-bugs
mailing list