https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71460
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed|2021-08-22 00:00:00 |2023-6-5 --- Comment #29 from Andrew Pinski <pinskia at gcc dot gnu.org> --- ;; y = x; (insn 19 18 20 (set (reg:DF 91) (mem/c:DF (plus:SI (reg/f:SI 77 virtual-stack-vars) (const_int -8 [0xfffffffffffffff8])) [1 xD.3254+0 S8 A64])) "/app/example.cpp":16:5 -1 (nil)) (insn 20 19 0 (set (mem/c:DF (plus:SI (reg/f:SI 77 virtual-stack-vars) (const_int -16 [0xfffffffffffffff0])) [1 yD.3255+0 S8 A64]) (reg:DF 91)) "/app/example.cpp":16:5 -1 (nil)) Oh yes because the struct has one element so it will have a DFmode so it will copy via DF here ...