On 11/03/2017 10:20 AM, Richard Sandiford wrote: > This patch adds a target selector that says whether we can ever > generate an "unaligned" accesses, where "unaligned" is relative > to the target's preferred vector alignment. This is already true if: > > vect_no_align && { ! vect_hw_misalign } > > i.e. if the target doesn't have any alignment mechanism and also > doesn't allow unaligned accesses. It is also true (for the things > tested by gcc.dg/vect) if the target only wants things to be aligned > to an element; in that case every normal scalar access is "vector aligned". > > > 2017-11-03 Richard Sandiford <richard.sandif...@linaro.org> > Alan Hayward <alan.hayw...@arm.com> > David Sherwood <david.sherw...@arm.com> > > gcc/ > * doc/sourcebuild.texi (vect_unaligned_possible): Document. > > gcc/testsuite/ > * lib/target-supports.exp > (check_effective_target_vect_unaligned_possible): New proc. > * gcc.dg/vect/slp-25.c: Extend XFAIL of peeling for alignment from > vect_no_align && { ! vect_hw_misalign } to ! vect_unaligned_possible. > * gcc.dg/vect/vect-multitypes-1.c: Likewise. > * gcc.dg/vect/vect-109.c: XFAIL vectorisation of an unaligned > access to ! vect_unaligned_possible. > * gcc.dg/vect/vect-33.c: Likewise. > * gcc.dg/vect/vect-42.c: Likewise. > * gcc.dg/vect/vect-56.c: Likewise. > * gcc.dg/vect/vect-60.c: Likewise. > * gcc.dg/vect/vect-96.c: Likewise. > * gcc.dg/vect/vect-peel-1.c: Likewise. > * gcc.dg/vect/vect-27.c: Extend XFAIL of unaligned vectorization from > vect_no_align && { ! vect_hw_misalign } to ! vect_unaligned_possible. > * gcc.dg/vect/vect-29.c: Likewise. > * gcc.dg/vect/vect-44.c: Likewise. > * gcc.dg/vect/vect-48.c: Likewise. > * gcc.dg/vect/vect-50.c: Likewise. > * gcc.dg/vect/vect-52.c: Likewise. > * gcc.dg/vect/vect-72.c: Likewise. > * gcc.dg/vect/vect-75-big-array.c: Likewise. > * gcc.dg/vect/vect-75.c: Likewise. > * gcc.dg/vect/vect-77-alignchecks.c: Likewise. > * gcc.dg/vect/vect-77-global.c: Likewise. > * gcc.dg/vect/vect-78-alignchecks.c: Likewise. > * gcc.dg/vect/vect-78-global.c: Likewise. > * gcc.dg/vect/vect-multitypes-3.c: Likewise. > * gcc.dg/vect/vect-multitypes-4.c: Likewise. > * gcc.dg/vect/vect-multitypes-6.c: Likewise. > * gcc.dg/vect/vect-peel-4.c: Likewise. > * gcc.dg/vect/vect-peel-3.c: Likewise, and also for peeling > for alignment. OK. Though I could see a need to one day provide a more concrete test than "in some circumstances".
jeff