http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58135
Bug ID: 58135 Summary: [x86] Missed opportunities for partial SLP Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: ysrumyan at gmail dot com If we consider the following simple test-case int a[100]; void foo() { a[0] = a[1] = a[2] = a[3] = 0; } SLP vectorization of basic block takes place: gcc -S -O3 -m32 t.c -ftree-vectorizer-verbose=1 t.c:4: note: Vectorized basic-block but if we add at least one more assignment it won't be vectorized: a[0] = a[1] = a[2] = a[3] = a[4] = 0; t11.c:4: note: Build SLP failed: unrolling required in basic block SLP It is clear that gcc can do partial BB vectorization, i.e. vectorize the first 4 assignments only.