gcc features likely/unlikely hints that help the compiler to generate machine code with better branch prediction.
Is there any data on how proper usage or failure to
The question differs, but Peter Cordes's answer on this question gives a clear hint ;) . Modern CPU's ignore static hints and use dynamic branch prediction.