1/* PR target/44942 */ 2/* { dg-do run { target lp64 } } */ 3 4#include <stdarg.h> 5#include <emmintrin.h> 6 7void 8test1 (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 21void 22test2 (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 36int 37main () 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} 45