#include #include #include "sse4_1-check.h" #define DIM(a) (sizeof (a) / sizeof (a)[0]) static int modes[] = { FE_TONEAREST, FE_UPWARD, FE_DOWNWARD, FE_TOWARDZERO }; static void TEST (void) { int i, j, ri, round_save; round_save = fegetround (); for (ri = 0; ri < DIM (modes); ri++) { fesetround (modes[ri]); for (i = 0; i < DIM (data); i++) { union value guess; guess.x = ROUND_INTRIN (data[i].value.x, /* Ignored. */); for (j = 0; j < DIM (data[i].value.f); j++) { if (guess.f[j] != data[i].answer[j]) abort (); } } } fesetround (round_save); }