[PATCH, rs6000, testsuite] Fix PR65484

Bill Schmidt wschmidt@linux.vnet.ibm.com
Thu Jan 26 23:47:00 GMT 2017


> On Jan 26, 2017, at 5:15 PM, Segher Boessenkool <segher@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
> 



More information about the Gcc-patches mailing list