diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-12-02 17:01:08 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-12-02 17:01:08 +0100 |
| commit | e561196f440eb4987ca643576477e496cc51e222 (patch) | |
| tree | 548d9b4da508f3576af4a04ff61747f5eab4c122 | |
| parent | 14bd1368cc34dc2b6d2c722fe6fa3e66c2566f67 (diff) | |
| download | box64-e561196f440eb4987ca643576477e496cc51e222.tar.gz box64-e561196f440eb4987ca643576477e496cc51e222.zip | |
Improved test16
| -rw-r--r-- | tests/ref16.txt | 126 | ||||
| -rwxr-xr-x | tests/test16 | bin | 29624 -> 30912 bytes | |||
| -rw-r--r-- | tests/test16.c | 76 |
3 files changed, 134 insertions, 68 deletions
diff --git a/tests/ref16.txt b/tests/ref16.txt index 7fac500d..90a64d4d 100644 --- a/tests/ref16.txt +++ b/tests/ref16.txt @@ -1,24 +1,130 @@ +ucomiss 1.000000, 1.000000 => 0x242 ucomiss 1.000000, 2.000000 => 0x202 -ucomiss 2.000000, 1.000000 => 0x203 +ucomiss 1.000000, 0.000000 => 0x203 +ucomiss 1.000000, -0.000000 => 0x203 +ucomiss 1.000000, -1.000000 => 0x203 ucomiss 1.000000, inf => 0x202 -ucomiss inf, 1.000000 => 0x203 ucomiss 1.000000, -inf => 0x203 -ucomiss -inf, 1.000000 => 0x202 ucomiss 1.000000, nan => 0x247 -ucomiss nan, 1.000000 => 0x247 -ucomiss 1.000000, 1.000000 => 0x242 +ucomiss 2.000000, 1.000000 => 0x203 +ucomiss 2.000000, 2.000000 => 0x242 +ucomiss 2.000000, 0.000000 => 0x203 +ucomiss 2.000000, -0.000000 => 0x203 +ucomiss 2.000000, -1.000000 => 0x203 +ucomiss 2.000000, inf => 0x202 +ucomiss 2.000000, -inf => 0x203 +ucomiss 2.000000, nan => 0x247 +ucomiss 0.000000, 1.000000 => 0x202 +ucomiss 0.000000, 2.000000 => 0x202 +ucomiss 0.000000, 0.000000 => 0x242 +ucomiss 0.000000, -0.000000 => 0x242 +ucomiss 0.000000, -1.000000 => 0x203 +ucomiss 0.000000, inf => 0x202 +ucomiss 0.000000, -inf => 0x203 +ucomiss 0.000000, nan => 0x247 +ucomiss -0.000000, 1.000000 => 0x202 +ucomiss -0.000000, 2.000000 => 0x202 +ucomiss -0.000000, 0.000000 => 0x242 +ucomiss -0.000000, -0.000000 => 0x242 +ucomiss -0.000000, -1.000000 => 0x203 +ucomiss -0.000000, inf => 0x202 +ucomiss -0.000000, -inf => 0x203 +ucomiss -0.000000, nan => 0x247 +ucomiss -1.000000, 1.000000 => 0x202 +ucomiss -1.000000, 2.000000 => 0x202 +ucomiss -1.000000, 0.000000 => 0x202 +ucomiss -1.000000, -0.000000 => 0x202 +ucomiss -1.000000, -1.000000 => 0x242 +ucomiss -1.000000, inf => 0x202 +ucomiss -1.000000, -inf => 0x203 +ucomiss -1.000000, nan => 0x247 +ucomiss inf, 1.000000 => 0x203 +ucomiss inf, 2.000000 => 0x203 +ucomiss inf, 0.000000 => 0x203 +ucomiss inf, -0.000000 => 0x203 +ucomiss inf, -1.000000 => 0x203 ucomiss inf, inf => 0x242 +ucomiss inf, -inf => 0x203 +ucomiss inf, nan => 0x247 +ucomiss -inf, 1.000000 => 0x202 +ucomiss -inf, 2.000000 => 0x202 +ucomiss -inf, 0.000000 => 0x202 +ucomiss -inf, -0.000000 => 0x202 +ucomiss -inf, -1.000000 => 0x202 +ucomiss -inf, inf => 0x202 +ucomiss -inf, -inf => 0x242 +ucomiss -inf, nan => 0x247 +ucomiss nan, 1.000000 => 0x247 +ucomiss nan, 2.000000 => 0x247 +ucomiss nan, 0.000000 => 0x247 +ucomiss nan, -0.000000 => 0x247 +ucomiss nan, -1.000000 => 0x247 +ucomiss nan, inf => 0x247 +ucomiss nan, -inf => 0x247 ucomiss nan, nan => 0x247 +ucomisd 1.000000, 1.000000 => 0x242 ucomisd 1.000000, 2.000000 => 0x202 -ucomisd 2.000000, 1.000000 => 0x203 +ucomisd 1.000000, 0.000000 => 0x203 +ucomisd 1.000000, -0.000000 => 0x203 +ucomisd 1.000000, -1.000000 => 0x203 ucomisd 1.000000, inf => 0x202 -ucomisd inf, 1.000000 => 0x203 ucomisd 1.000000, -inf => 0x203 -ucomisd -inf, 1.000000 => 0x202 ucomisd 1.000000, nan => 0x247 -ucomisd nan, 1.000000 => 0x247 -ucomisd 1.000000, 1.000000 => 0x242 +ucomisd 2.000000, 1.000000 => 0x203 +ucomisd 2.000000, 2.000000 => 0x242 +ucomisd 2.000000, 0.000000 => 0x203 +ucomisd 2.000000, -0.000000 => 0x203 +ucomisd 2.000000, -1.000000 => 0x203 +ucomisd 2.000000, inf => 0x202 +ucomisd 2.000000, -inf => 0x203 +ucomisd 2.000000, nan => 0x247 +ucomisd 0.000000, 1.000000 => 0x202 +ucomisd 0.000000, 2.000000 => 0x202 +ucomisd 0.000000, 0.000000 => 0x242 +ucomisd 0.000000, -0.000000 => 0x242 +ucomisd 0.000000, -1.000000 => 0x203 +ucomisd 0.000000, inf => 0x202 +ucomisd 0.000000, -inf => 0x203 +ucomisd 0.000000, nan => 0x247 +ucomisd -0.000000, 1.000000 => 0x202 +ucomisd -0.000000, 2.000000 => 0x202 +ucomisd -0.000000, 0.000000 => 0x242 +ucomisd -0.000000, -0.000000 => 0x242 +ucomisd -0.000000, -1.000000 => 0x203 +ucomisd -0.000000, inf => 0x202 +ucomisd -0.000000, -inf => 0x203 +ucomisd -0.000000, nan => 0x247 +ucomisd -1.000000, 1.000000 => 0x202 +ucomisd -1.000000, 2.000000 => 0x202 +ucomisd -1.000000, 0.000000 => 0x202 +ucomisd -1.000000, -0.000000 => 0x202 +ucomisd -1.000000, -1.000000 => 0x242 +ucomisd -1.000000, inf => 0x202 +ucomisd -1.000000, -inf => 0x203 +ucomisd -1.000000, nan => 0x247 +ucomisd inf, 1.000000 => 0x203 +ucomisd inf, 2.000000 => 0x203 +ucomisd inf, 0.000000 => 0x203 +ucomisd inf, -0.000000 => 0x203 +ucomisd inf, -1.000000 => 0x203 ucomisd inf, inf => 0x242 +ucomisd inf, -inf => 0x203 +ucomisd inf, nan => 0x247 +ucomisd -inf, 1.000000 => 0x202 +ucomisd -inf, 2.000000 => 0x202 +ucomisd -inf, 0.000000 => 0x202 +ucomisd -inf, -0.000000 => 0x202 +ucomisd -inf, -1.000000 => 0x202 +ucomisd -inf, inf => 0x202 +ucomisd -inf, -inf => 0x242 +ucomisd -inf, nan => 0x247 +ucomisd nan, 1.000000 => 0x247 +ucomisd nan, 2.000000 => 0x247 +ucomisd nan, 0.000000 => 0x247 +ucomisd nan, -0.000000 => 0x247 +ucomisd nan, -1.000000 => 0x247 +ucomisd nan, inf => 0x247 +ucomisd nan, -inf => 0x247 ucomisd nan, nan => 0x247 cmpsd 1.000000, 2.000000, 0 => 0x0 cmpsd 2.000000, 1.000000, 0 => 0x0 diff --git a/tests/test16 b/tests/test16 index 00a31211..9464cf9b 100755 --- a/tests/test16 +++ b/tests/test16 Binary files differdiff --git a/tests/test16.c b/tests/test16.c index 95bad2fc..edfc0a9a 100644 --- a/tests/test16.c +++ b/tests/test16.c @@ -97,72 +97,32 @@ uint64_t _ucomisd_(double a, double b) void test_ucomiss() { + float values[] = {1.0f, 2.0f, 0.0f, -0.0f, -1.0f, INFINITY, -INFINITY, NAN}; float a, b; uint64_t flags; - a = 1.0f; b = 2.0f; - flags = _ucomiss_(a, b); - printf("ucomiss %f, %f => 0x%lx\n", a, b, flags); - flags = _ucomiss_(b, a); - printf("ucomiss %f, %f => 0x%lx\n", b, a, flags); - b = INFINITY; - flags = _ucomiss_(a, b); - printf("ucomiss %f, %f => 0x%lx\n", a, b, flags); - flags = _ucomiss_(b, a); - printf("ucomiss %f, %f => 0x%lx\n", b, a, flags); - b = -INFINITY; - flags = _ucomiss_(a, b); - printf("ucomiss %f, %f => 0x%lx\n", a, b, flags); - flags = _ucomiss_(b, a); - printf("ucomiss %f, %f => 0x%lx\n", b, a, flags); - b = NAN; - flags = _ucomiss_(a, b); - printf("ucomiss %f, %f => 0x%lx\n", a, b, flags); - flags = _ucomiss_(b, a); - printf("ucomiss %f, %f => 0x%lx\n", b, a, flags); - b = a; - flags = _ucomiss_(a, b); - printf("ucomiss %f, %f => 0x%lx\n", a, b, flags); - a = b = INFINITY; - flags = _ucomiss_(a, b); - printf("ucomiss %f, %f => 0x%lx\n", a, b, flags); - a = b = NAN; - flags = _ucomiss_(a, b); - printf("ucomiss %f, %f => 0x%lx\n", a, b, flags); + int n = sizeof(values)/sizeof(values[0]); + for(int i=0; i<n; ++i) + for(int j=0; j<n; ++j) { + a = values[i]; + b = values[j]; + flags = _ucomiss_(a, b); + printf("ucomiss %f, %f => 0x%lx\n", a, b, flags); + } } void test_ucomisd() { + double values[] = {1.0, 2.0, 0.0, -0.0, -1.0, INFINITY, -INFINITY, NAN}; double a, b; uint64_t flags; - a = 1.0; b = 2.0; - flags = _ucomisd_(a, b); - printf("ucomisd %f, %f => 0x%lx\n", a, b, flags); - flags = _ucomisd_(b, a); - printf("ucomisd %f, %f => 0x%lx\n", b, a, flags); - b = INFINITY; - flags = _ucomisd_(a, b); - printf("ucomisd %f, %f => 0x%lx\n", a, b, flags); - flags = _ucomisd_(b, a); - printf("ucomisd %f, %f => 0x%lx\n", b, a, flags); - b = -INFINITY; - flags = _ucomisd_(a, b); - printf("ucomisd %f, %f => 0x%lx\n", a, b, flags); - flags = _ucomisd_(b, a); - printf("ucomisd %f, %f => 0x%lx\n", b, a, flags); - b = NAN; - flags = _ucomisd_(a, b); - printf("ucomisd %f, %f => 0x%lx\n", a, b, flags); - flags = _ucomisd_(b, a); - printf("ucomisd %f, %f => 0x%lx\n", b, a, flags); - b = a; - flags = _ucomisd_(a, b); - printf("ucomisd %f, %f => 0x%lx\n", a, b, flags); - a = b = INFINITY; - flags = _ucomisd_(a, b); - printf("ucomisd %f, %f => 0x%lx\n", a, b, flags); - a = b = NAN; - flags = _ucomisd_(a, b); - printf("ucomisd %f, %f => 0x%lx\n", a, b, flags); + int n = sizeof(values)/sizeof(values[0]); + for(int i=0; i<n; ++i) + for(int j=0; j<n; ++j) { + a = values[i]; + b = values[j]; + flags = _ucomisd_(a, b); + printf("ucomisd %f, %f => 0x%lx\n", a, b, flags); + } } #if defined(__x86_64__) #define GO(n) \ |