Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/gcc.dg/atomic-load-5.c @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 /* Test __atomic routines for existence and proper execution on 16 byte | |
2 values with each valid memory model. */ | |
3 /* { dg-do run } */ | |
4 /* { dg-require-effective-target sync_int_128_runtime } */ | |
5 /* { dg-options "-mcx16" { target { i?86-*-* x86_64-*-* } } } */ | |
6 | |
7 extern void abort(void); | |
8 | |
9 __int128_t v, count; | |
10 | |
11 int | |
12 main () | |
13 { | |
14 v = 0; | |
15 count = 0; | |
16 | |
17 if (__atomic_load_n (&v, __ATOMIC_RELAXED) != count++) | |
18 abort(); | |
19 else | |
20 v++; | |
21 | |
22 if (__atomic_load_n (&v, __ATOMIC_ACQUIRE) != count++) | |
23 abort(); | |
24 else | |
25 v++; | |
26 | |
27 if (__atomic_load_n (&v, __ATOMIC_CONSUME) != count++) | |
28 abort(); | |
29 else | |
30 v++; | |
31 | |
32 if (__atomic_load_n (&v, __ATOMIC_SEQ_CST) != count++) | |
33 abort(); | |
34 else | |
35 v++; | |
36 | |
37 /* Now test the generic variants. */ | |
38 | |
39 __atomic_load (&v, &count, __ATOMIC_RELAXED); | |
40 if (count != v) | |
41 abort(); | |
42 else | |
43 v++; | |
44 | |
45 __atomic_load (&v, &count, __ATOMIC_ACQUIRE); | |
46 if (count != v) | |
47 abort(); | |
48 else | |
49 v++; | |
50 | |
51 __atomic_load (&v, &count, __ATOMIC_CONSUME); | |
52 if (count != v) | |
53 abort(); | |
54 else | |
55 v++; | |
56 | |
57 __atomic_load (&v, &count, __ATOMIC_SEQ_CST); | |
58 if (count != v) | |
59 abort(); | |
60 else | |
61 v++; | |
62 | |
63 | |
64 return 0; | |
65 } | |
66 |