- Use nitems instead of handrolling the macro

- Use a separate variable for tracking the testcase count instead
  of hardcoding the offset for the testcases

MFC after: 3 days
Sponsored by: EMC / Isilon Storage Division
This commit is contained in:
Enji Cooper 2015-12-20 04:28:37 +00:00
parent efa7d27e13
commit 50190e4b5c
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=292492

View File

@ -31,6 +31,7 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <assert.h>
#include <fenv.h>
#include <float.h>
@ -473,44 +474,50 @@ int
main(int argc, char *argv[])
{
int rmodes[] = { FE_TONEAREST, FE_UPWARD, FE_DOWNWARD, FE_TOWARDZERO };
int i;
int i, j;
printf("1..19\n");
for (i = 0; i < 4; i++) {
for (i = 0; i < nitems(rmodes); i++, j++) {
printf("rmode = %d\n", rmodes[i]);
fesetround(rmodes[i]);
test_zeroes();
printf("ok %d - fma zeroes\n", i + 1);
}
for (i = 0; i < 4; i++) {
for (i = 0; i < nitems(rmodes); i++, j++) {
printf("rmode = %d\n", rmodes[i]);
fesetround(rmodes[i]);
test_infinities();
printf("ok %d - fma infinities\n", i + 5);
printf("ok %d - fma infinities\n", j);
}
fesetround(FE_TONEAREST);
test_nans();
printf("ok 9 - fma NaNs\n");
for (i = 0; i < 4; i++) {
for (i = 0; i < nitems(rmodes); i++, j++) {
printf("rmode = %d\n", rmodes[i]);
fesetround(rmodes[i]);
test_small_z();
printf("ok %d - fma small z\n", i + 10);
printf("ok %d - fma small z\n", j);
}
for (i = 0; i < 4; i++) {
for (i = 0; i < nitems(rmodes); i++, j++) {
printf("rmode = %d\n", rmodes[i]);
fesetround(rmodes[i]);
test_big_z();
printf("ok %d - fma big z\n", i + 14);
printf("ok %d - fma big z\n", j);
}
fesetround(FE_TONEAREST);
test_accuracy();
printf("ok 18 - fma accuracy\n");
printf("ok %d - fma accuracy\n", j);
j++;
test_double_rounding();
printf("ok 19 - fma double rounding\n");
printf("ok %d - fma double rounding\n", j);
j++;
/*
* TODO: