1  /* PR target/95046 */
       2  /* { dg-do compile { target { ! ia32 } } } */
       3  /* { dg-options "-O3 -msse2" } */
       4  
       5  
       6  float r[2], a[2];
       7  
       8  float fabsf (float);
       9  
      10  void
      11  test_abs (void)
      12  {
      13    for (int i = 0; i < 2; i++)
      14      r[i] = fabsf (a[i]);
      15  }
      16  
      17  /* { dg-final { scan-assembler "\tv?andps" } } */
      18  
      19  void
      20  test_neg (void)
      21  {
      22    for (int i = 0; i < 2; i++)
      23      r[i] = -a[i];
      24  }
      25  
      26  /* { dg-final { scan-assembler "\tv?xorps" } } */
      27  
      28  void
      29  test_nabs (void)
      30  {
      31    for (int i = 0; i < 2; i++)
      32      r[i] = -fabsf (a[i]);
      33  }
      34  
      35  /* { dg-final { scan-assembler "\tv?orps" } } */