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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
   Target Milestone|---                         |14.0
             Status|UNCONFIRMED                 |RESOLVED

--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Fixed in GCC 14.
test_m:
        lsr     x2, x0, 32
        lsr     x5, x1, 32
        mov     x4, 4294967296
        umull   x1, w2, w1
        umaddl  x0, w0, w5, x1
        umull   x2, w2, w5
        cmp     x1, x0
        add     x4, x2, x4
        csel    x2, x4, x2, hi
        add     x2, x2, x0
        str     x2, [x3]
        ret


test_l:
        lsr     x4, x0, 32
        lsr     x7, x1, 32
        ldr     x5, [x2]
        mov     x6, 4294967296
        umull   x1, w4, w1
        umull   x2, w4, w7
        umaddl  x0, w0, w7, x1
        add     x6, x2, x6
        cmp     x1, x0
        csel    x2, x6, x2, hi
        add     x5, x5, x2
        str     x5, [x3]
        ret

This is fixed by using WIDEN_MULT_PLUS_EXPR now (r14-8680-g2f14c0dbb78985 and
r14-9892-g912753cc5f18d7 )

  m_13 = WIDEN_MULT_PLUS_EXPR <_19, _20, m1_11>;

Reply via email to