mirror of
https://github.com/autc04/Retro68.git
synced 2024-11-28 05:51:04 +00:00
38 lines
555 B
C
38 lines
555 B
C
/* { dg-do run } */
|
|
/* { dg-options "-O2 -mcx16" { target { { i?86-*-* x86_64-*-* } && lp64 } } } */
|
|
|
|
#ifdef __x86_64__
|
|
#include "cpuid.h"
|
|
#endif
|
|
|
|
double d = 1.5;
|
|
long double ld = 3;
|
|
extern void abort (void);
|
|
|
|
void
|
|
test (void)
|
|
{
|
|
#pragma omp atomic
|
|
d *= 1.25;
|
|
#pragma omp atomic
|
|
ld /= 0.75;
|
|
if (d != 1.875 || ld != 4.0L)
|
|
abort ();
|
|
}
|
|
|
|
int
|
|
main (void)
|
|
{
|
|
#ifdef __x86_64__
|
|
unsigned int eax, ebx, ecx, edx;
|
|
|
|
if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
|
|
return 0;
|
|
|
|
if (!(ecx & bit_CMPXCHG16B))
|
|
return 0;
|
|
#endif
|
|
test ();
|
|
return 0;
|
|
}
|