Mercurial > hg > CbC > CbC_gcc
view libgomp/testsuite/libgomp.c/atomic-1.c @ 0:a06113de4d67
first commit
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 17 Jul 2009 14:47:48 +0900 |
parents | |
children | 04ced10e8804 |
line wrap: on
line source
/* { dg-do run } */ /* { dg-options "-O2 -march=pentium" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */ #ifdef __i386__ #include "cpuid.h" #endif extern void abort (void); double d; struct { int i; double e; int j; } x; void f1 (void) { #pragma omp atomic d += 7.5; #pragma omp atomic d *= 2.5; #pragma omp atomic d /= 0.25; } void f2 (void) { #pragma omp atomic x.e += 7.5; #pragma omp atomic x.e *= 2.5; #pragma omp atomic x.e /= 0.25; } int main (void) { #ifdef __i386__ unsigned int eax, ebx, ecx, edx; if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx)) return 0; if (!(edx & bit_CMPXCHG8B)) return 0; #endif d = 1.0; f1 (); if (d != 85.0) abort (); x.e = 1.0; f2 (); if (x.i != 0 || x.e != 85.0 || x.j != 0) abort (); return 0; }