Вы можете написать свои циклы в обычном режиме, а затем просто сказать компилятору, что хотите, чтобы циклы были развернуты.Это хорошо написано, и так же оптимально, как если бы вы написали 1000 строк.
Способ сделать это зависит от вашего компилятора.Я напишу ответ для GCC, который является компилятором, который я обычно использую, но другие компиляторы должны быть похожими.
Если вы хотите развернуть все циклы в вашем коде, это проще: вам просто нужно добавитьВариант или два в командной строке:
-funroll-loops
-funroll-all-loops
Если вы хотите узнать больше о поведении этих параметров, обратитесь к руководству по компилятору.Здесь также есть вопросы о них.
Если вы просто хотите развернуть определенный цикл и сохранить все остальные циклы, это сложнее, но это также можно сделать.Проверьте этот SO ответ на этот вопрос: https://stackoverflow.com/a/14251545/6872717