1  /* { dg-do run { target sse2_runtime } } */
       2  /* { dg-options "-O2 -msse2" } */
       3  
       4  #include "pr88828-8a.c"
       5  #include "pr88828-8b.c"
       6  
       7  extern void abort ();
       8  
       9  void
      10  do_check (__v4sf y, float f[4], float z)
      11  {
      12    int i;
      13  
      14    for (i = 0; i < 4; i++)
      15      if (i == 0)
      16        {
      17  	if (y[i] != z)
      18  	  abort ();
      19        }
      20      else
      21        {
      22  	if (y[i] != f[i])
      23  	  abort ();
      24        }
      25  }
      26  
      27  int
      28  main (void)
      29  {
      30    float f[4] = { -11, 2, 55553, -4 };
      31    float z = 11.4;
      32    __v4sf x = { f[0], f[1], f[2], f[3] };
      33    __v4sf y;
      34    int i;
      35  
      36    for (i = 0; i < 4; i++)
      37      if (x[i] != f[i])
      38        abort ();
      39  
      40    y = foo1 (x);
      41    do_check (y, f, z);
      42    y = foo2 (x);
      43    do_check (y, f, z);
      44  
      45    return 0;
      46  }