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