2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / gcc.dg / ppc-fsel-2.c
blob9768b165c245a6d9ed2f349b9f81979fee9bfcc8
1 /* { dg-do compile { target powerpc*-*-* } } */
2 /* { dg-options "-O -mpowerpc-gfxopt -g0 -ffinite-math-only" } */
3 /* { dg-final { scan-assembler-not "^L" } } */
5 /* Every single one of these should be compiled into straight-line
6 code using fsel (or, in a few cases, hardwired to 'true' or
7 'false'), no branches anywhere. */
9 double
10 test_isunordered(double x, double y, double a, double b)
12 return __builtin_isunordered(x, y) ? a : b;
15 double
16 test_not_isunordered(double x, double y, double a, double b)
18 return !__builtin_isunordered(x, y) ? a : b;
21 double
22 test_isless(double x, double y, double a, double b)
24 return __builtin_isless(x, y) ? a : b;
27 double
28 test_not_isless(double x, double y, double a, double b)
30 return !__builtin_isless(x, y) ? a : b;
33 double
34 test_islessequal(double x, double y, double a, double b)
36 return __builtin_islessequal(x, y) ? a : b;
39 double
40 test_not_islessequal(double x, double y, double a, double b)
42 return !__builtin_islessequal(x, y) ? a : b;
45 double
46 test_isgreater(double x, double y, double a, double b)
48 return __builtin_isgreater(x, y) ? a : b;
51 double
52 test_not_isgreater(double x, double y, double a, double b)
54 return !__builtin_isgreater(x, y) ? a : b;
57 double
58 test_isgreaterequal(double x, double y, double a, double b)
60 return __builtin_isgreaterequal(x, y) ? a : b;
63 double
64 test_not_isgreaterequal(double x, double y, double a, double b)
66 return !__builtin_isgreaterequal(x, y) ? a : b;
69 double
70 test_islessgreater(double x, double y, double a, double b)
72 return __builtin_islessgreater(x, y) ? a : b;
75 double
76 test_not_islessgreater(double x, double y, double a, double b)
78 return !__builtin_islessgreater(x, y) ? a : b;