https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103399
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Before bswap, we have: iftmp.0_11 = t1; t1.1_1 = t1; _2 = t1.1_1 ^ iftmp.0_11; But after we get: load_dst_8 = MEM[(int *)&t1]; _2 = (int) load_dst_8; Which is wrong as _2 should have been 0.