diff options
Diffstat (limited to 'gcc/testsuite/c-c++-common/gomp')
-rw-r--r-- | gcc/testsuite/c-c++-common/gomp/declare-variant-14.c | 8 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/gomp/pr60823-1.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/gomp/pr60823-2.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/gomp/pr60823-3.c | 6 |
4 files changed, 17 insertions, 6 deletions
diff --git a/gcc/testsuite/c-c++-common/gomp/declare-variant-14.c b/gcc/testsuite/c-c++-common/gomp/declare-variant-14.c index cdb0bb3..e366889 100644 --- a/gcc/testsuite/c-c++-common/gomp/declare-variant-14.c +++ b/gcc/testsuite/c-c++-common/gomp/declare-variant-14.c @@ -15,13 +15,15 @@ int test1 (int x) { /* At gimplification time, we can't decide yet which function to call. */ - /* { dg-final { scan-tree-dump-times "f04 \\\(x" 2 "gimple" } } */ + /* { dg-final { scan-tree-dump-times "f04 \\\(x" 2 "gimple" { target { !aarch64*-*-* } } } } */ /* After simd clones are created, the original non-clone test1 shall call f03 (score 6), the sse2/avx/avx2 clones too, but avx512f clones shall call f01 with score 8. */ /* { dg-final { scan-tree-dump-not "f04 \\\(x" "optimized" } } */ - /* { dg-final { scan-tree-dump-times "f03 \\\(x" 14 "optimized" } } */ - /* { dg-final { scan-tree-dump-times "f01 \\\(x" 4 "optimized" } } */ + /* { dg-final { scan-tree-dump-times "f03 \\\(x" 14 "optimized" { target { !aarch64*-*-* } } } } */ + /* { dg-final { scan-tree-dump-times "f03 \\\(x" 10 "optimized" { target { aarch64*-*-* } } } } */ + /* { dg-final { scan-tree-dump-times "f01 \\\(x" 4 "optimized" { target { !aarch64*-*-* } } } } */ + /* { dg-final { scan-tree-dump-times "f01 \\\(x" 0 "optimized" { target { aarch64*-*-* } } } } */ int a = f04 (x); int b = f04 (x); return a + b; diff --git a/gcc/testsuite/c-c++-common/gomp/pr60823-1.c b/gcc/testsuite/c-c++-common/gomp/pr60823-1.c index 2cc44e82..9408c0f 100644 --- a/gcc/testsuite/c-c++-common/gomp/pr60823-1.c +++ b/gcc/testsuite/c-c++-common/gomp/pr60823-1.c @@ -2,7 +2,11 @@ /* { dg-do compile } */ /* { dg-options "-O2 -fopenmp-simd" } */ +#ifdef __aarch64__ +#pragma omp declare simd simdlen(2) notinbranch +#else #pragma omp declare simd simdlen(4) notinbranch +#endif int foo (const double c1, const double c2) { @@ -17,4 +21,3 @@ foo (const double c1, const double c2) } return res; } -/* { dg-warning "GCC does not currently support mixed size types for 'simd' functions" "" { target aarch64*-*-* } .-13 } */ diff --git a/gcc/testsuite/c-c++-common/gomp/pr60823-2.c b/gcc/testsuite/c-c++-common/gomp/pr60823-2.c index 4c87620..e402b5a 100644 --- a/gcc/testsuite/c-c++-common/gomp/pr60823-2.c +++ b/gcc/testsuite/c-c++-common/gomp/pr60823-2.c @@ -3,7 +3,11 @@ /* { dg-require-effective-target vect_simd_clones } */ /* { dg-options "-O2 -fopenmp-simd" } */ +#ifdef __aarch64__ +#pragma omp declare simd simdlen(2) notinbranch +#else #pragma omp declare simd simdlen(4) notinbranch +#endif __attribute__((noinline)) int foo (double c1, double c2) { diff --git a/gcc/testsuite/c-c++-common/gomp/pr60823-3.c b/gcc/testsuite/c-c++-common/gomp/pr60823-3.c index 56ad50c..44e02b6 100644 --- a/gcc/testsuite/c-c++-common/gomp/pr60823-3.c +++ b/gcc/testsuite/c-c++-common/gomp/pr60823-3.c @@ -9,8 +9,11 @@ void bar (char *, double *); struct S { char c[sizeof (double)]; }; void baz (struct S, struct S); union U { struct S s; double d; }; - +#ifdef __aarch64__ +#pragma omp declare simd simdlen(2) notinbranch +#else #pragma omp declare simd simdlen(4) notinbranch +#endif __attribute__((noinline)) int foo (double c1, double c2) { @@ -28,6 +31,5 @@ foo (double c1, double c2) baz (*(struct S *)&c1, *(struct S *)&c2); return c1 + c2 + ((struct S *)&c1)->c[1]; } -/* { dg-warning "GCC does not currently support mixed size types for 'simd' functions" "" { target aarch64*-*-* } .-16 } */ #endif |