https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89859
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target| |x86_64-* Status|UNCONFIRMED |RESOLVED Component|c++ |middle-end Resolution|--- |INVALID --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- _ZN4test7computeEPi.isra.0: // non-restrict .LFB2: .cfi_startproc ldr x3, [x0] mov w4, 99 ldr w2, [x0, 8] add w2, w2, w1 str w2, [x0, 8] strb w4, [x3] ldr w2, [x0, 8] add w1, w2, w1 str w1, [x0, 8] ret _ZN4test7computeEPi.isra.0: // restrict .LFB2: .cfi_startproc ldr x3, [x0] mov w4, 99 ldr w2, [x0, 8] strb w4, [x3] add w1, w2, w1, lsl 1 str w1, [x0, 8] ret // Actually it is not worse, there is one less load; just it looks worse due to CISC notion of x86_64. See above for AARCH64 assembly to show that is the story.