This is a suggested follow-up to D116765 (and diffs are on top of that patch). This removes a clear of the register operand, so it is better for code size, but it does potentially create a false register dependency on surrounding code.
The asm results match what I was expecting, but I'm not exactly sure how this works. Given that the node is called SETCC_CARRY and documented as:
// Same as SETCC except it's materialized with a sbb and the value is all // one's or all zero's. SETCC_CARRY, // R = carry_bit ? ~0 : 0
...why does it require a parameter for X86::COND_B? I changed that parameter in an experimental patch, and it didn't alter the asm.