https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72835
kugan at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |kugan at gcc dot gnu.org
--- Comment #3 from kugan at gcc dot gnu.org ---
Looking into it.
diff of .115t.dse2 and .116t.reassoc1 is for the c++ testcase:
+ unsigned int _16;
+ unsigned int _17;
+ unsigned int _18;
<bb 2>:
_1 = s1.m2;
_2 = (unsigned int) _1;
_3 = s1.m3;
_4 = (unsigned int) _3;
- _5 = -_4;
- _6 = _2 * _5;
+ _5 = _4;
+ _6 = _5 * _2;
var_32.0_7 = var_32;
_8 = (unsigned int) var_32.0_7;
_9 = s1.m1;
_10 = (unsigned int) _9;
- _11 = -_10;
- _12 = _8 * _11;
- c_14 = _6 + _12;
+ _11 = _10;
+ _12 = _11 * _8;
+ _16 = _12 + _6;
+ _18 = _16;
+ _17 = -_18;
+ c_14 = _17;
if (c_14 != 4098873984)
Also works with -fno-tree-vrp