1 /* { dg-do compile } */
2 /* { dg-options "-mmovdir64b -mmovdiri -O2" } */
3 /* { dg-final { scan-assembler-times "movdiri" 1 { target ia32 } } } */
4 /* { dg-final { scan-assembler-times "movdiri" 2 { target { ! ia32 } } } } */
5 /* { dg-final { scan-assembler "movdir64b\[ \\t\]" } } */
6 
7 #include <x86intrin.h>
8 
9 unsigned int w;
10 void *x;
11 unsigned long long q, *z;
12 
13 int
main()14 main ()
15 {
16 
17    unsigned int array[] = {1, 2, 3, 4, 5};
18    unsigned int *ap = &w;
19 
20    _directstoreu_u32(x, w);
21 
22 #ifdef __x86_64__
23    _directstoreu_u64(z, q);
24 #endif
25 
26    _movdir64b(ap, array);
27 
28 return 0;
29 }
30 
31