d: __vectors unsupported in hardware should be rejected at compile-time.
authorIain Buclaw <ibuclaw@gdcproject.org>
Mon, 31 Aug 2020 20:42:10 +0000 (22:42 +0200)
committerIain Buclaw <ibuclaw@gdcproject.org>
Wed, 2 Sep 2020 20:59:35 +0000 (22:59 +0200)
commitf0a3bab43fda3084eaf1bdaac58936757f30ea35
tree5b4f301d8476d90129ead7b606ce8b2058ba4e8b
parentc285126cc0af8891a29e136be4b10ed27caef470
d: __vectors unsupported in hardware should be rejected at compile-time.

gcc/d/ChangeLog:

PR d/96869
* d-builtins.cc (build_frontend_type): Don't expose intrinsics that
use unsupported vector types.
* d-target.cc (Target::isVectorTypeSupported): Restrict to supporting
only if TARGET_VECTOR_MODE_SUPPORTED_P is true.  Don't allow complex
or boolean vector types.

gcc/testsuite/ChangeLog:

PR d/96869
* gdc.dg/simd.d: Removed.
* gdc.dg/cast1.d: New test.
* gdc.dg/gdc213.d: Compile with target vect_sizes_16B_8B.
* gdc.dg/gdc284.d: Likewise.
* gdc.dg/gdc67.d: Likewise.
* gdc.dg/pr96869.d: New test.
* gdc.dg/simd1.d: New test.
* gdc.dg/simd10447.d: New test.
* gdc.dg/simd12776.d: New test.
* gdc.dg/simd13841.d: New test.
* gdc.dg/simd13927.d: New test.
* gdc.dg/simd15123.d: New test.
* gdc.dg/simd15144.d: New test.
* gdc.dg/simd16087.d: New test.
* gdc.dg/simd16697.d: New test.
* gdc.dg/simd17237.d: New test.
* gdc.dg/simd17695.d: New test.
* gdc.dg/simd17720a.d: New test.
* gdc.dg/simd17720b.d: New test.
* gdc.dg/simd19224.d: New test.
* gdc.dg/simd19627.d: New test.
* gdc.dg/simd19628.d: New test.
* gdc.dg/simd19629.d: New test.
* gdc.dg/simd19630.d: New test.
* gdc.dg/simd2a.d: New test.
* gdc.dg/simd2b.d: New test.
* gdc.dg/simd2c.d: New test.
* gdc.dg/simd2d.d: New test.
* gdc.dg/simd2e.d: New test.
* gdc.dg/simd2f.d: New test.
* gdc.dg/simd2g.d: New test.
* gdc.dg/simd2h.d: New test.
* gdc.dg/simd2i.d: New test.
* gdc.dg/simd2j.d: New test.
* gdc.dg/simd7951.d: New test.
* gdc.dg/torture/array2.d: New test.
* gdc.dg/torture/array3.d: New test.
* gdc.dg/torture/simd16488a.d: New test.
* gdc.dg/torture/simd16488b.d: New test.
* gdc.dg/torture/simd16703.d: New test.
* gdc.dg/torture/simd19223.d: New test.
* gdc.dg/torture/simd19607.d: New test.
* gdc.dg/torture/simd3.d: New test.
* gdc.dg/torture/simd4.d: New test.
* gdc.dg/torture/simd7411.d: New test.
* gdc.dg/torture/simd7413a.d: New test.
* gdc.dg/torture/simd7413b.d: New test.
* gdc.dg/torture/simd7414.d: New test.
* gdc.dg/torture/simd9200.d: New test.
* gdc.dg/torture/simd9304.d: New test.
* gdc.dg/torture/simd9449.d: New test.
* gdc.dg/torture/simd9910.d: New test.
55 files changed:
gcc/d/d-builtins.cc
gcc/d/d-target.cc
gcc/testsuite/gdc.dg/cast1.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/gdc213.d
gcc/testsuite/gdc.dg/gdc284.d
gcc/testsuite/gdc.dg/gdc67.d
gcc/testsuite/gdc.dg/pr96869.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd.d [deleted file]
gcc/testsuite/gdc.dg/simd1.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd10447.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd12776.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd13841.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd13927.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd13927b.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd15123.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd15144.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd16087.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd16697.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd17237.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd17695.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd17720a.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd17720b.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd19224.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd19627.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd19628.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd19629.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd19630.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd2a.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd2b.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd2c.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd2d.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd2e.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd2f.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd2g.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd2h.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd2i.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd2j.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/simd7951.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/torture/array2.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/torture/array3.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/torture/simd16488a.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/torture/simd16488b.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/torture/simd16703.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/torture/simd19223.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/torture/simd19607.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/torture/simd3.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/torture/simd4.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/torture/simd7411.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/torture/simd7413a.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/torture/simd7413b.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/torture/simd7414.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/torture/simd9200.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/torture/simd9304.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/torture/simd9449.d [new file with mode: 0644]
gcc/testsuite/gdc.dg/torture/simd9910.d [new file with mode: 0644]