> On Jan 26, 2017, at 5:15 PM, Segher Boessenkool <seg...@kernel.crashing.org> > wrote: > > On Thu, Jan 26, 2017 at 04:36:31PM -0600, Bill Schmidt wrote: >>>> -/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { >>>> target { ! vect_no_align } } } } */ >>>> -/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 >>>> "vect" { target { ! vect_no_align } } } } */ >>>> +/* On older powerpc hardware (POWER7 and earlier), the default flag >>>> + -mno-allow-movmisalign prevents vectorization. On POWER8 and later, >>>> + when vect_hw_misalign is true, vectorization occurs. For other >>>> + targets, ! vect_no_align is a sufficient test. */ >>>> >>>> +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { >>>> target { { { ! vect_no_align } && { ! powerpc*-*-* } } || { powerpc*-*-* >>>> && vect_hw_misalign } } } } } */ >>>> +/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 >>>> "vect" { target { { { ! vect_no_align } && { ! powerpc*-*-* } } || { >>>> powerpc*-*-* && vect_hw_misalign } } } } } */ >>>> >>> >>> What does this do if no_align and powerpc and vect_hw_misalign? Or can that >>> not happen? >>> >> That's the usual case. Both vect_no_align and vect_hw_misalign are 1 for >> POWER8 or later, and 0 otherwise. > > So for older targets it used to run the final, but not after the patch; and > for newer targets it used to not run it, but it does after the patch? So > it is meant to be two changes?
Correct, I forgot to point out that for newer hardware we are vectorizing the loop, but the way the test was written before we weren't testing it. Sorry for the confusion! Bill > > > Segher >