URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.dg/] [atomic-load-5.c] - Rev 696
Go to most recent revision | Compare with Previous | Blame | View Log
/* Test __atomic routines for existence and proper execution on 16 byte values with each valid memory model. */ /* { dg-do run } */ /* { dg-require-effective-target sync_int_128_runtime } */ /* { dg-options "-mcx16" { target { i?86-*-* x86_64-*-* } } } */ extern void abort(void); __int128_t v, count; main () { v = 0; count = 0; if (__atomic_load_n (&v, __ATOMIC_RELAXED) != count++) abort(); else v++; if (__atomic_load_n (&v, __ATOMIC_ACQUIRE) != count++) abort(); else v++; if (__atomic_load_n (&v, __ATOMIC_CONSUME) != count++) abort(); else v++; if (__atomic_load_n (&v, __ATOMIC_SEQ_CST) != count++) abort(); else v++; /* Now test the generic variants. */ __atomic_load (&v, &count, __ATOMIC_RELAXED); if (count != v) abort(); else v++; __atomic_load (&v, &count, __ATOMIC_ACQUIRE); if (count != v) abort(); else v++; __atomic_load (&v, &count, __ATOMIC_CONSUME); if (count != v) abort(); else v++; __atomic_load (&v, &count, __ATOMIC_SEQ_CST); if (count != v) abort(); else v++; return 0; }
Go to most recent revision | Compare with Previous | Blame | View Log