https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88682
Steve Ellcey <sje at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |sje at gcc dot gnu.org --- Comment #5 from Steve Ellcey <sje at gcc dot gnu.org> --- It looks like this test is violating strict aliasing. If I compile with -fno-strict-aliasing then it works. I think pointing p.i (type __int128_t) to something of type unaligned_int128_t is a standards violation in C or C++ but I am not a language lawyer. FYI: I get the same behavior with C or C++ on aarch64. It works with -O1 on aarch64 but fails with -O2 and the difference is the ordering of loads and stores.