This happens in testcase gcc.dg/vect/slp-19.c: The problem is with the loop at line 17: with trunk we detect that one of the elements of array 'in' is read twice, so we generate overall 8 loads (reusing one of them). On the alias branch we do not eliminate the extra load. All the reads and write are from/to local arrays, by the way. This results in 9 loads, which the vectorizer interperts as a complicated SLP permutation, so instead it is vectorized across iterations rather than using SLP: > " > slp-19.c:17: note: Load permutation 0 1 2 4 5 6 7 8 > slp-19.c:17: note: Build SLP failed: unsupported load permutation out > [D.2646_11] = D.2647_12; > "
-- Summary: [alias-improvements-branch] redundant load doesn't get eliminated Product: gcc Version: unknown Status: UNCONFIRMED Keywords: missed-optimization Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dorit at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37700