https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83108
--- Comment #4 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- (In reply to Jon Levell from comment #3) > I'm surprised this was closed invalid. > > "While the x86 architecture originally did not require aligned memory > access, and still works without it, some SSE2 instructions on x86 CPUs do > require the data to be 128-bit (16-byte) aligned" > > I'm not doing anything SSE2 related. I'm surprised this is considered > undefined behaviour? It has nothing to do with SSE2. GCC simply assumes that __uint128_t is 16byte alignmented and optimizes accordingly (clang does the same).