http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48781
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> 2011-04-26 22:10:59 UTC --- The alignment of __uint128_t is 16byte. I think you are invoking undefined behavior by using a data type which increases the alignment.