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

--- Comment #30 from Segher Boessenkool <segher at gcc dot gnu.org> ---
Trying to combine the load+add+store, combine is trying insns like

Failed to match this instruction:
(parallel [
        (set (mem:SI (reg/v/f:SI 90 [ x ]) [1 *x_5(D)+0 S4 A32])
            (plus:SI (mem:SI (reg/v/f:SI 90 [ x ]) [1 *x_5(D)+0 S4 A32])
                (const_int -1 [0xffffffffffffffff])))
        (set (reg:SI 88 [ _2 ])
            (plus:SI (mem:SI (reg/v/f:SI 90 [ x ]) [1 *x_5(D)+0 S4 A32])
                (const_int -1 [0xffffffffffffffff])))
    ])

and it does not know how to split that into two (make the second SET
just a load).  If it could do that -- and costs work out for the target --
all would work fine as far as I see.  Alternatively, the target could
use a define_split for this pattern.

Reply via email to