(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
sse-copysignf-vec.c
       1  /* { dg-do run } */
       2  /* { dg-options "-O2 -ftree-vectorize -msse" } */
       3  /* { dg-require-effective-target sse } */
       4  
       5  #ifndef CHECK_H
       6  #define CHECK_H "sse-check.h"
       7  #endif
       8  
       9  #ifndef TEST
      10  #define TEST sse_test
      11  #endif
      12  
      13  #include CHECK_H
      14  
      15  extern float copysignf (float, float);
      16  
      17  #define N 16
      18  
      19  float a[N] = {-0.1f,-3.2f,-6.3f,-9.4f,-12.5f,-15.6f,-18.7f,-21.8f,24.9f,27.1f,30.2f,33.3f,36.4f,39.5f,42.6f,45.7f};
      20  float b[N] = {-1.2f,3.4f,-5.6f,7.8f,-9.0f,1.0f,-2.0f,3.0f,-4.0f,-5.0f,6.0f,7.0f,-8.0f,-9.0f,10.0f,11.0f};
      21  float r[N];
      22  
      23  static void
      24  TEST (void)
      25  {  
      26    int i;
      27  
      28    for (i = 0; i < N; i++)
      29      r[i] = copysignf (a[i], b[i]);
      30  
      31    /* check results:  */
      32    for (i = 0; i < N; i++)
      33      if (r[i] != copysignf (a[i], b[i]))
      34        abort ();
      35  }
      36