https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88760
--- Comment #25 from Richard Earnshaw <rearnsha at gcc dot gnu.org> --- Well very small loops should be unrolled more than slightly larger ones. So perhaps if the loop body is only 3 or 4 instructions it should be unrolled four times but above that perhaps only twice. Some consideration should be given, however, to whether the target micro-architecture has looping buffers as unrolling beyond the limit of such structures will hurt performance.