cs csg cds cdsg cu21 cu21_1 cu24 cu24_1 cu42 cu12 cu12_1 \
ex_sig ex_clone cu14 cu14_1 cu41 fpconv ecag fpext_warn \
bfp-tdc rounding-1 rounding-2 rounding-3 bfp-arith \
- bfp-2 bfp-3 bfp-4 srnm srnmb comp-1 comp-2 exrl tmll tm stmg \
+ bfp-2 bfp-3 bfp-compare srnm srnmb comp-1 comp-2 exrl tmll tm stmg \
ex clst mvc test_fork test_sig rounding-6 rxsbg popcnt \
high-word traps \
spechelper-alr spechelper-algr \
+// FIXME rename bfp-compare.c
+
#include <stdio.h>
+#include <math.h>
+#include <assert.h>
static const char *const cmp_result_str[] = {
"==", "<", ">", "??"
int main(void)
{
- float inf = 1.f / 0.;
- float neg_inf = -1.f / 0.;
+ assert(sizeof(long double) == 16);
do_compare(3.14f, 3.14f);
do_compare(-2.78f, 2.78f);
- do_compare(inf, inf);
- do_compare(inf, neg_inf);
- do_compare(neg_inf, neg_inf);
- do_compare(inf, 1.f);
- do_compare(neg_inf, -1.f);
- do_compare(1.f / inf, -1.f / inf);
+ do_compare( INFINITY, INFINITY);
+ do_compare( INFINITY, -INFINITY);
+ do_compare(-INFINITY, -INFINITY);
+ do_compare(-INFINITY, INFINITY);
+ do_compare( INFINITY, 1.f);
+ do_compare(-INFINITY, -1.f);
+ do_compare( 1.f, INFINITY);
+ do_compare(-1.f, -INFINITY);
+
+ do_compare( NAN, NAN);
+ do_compare( NAN, -NAN);
+ do_compare(-NAN, NAN);
+ do_compare(-NAN, -NAN);
+ do_compare( NAN, INFINITY);
+ do_compare( NAN, -INFINITY);
+ do_compare(-NAN, INFINITY);
+ do_compare(-NAN, -INFINITY);
+ do_compare( NAN, 1.5);
+ do_compare(-NAN, -1.5);
+ do_compare( 1.5, NAN);
+ do_compare(-1.5, -NAN);
+ do_compare(1.f / INFINITY, -1.f / INFINITY);
return 0;
}