[Bug target/91753] Bad register allocation of multi-register types

tnfchris at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Aug 12 08:09:49 GMT 2021


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

Tamar Christina <tnfchris at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |tnfchris at gcc dot gnu.org
         Resolution|---                         |FIXED
   Target Milestone|---                         |12.0

--- Comment #9 from Tamar Christina <tnfchris at gcc dot gnu.org> ---
Fixed in GCC 12 where we generate at -O1/2/3

neon_transform_nada(uint8x16x4_t, unsigned char*, int):
        ldp     q7, q6, [x0]
        ldp     q5, q4, [x0, 32]
        cmp     w1, 0
        ble     .L2
        mov     w2, 0
.L3:
        add     w2, w2, 1
        tbx     v7.16b, {v0.16b - v3.16b}, v7.16b
        tbx     v6.16b, {v0.16b - v3.16b}, v6.16b
        tbx     v5.16b, {v0.16b - v3.16b}, v5.16b
        tbx     v4.16b, {v0.16b - v3.16b}, v4.16b
        cmp     w1, w2
        bne     .L3
.L2:
        stp     q7, q6, [x0]
        stp     q5, q4, [x0, 32]
        ret


More information about the Gcc-bugs mailing list