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>;