aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2021-09-14 10:38:17 +0200
committerJakub Jelinek <jakub@redhat.com>2021-09-14 10:38:17 +0200
commitb29fc21482c0e203136eb5d44bdc1495de3918c6 (patch)
tree2d36a2e80e0ecd2fed8b92b42ef9caf50a8c9ad1
parent3f89d5ebcca8ea8c363db39cd3946db12b11adcc (diff)
downloadgcc-b29fc21482c0e203136eb5d44bdc1495de3918c6.zip
gcc-b29fc21482c0e203136eb5d44bdc1495de3918c6.tar.gz
gcc-b29fc21482c0e203136eb5d44bdc1495de3918c6.tar.bz2
testsuite: Use sync_long_long instead of sync_int_long for atomic-29.c test
As discussed, the test tests atomics on doubles which are 64-bit and so we should use sync_long_long effective target instead of sync_int_long that covers 64-bit atomics only on 64-bit arches. I've added -march=pentium to follow what is documented for sync_long_long, I guess -march=zarch should be added for s390* too, but haven't tested that. And using sync_long_long found a syntax error in that effective target implementation, so I've fixed that too. 2021-09-14 Jakub Jelinek <jakub@redhat.com> * c-c++-common/gomp/atomic-29.c: Add -march=pentium dg-additional-options for ia32. Use sync_long_long effective target instead of sync_int_long. * lib/target-supports.exp (check_effective_target_sync_long_long): Fix a syntax error.
-rw-r--r--gcc/testsuite/c-c++-common/gomp/atomic-29.c11
-rw-r--r--gcc/testsuite/lib/target-supports.exp2
2 files changed, 7 insertions, 6 deletions
diff --git a/gcc/testsuite/c-c++-common/gomp/atomic-29.c b/gcc/testsuite/c-c++-common/gomp/atomic-29.c
index e574c48..97fe33b 100644
--- a/gcc/testsuite/c-c++-common/gomp/atomic-29.c
+++ b/gcc/testsuite/c-c++-common/gomp/atomic-29.c
@@ -1,10 +1,11 @@
/* { dg-do compile { target c } } */
/* { dg-additional-options "-O2 -fdump-tree-ompexp" } */
-/* { dg-final { scan-tree-dump-times "\.ATOMIC_COMPARE_EXCHANGE \\\(\[^\n\r]*, 8, 5, 5\\\);" 1 "ompexp" { target sync_int_long } } } */
-/* { dg-final { scan-tree-dump-times "\.ATOMIC_COMPARE_EXCHANGE \\\(\[^\n\r]*, 8, 4, 2\\\);" 1 "ompexp" { target sync_int_long } } } */
-/* { dg-final { scan-tree-dump-times "\.ATOMIC_COMPARE_EXCHANGE \\\(\[^\n\r]*, 264, 5, 0\\\);" 1 "ompexp" { target sync_int_long } } } */
-/* { dg-final { scan-tree-dump-times "\.ATOMIC_COMPARE_EXCHANGE \\\(\[^\n\r]*, 8, 0, 0\\\);" 1 "ompexp" { target sync_int_long } } } */
-/* { dg-final { scan-tree-dump-not "__atomic_load_8 \\\(" "ompexp" { target sync_int_long } } } */
+/* { dg-additional-options "-march=pentium" { target ia32 } } */
+/* { dg-final { scan-tree-dump-times "\.ATOMIC_COMPARE_EXCHANGE \\\(\[^\n\r]*, 8, 5, 5\\\);" 1 "ompexp" { target sync_long_long } } } */
+/* { dg-final { scan-tree-dump-times "\.ATOMIC_COMPARE_EXCHANGE \\\(\[^\n\r]*, 8, 4, 2\\\);" 1 "ompexp" { target sync_long_long } } } */
+/* { dg-final { scan-tree-dump-times "\.ATOMIC_COMPARE_EXCHANGE \\\(\[^\n\r]*, 264, 5, 0\\\);" 1 "ompexp" { target sync_long_long } } } */
+/* { dg-final { scan-tree-dump-times "\.ATOMIC_COMPARE_EXCHANGE \\\(\[^\n\r]*, 8, 0, 0\\\);" 1 "ompexp" { target sync_long_long } } } */
+/* { dg-final { scan-tree-dump-not "__atomic_load_8 \\\(" "ompexp" { target sync_long_long } } } */
double x;
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 82dc131..8697ceb 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -8074,7 +8074,7 @@ proc check_effective_target_sync_int_128_runtime { } {
# Note: 32bit s390 targets require -mzarch in dg-options.
proc check_effective_target_sync_long_long { } {
- if { [istarget i?86-*-*] || [istarget x86_64-*-*])
+ if { [istarget i?86-*-*] || [istarget x86_64-*-*]
|| [istarget aarch64*-*-*]
|| [istarget arm*-*-*]
|| [istarget alpha*-*-*]