On 26/09/17 14:12, Tamar Christina wrote: > Hi All, > > The slp vectorization test currently fails on AArch32 and AArch64 > due to it not taking into account that we do have 128 bit vectors in > NEON. This means that two of the loops get vectorized instead of just 1. > > So update the conditions to include a check for neon. > > Regtested on aarch64-none-elf. > > Ok for trunk? > > Thanks, > Tamar. > > gcc/testsuite/ > 2017-09-26 Tamar Christina <tamar.christ...@arm.com> > > * gcc.dg/vect/slp-perm-9.c: Add arm_neon_ok checks. > >
It would be better to fix this generically by adding a vect_sizes_16B_8B rule. R. > 8221-diff.patch > > > diff --git a/gcc/testsuite/gcc.dg/vect/slp-perm-9.c > b/gcc/testsuite/gcc.dg/vect/slp-perm-9.c > index > 4d9c11dcc476a8023b3eaac2ae76cc01bd0db182..816c4b31be80dc6ab77bda838f77357e2157ffb9 > 100644 > --- a/gcc/testsuite/gcc.dg/vect/slp-perm-9.c > +++ b/gcc/testsuite/gcc.dg/vect/slp-perm-9.c > @@ -54,8 +54,8 @@ int main (int argc, const char* argv[]) > return 0; > } > > -/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target > { {! vect_perm } || {! vect_sizes_32B_16B } } } } } */ > -/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { target > { { vect_perm } && { vect_sizes_32B_16B } } } } } */ > +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target > { { {! vect_perm } || {! vect_sizes_32B_16B } } && {! arm_neon_ok} } } } } */ > +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { target > { { { vect_perm } && { vect_sizes_32B_16B } } || arm_neon_ok } } } } */ > /* { dg-final { scan-tree-dump-times "permutation requires at least three > vectors" 1 "vect" { target vect_perm_short } } } */ > /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0 "vect" > { target { {! vect_perm } || {! vect_sizes_32B_16B } } } } } */ > /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" > { target { { vect_perm } && { vect_sizes_32B_16B } } } } } */ >