8#include "../../src/kmp_platform.h"
25 long long d,
long long *pv);
37 long long d,
long long *pv);
44#if KMP_ARCH_X86 || KMP_ARCH_X86_64
79 ret++; printf(
"Error bool_1_cas_cpt no-op: %d != %d\n", co, c1); }
81 ret++; printf(
"Error bool_1_cas_cpt no-op cpt: %d != %d\n", cv, co); }
82 if (
r) {
ret++; printf(
"Error bool_1_cas_cpt no-op ret: %d\n",
r); }
85 if (co != c2) {
ret++; printf(
"Error bool_1_cas_cpt: %d != %d\n", co, c2); }
86 if (cv != 0) {
ret++; printf(
"Error bool_1_cas_cpt cpt: %d != %d\n", cv, 0); }
87 if (!
r) {
ret++; printf(
"Error bool_1_cas_cpt ret: %d\n",
r); }
91 ret++; printf(
"Error bool_2_cas_cpt no-op: %d != %d\n", so, s1); }
93 ret++; printf(
"Error bool_2_cas_cpt no-op cpt: %d != %d\n", sv, so); }
94 if (
r) {
ret++; printf(
"Error bool_2_cas_cpt no-op ret: %d\n",
r); }
97 if (so != s2) {
ret++; printf(
"Error bool_2_cas_cpt: %d != %d\n", so, s2); }
98 if (sv != 0) {
ret++; printf(
"Error bool_2_cas_cpt cpt: %d != %d\n", sv, 0); }
99 if (!
r) {
ret++; printf(
"Error bool_2_cas_cpt ret: %d\n",
r); }
103 ret++; printf(
"Error bool_4_cas_cpt no-op: %d != %d\n", io, i1); }
105 ret++; printf(
"Error bool_4_cas_cpt no-op cpt: %d != %d\n", iv, io); }
106 if (
r) {
ret++; printf(
"Error bool_4_cas_cpt no-op ret: %d\n",
r); }
109 if (io != i2) {
ret++; printf(
"Error bool_4_cas_cpt: %d != %d\n", io, i2); }
110 if (iv != 0) {
ret++; printf(
"Error bool_4_cas_cpt cpt: %d != %d\n", iv, 0); }
111 if (!
r) {
ret++; printf(
"Error bool_4_cas_cpt ret: %d\n",
r); }
115 ret++; printf(
"Error bool_8_cas_cpt no-op: %lld != %lld\n", lo, l1); }
117 ret++; printf(
"Error bool_8_cas_cpt no-op cpt: %lld != %lld\n", lv, lo); }
118 if (
r) {
ret++; printf(
"Error bool_8_cas_cpt no-op ret: %d\n",
r); }
122 ret++; printf(
"Error bool_8_cas_cpt: %lld != %lld\n", lo, l2); }
124 ret++; printf(
"Error bool_8_cas_cpt cpt: %lld != %d\n", lv, 0); }
125 if (!
r) {
ret++; printf(
"Error bool_8_cas_cpt ret: %d\n",
r); }
132 ret++; printf(
"Error val_1_cas_cpt no-op: %d != %d\n", co, c2); }
134 ret++; printf(
"Error val_1_cas_cpt no-op cpt: %d != %d\n", cv, c2); }
136 ret++; printf(
"Error val_1_cas_cpt no-op ret: %d != %d\n", cc, c2); }
138 if (co != c1) {
ret++; printf(
"Error val_1_cas_cpt: %d != %d\n", co, c1); }
139 if (cv != c1) {
ret++; printf(
"Error val_1_cas_cpt cpt: %d != %d\n", cv, c1); }
140 if (cc != c2) {
ret++; printf(
"Error val_1_cas_cpt ret: %d != %d\n", cc, c2); }
144 ret++; printf(
"Error val_2_cas_cpt no-op: %d != %d\n", so, s2); }
146 ret++; printf(
"Error val_2_cas_cpt no-op cpt: %d != %d\n", sv, s2); }
148 ret++; printf(
"Error val_2_cas_cpt no-op ret: %d != %d\n", sc, s2); }
150 if (so != s1) {
ret++; printf(
"Error val_2_cas_cpt: %d != %d\n", so, s1); }
151 if (sv != s1) {
ret++; printf(
"Error val_2_cas_cpt cpt: %d != %d\n", sv, s1); }
152 if (sc != s2) {
ret++; printf(
"Error val_2_cas_cpt ret: %d != %d\n", sc, s2); }
156 ret++; printf(
"Error val_4_cas_cpt no-op: %d != %d\n", io, i2); }
158 ret++; printf(
"Error val_4_cas_cpt no-op cpt: %d != %d\n", iv, i2); }
160 ret++; printf(
"Error val_4_cas_cpt no-op ret: %d != %d\n", ic, i2); }
162 if (io != i1) {
ret++; printf(
"Error val_4_cas_cpt: %d != %d\n", io, i1); }
163 if (iv != i1) {
ret++; printf(
"Error val_4_cas_cpt cpt: %d != %d\n", io, i1); }
164 if (ic != i2) {
ret++; printf(
"Error val_4_cas_cpt ret: %d != %d\n", ic, i2); }
168 ret++; printf(
"Error val_8_cas_cpt no-op: %lld != %lld\n", lo, l2); }
170 ret++; printf(
"Error val_8_cas_cpt no-op cpt: %lld != %lld\n", lv, l2); }
172 ret++; printf(
"Error val_8_cas_cpt no-op ret: %lld != %lld\n", lc, l2); }
174 if (lo != l1) {
ret++; printf(
"Error val_8_cas_cpt: %lld != %lld\n", lo, l1); }
176 ret++; printf(
"Error val_8_cas_cpt cpt: %lld != %lld\n", lv, l1); }
178 ret++; printf(
"Error val_8_cas_cpt ret: %lld != %lld\n", lc, l2); }
183 for (io = 0; io < 5; ++io) {
184 #pragma omp parallel num_threads(2) private(i2, ic, r, iv)
186 if (omp_get_thread_num() == 0) {
188 #pragma omp atomic read
194 printf(
"Error 1 in parallel cpt, %d != %d\n", iv, ic);
196 #pragma omp atomic read
202 printf(
"Error 2 in parallel cpt, %d != %d\n", iv, i2 + 1);
208 #pragma omp atomic read
215 if (i0 != 6 || i1 != 5) {
217 printf(
"Error in parallel, %d != %d or %d != %d\n", i0, 6, i1, 5);
223 printf(
"Unsupported architecture, skipping test...\n");
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d
bool __kmpc_atomic_bool_1_cas_cpt(ident_t *loc, int gtid, char *x, char e, char d, char *pv)
char __kmpc_atomic_val_1_cas_cpt(ident_t *loc, int gtid, char *x, char e, char d, char *pv)
int __kmpc_atomic_val_4_cas_cpt(ident_t *loc, int gtid, int *x, int e, int d, int *pv)
bool __kmpc_atomic_bool_8_cas_cpt(ident_t *loc, int gtid, long long *x, long long e, long long d, long long *pv)
bool __kmpc_atomic_bool_2_cas_cpt(ident_t *loc, int gtid, short *x, short e, short d, short *pv)
bool __kmpc_atomic_bool_4_cas_cpt(ident_t *loc, int gtid, int *x, int e, int d, int *pv)
long long __kmpc_atomic_val_8_cas_cpt(ident_t *loc, int gtid, long long *x, long long e, long long d, long long *pv)
short __kmpc_atomic_val_2_cas_cpt(ident_t *loc, int gtid, short *x, short e, short d, short *pv)