http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58656
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
cptrf2 shows
<bb 32>:
- pretmp_278 = (integer(kind=8)) ival2_72;
- pretmp_279 = pretmp_278 + -1;
- pretmp_280 = *xxtrt_23(D)[pretmp_279];
<bb 33>:
# ival2_130 = PHI <ival2_50(32), ival2_138(36)>
# ival2_134 = PHI <ival2_72(32), ival2_140(36)>
- # prephitmp_281 = PHI <pretmp_280(32), prephitmp_255(36)>
_131 = (integer(kind=8)) ival2_130;
_132 = _131 + -1;
_133 = *xxtrt_23(D)[_132];
_135 = (integer(kind=8)) ival2_134;
_136 = _135 + -1;
- _137 = prephitmp_281;
+ _137 = *xxtrt_23(D)[_136];
if (_133 < _137)
goto <bb 34>;
else
gentrs has a difference as well. It's partial-PRE results differing
(we don't have many partial-PRE testcases).
The reason for the difference is likely "failed" translations which are
cached over insert iterations. I have a patch.