1 /* The goal is to have both compile tests which verify the desired instruction
2 generation and to functionally test the builtins for correctness. This is
3 done in separate test files, vsx-vector-6-func-cmp-all.c and
4 vsx-vector-6-func-cmp-all-run.c. The vsx-vector-6-func-cmp-all.c test file
5 only generates the calls so the instruction counts do not include the counts
6 of the instructions generated as part of the result testing. The result
7 checking code differs for BE/LE. */
16 #define FLOAT_1ARG_TEST(NAME) \
17 bool __attribute__ ((noipa)) \
18 float_1arg_##NAME (vector float f_src, bool f_##NAME##_expected) \
20 return vec_##NAME (f_src); \
23 FLOAT_1ARG_TEST (all_nan
)
24 FLOAT_1ARG_TEST (all_numeric
)
25 FLOAT_1ARG_TEST (any_nan
)
26 FLOAT_1ARG_TEST (any_numeric
)
28 #define FLOAT_2ARG_TEST(NAME) \
29 bool __attribute__ ((noipa)) \
30 float_2arg_##NAME (vector float f_src_a, vector float f_src_b, \
31 bool f_##NAME##_expected) \
33 return vec_##NAME (f_src_a, f_src_b); \
36 FLOAT_2ARG_TEST (all_eq
)
37 FLOAT_2ARG_TEST (all_gt
)
38 FLOAT_2ARG_TEST (all_ge
)
39 FLOAT_2ARG_TEST (all_lt
)
40 FLOAT_2ARG_TEST (all_le
)
41 FLOAT_2ARG_TEST (any_eq
)
42 FLOAT_2ARG_TEST (any_gt
)
43 FLOAT_2ARG_TEST (any_ge
)
44 FLOAT_2ARG_TEST (any_lt
)
45 FLOAT_2ARG_TEST (any_le
)
47 #define DOUBLE_1ARG_TEST(NAME ) \
48 bool __attribute__ ((noipa)) \
49 double_1arg_##NAME (vector double d_src, bool d_##NAME##_expected) \
51 return vec_##NAME (d_src); \
54 DOUBLE_1ARG_TEST (all_nan
)
55 DOUBLE_1ARG_TEST (all_numeric
)
56 DOUBLE_1ARG_TEST (any_nan
)
57 DOUBLE_1ARG_TEST (any_numeric
)
59 #define DOUBLE_2ARG_TEST(NAME) \
60 bool __attribute__ ((noipa)) \
61 double_2arg_##NAME (vector double d_src_a, vector double d_src_b, \
62 bool d_##NAME##_expected) \
64 return vec_##NAME (d_src_a, d_src_b); \
67 DOUBLE_2ARG_TEST (all_eq
)
68 DOUBLE_2ARG_TEST (all_gt
)
69 DOUBLE_2ARG_TEST (all_ge
)
70 DOUBLE_2ARG_TEST (all_lt
)
71 DOUBLE_2ARG_TEST (all_le
)
72 DOUBLE_2ARG_TEST (any_eq
)
73 DOUBLE_2ARG_TEST (any_gt
)
74 DOUBLE_2ARG_TEST (any_ge
)
75 DOUBLE_2ARG_TEST (any_lt
)
76 DOUBLE_2ARG_TEST (any_le
)