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
      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  }