(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
powerpc/
ppc-target-2.c
       1  /* { dg-do compile { target { powerpc*-*-* } } } */
       2  /* { dg-skip-if "" { powerpc*-*-darwin* } } */
       3  /* { dg-require-effective-target powerpc_vsx_ok } */
       4  /* { dg-options "-O2 -ffast-math -mdejagnu-cpu=power5 -mabi=altivec" } */
       5  /* { dg-final { scan-assembler-times "fabs" 3 } } */
       6  /* { dg-final { scan-assembler-times "fnabs" 3 } } */
       7  /* { dg-final { scan-assembler-times "fsel" 3 } } */
       8  /* { dg-final { scan-assembler-times "fcpsgn\|xscpsgndp" 4 } } */
       9  
      10  /* fabs/fnabs/fsel */
      11  double normal1 (double a, double b) { return __builtin_copysign (a, b); }
      12  
      13  #pragma GCC push_options
      14  #pragma GCC target ("cpu=power5")
      15  /* fabs/fnabs/fsel */
      16  double power5 (double a, double b) { return __builtin_copysign (a, b); }
      17  #pragma GCC pop_options
      18  
      19  #pragma GCC target ("cpu=power6")
      20  /* fcpsgn */
      21  double power6 (double a, double b) { return __builtin_copysign (a, b); }
      22  #pragma GCC reset_options
      23  
      24  #pragma GCC target ("cpu=power6x")
      25  /* fcpsgn */
      26  double power6x (double a, double b) { return __builtin_copysign (a, b); }
      27  #pragma GCC reset_options
      28  
      29  #pragma GCC target ("cpu=power7")
      30  /* xscpsgndp */
      31  double power7 (double a, double b) { return __builtin_copysign (a, b); }
      32  #pragma GCC reset_options
      33  
      34  #pragma GCC target ("cpu=power7,no-vsx")
      35  /* fcpsgn */
      36  double power7n (double a, double b) { return __builtin_copysign (a, b); }
      37  #pragma GCC reset_options
      38  
      39  /* fabs/fnabs/fsel */
      40  double normal2 (double a, double b) { return __builtin_copysign (a, b); }