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