https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61743
Bug ID: 61743 Summary: Complete unroll is not happened for loops with short upper bound Product: gcc Version: 4.10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: ysrumyan at gmail dot com We discovered significant performance regression on one important benchmark from eembc2.0 suite after r211625. It turned out that complete unroll didn't happen. I prepared simple reproducer that exhibits the problem. If we compile it with '-Dbtype=int' both innermost loops are unrolled completely by latest trunk compiler: test.c:20:5: note: loop with 8 iterations completely unrolled test.c:11:5: note: loop with 8 iterations completely unrolled but if '-Dbtype=e_u8' unroll does not happen. Note also that for this particular test-case compiler built before r211625 performs curoll only for one loop.