------- Comment #2 from rguenth at gcc dot gnu dot org 2010-01-22 16:30 ------- Yep. I always fail to see why the vectorizer doesn't use the alignment information present in from data-ref analysis:
t.i:9: note: === vect_analyze_data_refs === Creating dr for *D.2752_12 ... (res = {p_4, +, 4}_1)) base_address: p__3(D) offset from base address: 0 constant offset from base address: 0 step: 4 aligned to: 128 base_object: *(const aligned_real * restrict) p__3(D) thus the base is aligned to 128 bits, offset and constant offset are constant zero so the vectorizer should be able to compute alignment of all accesses. Still it says t.i:9: note: === vect_analyze_data_refs_alignment === t.i:9: note: vect_compute_data_ref_alignment: t.i:9: note: can't force alignment of ref: *D.2752_12 t.i:9: note: vect_compute_data_ref_alignment: t.i:9: note: can't force alignment of ref: *D.2754_16 ... t.i:9: note: Vectorizing an unaligned access. t.i:9: note: Vectorizing an unaligned access. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |irar at gcc dot gnu dot org, | |rguenth at gcc dot gnu dot | |org Severity|normal |enhancement Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords| |missed-optimization Last reconfirmed|0000-00-00 00:00:00 |2010-01-22 16:30:03 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42846