https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117395
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW See Also| |https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=14295 Ever confirmed|0 |1 Last reconfirmed| |2024-11-01 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- It is a slight regression from GCC 14 though. Which produced: ``` foo: ldr q31, [x0, 32] sub sp, sp, #128 add sp, sp, 128 dup d0, v31.d[1] add v0.4h, v0.4h, v31.4h ret ``` But that is only because vget_low_s16/vget_high_s16 didn't expand to using BIT_FIELD_REF before. The bigger issue is GCC does not have a copy propagation for aggregates pass (see PR 14295 and others).