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.