1 /* { dg-do assemble { target { avx512f && { ! ia32 } } } } */
2 /* { dg-options "-O2 -mavx512f -mfpmath=387,sse" } */
3 
4 void
f1(double * p)5 f1 (double *p)
6 {
7   register float x __asm ("xmm16");
8   x = *p;
9   __asm volatile ("" : "+v" (x));
10 }
11 
12 void
f2(void)13 f2 (void)
14 {
15   double d;
16   register float x __asm ("xmm16");
17   __asm volatile ("" : "=t" (d));
18   x = d;
19   __asm volatile ("" : "+v" (x));
20 }
21 
22 void
f3(long double * p)23 f3 (long double *p)
24 {
25   register float x __asm ("xmm16");
26   x = *p;
27   __asm volatile ("" : "+v" (x));
28 }
29 
30 void
f4(void)31 f4 (void)
32 {
33   long double d;
34   register float x __asm ("xmm16");
35   __asm volatile ("" : "=t" (d));
36   x = d;
37   __asm volatile ("" : "+v" (x));
38 }
39