Ну современные бранч предикторы - это гибридные. Т.е. набор нескольких предикторов (которые могут выдавать разный предсказания - Бранч тейкен/нот тейкен), и верхний предиктор, который ведет таблицу, кто из них попадает чаще, и на основе этого делаются выбор на последующие предсказания.
Один из основных в этой пачке это как правило PHT (запоминание паттернов - ну например на этом бранче по истории повторяется паттерн 2 разе берется, 1 не берется и тп). Т.е. если мы делаем какой то хотябы как то предсказуемый по паттерну алогритм, у нас все шансы получить попадания. А тут уже зависит от конкретной модели процессора, сколько ресурсов под него выделено (т е какой сложности паттерны он может выявлять).
Но на саомом раннем этапе, когда он только прогревается (т е инфы нет), обычно отрабатывают более простые предикторы, типа бранч нот тейкен. Или форвард нот тейкен - бекворд тейкен, т е если идет назад то скорее всего это луп и скорее всего его покрутят, а вперед врядли будет переход.
Так вот likely/unlikly нужны для этого разогрева (когда нет еще предистории). И по большому все сводится к тому чтобы правильно расположить базовые блоки - вероятные последовательно, маловероятные выкинуть подальше. У интеловцев были на сколько знаю толи префиксы толи инструкции для подсказок предикторам, но потом отказались, по понятным причинам.