[PATCH] Enable Intel AVX512_4FMAPS and AVX512_4VNNIW instructions

Jakub Jelinek jakub@redhat.com
Sat Nov 19 11:28:00 GMT 2016


On Sat, Nov 19, 2016 at 11:17:55AM +0100, Uros Bizjak wrote:
> > Here is another patch I'm going to test which fixes many other FAILs, but
> > still some are left:
> > FAIL: gcc.target/i386/funcspec-3.c (internal compiler error)
> > FAIL: gcc.target/i386/funcspec-3.c (test for excess errors)
> > FAIL: gcc.target/i386/mvc1.c (internal compiler error)
> > FAIL: gcc.target/i386/mvc1.c (test for excess errors)
> > FAIL: gcc.target/i386/mvc6.c (internal compiler error)
> > FAIL: gcc.target/i386/mvc6.c (test for excess errors)
> > FAIL: gcc.target/i386/mvc6.c scan-assembler vpshufb
> > FAIL: gcc.target/i386/mvc6.c scan-assembler punpcklbw
> > FAIL: gcc.target/i386/mvc8.c (internal compiler error)
> > FAIL: gcc.target/i386/mvc8.c (test for excess errors)
> > FAIL: gcc.target/i386/pr67995-2.c (internal compiler error)
> > FAIL: gcc.target/i386/pr67995-2.c (test for excess errors)
> > FAIL: gcc.target/i386/pr71652-3.c (internal compiler error)
> > FAIL: gcc.target/i386/pr71652-3.c  (test for errors, line 5)
> > FAIL: gcc.target/i386/pr71652-3.c (test for excess errors)
> 
> I wonder why patch submitter didn't get these failures during
> regtesting. There are plenty of tests (the above multi-vrsioning
> tests) that depend on correct handling of ISA variables. I assumed
> that these tests passed and consequently didn't went deep into the
> implementation, but rather requested a couple of additional tests that
> exercised added functionality.some more.

