https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87373
Richard Earnshaw <rearnsha at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |WONTFIX --- Comment #35 from Richard Earnshaw <rearnsha at gcc dot gnu.org> --- I haven't researched the history of this change, but it was probably deliberate. Device memory on processors (a memory classification that implies that the underlying contents may contain memory mapped devices that have side effects) is generally intolerant of misaligned accesses. As such, emitting an unaligned access to it may cause the system to fault. If that was the reason for the change to GCC, it won't be reversed. (The fact that in your example the optimizers discover the alignment and change the code back to an aligned access does not alter this general observation.)