https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82259
--- Comment #3 from Peter Cordes <peter at cordes dot ca> --- Oops, BT sets CF, not ZF. So bt $13, %edi setnc %al # aka setae ret This is what clang does for the bt_ functions, and might be optimal for many use-cases. (For branching with an immediate, test/jcc is of course better because it can macro-fuse into a test+branch uop on Intel and AMD.)