/* PR middle-end/36106 *//* { dg-options "-O2" } *//* { dg-options "-O2 -mcx16" { target { { i?86-*-* x86_64-*-* } && lp64 } } } */#ifdef __x86_64__# include "../../../gcc/config/i386/cpuid.h"#endifextern void abort (void);int __attribute__((noinline))do_test (void){long double d = .0L;int i;#pragma omp parallel for shared (d)for (i = 0; i < 10; i++)#pragma omp atomicd += 1.0L;if (d != 10.0L)abort ();return 0;}intmain (void){#ifdef __x86_64__unsigned int eax, ebx, ecx, edx;if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))return 0;if (ecx & bit_CMPXCHG16B)do_test ();#elsedo_test ();#endifreturn 0;}