Dunno, clearly the patch has not been tested at all, at least not in
the form that has been checked in.
I've now bootstrapped/regtested on x86_64-linux and i686-linux all these
3 patches:
http://gcc.gnu.org/ml/gcc-patches/2016-11/msg01992.html
http://gcc.gnu.org/ml/gcc-patches/2016-11/msg02026.html
http://gcc.gnu.org/ml/gcc-patches/2016-11/msg02027.html
, e.g. on x86_64-linux they fix:
-FAIL: gcc.target/i386/avx-2.c (internal compiler error)
-FAIL: gcc.target/i386/avx-2.c (test for excess errors)
-FAIL: gcc.target/i386/avx2-gather-2.c scan-tree-dump-times vect "note: vectorized 1 loops in function" 16
-FAIL: gcc.target/i386/avx2-gather-6.c scan-tree-dump-times vect "note: vectorized 1 loops in function" 1
-FAIL: gcc.target/i386/avx512f-ceil-sfix-vec-2.c scan-assembler-times vcvttpd2dq[^\\n]*zmm[0-9].{7}(?:\\n|[ \\\\t]+#) 2
-FAIL: gcc.target/i386/avx512f-ceil-sfix-vec-2.c scan-assembler-times vrndscalepd[^\\n]*zmm[0-9](?:\\n|[ \\\\t]+#) 2
-FAIL: gcc.target/i386/avx512f-ceil-vec-2.c scan-assembler-times vrndscalepd[^\\n]+zmm[0-9](?:\\n|[ \\\\t]+#) 1
-FAIL: gcc.target/i386/avx512f-ceilf-sfix-vec-2.c scan-assembler-times vcvttps2dq[^\\n]+zmm[0-9].{7}(?:\\n|[ \\\\t]+#) 1
-FAIL: gcc.target/i386/avx512f-ceilf-sfix-vec-2.c scan-assembler-times vrndscaleps[^\\n]+zmm[0-9](?:\\n|[ \\\\t]+#) 1
-FAIL: gcc.target/i386/avx512f-ceilf-vec-2.c scan-assembler-times vrndscaleps[^\\n]+zmm[0-9](?:\\n|[ \\\\t]+#) 1
-FAIL: gcc.target/i386/avx512f-floor-sfix-vec-2.c scan-assembler-times vcvttpd2dq[^\\n]*zmm[0-9].{7}(?:\\n|[ \\\\t]+#) 2
-FAIL: gcc.target/i386/avx512f-floor-sfix-vec-2.c scan-assembler-times vrndscalepd[^\\n]*zmm[0-9](?:\\n|[ \\\\t]+#) 2
-FAIL: gcc.target/i386/avx512f-floor-vec-2.c scan-assembler-times vrndscalepd[^\\n]+zmm[0-9](?:\\n|[ \\\\t]+#) 1
-FAIL: gcc.target/i386/avx512f-floorf-sfix-vec-2.c scan-assembler-times vcvttps2dq[^\\n]+zmm[0-9].{7}(?:\\n|[ \\\\t]+#) 1
-FAIL: gcc.target/i386/avx512f-floorf-sfix-vec-2.c scan-assembler-times vrndscaleps[^\\n]+zmm[0-9](?:\\n|[ \\\\t]+#) 1
-FAIL: gcc.target/i386/avx512f-floorf-vec-2.c scan-assembler-times vrndscaleps[^\\n]+zmm[0-9](?:\\n|[ \\\\t]+#) 1
-FAIL: gcc.target/i386/avx512f-gather-2.c scan-tree-dump-times vect "note: vectorized 1 loops in function" 16
-FAIL: gcc.target/i386/avx512f-gather-5.c scan-assembler-times gather[^\\n]*zmm[0-9]+{%k[1-7]}(?:\\n|[ \\\\t]+#) 2
-FAIL: gcc.target/i386/avx512f-rint-sfix-vec-2.c scan-assembler-times vcvtpd2dq[^\\n]+ymm[0-9](?:\\n|[ \\\\t]+#) 2
-FAIL: gcc.target/i386/avx512f-rint-sfix-vec-2.c scan-assembler-times vinserti64x4[^\\n]+zmm[0-9](?:\\n|[ \\\\t]+#) 1
-FAIL: gcc.target/i386/avx512f-rintf-sfix-vec-2.c scan-assembler-times vcvtps2dq[^\\n]+zmm[0-9](?:\\n|[ \\\\t]+#) 1
-FAIL: gcc.target/i386/avx512f-round-sfix-vec-2.c scan-assembler-times vcvttpd2dq[^\\n]+zmm[0-9].{7}(?:\\n|[ \\\\t]+#) 2
-FAIL: gcc.target/i386/avx512f-round-sfix-vec-2.c scan-assembler-times vrndscalepd[^\\n]+zmm[0-9](?:\\n|[ \\\\t]+#) 2
-FAIL: gcc.target/i386/avx512f-roundf-sfix-vec-2.c scan-assembler-times vcvttps2dq[^\\n]+zmm[0-9].{7}(?:\\n|[ \\\\t]+#) 1
-FAIL: gcc.target/i386/avx512f-roundf-sfix-vec-2.c scan-assembler-times vrndscaleps[^\\n]+zmm[0-9](?:\\n|[ \\\\t]+#) 1
-FAIL: gcc.target/i386/avx512f-trunc-vec-2.c scan-assembler-times vrndscalepd[^\\n]+zmm[0-9](?:\\n|[ \\\\t]+#) 1
-FAIL: gcc.target/i386/avx512f-truncf-vec-2.c scan-assembler-times vrndscaleps[^\\n]+zmm[0-9](?:\\n|[ \\\\t]+#) 1
-FAIL: gcc.target/i386/funcspec-8.c  (test for errors, line 104)
-FAIL: gcc.target/i386/funcspec-8.c  (test for errors, line 123)
-FAIL: gcc.target/i386/funcspec-8.c  (test for errors, line 142)
-FAIL: gcc.target/i386/funcspec-8.c  (test for errors, line 161)
-FAIL: gcc.target/i386/funcspec-8.c  (test for errors, line 28)
-FAIL: gcc.target/i386/funcspec-8.c  (test for errors, line 47)
-FAIL: gcc.target/i386/funcspec-8.c  (test for errors, line 66)
-FAIL: gcc.target/i386/funcspec-8.c  (test for errors, line 85)
-FAIL: gcc.target/i386/funcspec-8.c (internal compiler error)
-FAIL: gcc.target/i386/funcspec-8.c (test for excess errors)
-FAIL: gcc.target/i386/mvc1.c (internal compiler error)
-FAIL: gcc.target/i386/mvc1.c (test for excess errors)
-UNRESOLVED: gcc.target/i386/mvc1.c compilation failed to produce executable
-FAIL: gcc.target/i386/mvc6.c (test for excess errors)
-UNRESOLVED: gcc.target/i386/mvc6.c scan-assembler punpcklbw
-UNRESOLVED: gcc.target/i386/mvc6.c scan-assembler vpshufb
-FAIL: gcc.target/i386/mvc8.c (internal compiler error)
-FAIL: gcc.target/i386/mvc8.c (test for excess errors)
-UNRESOLVED: gcc.target/i386/mvc8.c scan-assembler-not constprop
 FAIL: gcc.target/i386/pr45685.c scan-assembler-times cmov 6
-FAIL: gcc.target/i386/pr67995-1.c  (test for errors, line 11)
-FAIL: gcc.target/i386/pr67995-1.c (internal compiler error)
-FAIL: gcc.target/i386/pr67995-1.c (test for excess errors)
-FAIL: gcc.target/i386/pr67995-2.c (internal compiler error)
-FAIL: gcc.target/i386/pr67995-2.c (test for excess errors)
-FAIL: gcc.target/i386/pr69255-1.c  (test for errors, line 13)
-FAIL: gcc.target/i386/pr69255-1.c  (test for warnings, line 13)
-FAIL: gcc.target/i386/pr69255-1.c (internal compiler error)
-FAIL: gcc.target/i386/pr69255-1.c (test for excess errors)
-FAIL: gcc.target/i386/pr69255-2.c  (test for errors, line 13)
-FAIL: gcc.target/i386/pr69255-2.c  (test for warnings, line 13)
-FAIL: gcc.target/i386/pr69255-2.c  (test for warnings, line 13)
-FAIL: gcc.target/i386/pr69255-2.c (internal compiler error)
-FAIL: gcc.target/i386/pr69255-2.c (test for excess errors)
-FAIL: gcc.target/i386/pr69255-3.c  (test for errors, line 13)
-FAIL: gcc.target/i386/pr69255-3.c  (test for warnings, line 13)
-FAIL: gcc.target/i386/pr69255-3.c (internal compiler error)
-FAIL: gcc.target/i386/pr69255-3.c (test for excess errors)
-FAIL: gcc.target/i386/pr71652-3.c  (test for errors, line 5)
-FAIL: gcc.target/i386/pr71652-3.c (internal compiler error)
-FAIL: gcc.target/i386/pr71652-3.c (test for excess errors)
-FAIL: gcc.target/i386/sse-22a.c (internal compiler error)
-FAIL: gcc.target/i386/sse-22a.c (test for excess errors)
-WARNING: program timed out.
-FAIL: g++.dg/ext/mv6.C  -std=gnu++11 (internal compiler error)
-FAIL: g++.dg/ext/mv6.C  -std=gnu++11 (test for excess errors)
-UNRESOLVED: g++.dg/ext/mv6.C  -std=gnu++11 compilation failed to produce executable
-FAIL: g++.dg/ext/mv6.C  -std=gnu++14 (internal compiler error)
-FAIL: g++.dg/ext/mv6.C  -std=gnu++14 (test for excess errors)
-UNRESOLVED: g++.dg/ext/mv6.C  -std=gnu++14 compilation failed to produce executable
-FAIL: g++.dg/ext/mv6.C  -std=gnu++98 (internal compiler error)
-FAIL: g++.dg/ext/mv6.C  -std=gnu++98 (test for excess errors)
-UNRESOLVED: g++.dg/ext/mv6.C  -std=gnu++98 compilation failed to produce executable
-FAIL: g++.dg/ext/mvc1.C  -std=c++11 (internal compiler error)
-FAIL: g++.dg/ext/mvc1.C  -std=c++11 (test for excess errors)
-UNRESOLVED: g++.dg/ext/mvc1.C  -std=c++11 compilation failed to produce executable
-FAIL: g++.dg/ext/mvc1.C  -std=c++14 (internal compiler error)
-FAIL: g++.dg/ext/mvc1.C  -std=c++14 (test for excess errors)
-UNRESOLVED: g++.dg/ext/mvc1.C  -std=c++14 compilation failed to produce executable
-FAIL: g++.dg/ext/mvc1.C  -std=c++98 (internal compiler error)
-FAIL: g++.dg/ext/mvc1.C  -std=c++98 (test for excess errors)
-UNRESOLVED: g++.dg/ext/mvc1.C  -std=c++98 compilation failed to produce executable
-FAIL: g++.dg/ext/pr57548.C  -std=c++11 (internal compiler error)
-FAIL: g++.dg/ext/pr57548.C  -std=c++11 (test for excess errors)
-FAIL: g++.dg/ext/pr57548.C  -std=c++14 (internal compiler error)
-FAIL: g++.dg/ext/pr57548.C  -std=c++14 (test for excess errors)
-FAIL: g++.dg/ext/pr57548.C  -std=c++98 (internal compiler error)
-FAIL: g++.dg/ext/pr57548.C  -std=c++98 (test for excess errors)

On x86_64-linux with the 3 patches I'm not seeing any new FAILs
compared to before r242569, on i686-linux there is still:
+FAIL: gcc.target/i386/pr57756.c  (test for errors, line 6)
+FAIL: gcc.target/i386/pr57756.c  (test for warnings, line 14)
compared to pre-r242569 (so some further fix is needed).

	Jakub



More information about the Gcc-patches mailing list