1 /* { dg-do run { target lp64 } } */
2 /* { dg-require-effective-target vsx_hw } */
3 /* { dg-options "-O2 -mvsx" } */
7 #include "vsx-vector-6-func-cmp-all.h"
9 #define FLOAT_1ARG_CHECK(NAME) \
10 f_result = vec_##NAME (f_src); \
12 if (f_result != f_##NAME##_expected) \
16 printf("ERROR: vec_%s (float) expected value does not match\n", \
18 printf(" expected = %d; result = %d\n", \
19 f_##NAME##_expected, f_result); \
25 #define FLOAT_2ARG_CHECK(NAME) \
26 f_result = vec_##NAME (f_src_a, f_src_b); \
28 if (f_result != f_##NAME##_expected) \
32 printf("ERROR: vec_%s (float, float) expected value does not match\n", \
34 printf(" expected = %d; result = %d\n", \
35 f_##NAME##_expected, f_result); \
41 #define DOUBLE_1ARG_CHECK(NAME ) \
42 d_result = vec_##NAME (d_src); \
44 if (d_result != d_##NAME##_expected) \
48 printf("ERROR: vec_%s (double) expected value does not match\n", \
50 printf(" expected = %d; result = %d\n", \
51 d_##NAME##_expected, d_result); \
57 #define DOUBLE_2ARG_CHECK(NAME) \
58 d_result = vec_##NAME (d_src_a, d_src_b); \
60 if (d_result != d_##NAME##_expected) \
64 printf("ERROR: vec_%s (double, double) expected value does not match\n", \
66 printf(" expected = %d; result = %d\n", \
67 d_##NAME##_expected, d_result); \
75 vector
float f_src
= {126.0, 23.0, -338.0, 17.0};
76 vector
float f_src_a
= {126.0, 23.0, -338.0, 17.0};
77 vector
float f_src_b
= {2.00, 23.0, 1.0, 4.0};
79 bool f_all_eq_expected
= 0;
80 bool f_all_gt_expected
= 0;
81 bool f_all_ge_expected
= 0;
82 bool f_all_lt_expected
= 0;
83 bool f_all_le_expected
= 0;
84 bool f_all_nan_expected
= 0;
85 bool f_all_numeric_expected
= 1;
86 bool f_any_eq_expected
= 1;
87 bool f_any_gt_expected
= 1;
88 bool f_any_ge_expected
= 1;
89 bool f_any_lt_expected
= 1;
90 bool f_any_le_expected
= 1;
91 bool f_any_nan_expected
= 0;
92 bool f_any_numeric_expected
= 1;
94 vector
double d_src
= { 125.44, -338.56};
95 vector
double d_src_a
= { 125.44, -338.56};
96 vector
double d_src_b
= d_src_a
;
98 bool d_all_eq_expected
= 1;
99 bool d_all_gt_expected
= 0;
100 bool d_all_ge_expected
= 1;
101 bool d_all_lt_expected
= 0;
102 bool d_all_le_expected
= 1;
103 bool d_all_nan_expected
= 0;
104 bool d_all_numeric_expected
= 1;
105 bool d_any_eq_expected
= 1;
106 bool d_any_gt_expected
= 0;
107 bool d_any_ge_expected
= 1;
108 bool d_any_lt_expected
= 0;
109 bool d_any_le_expected
= 1;
110 bool d_any_nan_expected
= 0;
111 bool d_any_numeric_expected
= 1;
114 FLOAT_1ARG_CHECK (all_nan
)
115 FLOAT_1ARG_CHECK (all_numeric
)
116 FLOAT_1ARG_CHECK (any_nan
)
117 FLOAT_1ARG_CHECK (any_numeric
)
119 FLOAT_2ARG_CHECK (all_eq
)
120 FLOAT_2ARG_CHECK (all_gt
)
121 FLOAT_2ARG_CHECK (all_ge
)
122 FLOAT_2ARG_CHECK (all_lt
)
123 FLOAT_2ARG_CHECK (all_le
)
124 FLOAT_2ARG_CHECK (any_eq
)
125 FLOAT_2ARG_CHECK (any_gt
)
126 FLOAT_2ARG_CHECK (any_ge
)
127 FLOAT_2ARG_CHECK (any_lt
)
128 FLOAT_2ARG_CHECK (any_le
)
130 DOUBLE_1ARG_CHECK (all_nan
)
131 DOUBLE_1ARG_CHECK (all_numeric
)
132 DOUBLE_1ARG_CHECK (any_nan
)
133 DOUBLE_1ARG_CHECK (any_numeric
)
135 DOUBLE_2ARG_CHECK (all_eq
)
136 DOUBLE_2ARG_CHECK (all_gt
)
137 DOUBLE_2ARG_CHECK (all_ge
)
138 DOUBLE_2ARG_CHECK (all_lt
)
139 DOUBLE_2ARG_CHECK (all_le
)
140 DOUBLE_2ARG_CHECK (any_eq
)
141 DOUBLE_2ARG_CHECK (any_gt
)
142 DOUBLE_2ARG_CHECK (any_ge
)
143 DOUBLE_2ARG_CHECK (any_lt
)
144 DOUBLE_2ARG_CHECK (any_le
)