Executing on host: /home/dave/gnu/gcc/objdir/gcc/xgcc -B/home/dave/gnu/gcc/objdi r/gcc/ /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/vect/vect-complex-1.c -ftre e-vectorize -fno-vect-cost-model -mfpu=neon -mfloat-abi=softfp -O2 -fdump-tree-v ect-details -S -o vect-complex-1.s (timeout = 300) PASS: gcc.dg/vect/vect-complex-1.c (test for excess errors) FAIL: gcc.dg/vect/vect-complex-1.c scan-tree-dump-times vect "vectorized 1 loops" 1 FAIL: gcc.dg/vect/vect-complex-1.c scan-tree-dump-times vect "vectorizing stmts using SLP" 1
Subject: Re: New: FAIL: gcc.dg/vect/vect-complex-1.c Attached vect-complex-1.c.101t.vect. Dave
Created attachment 17330 [details] vect-complex-1.c.101t.vect
gcc.dg/vect/slp-7.c has a similar failure: Executing on host: /home/dave/gnu/gcc/objdir/gcc/xgcc -B/home/dave/gnu/gcc/objdi r/gcc/ /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/vect/slp-7.c -ftree-vectori ze -fno-vect-cost-model -mfpu=neon -mfloat-abi=softfp -O2 -fdump-tree-vect-detai ls -S -o slp-7.s (timeout = 300) PASS: gcc.dg/vect/slp-7.c (test for excess errors) FAIL: gcc.dg/vect/slp-7.c scan-tree-dump-times vect "vectorized 2 loops" 1 FAIL: gcc.dg/vect/slp-7.c scan-tree-dump-times vect "vectorizing stmts using SLP" 2
Does adding attribute aligned, as below, help? Index: vect-complex-1.c =================================================================== --- vect-complex-1.c (revision 144030) +++ vect-complex-1.c (working copy) @@ -6,19 +6,19 @@ #define N 16 -_Complex float a[N] = +_Complex float a[N] __attribute__ ((__aligned__(16))) = { 10.0F + 20.0iF, 11.0F + 21.0iF, 12.0F + 22.0iF, 13.0F + 23.0iF, 14.0F + 24.0iF, 15.0F + 25.0iF, 16.0F + 26.0iF, 17.0F + 27.0iF, 18.0F + 28.0iF, 19.0F + 29.0iF, 20.0F + 30.0iF, 21.0F + 31.0iF, 22.0F + 32.0iF, 23.0F + 33.0iF, 24.0F + 34.0iF, 25.0F + 35.0iF }; -_Complex float b[N] = +_Complex float b[N] __attribute__ ((__aligned__(16))) = { 30.0F + 40.0iF, 31.0F + 41.0iF, 32.0F + 42.0iF, 33.0F + 43.0iF, 34.0F + 44.0iF, 35.0F + 45.0iF, 36.0F + 46.0iF, 37.0F + 47.0iF, 38.0F + 48.0iF, 39.0F + 49.0iF, 40.0F + 50.0iF, 41.0F + 51.0iF, 42.0F + 52.0iF, 43.0F + 53.0iF, 44.0F + 54.0iF, 45.0F + 55.0iF }; -_Complex float c[N]; -_Complex float res[N] = +_Complex float c[N] __attribute__ ((__aligned__(16))); +_Complex float res[N] __attribute__ ((__aligned__(16))) = { 40.0F + 60.0iF, 42.0F + 62.0iF, 44.0F + 64.0iF, 46.0F + 66.0iF, 48.0F + 68.0iF, 50.0F + 70.0iF, 52.0F + 72.0iF, 54.0F + 74.0iF, 56.0F + 76.0iF, 58.0F + 78.0iF, 60.0F + 80.0iF, 62.0F + 82.0iF, Could you please attach slp-7.c's dump as well? I think it is a different problem there. Thanks, Ira
Subject: Re: FAIL: gcc.dg/vect/vect-complex-1.c On Wed, 25 Feb 2009, irar at il dot ibm dot com wrote: > Does adding attribute aligned, as below, help? Yes, it fixes the failure. > Could you please attach slp-7.c's dump as well? I think it is a different > problem there. Attached. Dave
Created attachment 17363 [details] slp-7.c.101t.vect.gz
In slp-7.c all the three loops get vectorized, including the loop that requires vector multiplication for shorts. This patch http://gcc.gnu.org/ml/gcc-patches/2008-07/msg00044.html added ARM to vect_int_mult, but not to vect_short_mult, so I guess the fix should be: Index: target-supports.exp =================================================================== --- target-supports.exp (revision 144030) +++ target-supports.exp (working copy) @@ -2275,7 +2275,8 @@ proc check_effective_target_vect_short_m || [istarget spu-*-*] || [istarget i?86-*-*] || [istarget x86_64-*-*] - || [istarget powerpc*-*-*] } { + || [istarget powerpc*-*-*] + || [check_effective_target_arm32] } { set et_vect_short_mult_saved 1 } } Does it make sense? Thanks, Ira
Subject: Re: FAIL: gcc.dg/vect/vect-complex-1.c > ------- Comment #7 from irar at il dot ibm dot com 2009-02-26 09:57 ------- > In slp-7.c all the three loops get vectorized, including the loop that requires > vector multiplication for shorts. This patch > http://gcc.gnu.org/ml/gcc-patches/2008-07/msg00044.html added ARM to > vect_int_mult, but not to vect_short_mult, so I guess the fix should be: Patch fixes the failure of slp-7.c. I should note there is one XPASS in the gcc.dg/vect testsuite: XPASS: gcc.dg/vect/vect-iv-6.c scan-tree-dump-times vect "vectorized 1 loops" 1 Dave
Subject: Bug 39248 Author: irar Date: Tue Mar 3 07:42:26 2009 New Revision: 144569 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=144569 Log: PR tree-optimization/39248 * gcc.dg/vect/vect-complex-1.c: Add attribute aligned to the arrays. * gcc.dg/vect/vect-iv-6.c: Don't expect to fail to vectorize on targets without vector misalignment support. * lib/target-supports.exp (check_effective_target_vect_short_mult): Add check_effective_target_arm32. Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/vect/vect-complex-1.c trunk/gcc/testsuite/gcc.dg/vect/vect-iv-6.c trunk/gcc/testsuite/lib/target-supports.exp
Fixed.