1  /* Check calling convention in the vector ABI.  */
       2  
       3  /* { dg-do compile { target { s390*-*-* } } } */
       4  /* { dg-options "-O3 -mzarch -march=z13" } */
       5  
       6  /* Make sure the last argument is fetched from the argument overflow area.  */
       7  /* { dg-final { scan-assembler "vl\t%v\[0-9\]*,160\\(%r15\\)" { target lp64 } } } */
       8  /* { dg-final { scan-assembler "vl\t%v\[0-9\]*,96\\(%r15\\)" { target ilp32 } } } */
       9  /* { dg-final { scan-assembler "gnu_attribute 8, 2" } } */
      10  
      11  typedef double v2df __attribute__((vector_size(16)));
      12  
      13  v2df
      14  add (v2df a, v2df b, v2df c, v2df d,
      15       v2df e, v2df f, v2df g, v2df h, v2df i)
      16  {
      17    return a + b + c + d + e + f + g + h + i;
      18  }