The Linux kernel's likely()/unlikely() macros, built on this exact __builtin_expect mechanism, appear thousands of times throughout the source tree specifically around error-checking paths in hot syscall code, because a 15-20 cycle misprediction penalty on a rarely-taken branch adds up across billions of calls per second. Modern compilers increasingly prefer PGO over manual hints for this reason, but understanding why the hint moves code between .text and .text.unlikely is exactly what explains the I-cache benefit PGO exploits automatically.