(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
sse-recip-vec.c
       1  /* { dg-do run } */
       2  /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse -mfpmath=sse -mrecip" } */
       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 sqrtf (float);
      16  extern float fabsf (float);
      17  
      18  #define N 8
      19  
      20  float a[N] = { 0.f, 18.f, 108.f, 324.f, 720.f, 1944.f, 3087.f, 5832.f };
      21  float b[N] = { 1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f };
      22  float r[N];
      23  
      24  float rc[N] = { 0.f, 3.f, 6.f, 9.f, 12.f, 18.f, 21.f, 27.f };
      25  
      26  static void
      27  TEST (void)
      28  {
      29    int i;
      30  
      31    for (i = 0; i < N; i++)
      32      {
      33        r[i] = sqrtf (a[i] / b[i]);
      34      }
      35  
      36    /* check results:  */
      37    for (i = 0; i < N; i++)
      38      {
      39        if (fabsf (r[i] - rc[i]) > 0.0001)
      40  	abort();
      41      }   
      42  }