http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46032
--- Comment #2 from Richard Guenther <rguenth at gcc dot gnu.org> 2010-10-15 10:30:42 UTC --- If I hack PTA to make the omp function not escape IPA-PTA computes <bb 4>: # idx_1 = PHI <idx_11(3), idx_18(6)> # PT = { D.2069 } D.2112_13 = .omp_data_i_12(D)->pData; D.2113_14 = *D.2112_13[idx_1]; D.2114_15 = .omp_data_i_12(D)->coeff; D.2115_16 = D.2113_14 * D.2114_15; # PT = { D.2068 } D.2116_17 = .omp_data_i_12(D)->results; thus knows what the pointers point to and we vectorize w/o a runtime alias check (we still have no idea about alignment though, but that's probably correct). Thus it might be worth annotating some of the OMP builtins with the fnspec attribute.