1 /* Check calling convention in the vector ABI for single element vectors.  */
2 
3 /* { dg-do compile { target { s390*-*-* } } } */
4 /* { dg-options "-O3 -mzarch -march=z13" } */
5 
6 /* { dg-final { scan-assembler-times "vlr\t%v24,%v26" 7 } } */
7 
8 typedef int  __attribute__((vector_size(16))) v4si;
9 
10 typedef char __attribute__((vector_size(1))) v1qi;
11 typedef short int __attribute__((vector_size(2))) v1hi;
12 typedef int __attribute__((vector_size(4))) v1si;
13 typedef long long __attribute__((vector_size(8))) v1di;
14 typedef float __attribute__((vector_size(4))) v1sf;
15 typedef double __attribute__((vector_size(8))) v1df;
16 typedef long double __attribute__((vector_size(16))) v1tf;
17 
foo1(v4si a,v1qi b)18 v1qi foo1 (v4si a, v1qi b) { return b; }
foo2(v4si a,v1hi b)19 v1hi foo2 (v4si a, v1hi b) { return b; }
foo3(v4si a,v1si b)20 v1si foo3 (v4si a, v1si b) { return b; }
foo4(v4si a,v1di b)21 v1di foo4 (v4si a, v1di b) { return b; }
foo5(v4si a,v1sf b)22 v1sf foo5 (v4si a, v1sf b) { return b; }
foo6(v4si a,v1df b)23 v1df foo6 (v4si a, v1df b) { return b; }
foo7(v4si a,v1tf b)24 v1tf foo7 (v4si a, v1tf b) { return b; }
25