https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69732
Bug ID: 69732 Summary: Missed vectorization due to failed dependence analysis Product: gcc Version: 6.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: rguenth at gcc dot gnu.org Target Milestone: --- We now fail to vectorize the testcase in PR69726 which exhibits the pattern p = &a[i]; *(p + 0) = ... *(p + 1) = ... *(p + 2) = ... ... where p is forward-propagated into *(p + 0) only, leading to a[i] = ... *(p + 1) = ... ... which then results in base_address: &temp offset from base address: 0 constant offset from base address: 0 step: 32 aligned to: 128 base_object: temp Access function 0: {0, +, 8}_2 vs. base_address: &temp offset from base address: 0 constant offset from base address: 16 step: 32 aligned to: 128 base_object: MEM[(int *)&temp] Access function 0: {16B, +, 32}_2 which have different base objects and thus are not handled by dependence analysis. This results in bogus runtime alias checks.