1  /* { dg-do compile } */
       2  /* { dg-options "-O3 -mzarch -march=z14 -mzvector" } */
       3  
       4  #include <vecintrin.h>
       5  
       6  __vector unsigned char q;
       7  __vector unsigned short int h;
       8  __vector unsigned int s;
       9  __vector unsigned long long d;
      10  
      11  int
      12  main ()
      13  {
      14    vec_msum_u128 (d, d, q, 5); /* { dg-error "constant argument 4 for builtin '__builtin_s390_vec_msum_u128' is invalid \\(0, 4, 8, 12\\)" } */
      15  
      16    /* Using the resolved low-level builtins here makes the errors to be
      17       triggered from s390_expand_builtin.  Otherwise they would come
      18       from the parser already preventing other errors from showing
      19       up.  */
      20    __builtin_s390_vrepb (q, 17); /* { dg-error "constant argument 2 for builtin '__builtin_s390_vrepb' is out of range \\(0-15\\)" } */
      21    __builtin_s390_vreph (h,  8); /* { dg-error "constant argument 2 for builtin '__builtin_s390_vreph' is out of range \\(0-7\\)" } */
      22    __builtin_s390_vrepf (s,  4); /* { dg-error "constant argument 2 for builtin '__builtin_s390_vrepf' is out of range \\(0-3\\)" } */
      23    __builtin_s390_vrepg (d,  2); /* { dg-error "constant argument 2 for builtin '__builtin_s390_vrepg' is out of range \\(0-1\\)" } */
      24  
      25    __builtin_s390_vpdi (d, d, 4); /* { dg-error "constant argument 3 for builtin '__builtin_s390_vpdi' is out of range \\(0-3\\)" } */
      26  }