1 /* { dg-do compile { target { ! ia32 } } } */
2 /* { dg-options "-Ofast -mavx512vl -mavx512dq" } */
7 register float a
__asm ("xmm16");
9 asm volatile ("" : "+v" (a
));
10 a
= __builtin_fabsf (a
);
11 asm volatile ("" : "+v" (a
));
17 register float a
__asm ("xmm16"), b
__asm ("xmm17");
20 asm volatile ("" : "+v" (a
), "+v" (b
));
21 a
= __builtin_copysignf (a
, b
);
22 asm volatile ("" : "+v" (a
));
28 register float a
__asm ("xmm16");
30 asm volatile ("" : "+v" (a
));
32 asm volatile ("" : "+v" (a
));
38 register double a
__asm ("xmm18");
40 asm volatile ("" : "+v" (a
));
41 a
= __builtin_fabs (a
);
42 asm volatile ("" : "+v" (a
));
46 f5 (double x
, double y
)
48 register double a
__asm ("xmm18"), b
__asm ("xmm19");
51 asm volatile ("" : "+v" (a
), "+v" (b
));
52 a
= __builtin_copysign (a
, b
);
53 asm volatile ("" : "+v" (a
));
59 register double a
__asm ("xmm18");
61 asm volatile ("" : "+v" (a
));
63 asm volatile ("" : "+v" (a
));
66 /* { dg-final { scan-assembler "vandps\[^\n\r\]*xmm16" } } */
67 /* { dg-final { scan-assembler "vorps\[^\n\r\]*xmm16" } } */
68 /* { dg-final { scan-assembler "vxorps\[^\n\r\]*xmm16" } } */
69 /* { dg-final { scan-assembler "vandpd\[^\n\r\]*xmm18" } } */
70 /* { dg-final { scan-assembler "vorpd\[^\n\r\]*xmm18" } } */
71 /* { dg-final { scan-assembler "vxorpd\[^\n\r\]*xmm18" } } */