1 /* { dg-do compile { target { s390*-*-* } } } */
2 /* { dg-options "-O3 -mzarch -march=z13 --save-temps" } */
3 
4 typedef __attribute__((vector_size(16))) double v2df;
5 
6 v2df
adddbl(v2df a,v2df b)7 adddbl (v2df a, v2df b)
8 {
9   return a + b;
10 }
11 /* { dg-final { scan-assembler-times "vfadb" 1 } } */
12 
13 v2df
subdbl(v2df a,v2df b)14 subdbl (v2df a, v2df b)
15 {
16   return a - b;
17 }
18 /* { dg-final { scan-assembler-times "vfsdb" 1 } } */
19 
20 v2df
muldbl(v2df a,v2df b)21 muldbl (v2df a, v2df b)
22 {
23   return a * b;
24 }
25 /* { dg-final { scan-assembler-times "vfmdb" 1 } } */
26 
27 v2df
divdbl(v2df a,v2df b)28 divdbl (v2df a, v2df b)
29 {
30   return a / b;
31 }
32 /* { dg-final { scan-assembler-times "vfd" 1 } } */
33 
34 v2df
fmadbl(v2df a,v2df b,v2df c)35 fmadbl (v2df a, v2df b, v2df c)
36 {
37   return a * b + c;
38 }
39 /* { dg-final { scan-assembler-times "vfma" 1 } } */
40 
41 v2df
fmsdbl(v2df a,v2df b,v2df c)42 fmsdbl (v2df a, v2df b, v2df c)
43 {
44   return a * b - c;
45 }
46 /* { dg-final { scan-assembler-times "vfms" 1 } } */
47 
48