On Mon, May 27, 2024 at 10:36:26AM +0530, Tejas Belagod wrote:
> This patch tests if SVE type objects when applied to doacross clause are
> correctly diagnosed.
> 
> gcc/testsuite/ChangeLog
> 
>       * gcc.target/aarch64/sve/omp/doacross.c: New test.
> ---
>  .../gcc.target/aarch64/sve/omp/doacross.c     | 22 +++++++++++++++++++
>  1 file changed, 22 insertions(+)
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/omp/doacross.c
> 
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/omp/doacross.c 
> b/gcc/testsuite/gcc.target/aarch64/sve/omp/doacross.c
> new file mode 100644
> index 00000000000..a311887926b
> --- /dev/null
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/omp/doacross.c
> @@ -0,0 +1,22 @@
> +/* { dg-do compile } */
> +/* { dg-options "-msve-vector-bits=256 -std=gnu99 -fopenmp -O2 
> -fdump-tree-ompexp" } */
> +
> +#include <arm_sve.h>
> +
> +int a[256];
> +
> +__attribute__((noinline, noclone)) int
> +f1 (svint32_t va)
> +{
> +  int j;
> +  #pragma omp for ordered (1)
> +  for (j = 16; j < 64; j++)
> +    {
> +      #pragma omp ordered doacross(sink: va) /* { dg-error {variable 'va' is 
> not an iteration of outermost loop 1, expected 'j'} } */
> +      a[j - 1] = j + svaddv_s32 (svptrue_b32 (), va);
> +      #pragma omp ordered doacross(source: omp_cur_iteration)
> +      j += 4;
> +      va = svindex_s32 (0,1);
> +    }
> +  return j;
> +}

Ok pending the test placement.
You don't need -fdump-tree-ompexp for anything though, do you?

        Jakub

Reply via email to