1 /* { dg-do run { target { movdir && { ! ia32 } } } } */
2 /* { dg-options "-mmovdiri -O2" } */
3 
4 #include <x86intrin.h>
5 #include <cpuid.h>
6 
7 unsigned long long int dest = -1LL;
8 
9 int
main()10 main ()
11 {
12   unsigned int eax, ebx, ecx, edx;
13 
14   if (!__get_cpuid_count (7, 0, &eax, &ebx, &ecx, &edx))
15     return 0;
16 
17   if ((ecx & bit_MOVDIRI) == 0)
18     return 0;
19 
20   _directstoreu_u64 (&dest, 0x12345678badbeef);
21 
22   if (dest != 0x12345678badbeef)
23     abort ();
24 
25   return 0;
26 }
27