http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48377
--- Comment #35 from rguenther at suse dot de <rguenther at suse dot de> 2011-04-08 08:30:26 UTC --- On Thu, 7 Apr 2011, jakub at gcc dot gnu.org wrote: > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48377 > > --- Comment #34 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-04-07 > 16:36:04 UTC --- > While for 4.7 we can certainly do bigger changes, for 4.6 I think a safe fix > would be: > > --- gcc/tree-vect-data-refs.c 2011-03-31 08:51:03.000000000 +0200 > +++ gcc/tree-vect-data-refs.c 2011-04-07 18:32:37.379420938 +0200 > @@ -1110,6 +1110,9 @@ vector_alignment_reachable_p (struct dat > if (ba) > is_packed = contains_packed_reference (ba); > > + if (compare_tree_int (TYPE_SIZE (type), TYPE_ALIGN (type)) > 0) > + is_packed = true; > + > if (vect_print_dump_info (REPORT_DETAILS)) > fprintf (vect_dump, "Unknown misalignment, is_packed = %d",is_packed); > if (targetm.vectorize.vector_alignment_reachable (type, is_packed)) > > For scalars GCC ignores packed attribute, so aligned(1) is the only way to > express unaligned accesses. Ok if it passes testing.