I don't like the idea of different behaviour for 32bit (return any value from INT_MIN to INT_MAX) and 64bit code (return -1, 0 or +1) even if it does save a few instructions.