https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96234
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Component|target |tree-optimization Keywords| |missed-optimization Last reconfirmed| |2020-07-20 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- The RA issue is just bad luck I guess. On the GIMPLE level we can see the main difference is signed vs. unsigned arithmetic and lack of association. It would probably all be solved when the last reassoc would operate under -fwrapv assumptions. For the unsigned case we have (((_17 - _11) + c_7(D)) + (_14 * 1000000000)) - -(_4 * 1000000000) (all unsigned long operands) after reassoc2 where it is odd that we didn't figure to associate the multiplies together and factor it out.