1  /* { dg-do compile } */
       2  /* { dg-options "-O2" } */
       3  
       4  #define TEST_SET(MODE, CEXT)						\
       5  MODE test1##CEXT(MODE a) { return -a; }					\
       6  MODE test2##CEXT(MODE a) { return __builtin_fabs##CEXT(a); }		\
       7  MODE test3##CEXT(MODE a) { return __builtin_copysign##CEXT(a, 0.0); }	\
       8  MODE test4##CEXT(MODE a) { return __builtin_copysign##CEXT(a, -1.0); }	\
       9  MODE test5##CEXT(MODE a, MODE b) { return __builtin_copysign##CEXT(a, b); }
      10  
      11  TEST_SET (float, f)
      12  TEST_SET (double, )
      13  TEST_SET (long double, l)
      14  TEST_SET (__float128, q)