|
|
@@ -15,7 +15,7 @@ |
|
|
|
static int int16_nonzero_mask(int16 x) { |
|
|
|
uint16 u = (uint16) x; /* 0, else 1...65535 */ |
|
|
|
uint32 v = u; /* 0, else 1...65535 */ |
|
|
|
v = -v; /* 0, else 2^32-65535...2^32-1 */ |
|
|
|
v = ~v + 1; /* 0, else 2^32-65535...2^32-1 */ |
|
|
|
v >>= 31; /* 0, else 1 */ |
|
|
|
return -(int) v; /* 0, else -1 */ |
|
|
|
} |
|
|
|