https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60918
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- This code is correct because GCC assumes memcpy is used on normal memory. If you use memcpy on non-normal memory you should not be using memcpy here. 0: 8c04123c lw a0,4668(zero) 4: 3c021234 lui v0,0x1234 8: 24425678 addiu v0,v0,22136 c: 8c031240 lw v1,4672(zero) 10: ac820000 sw v0,0(a0) 14: 88850000 lwl a1,0(a0) -> first access: LWL command 18: 00001021 move v0,zero 1c: 98850003 lwr a1,3(a0) -> second access: LWR command 20: 00000000 nop 24: a8650000 swl a1,0(v1) -> for store operation the same procedure 28: 03e00008 jr ra 2c: b8650003 swr a1,3(v1) -> second store command