[Bug middle-end/60418] [4.9 Regression] 435.gromacs in SPEC CPU 2006 is miscompiled
hjl.tools at gmail dot com
gcc-bugzilla@gcc.gnu.org
Thu Mar 6 23:29:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60418
--- Comment #11 from H.J. Lu <hjl.tools at gmail dot com> ---
sort_by_operand_rank in reassoc.cin has
/* Lastly, make sure the versions that are the same go next to each
other. We use SSA_NAME_VERSION because it's stable. */
if ((oeb->rank - oea->rank == 0)
&& TREE_CODE (oea->op) == SSA_NAME
&& TREE_CODE (oeb->op) == SSA_NAME)
{
if (SSA_NAME_VERSION (oeb->op) != SSA_NAME_VERSION (oea->op))
return SSA_NAME_VERSION (oeb->op) - SSA_NAME_VERSION (oea->op);
else
return oeb->id - oea->id;
}
It will treat
powmult_80 = dx11_70 * dx11_70;
powmult_241 = dy11_71 * dy11_71;
_75 = powmult_80 + powmult_241;
powmult_240 = dz11_72 * dz11_72;
rsq11_77 = _75 + powmult_240;
where powmult_240 is between powmult_80 and powmult_241, differently from
powmult_80 = dx11_70 * dx11_70;
powmult_213 = dy11_71 * dy11_71;
_75 = powmult_80 + powmult_213;
powmult_244 = dz11_72 * dz11_72;
rsq11_77 = _75 + powmult_244;
where powmult_244 > powmult_80 and powmult_213.
More information about the Gcc-bugs
mailing list