Hi Christophe, > > After your commit, I have these reports: > http://people.linaro.org/~christophe.lyon/cross- > validation/gcc/trunk/255064/report-build-info.html > > After my commit, I have these reports: > http://people.linaro.org/~christophe.lyon/cross- > validation/gcc/trunk/255126/report-build-info.html > > I haven't fully checked that my patch fixes all the regressions reported at > r255064, but I don't see why my patch would introduce regressions.... So I > think your patch is causing problems: > * on armeb --with-fpu=neon-fp16: (the 2 "REGRESSED" entries): > gcc.target/arm/attr-neon3.c scan-assembler-times vld1 1 (found 2 times) > gcc.target/arm/neon-vfma-1.c scan-assembler vfma\\.f32[\t]+[dDqQ] > gcc.target/arm/neon-vfms-1.c scan-assembler vfms\\.f32[\t]+[dDqQ] > > * on arm-none-linux-gnueabihf --with-cpu cortex-a5 --with-fpu vfpv3-d16- > fp16 and armeb-none-linux-gnueabihf --with-cpu cortex-a9 --with-fpu vfpv3- > d16-fp16 (the 2 "BIG-REGR" entries)
This patch only introduced a few neon instrinsics in arm_neon.h, and most of these files don't use the header. gcc.dg/vect/pr65947-14.c doesn't exist in my tree so it's a relatively new test. I will run some regressions over the weekend on an updated tree, but I can't understand how a not included header it can cause execution failures 😊 However most of those are vectorizer tests. It seems much more likely to me that vectorization is broken rather. Thanks, Tamar > where a few tests fail: > (arm-none-linux-gnueabihf cortex-a5 vfpv3-d16-fp16): > gcc.dg/vect/pr65947-14.c -flto -ffat-lto-objects execution test > gcc.dg/vect/pr65947-14.c execution test > > (armeb-none-linux-gnueabihf cortex-a9 vfpv3-d16-fp16): > Executed from: gcc.dg/vect/vect.exp > gcc.dg/vect/pr51074.c -flto -ffat-lto-objects execution test > gcc.dg/vect/pr51074.c execution test > gcc.dg/vect/pr64252.c -flto -ffat-lto-objects execution test > gcc.dg/vect/pr65947-14.c -flto -ffat-lto-objects execution test > gcc.dg/vect/pr65947-14.c execution test > gcc.dg/vect/vect-cond-4.c -flto -ffat-lto-objects execution test > gcc.dg/vect/vect-nb-iter-ub-2.c execution test > gcc.dg/vect/vect-nb-iter-ub-3.c -flto -ffat-lto-objects execution test > gcc.dg/vect/vect-nb-iter-ub-3.c execution test > gcc.dg/vect/vect-strided-shift-1.c -flto -ffat-lto-objects execution test > gcc.dg/vect/vect-strided-shift-1.c execution test > gcc.dg/vect/vect-strided-u16-i3.c -flto -ffat-lto-objects execution test > gcc.dg/vect/vect-strided-u16-i3.c execution test > Executed from: gcc.target/arm/arm.exp > gcc.target/arm/attr-neon3.c scan-assembler-times vld1 1 (found 2 times) > gcc.target/arm/neon-vfma-1.c scan-assembler vfma\\.f32[\t]+[dDqQ] > gcc.target/arm/neon-vfms-1.c scan-assembler vfms\\.f32[\t]+[dDqQ] > gcc.target/arm/neon-vmla-1.c scan-assembler vmla\\.i32 > gcc.target/arm/neon-vmls-1.c scan-assembler vmls\\.i32 > gcc.target/arm/vect-copysignf.c scan-tree-dump-times vect "vectorized 1 > loops" 1 (found 0 times) > > I haven't checked whether this tests were already failing before your patch, > and are just reported as new failures because they failed to compile in the > mean time. > > Not sure I am clear :-) > > Sorry for the delay and potentially hard to parse reports, I'm struggling with > infrastructure problems. > > Thanks, > > Christophe > > > Tamar > > > >> > >> Fixed as obvious (r255126). > >> > >> Christophe > >> > >> > diff --git a/gcc/testsuite/gcc.target/arm/simd/vect-dot-qi.h > >> > b/gcc/testsuite/gcc.target/arm/simd/vect-dot-qi.h > >> > new file mode 100644 > >> > index > >> > > >> > 0000000000000000000000000000000000000000..90b00aff95cfef96d1963be176 > >> 73 > >> > dc191cc71169 > >> > --- /dev/null > >> > +++ b/gcc/testsuite/gcc.target/arm/simd/vect-dot-qi.h > >> > @@ -0,0 +1,15 @@ > >> > +TYPE char X[N] __attribute__ > >> ((__aligned__(__BIGGEST_ALIGNMENT__))); > >> > +TYPE char Y[N] __attribute__ > >> ((__aligned__(__BIGGEST_ALIGNMENT__))); > >> > + > >> > +__attribute__ ((noinline)) int > >> > +foo1(int len) { > >> > + int i; > >> > + TYPE int result = 0; > >> > + TYPE short prod; > >> > + > >> > + for (i=0; i<len; i++) { > >> > + prod = X[i] * Y[i]; > >> > + result += prod; > >> > + } > >> > + return result; > >> > +} > >> > \ No newline at end of file > >> > > >> > Please add new lines at the end of the new test files. > >> > This applies to a few more new files in this patch. > >> > > >> > Ok with these nits fixed. > >> > > >> > Thanks, > >> > Kyrill > >> >