https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102672
Bug ID: 102672 Summary: [AArch64] Failure to optimize to using stp instead of 2 strs when possible Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: gabravier at gmail dot com Target Milestone: --- struct X { int i; void *p; }; void foo(struct X *q, void *p) { struct X b{}; b.p = p; *q = b; } With -O3, GCC outputs this: foo(X*, void*): str wzr, [x0] str x1, [x0, 8] ret LLVM instead outputs this: foo(X*, void*): stp xzr, x1, [x0] ret