amdgcn: OpenMP SIMD routine support
authorAndrew Stubbs <ams@codesourcery.com>
Thu, 14 Jul 2022 10:31:31 +0000 (11:31 +0100)
committerAndrew Stubbs <ams@codesourcery.com>
Tue, 30 Aug 2022 14:50:17 +0000 (15:50 +0100)
commitb73c49f6f88dd7f7569f9a72c8ceb04598d4c15c
treea38c5cb0ec6ceadfb19375209e9d65cbeb0909a2
parentf134a25ee8c29646f35f7e466109f6a7f5b9e824
amdgcn: OpenMP SIMD routine support

Enable and configure SIMD clones for amdgcn.  This affects both the __simd__
function attribute, and the OpenMP "declare simd" directive.

Note that the masked SIMD variants are generated, but the middle end doesn't
actually support calling them yet.

gcc/ChangeLog:

* config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen): New.
(gcn_simd_clone_adjust): New.
(gcn_simd_clone_usable): New.
(TARGET_SIMD_CLONE_ADJUST): New.
(TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New.
(TARGET_SIMD_CLONE_USABLE): New.

gcc/testsuite/ChangeLog:

* gcc.dg/vect/vect-simd-clone-1.c: Add dg-warning.
* gcc.dg/vect/vect-simd-clone-2.c: Add dg-warning.
* gcc.dg/vect/vect-simd-clone-3.c: Add dg-warning.
* gcc.dg/vect/vect-simd-clone-4.c: Add dg-warning.
* gcc.dg/vect/vect-simd-clone-5.c: Add dg-warning.
* gcc.dg/vect/vect-simd-clone-8.c: Add dg-warning.
gcc/config/gcn/gcn.cc
gcc/testsuite/gcc.dg/vect/vect-simd-clone-1.c
gcc/testsuite/gcc.dg/vect/vect-simd-clone-2.c
gcc/testsuite/gcc.dg/vect/vect-simd-clone-3.c
gcc/testsuite/gcc.dg/vect/vect-simd-clone-4.c
gcc/testsuite/gcc.dg/vect/vect-simd-clone-5.c
gcc/testsuite/gcc.dg/vect/vect-simd-clone-8.c