We don't do a great job with >= 0 comparisons against zero when the
result is used as an i8.
Given something like:
void f(long long LL, bool *B) {
*B = LL >= 0;
}
We used to generate:
shrq $63, %rdi xorb $1, %dil movb %dil, (%rsi)
Now we generate:
testq %rdi, %rdi setns (%rsi)