https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94387
--- Comment #4 from Petro Karashchenko <petro.karashchenko at gmail dot com> --- Andrew Pinski could you please share with me requirements needed for strict alignment? Actually I do not understand why read-write cycle is needed if no "read" or "modify" operation is requested (I mean no operations like |=, &=, +=, etc. are issued), but a "pure" write a constant value is requested. In other words: what is the reason of reading value that is discarded? If I remove 'volatile' from a struct typedef I'm getting pretty optimised code without excessive reads, to it seems to be a 'volatile'+'packed' combo.