https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69943

--- Comment #2 from ktkachov at gcc dot gnu.org ---
On second thought, reassociating signed addition is not legal in general
because we might introduce signed overflow where one didn't exist before.
Changing your integer example to use unsigned int instead produces the
reassociation you want (subject to TARGET_SCHED_REASSOCIATION_WIDTH limits):
sumi:
        add     w6, w6, w7
        add     w5, w4, w5
        add     w2, w2, w3
        add     w6, w6, w5
        add     w0, w0, w1
        add     w6, w6, w2
        add     w0, w6, w0
        ret

Reply via email to