1  /* { dg-do run { target sse2_runtime } } */
       2  /* { dg-options "-O2 -msse2 -ftree-vectorize -fdump-tree-vect-details -save-temps" } */
       3  
       4  extern void abort ();
       5  
       6  #define N 1024
       7  float a[N] = {0.0f, -0.0f, 1.0f, -1.0f,
       8  	      -2.0f, 3.0f, -5.0f, -8.0f,
       9  	      13.0f, 21.0f, -25.0f, 33.0f};
      10  int r[N];
      11  
      12  int
      13  main (void)
      14  {
      15    int i;
      16  
      17    for (i = 0; i < N; i++)
      18      r[i] = __builtin_signbitf (a[i]);
      19  
      20    /* check results:  */
      21    for (i = 0; i < N; i++)
      22      if (__builtin_signbitf (a[i]) && !r[i])
      23        abort ();
      24  
      25    return 0;
      26  }
      27  
      28  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
      29  /* { dg-final { scan-assembler-not "\\$-2147483648" } } */
      30  /* { dg-final { scan-assembler "psrld" } } */