http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30442
--- Comment #7 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-06-05 10:50:22 UTC --- The long long test2(void) { long long a[32]; int i; for (i = 0; i < 32; i++) a[i] = 0; return foo(a); } loop is transformed to memset at -O3. The unrolled version is not "re-rolled" still, and basic-block vectorization does not catch it because of the call in the basic-block. I'm trying to fix that.