URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.dg/] [atomic-load-4.c] - Rev 708
Go to most recent revision | Compare with Previous | Blame | View Log
/* Test __atomic routines for existence and proper execution on 8 byte values with each valid memory model. */ /* { dg-do run } */ /* { dg-require-effective-target sync_long_long_runtime } */ /* { dg-options "" } */ /* { dg-options "-march=pentium" { target { { i?86-*-* x86_64-*-* } && ia32 } } } */ extern void abort(void); long long 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