https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71206
--- Comment #2 from Marc Glisse <glisse at gcc dot gnu.org> --- With -O: int f(int d, unsigned b) { int i2 = b ^ 1; int i4 = d ^ 1; return i2 ^ i4; } An extra (convert ...) should do it I guess.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71206
--- Comment #2 from Marc Glisse <glisse at gcc dot gnu.org> --- With -O: int f(int d, unsigned b) { int i2 = b ^ 1; int i4 = d ^ 1; return i2 ^ i4; } An extra (convert ...) should do it I guess.