Это полезно, когда выполнить эту процедуру, когда LOOPS> BTB_SIZE, например,Как я могу получить размер целевого буфера для вашего процессора (BTB)?
из
int n = 0;
for (int i = 0; i < LOOPS; i++)
n++;
в
int n = 0;
int loops = LOOPS/2;
for(int i = 0; i < loops; i+=2)
n += 2;
может уменьшить ветви промаха.
BTB ref: http://www-ee.eng.hawaii.edu/~tep/EE461/Notes/ILP/buffer.html, но он не сообщает, как получить размер BTB.
Проверить http://xania.org/201602/bpu-part-one Прогнозирование статической ветви на новых процессорах Intel http://xania.org/201602/bpu-part-two Прогнозирование ветвей - часть вторая, а затем его публикации в одном и том же теге (http://xania.org/Microarchitecture-archive); тестовый код находится по адресу https://github.com/mattgodbolt/agner (tests/btb * py) и по адресу https://github.com/rmmh/whomp – osgx