There's a grain of truth to it -- when a CPU encounters a branch it has not seen before, some CPUs (but not most modern ones: https://stackoverflow.com/a/51848422) have static prediction that assumes a backwards branch is taken and a forwards branch is not. And compilers tend to put "unlikely" execution paths past the bottom of the function so that they're not interrupting the "hot path" of the function. So if the processor uses static branch prediction, or if it hasn't executed the function before and doesn't know there's a branch there until after it's been fetched, the branch predictor is more likely to follow the "hot path" than a forwards jump that skips ahead. But yeah, static branch prediction isn't common anymore, and "likely"/"unlikely" intrinsics have more to do with tuning the optimizer than the branch predictor.