[Bug middle-end/89008] [7/8 Regression] O2 and O1 results differ for simple test
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jan 23 12:25:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89008
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Martin Liška from comment #3)
> Started with r236440 and was fixed with r263875.
Thanks Martin - this means both the * 0 added by reassoc and the SLSR issue
are latent.
Found * 0, removing all other ops
Width = 1 was chosen for reassociation
Transforming _12 = _10 * 83886080;
into _12 = b_lsm.9_34 * 0;
GIMPLE testcase that shows the above on trunk:
unsigned long a;
unsigned b;
long int __GIMPLE (startwith("reassoc"))
f ()
{
unsigned int _4;
unsigned int _6;
unsigned int _10;
unsigned int _12;
unsigned int _19;
unsigned int _33;
unsigned int _36;
unsigned long g_21;
unsigned int b_lsm9_34;
bb_2:
b_lsm9_34 = b;
_36 = b_lsm9_34 * 83886080u;
_33 = _36 * 83886080u;
_4 = _33 * 83886080u;
_10 = _4 * 83886080u;
_12 = _10 * 83886080u;
_19 = _12 * 2u;
_6 = -_19;
g_21 = (long unsigned int) _6;
a = g_21;
return 0l;
}
More information about the Gcc-bugs
mailing list