1 /* Check calling convention in the vector ABI. Smaller vector need to
2 be placed left-justified in the stack slot. */
3
4 /* { dg-do compile { target { s390*-*-* } } } */
5 /* { dg-options "-O3 -mzarch -march=z13" } */
6
7 /* { dg-final { scan-assembler-times "lde\t%.*,160\\\(%r15\\\)" 1 { target lp64 } } } */
8 /* { dg-final { scan-assembler-times "lde\t%.*,168\\\(%r15\\\)" 1 { target lp64 } } } */
9 /* { dg-final { scan-assembler-times "lde\t%.*,96\\\(%r15\\\)" 1 { target { ! lp64 } } } } */
10 /* { dg-final { scan-assembler-times "lde\t%.*,100\\\(%r15\\\)" 1 { target { ! lp64 } } } } */
11
12 typedef char __attribute__((vector_size(4))) v4qi;
13
14 v4qi
foo(v4qi a,v4qi b,v4qi c,v4qi d,v4qi e,v4qi f,v4qi g,v4qi h,v4qi i,v4qi j)15 foo (v4qi a, v4qi b, v4qi c, v4qi d, v4qi e,
16 v4qi f, v4qi g, v4qi h, v4qi i, v4qi j)
17 {
18 return (a + b + c + d + e + f + g + h + i + j);
19 }
20