1 /* { dg-do compile } */
2 /* { dg-options "-O1 -fdump-tree-optimized" } */
3 /* PR tree-optimization/109829 */
5 float abs_f(float x
) { return __builtin_signbit(x
) ? -x
: x
; }
6 double abs_d(double x
) { return __builtin_signbit(x
) ? -x
: x
; }
7 long double abs_ld(long double x
) { return __builtin_signbit(x
) ? -x
: x
; }
10 /* __builtin_signbit(x) ? -x : x. Should be convert into ABS_EXP<x> */
11 /* { dg-final { scan-tree-dump-not "signbit" "optimized"} } */
12 /* { dg-final { scan-tree-dump-not "= -" "optimized"} } */
13 /* { dg-final { scan-tree-dump-times "= ABS_EXPR" 3 "optimized"} } */