(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
pr44942.c
       1  /* PR target/44942 */
       2  /* { dg-do run { target { ! ia32 } } } */
       3  
       4  #include <stdarg.h>
       5  #include <emmintrin.h>
       6  
       7  void
       8  test1 (double a, double b, double c, double d, double e, double f,
       9         double g, __m128d h, ...)
      10  {
      11    double i;
      12    va_list ap;
      13  
      14    va_start (ap, h);
      15    i = va_arg (ap, double);
      16    if (i != 1234.0)
      17      __builtin_abort ();
      18    va_end (ap);
      19  }
      20  
      21  void
      22  test2 (double a, double b, double c, double d, double e, double f, double g,
      23         __m128d h, double i, __m128d j, double k, __m128d l,
      24         double m, __m128d n, ...)
      25  {
      26    double o;
      27    va_list ap;
      28  
      29    va_start (ap, n);
      30    o = va_arg (ap, double);
      31    if (o != 1234.0)
      32      __builtin_abort ();
      33    va_end (ap);
      34  }
      35  
      36  int
      37  main ()
      38  {
      39    __m128d m = _mm_set1_pd (7.0);
      40    test1 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, m, 1234.0);
      41    test2 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, m, 0.0, m,
      42  	 0.0, m, 0.0, m, 1234.0);
      43    return 0;
      44  }