https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89475
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #2) > x &= 0xaa55; > x = __builtin_bswap16 (x); > if (x & 0xaa55) > > > I think that should be: > x &= 0xaa55; > x = __builtin_bswap16 (x); > if (x & 0x55aa) > > instead. Never mind; I can't do math this morning, ~0xaa55 is 0x55aa :).