[Bug target/103808] [12 Regression] '-fcompare-debug' failure (length) w/ -O2 -ftrapv
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Dec 22 23:57:29 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103808
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
I think this is a latent bug exposed by my match.pd patch (r12-5392).
In GCC 11.2.0 we had:
y_18 = iftmp.0_10 > a_14 ? 2 : 0;
While on the trunk we have:
y_18 = prephitmp_29 * 2;
But doing this:
void
foo (__int128 x, int y)
{
for (;;)
{
__int128 a, b;
x |= !!y;
a = x + 1;
b = y ? ++y : ++x;
y = a < b;
asm("":"+r"(y));
if (x >> 2)
y *= 2;
if (y == b)
__builtin_unreachable ();
}
}
Which causes the IR to be the same out of 11 and 12, does not produce compare
debug in 11 but does in 12.
More information about the Gcc-bugs
mailing list