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
8typedef int  __attribute__((vector_size(16))) v4si;
9
10typedef char __attribute__((vector_size(1))) v1qi;
11typedef short int __attribute__((vector_size(2))) v1hi;
12typedef int __attribute__((vector_size(4))) v1si;
13typedef long long __attribute__((vector_size(8))) v1di;
14typedef float __attribute__((vector_size(4))) v1sf;
15typedef double __attribute__((vector_size(8))) v1df;
16typedef long double __attribute__((vector_size(16))) v1tf;
17
18v1qi foo1 (v4si a, v1qi b) { return b; }
19v1hi foo2 (v4si a, v1hi b) { return b; }
20v1si foo3 (v4si a, v1si b) { return b; }
21v1di foo4 (v4si a, v1di b) { return b; }
22v1sf foo5 (v4si a, v1sf b) { return b; }
23v1df foo6 (v4si a, v1df b) { return b; }
24v1tf foo7 (v4si a, v1tf b) { return b; }
25