https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102872
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- ifcombine makes optimizing two comparisons to _13 Merging blocks 3 and 4 to <bb 3> [local count: 955630225]: d_10 = (short unsigned int) a.3_5; _9 = a.3_5 & 65535; _2 = d_10 != 0; _1 = _9 == 0; _13 = _1 & _2; if (_13 != 0) so I wonder if we can simplify that somehow. It looks like this could be simplified to (a & 0xffff0000) != 0?