https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57534
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Known to fail| |14.2.0 Status|ASSIGNED |RESOLVED Target Milestone|12.5 |15.0 Known to work| |15.0 --- Comment #43 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Fixed on the trunk via the late_combine2 (the new forwprop like pass that runs after RA): ``` .L2: fldl 8(%ebx,%esi,8) faddl (%ebx,%esi,8) faddl 16(%ebx,%esi,8) faddl 24(%ebx,%esi,8) faddp %st, %st(1) fldl 32(%ebx,%esi,8) faddl 40(%ebx,%esi,8) faddl 48(%ebx,%esi,8) faddl 56(%ebx,%esi,8) addl $8, %esi faddp %st, %st(2) cmpl %edx, %esi jl .L2 ``` While GCC 14.2.0 produced: ``` .L2: leal 0(,%esi,8), %eax fldl 8(%ebx,%eax) faddl (%ebx,%esi,8) addl $8, %esi faddl 16(%ebx,%eax) faddl 24(%ebx,%eax) faddp %st, %st(2) fldl 32(%ebx,%eax) faddl 40(%ebx,%eax) faddl 48(%ebx,%eax) faddl 56(%ebx,%eax) faddp %st, %st(1) cmpl %edx, %esi jl .L2 ```