Loop predication pass


I am trying the pass “loop-predication” of opt in the SPEC CPU 2017 benchmarks.

I generate a original version with “clang -O3” and “opt -O3”. Later, I generate a loop-predication version with “clang -O3” and “opt -O3 -loop-predication”. If I compare the two versions I expected that the branch instructions are reduced with loop-predication. However, they are the same that in the original version.

Why do this happen?