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

Wilco <wilco at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |wilco at gcc dot gnu.org

--- Comment #3 from Wilco <wilco at gcc dot gnu.org> ---
With -O2 I get:

void f(int *p) { p[2] = 1; p[3] = 0; }

        vldr    d16, .L3
        adds    r0, r0, #8
        vst1.32 {d16}, [r0]
        bx      lr

With -Os it produces far more efficient code:

        movs    r2, #1
        movs    r3, #0
        strd    r2, r3, [r0, #8]
        bx      lr

So the test is correct in flagging this as a regression. I imagine this is
particularly bad on old cores or where loading literals from code regions is
expensive.

Reply via email to