https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62173
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2014-08-18 Ever confirmed|0 |1 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed, Here is a much shorter testcase and not related to loops either: void bar(int i) { char A[10]; g(A); f(A[i]); } --- CUT --- Before: bar: stp x29, x30, [sp, -64]! add x29, sp, 0 stp x19, x20, [sp, 16] add x19, x29, 48 mov w20, w0 mov x0, x19 bl g ldrb w0, [x19, w20, sxtw] bl f ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 64 ret After: bar: stp x29, x30, [sp, -48]! add x29, sp, 0 str x19, [sp, 16] mov w19, w0 add x0, x29, 32 bl g add x0, x29, 48 add x19, x0, x19, sxtw ldrb w0, [x19, -16] bl f ldr x19, [sp, 16] ldp x29, x30, [sp], 48 ret