From a33fb4a9bb738fd283b271d4a17ff3ab0b14f24e Mon Sep 17 00:00:00 2001 From: yomaytk Date: Thu, 19 Feb 2026 09:40:22 +0000 Subject: [PATCH] Add additional test patterns to X86/BINARY instructions. --- .../lib/Arch/X86/Runtime/Instructions.cpp | 4 +- backend/remill/tests/X86/BINARY/ADDPD.S | 150 ++++++++++++++++-- backend/remill/tests/X86/BINARY/ADDPS.S | 150 ++++++++++++++++-- backend/remill/tests/X86/BINARY/ADDSD.S | 90 ++++++++++- backend/remill/tests/X86/BINARY/ADDSS.S | 90 ++++++++++- backend/remill/tests/X86/BINARY/DIVPD.S | 150 ++++++++++++++++-- backend/remill/tests/X86/BINARY/DIVPS.S | 150 ++++++++++++++++-- backend/remill/tests/X86/BINARY/DIVSD.S | 90 ++++++++++- backend/remill/tests/X86/BINARY/DIVSS.S | 90 ++++++++++- backend/remill/tests/X86/BINARY/MULPD.S | 150 ++++++++++++++++-- backend/remill/tests/X86/BINARY/MULPS.S | 150 ++++++++++++++++-- backend/remill/tests/X86/BINARY/MULSD.S | 90 ++++++++++- backend/remill/tests/X86/BINARY/MULSS.S | 90 ++++++++++- backend/remill/tests/X86/BINARY/SUBPD.S | 150 ++++++++++++++++-- backend/remill/tests/X86/BINARY/SUBPS.S | 150 ++++++++++++++++-- backend/remill/tests/X86/BINARY/SUBSD.S | 90 ++++++++++- backend/remill/tests/X86/BINARY/SUBSS.S | 90 ++++++++++- backend/remill/tests/X86/Tests.S | 18 +-- 18 files changed, 1803 insertions(+), 139 deletions(-) diff --git a/backend/remill/lib/Arch/X86/Runtime/Instructions.cpp b/backend/remill/lib/Arch/X86/Runtime/Instructions.cpp index edc57e52..ae5829cd 100644 --- a/backend/remill/lib/Arch/X86/Runtime/Instructions.cpp +++ b/backend/remill/lib/Arch/X86/Runtime/Instructions.cpp @@ -215,8 +215,8 @@ DEF_HELPER(SquareRoot32, float32_t src_float)->float32_t { // #include "lib/Arch/X86/Semantics/FMA.cpp" // #include "lib/Arch/X86/Semantics/INTERRUPT.cpp" // #include "lib/Arch/X86/Semantics/IO.cpp" -// #include "lib/Arch/X86/Semantics/LOGICAL.cpp" -// #include "lib/Arch/X86/Semantics/MISC.cpp" +#include "lib/Arch/X86/Semantics/LOGICAL.cpp" +#include "lib/Arch/X86/Semantics/MISC.cpp" // #include "lib/Arch/X86/Semantics/MMX.cpp" // #include "lib/Arch/X86/Semantics/NOP.cpp" // #include "lib/Arch/X86/Semantics/POP.cpp" diff --git a/backend/remill/tests/X86/BINARY/ADDPD.S b/backend/remill/tests/X86/BINARY/ADDPD.S index 5917069a..dc3bab8b 100644 --- a/backend/remill/tests/X86/BINARY/ADDPD.S +++ b/backend/remill/tests/X86/BINARY/ADDPD.S @@ -15,25 +15,77 @@ */ TEST_BEGIN(ADDPDv128v128_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ addpd xmm0, xmm4 TEST_END TEST_BEGIN(ADDPDv128v128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ addpd xmm4, xmm0 TEST_END #if APPLE_SAFE_TESTS TEST_BEGIN(ADDPDv128m128_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm4 addpd xmm0, [rsp - 16] TEST_END TEST_BEGIN(ADDPDv128m128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm0 addpd xmm4, [rsp - 16] TEST_END @@ -42,34 +94,112 @@ TEST_END #if HAS_FEATURE_AVX TEST_BEGIN(VADDPDv128v128_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vaddpd xmm0, xmm1, xmm4 TEST_END TEST_BEGIN(VADDPDv128v128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vaddpd xmm1, xmm4, xmm0 TEST_END TEST_BEGIN(VADDPDv256v256_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vaddpd ymm0, ymm1, ymm4 TEST_END TEST_BEGIN(VADDPDv256v256_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vaddpd ymm1, ymm4, ymm0 TEST_END #if APPLE_SAFE_TESTS TEST_BEGIN(VADDPDv128m128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm5 vaddpd xmm1, xmm4, [rsp - 16] TEST_END TEST_BEGIN(VADDPDv256m256_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vmovdqu [rsp - 32], ymm5 vaddpd ymm1, ymm4, [rsp - 32] TEST_END diff --git a/backend/remill/tests/X86/BINARY/ADDPS.S b/backend/remill/tests/X86/BINARY/ADDPS.S index 7575fd39..6b0e443b 100644 --- a/backend/remill/tests/X86/BINARY/ADDPS.S +++ b/backend/remill/tests/X86/BINARY/ADDPS.S @@ -15,25 +15,77 @@ */ TEST_BEGIN(ADDPSv128v128_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ addps xmm0, xmm4 TEST_END TEST_BEGIN(ADDPSv128v128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ addps xmm4, xmm0 TEST_END #if APPLE_SAFE_TESTS TEST_BEGIN(ADDPSv128m128_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm4 addps xmm0, [rsp - 16] TEST_END TEST_BEGIN(ADDPSv128m128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm0 addps xmm4, [rsp - 16] TEST_END @@ -42,34 +94,112 @@ TEST_END #if HAS_FEATURE_AVX TEST_BEGIN(VADDPSv128v128_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vaddps xmm0, xmm1, xmm4 TEST_END TEST_BEGIN(VADDPSv128v128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vaddps xmm1, xmm4, xmm0 TEST_END TEST_BEGIN(VADDPSv256v256_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vaddps ymm0, ymm1, ymm4 TEST_END TEST_BEGIN(VADDPSv256v256_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vaddps ymm1, ymm4, ymm0 TEST_END #if APPLE_SAFE_TESTS TEST_BEGIN(VADDPSv128m128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm0 vaddps xmm1, xmm4, [rsp - 16] TEST_END TEST_BEGIN(VADDPSv256m256_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vmovdqu [rsp - 32], ymm0 vaddps ymm1, ymm4, [rsp - 32] TEST_END diff --git a/backend/remill/tests/X86/BINARY/ADDSD.S b/backend/remill/tests/X86/BINARY/ADDSD.S index 49fb8c4a..612ddae6 100644 --- a/backend/remill/tests/X86/BINARY/ADDSD.S +++ b/backend/remill/tests/X86/BINARY/ADDSD.S @@ -15,25 +15,77 @@ */ TEST_BEGIN(ADDSDv128v128_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ addsd xmm0, xmm4 TEST_END TEST_BEGIN(ADDSDv128v128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ addsd xmm4, xmm0 TEST_END #if APPLE_SAFE_TESTS TEST_BEGIN(ADDSDv128m128_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm4 addsd xmm0, [rsp - 16] TEST_END TEST_BEGIN(ADDSDv128m128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm0 addsd xmm4, [rsp - 16] TEST_END @@ -43,12 +95,38 @@ TEST_END #if HAS_FEATURE_AVX TEST_BEGIN(VADDSDv128v128_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vaddsd xmm0, xmm1, xmm4 TEST_END TEST_BEGIN(VADDSDv128v128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vaddsd xmm1, xmm4, xmm0 TEST_END diff --git a/backend/remill/tests/X86/BINARY/ADDSS.S b/backend/remill/tests/X86/BINARY/ADDSS.S index b49f399a..d9454906 100644 --- a/backend/remill/tests/X86/BINARY/ADDSS.S +++ b/backend/remill/tests/X86/BINARY/ADDSS.S @@ -15,25 +15,77 @@ */ TEST_BEGIN(ADDSSv128v128_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ addss xmm0, xmm4 TEST_END TEST_BEGIN(ADDSSv128v128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ addss xmm4, xmm0 TEST_END #if APPLE_SAFE_TESTS TEST_BEGIN(ADDSSv128m128_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm4 addss xmm0, [rsp - 16] TEST_END TEST_BEGIN(ADDSSv128m128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm0 addss xmm4, [rsp - 16] TEST_END @@ -42,12 +94,38 @@ TEST_END #if HAS_FEATURE_AVX TEST_BEGIN(VADDSSv128v128_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vaddss xmm0, xmm1, xmm4 TEST_END TEST_BEGIN(VADDSSv128v128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vaddss xmm1, xmm4, xmm0 TEST_END diff --git a/backend/remill/tests/X86/BINARY/DIVPD.S b/backend/remill/tests/X86/BINARY/DIVPD.S index a3f9cf03..1ab8b7b5 100644 --- a/backend/remill/tests/X86/BINARY/DIVPD.S +++ b/backend/remill/tests/X86/BINARY/DIVPD.S @@ -15,25 +15,77 @@ */ TEST_BEGIN(DIVPDv128v128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ divpd xmm4, xmm0 TEST_END TEST_BEGIN(DIVPDv128v128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ divpd xmm4, xmm5 TEST_END #if APPLE_SAFE_TESTS TEST_BEGIN(DIVPDv128m128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm0 divpd xmm4, [rsp - 16] TEST_END TEST_BEGIN(DIVPDv128m128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ divpd xmm4, [rsp - 16] TEST_END @@ -41,34 +93,112 @@ TEST_END #if HAS_FEATURE_AVX TEST_BEGIN(VDIVPDv128v128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vdivpd xmm0, xmm4, xmm0 TEST_END TEST_BEGIN(VDIVPDv128v128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vdivpd xmm1, xmm4, xmm5 TEST_END TEST_BEGIN(VDIVPDv256v256_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vdivpd ymm0, ymm4, ymm0 TEST_END TEST_BEGIN(VDIVPDv256v256_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vdivpd ymm1, ymm4, ymm5 TEST_END #if APPLE_SAFE_TESTS TEST_BEGIN(VDIVPDv128m128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm5 vdivpd xmm1, xmm4, [rsp - 16] TEST_END TEST_BEGIN(VDIVPDv256m256_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vmovdqu [rsp - 32], ymm5 vdivpd ymm1, ymm4, [rsp - 32] TEST_END diff --git a/backend/remill/tests/X86/BINARY/DIVPS.S b/backend/remill/tests/X86/BINARY/DIVPS.S index c920c507..e8cf8258 100644 --- a/backend/remill/tests/X86/BINARY/DIVPS.S +++ b/backend/remill/tests/X86/BINARY/DIVPS.S @@ -15,25 +15,77 @@ */ TEST_BEGIN(DIVPSv128v128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ divps xmm4, xmm0 TEST_END TEST_BEGIN(DIVPSv128v128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ divps xmm4, xmm5 TEST_END #if APPLE_SAFE_TESTS TEST_BEGIN(DIVPSv128m128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm0 divps xmm4, [rsp - 16] TEST_END TEST_BEGIN(DIVPSv128m128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm5 divps xmm4, [rsp - 16] TEST_END @@ -42,34 +94,112 @@ TEST_END #if HAS_FEATURE_AVX TEST_BEGIN(VDIVPSv128v128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vdivps xmm0, xmm4, xmm0 TEST_END TEST_BEGIN(VDIVPSv128v128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vdivps xmm1, xmm4, xmm5 TEST_END TEST_BEGIN(VDIVPSv256v256_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vdivps ymm0, ymm4, ymm0 TEST_END TEST_BEGIN(VDIVPSv256v256_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vdivps ymm1, ymm4, ymm5 TEST_END #if APPLE_SAFE_TESTS TEST_BEGIN(VDIVPSv128m128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm5 vdivps xmm1, xmm4, [rsp - 16] TEST_END TEST_BEGIN(VDIVPSv256m256_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vmovdqu [rsp - 32], ymm5 vdivps ymm1, ymm4, [rsp - 32] TEST_END diff --git a/backend/remill/tests/X86/BINARY/DIVSD.S b/backend/remill/tests/X86/BINARY/DIVSD.S index 3e8767c8..36c43f0d 100644 --- a/backend/remill/tests/X86/BINARY/DIVSD.S +++ b/backend/remill/tests/X86/BINARY/DIVSD.S @@ -15,25 +15,77 @@ */ TEST_BEGIN(DIVSDv128v128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ divsd xmm4, xmm0 TEST_END TEST_BEGIN(DIVSDv128v128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ divsd xmm4, xmm5 TEST_END #if APPLE_SAFE_TESTS TEST_BEGIN(DIVSDv128m128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm0 divsd xmm4, [rsp - 16] TEST_END TEST_BEGIN(DIVSDv128m128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm5 divsd xmm4, [rsp - 16] TEST_END @@ -42,12 +94,38 @@ TEST_END #if HAS_FEATURE_AVX TEST_BEGIN(VDIVSDv128v128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vdivsd xmm0, xmm4, xmm0 TEST_END TEST_BEGIN(VDIVSDv128v128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vdivsd xmm1, xmm4, xmm5 TEST_END diff --git a/backend/remill/tests/X86/BINARY/DIVSS.S b/backend/remill/tests/X86/BINARY/DIVSS.S index e295494c..c4aba1a0 100644 --- a/backend/remill/tests/X86/BINARY/DIVSS.S +++ b/backend/remill/tests/X86/BINARY/DIVSS.S @@ -15,25 +15,77 @@ */ TEST_BEGIN(DIVSSv128v128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ divss xmm4, xmm0 TEST_END TEST_BEGIN(DIVSSv128v128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ divss xmm4, xmm5 TEST_END #if APPLE_SAFE_TESTS TEST_BEGIN(DIVSSv128m128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm0 divss xmm4, [rsp - 16] TEST_END TEST_BEGIN(DIVSSv128m128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm5 divss xmm4, [rsp - 16] TEST_END @@ -42,12 +94,38 @@ TEST_END #if HAS_FEATURE_AVX TEST_BEGIN(VDIVSSv128v128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vdivss xmm0, xmm4, xmm0 TEST_END TEST_BEGIN(VDIVSSv128v128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vdivss xmm1, xmm4, xmm5 TEST_END diff --git a/backend/remill/tests/X86/BINARY/MULPD.S b/backend/remill/tests/X86/BINARY/MULPD.S index c1dec6a9..350b8bf5 100644 --- a/backend/remill/tests/X86/BINARY/MULPD.S +++ b/backend/remill/tests/X86/BINARY/MULPD.S @@ -15,25 +15,77 @@ */ TEST_BEGIN(MULPDv128v128_01, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ mulpd xmm0, xmm1 TEST_END TEST_BEGIN(MULPDv128v128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ mulpd xmm4, xmm5 TEST_END #if APPLE_SAFE_TESTS TEST_BEGIN(MULPDv128m128_01, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm1 mulpd xmm0, [rsp - 16] TEST_END TEST_BEGIN(MULPDv128m128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm5 mulpd xmm4, [rsp - 16] TEST_END @@ -42,34 +94,112 @@ TEST_END #if HAS_FEATURE_AVX TEST_BEGIN(VMULPDv128v128_01, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vmulpd xmm0, xmm0, xmm1 TEST_END TEST_BEGIN(VMULPDv128v128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vmulpd xmm1, xmm4, xmm5 TEST_END TEST_BEGIN(VMULPDv256v256_01, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vmulpd ymm0, ymm0, ymm1 TEST_END TEST_BEGIN(VMULPDv256v256_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vmulpd ymm1, ymm4, ymm5 TEST_END #if APPLE_SAFE_TESTS TEST_BEGIN(VMULPDv128m128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm5 vmulpd xmm1, xmm4, [rsp - 16] TEST_END TEST_BEGIN(VMULPDv256m256_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vmovdqu [rsp - 32], ymm5 vmulpd ymm1, ymm4, [rsp - 32] TEST_END diff --git a/backend/remill/tests/X86/BINARY/MULPS.S b/backend/remill/tests/X86/BINARY/MULPS.S index 6b51d619..7ca2981a 100644 --- a/backend/remill/tests/X86/BINARY/MULPS.S +++ b/backend/remill/tests/X86/BINARY/MULPS.S @@ -15,25 +15,77 @@ */ TEST_BEGIN(MULPSv128v128_01, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ mulps xmm0, xmm1 TEST_END TEST_BEGIN(MULPSv128v128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ mulps xmm4, xmm5 TEST_END #if APPLE_SAFE_TESTS TEST_BEGIN(MULPSv128m128_01, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm1 mulps xmm0, [rsp - 16] TEST_END TEST_BEGIN(MULPSv128m128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm5 mulps xmm4, [rsp - 16] TEST_END @@ -42,34 +94,112 @@ TEST_END #if HAS_FEATURE_AVX TEST_BEGIN(VMULPSv128v128_01, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vmulps xmm0, xmm0, xmm1 TEST_END TEST_BEGIN(VMULPSv128v128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vmulps xmm1, xmm4, xmm5 TEST_END TEST_BEGIN(VMULPSv256v256_01, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vmulps ymm0, ymm0, ymm1 TEST_END TEST_BEGIN(VMULPSv256v256_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vmulps ymm1, ymm4, ymm5 TEST_END #if APPLE_SAFE_TESTS TEST_BEGIN(VMULPSv128m128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm5 vmulps xmm1, xmm4, [rsp - 16] TEST_END TEST_BEGIN(VMULPSv256m256_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vmovdqu [rsp - 32], ymm5 vmulps ymm1, ymm4, [rsp - 32] TEST_END diff --git a/backend/remill/tests/X86/BINARY/MULSD.S b/backend/remill/tests/X86/BINARY/MULSD.S index 01209500..af16eb57 100644 --- a/backend/remill/tests/X86/BINARY/MULSD.S +++ b/backend/remill/tests/X86/BINARY/MULSD.S @@ -15,25 +15,77 @@ */ TEST_BEGIN(MULSDv128v128_01, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ mulsd xmm0, xmm1 TEST_END TEST_BEGIN(MULSDv128v128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ mulsd xmm4, xmm5 TEST_END #if APPLE_SAFE_TESTS TEST_BEGIN(MULSDv128m128_01, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm1 mulsd xmm0, [rsp - 16] TEST_END TEST_BEGIN(MULSDv128m128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm5 mulsd xmm4, [rsp - 16] TEST_END @@ -42,12 +94,38 @@ TEST_END #if HAS_FEATURE_AVX TEST_BEGIN(VMULSDv128v128_01, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vmulsd xmm0, xmm0, xmm1 TEST_END TEST_BEGIN(VMULSDv128v128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vmulsd xmm1, xmm4, xmm5 TEST_END diff --git a/backend/remill/tests/X86/BINARY/MULSS.S b/backend/remill/tests/X86/BINARY/MULSS.S index 15913d35..9730dbd4 100644 --- a/backend/remill/tests/X86/BINARY/MULSS.S +++ b/backend/remill/tests/X86/BINARY/MULSS.S @@ -15,25 +15,77 @@ */ TEST_BEGIN(MULSSv128v128_01, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ mulss xmm0, xmm1 TEST_END TEST_BEGIN(MULSSv128v128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ mulss xmm4, xmm5 TEST_END #if APPLE_SAFE_TESTS TEST_BEGIN(MULSSv128m128_01, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm1 mulss xmm0, [rsp - 16] TEST_END TEST_BEGIN(MULSSv128m128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm5 mulss xmm4, [rsp - 16] TEST_END @@ -42,12 +94,38 @@ TEST_END #if HAS_FEATURE_AVX TEST_BEGIN(VMULSSv128v128_01, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vmulss xmm0, xmm0, xmm1 TEST_END TEST_BEGIN(VMULSSv128v128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vmulss xmm1, xmm4, xmm5 TEST_END diff --git a/backend/remill/tests/X86/BINARY/SUBPD.S b/backend/remill/tests/X86/BINARY/SUBPD.S index 9b471b76..87956271 100644 --- a/backend/remill/tests/X86/BINARY/SUBPD.S +++ b/backend/remill/tests/X86/BINARY/SUBPD.S @@ -15,25 +15,77 @@ */ TEST_BEGIN(SUBPDv128v128_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ subpd xmm0, xmm4 TEST_END TEST_BEGIN(SUBPDv128v128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ subpd xmm4, xmm0 TEST_END #if APPLE_SAFE_TESTS TEST_BEGIN(SUBPDv128m128_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm4 subpd xmm0, [rsp - 16] TEST_END TEST_BEGIN(SUBPDv128m128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm0 subpd xmm4, [rsp - 16] TEST_END @@ -42,34 +94,112 @@ TEST_END #if HAS_FEATURE_AVX TEST_BEGIN(VSUBPDv128v128_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vsubpd xmm0, xmm1, xmm4 TEST_END TEST_BEGIN(VSUBPDv128v128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vsubpd xmm1, xmm4, xmm0 TEST_END TEST_BEGIN(VSUBPDv256v256_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vsubpd ymm0, ymm1, ymm4 TEST_END TEST_BEGIN(VSUBPDv256v256_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vsubpd ymm1, ymm4, ymm0 TEST_END #if APPLE_SAFE_TESTS TEST_BEGIN(VSUBPDv128m128_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm5 vsubpd xmm1, xmm4, [rsp - 16] TEST_END TEST_BEGIN(VSUBPDv256m256_45, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vmovdqu [rsp - 32], ymm5 vsubpd ymm1, ymm4, [rsp - 32] TEST_END diff --git a/backend/remill/tests/X86/BINARY/SUBPS.S b/backend/remill/tests/X86/BINARY/SUBPS.S index bd042e60..cd127da1 100644 --- a/backend/remill/tests/X86/BINARY/SUBPS.S +++ b/backend/remill/tests/X86/BINARY/SUBPS.S @@ -15,25 +15,77 @@ */ TEST_BEGIN(SUBPSv128v128_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ subps xmm0, xmm4 TEST_END TEST_BEGIN(SUBPSv128v128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ subps xmm4, xmm0 TEST_END #if APPLE_SAFE_TESTS TEST_BEGIN(SUBPSv128m128_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm4 subps xmm0, [rsp - 16] TEST_END TEST_BEGIN(SUBPSv128m128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm0 subps xmm4, [rsp - 16] TEST_END @@ -42,34 +94,112 @@ TEST_END #if HAS_FEATURE_AVX TEST_BEGIN(VSUBPSv128v128_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vsubps xmm0, xmm1, xmm4 TEST_END TEST_BEGIN(VSUBPSv128v128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vsubps xmm1, xmm4, xmm0 TEST_END TEST_BEGIN(VSUBPSv256v256_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vsubps ymm0, ymm1, ymm4 TEST_END TEST_BEGIN(VSUBPSv256v256_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vsubps ymm1, ymm4, ymm0 TEST_END #if APPLE_SAFE_TESTS TEST_BEGIN(VSUBPSv128m128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm0 vsubps xmm1, xmm4, [rsp - 16] TEST_END TEST_BEGIN(VSUBPSv256m256_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vmovdqu [rsp - 32], ymm0 vsubps ymm1, ymm4, [rsp - 32] TEST_END diff --git a/backend/remill/tests/X86/BINARY/SUBSD.S b/backend/remill/tests/X86/BINARY/SUBSD.S index ba9b1ce7..66ee7d74 100644 --- a/backend/remill/tests/X86/BINARY/SUBSD.S +++ b/backend/remill/tests/X86/BINARY/SUBSD.S @@ -15,25 +15,77 @@ */ TEST_BEGIN(SUBSDv128v128_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ subsd xmm0, xmm4 TEST_END TEST_BEGIN(SUBSDv128v128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ subsd xmm4, xmm0 TEST_END #if APPLE_SAFE_TESTS TEST_BEGIN(SUBSDv128m128_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm4 subsd xmm0, [rsp - 16] TEST_END TEST_BEGIN(SUBSDv128m128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm0 subsd xmm4, [rsp - 16] TEST_END @@ -43,12 +95,38 @@ TEST_END #if HAS_FEATURE_AVX TEST_BEGIN(VSUBSDv128v128_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vsubsd xmm0, xmm1, xmm4 TEST_END TEST_BEGIN(VSUBSDv128v128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vsubsd xmm1, xmm4, xmm0 TEST_END diff --git a/backend/remill/tests/X86/BINARY/SUBSS.S b/backend/remill/tests/X86/BINARY/SUBSS.S index e65da24d..24d0e854 100644 --- a/backend/remill/tests/X86/BINARY/SUBSS.S +++ b/backend/remill/tests/X86/BINARY/SUBSS.S @@ -15,25 +15,77 @@ */ TEST_BEGIN(SUBSSv128v128_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ subss xmm0, xmm4 TEST_END TEST_BEGIN(SUBSSv128v128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ subss xmm4, xmm0 TEST_END #if APPLE_SAFE_TESTS TEST_BEGIN(SUBSSv128m128_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm4 subss xmm0, [rsp - 16] TEST_END TEST_BEGIN(SUBSSv128m128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ movdqu [rsp - 16], xmm0 subss xmm4, [rsp - 16] TEST_END @@ -42,12 +94,38 @@ TEST_END #if HAS_FEATURE_AVX TEST_BEGIN(VSUBSSv128v128_04, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vsubss xmm0, xmm1, xmm4 TEST_END TEST_BEGIN(VSUBSSv128v128_40, 1) -TEST_INPUTS(0) +TEST_INPUTS( + 0x0000000000000000, /* +0.0 */ + 0x3FE0000000000000, /* 0.5 */ + 0x3FF0000000000000, /* 1.0 */ + 0x4000000000000000, /* 2.0 */ + 0x4059000000000000, /* 100.0 */ + 0x400921FB54442D18, /* pi */ + 0x8000000000000000, /* -0.0 */ + 0xBFF0000000000000, /* -1.0 */ + 0x7FF0000000000000, /* +Inf */ + 0x0010000000000000, /* smallest normal */ + 0x7FEFFFFFFFFFFFFF, /* largest finite */ + 0x0000000000000001, /* smallest subnormal */ + 0xFFFFFFFFFFFFFFFF) /* NaN / all-ones */ vsubss xmm1, xmm4, xmm0 TEST_END diff --git a/backend/remill/tests/X86/Tests.S b/backend/remill/tests/X86/Tests.S index ca4e4319..72ec118f 100644 --- a/backend/remill/tests/X86/Tests.S +++ b/backend/remill/tests/X86/Tests.S @@ -363,11 +363,10 @@ SYMBOL(__x86_test_table_begin): #include "tests/X86/BINARY/SUBSD.S" #include "tests/X86/BINARY/SUBSS.S" -/* TODO: uncomment as semantics are enabled #include "tests/X86/DATAXFER/MOV.S" #include "tests/X86/DATAXFER/MOVAPD.S" #include "tests/X86/DATAXFER/MOVAPS.S" -#include "tests/X86/DATAXFER/MOVBE.S" +/* #include "tests/X86/DATAXFER/MOVBE.S" */ #include "tests/X86/DATAXFER/MOVD.S" #include "tests/X86/DATAXFER/MOVDQA.S" #include "tests/X86/DATAXFER/MOVDQU.S" @@ -385,8 +384,15 @@ SYMBOL(__x86_test_table_begin): #include "tests/X86/DATAXFER/MOVUPS.S" #include "tests/X86/DATAXFER/MOVZX.S" #include "tests/X86/DATAXFER/XCHG.S" -#include "tests/X86/DATAXFER/KMOVW.S" +/* #include "tests/X86/DATAXFER/KMOVW.S" */ + +#include "tests/X86/LOGICAL/AND.S" +#include "tests/X86/LOGICAL/NOT.S" +#include "tests/X86/LOGICAL/OR.S" +#include "tests/X86/LOGICAL/TEST.S" +#include "tests/X86/LOGICAL/XOR.S" +/* TODO: uncomment as semantics are enabled #include "tests/X86/AVX/VINSERTF128.S" #include "tests/X86/AVX/VZEROUPPER.S" #include "tests/X86/AVX/VPBROADCASTB.S" @@ -448,12 +454,6 @@ SYMBOL(__x86_test_table_begin): #include "tests/X86/DECIMAL/AAS.S" #include "tests/X86/DECIMAL/DAA.S" -#include "tests/X86/LOGICAL/AND.S" -#include "tests/X86/LOGICAL/NOT.S" -#include "tests/X86/LOGICAL/OR.S" -#include "tests/X86/LOGICAL/TEST.S" -#include "tests/X86/LOGICAL/XOR.S" - #include "tests/X86/MISC/CPUID.S" #include "tests/X86/MISC/ENTER.S" #include "tests/X86/MISC/LEA.S"