Representation of negative integers

How are negative small integers represented ?

On a 64 bit machine, there are, i think, 56 bits available – is bit 56 a sign bit used by swi prolog, the rest is tag data.


Can one use a bit mask to test if a small integer (stored directly in prolog) holds a negative number?

Would a test with a mask be faster than an arithmetic is less than zero test or are they both essentially the same – i.e .compiled into same-similar cpu instructions …
Note: getbit/2 does not allow a negative integer as parameter.