177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#include <stdint.h>
277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#include <stdio.h>
377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaolong double __floatditf(int64_t);
577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#include "floatunditf_test.h"
777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#include "DD.h"
877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaoint main(int argc, char *argv[]) {
1077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao	int i;
1177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
1277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao	DD expected;
1377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao	DD computed;
1477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
1577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao	for (i=0; i<numTests; ++i) {
1677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao		expected.hi = tests[i].hi;
1777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao		expected.lo = tests[i].lo;
1877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao		computed.ld = __floatditf(tests[i].input);
1977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
2077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao		if ((computed.hi != expected.hi) || (computed.lo != expected.lo))
2177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao		{
2277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao			printf("Error on __floatunditf( 0x%016llx ):\n", tests[i].input);
2377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao			printf("\tExpected %La = ( %a , %a )\n", expected.ld, expected.hi, expected.lo);
2477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao			printf("\tComputed %La = ( %a , %a )\n", computed.ld, computed.hi, computed.lo);
2577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao			return 1;
2677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao		}
2777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao	}
2877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
2977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao	return 0;
3077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao}
31