(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
signbitv4sf.c
       1  /* { dg-do run } */
       2  /* { dg-additional-options "-O3 --save-temps" } */
       3  
       4  extern void abort ();
       5  
       6  #define N 1024
       7  float in[N] = {1.0, -1.0, -2.0, 3.0, -5.0, -8.0, 13.0, 21.0};
       8  int out[N];
       9  
      10  void
      11  foo ()
      12  {
      13    int i;
      14    for (i = 0; i < N; i++)
      15      out[i] = __builtin_signbit (in[i]);
      16  }
      17  
      18  /* { dg-final { scan-assembler-not {-2147483648} } } */
      19  /* { dg-final { scan-assembler {\tushr\tv[0-9]+.4s, v[0-9]+.4s, 31} } } */
      20  
      21  int
      22  main ()
      23  {
      24    int i;
      25  
      26    foo ();
      27  
      28    for (i = 0; i < N; i++)
      29    {
      30      if (in[i] >= 0.0 && out[i])
      31        abort ();
      32      if (in[i] < 0.0 && !out[i])
      33        abort ();
      34    }
      35  
      36    return 0;
      37  }
      38