I "conveniently snipped it" because it was pointless.
"adc" or "cmov" has nothing what-so-ever to do with it. If some routine
returns 0-vs-1 and gcc then turns "if (routine()) x++" into
"x+=routine()", what does that have to do with adc or cmov?
The fact is, these kinds of optimizations are *bogus* and they are
dangerous.
Now, it's equally true that we probably don't have those kinds of patterns
in the kernel, and we'll probabaly not hit it, but wouldn't it be much
better to make sure that compilers shouldn't do that?
Linus
-