http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49942
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-08-02 09:28:32 UTC --- Why do you think so? slr; jnhe is what you get for e.g. void bar (void); int foo (int x, int y) { int d = x - y; if (d == 0) bar (); return d; } slr %r12,%r3 jnhe .L2 (it jumps around bar (), so the jump happens if (d != 0)). The same code for s/int/unsigned/g.