summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f>2022-08-20 19:52:26 +0000
committervboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f>2022-08-20 19:52:26 +0000
commit528571be3414b19bc3c250189bfa59e813818470 (patch)
tree5ceb5f6cc6b370f96e58f6031a9988c4dfc115cd
parentb08f07c9c42e6dc978e4155d5fe86d41b9736d6a (diff)
downloadVirtualBox-svn-528571be3414b19bc3c250189bfa59e813818470.tar.gz
VMM/testcase/tstIEMAImpl: Implement basic haddps/haddpd/hsubps/hsubpd testcases, bugref:9898 [scm]
git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@96383 cfe28804-0f27-0410-a406-dd0f0b0b656f
-rw-r--r--src/VBox/VMM/testcase/Makefile.kmk4
-rw-r--r--src/VBox/VMM/testcase/tstIEMAImpl.cpp4
-rw-r--r--src/VBox/VMM/testcase/tstIEMAImpl.h4
-rw-r--r--src/VBox/VMM/testcase/tstIEMAImplDataSseBinary-haddpd_u128.binbin0 -> 1312256 bytes
-rw-r--r--src/VBox/VMM/testcase/tstIEMAImplDataSseBinary-haddps_u128.binbin0 -> 1330688 bytes
-rw-r--r--src/VBox/VMM/testcase/tstIEMAImplDataSseBinary-hsubpd_u128.binbin0 -> 1277184 bytes
-rw-r--r--src/VBox/VMM/testcase/tstIEMAImplDataSseBinary-hsubps_u128.binbin0 -> 1310720 bytes
-rw-r--r--src/VBox/VMM/testcase/tstIEMAImplDataSseBinary.S4
-rw-r--r--src/VBox/VMM/testcase/tstIEMAImplDataSseBinary.asm56
9 files changed, 46 insertions, 26 deletions
diff --git a/src/VBox/VMM/testcase/Makefile.kmk b/src/VBox/VMM/testcase/Makefile.kmk
index 7a51a2aa2fb..77ba21ce319 100644
--- a/src/VBox/VMM/testcase/Makefile.kmk
+++ b/src/VBox/VMM/testcase/Makefile.kmk
@@ -238,12 +238,16 @@ TSTIEMAIMPL_TEST_DATA_DEPS = \
tstIEMAImplDataSseBinary-minps_u128.bin \
tstIEMAImplDataSseBinary-divps_u128.bin \
tstIEMAImplDataSseBinary-maxps_u128.bin \
+ tstIEMAImplDataSseBinary-haddps_u128.bin \
+ tstIEMAImplDataSseBinary-hsubps_u128.bin \
tstIEMAImplDataSseBinary-addpd_u128.bin \
tstIEMAImplDataSseBinary-mulpd_u128.bin \
tstIEMAImplDataSseBinary-subpd_u128.bin \
tstIEMAImplDataSseBinary-minpd_u128.bin \
tstIEMAImplDataSseBinary-divpd_u128.bin \
tstIEMAImplDataSseBinary-maxpd_u128.bin \
+ tstIEMAImplDataSseBinary-haddpd_u128.bin \
+ tstIEMAImplDataSseBinary-hsubpd_u128.bin \
tstIEMAImplDataSseBinary-addss_u128_r32.bin \
tstIEMAImplDataSseBinary-addsd_u128_r64.bin \
tstIEMAImplDataSseBinary-mulss_u128_r32.bin \
diff --git a/src/VBox/VMM/testcase/tstIEMAImpl.cpp b/src/VBox/VMM/testcase/tstIEMAImpl.cpp
index 9da8e8eac98..192c37ba96c 100644
--- a/src/VBox/VMM/testcase/tstIEMAImpl.cpp
+++ b/src/VBox/VMM/testcase/tstIEMAImpl.cpp
@@ -4475,6 +4475,8 @@ static const SSE_BINARY_R32_T g_aSseBinaryR32[] =
ENTRY_BIN(minps_u128),
ENTRY_BIN(divps_u128),
ENTRY_BIN(maxps_u128),
+ ENTRY_BIN(haddps_u128),
+ ENTRY_BIN(hsubps_u128),
};
#ifdef TSTIEMAIMPL_WITH_GENERATOR
@@ -4669,6 +4671,8 @@ static const SSE_BINARY_R64_T g_aSseBinaryR64[] =
ENTRY_BIN(minpd_u128),
ENTRY_BIN(divpd_u128),
ENTRY_BIN(maxpd_u128),
+ ENTRY_BIN(haddpd_u128),
+ ENTRY_BIN(hsubpd_u128),
};
#ifdef TSTIEMAIMPL_WITH_GENERATOR
diff --git a/src/VBox/VMM/testcase/tstIEMAImpl.h b/src/VBox/VMM/testcase/tstIEMAImpl.h
index afa82b7b74b..679489a1ff6 100644
--- a/src/VBox/VMM/testcase/tstIEMAImpl.h
+++ b/src/VBox/VMM/testcase/tstIEMAImpl.h
@@ -756,6 +756,8 @@ TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, subps_u1
TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, minps_u128 );
TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, divps_u128 );
TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, maxps_u128 );
+TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, haddps_u128 );
+TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, hsubps_u128 );
TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R32_TEST_T, addss_u128_r32 );
TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R32_TEST_T, mulss_u128_r32 );
@@ -771,6 +773,8 @@ TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, subpd_u1
TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, minpd_u128 );
TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, divpd_u128 );
TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, maxpd_u128 );
+TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, haddpd_u128 );
+TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, hsubpd_u128 );
TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R64_TEST_T, addsd_u128_r64 );
TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R64_TEST_T, mulsd_u128_r64 );
diff --git a/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary-haddpd_u128.bin b/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary-haddpd_u128.bin
new file mode 100644
index 00000000000..7b9bd4ff36d
--- /dev/null
+++ b/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary-haddpd_u128.bin
Binary files differ
diff --git a/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary-haddps_u128.bin b/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary-haddps_u128.bin
new file mode 100644
index 00000000000..35364dd351b
--- /dev/null
+++ b/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary-haddps_u128.bin
Binary files differ
diff --git a/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary-hsubpd_u128.bin b/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary-hsubpd_u128.bin
new file mode 100644
index 00000000000..ac12251121d
--- /dev/null
+++ b/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary-hsubpd_u128.bin
Binary files differ
diff --git a/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary-hsubps_u128.bin b/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary-hsubps_u128.bin
new file mode 100644
index 00000000000..009bb885239
--- /dev/null
+++ b/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary-hsubps_u128.bin
Binary files differ
diff --git a/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary.S b/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary.S
index 44c7feb4a01..695e2e70cd4 100644
--- a/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary.S
+++ b/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary.S
@@ -55,6 +55,8 @@ IEM_TEST_DATA subps_u128, "tstIEMAImplDataSseBinary-subps_u128.bin"
IEM_TEST_DATA minps_u128, "tstIEMAImplDataSseBinary-minps_u128.bin"
IEM_TEST_DATA divps_u128, "tstIEMAImplDataSseBinary-divps_u128.bin"
IEM_TEST_DATA maxps_u128, "tstIEMAImplDataSseBinary-maxps_u128.bin"
+IEM_TEST_DATA haddps_u128, "tstIEMAImplDataSseBinary-haddps_u128.bin"
+IEM_TEST_DATA hsubps_u128, "tstIEMAImplDataSseBinary-hsubps_u128.bin"
IEM_TEST_DATA addss_u128_r32, "tstIEMAImplDataSseBinary-addss_u128_r32.bin"
IEM_TEST_DATA mulss_u128_r32, "tstIEMAImplDataSseBinary-mulss_u128_r32.bin"
@@ -70,6 +72,8 @@ IEM_TEST_DATA subpd_u128, "tstIEMAImplDataSseBinary-subpd_u128.bin"
IEM_TEST_DATA minpd_u128, "tstIEMAImplDataSseBinary-minpd_u128.bin"
IEM_TEST_DATA divpd_u128, "tstIEMAImplDataSseBinary-divpd_u128.bin"
IEM_TEST_DATA maxpd_u128, "tstIEMAImplDataSseBinary-maxpd_u128.bin"
+IEM_TEST_DATA haddpd_u128, "tstIEMAImplDataSseBinary-haddpd_u128.bin"
+IEM_TEST_DATA hsubpd_u128, "tstIEMAImplDataSseBinary-hsubpd_u128.bin"
IEM_TEST_DATA addsd_u128_r64, "tstIEMAImplDataSseBinary-addsd_u128_r64.bin"
IEM_TEST_DATA mulsd_u128_r64, "tstIEMAImplDataSseBinary-mulsd_u128_r64.bin"
diff --git a/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary.asm b/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary.asm
index 9d7d6597bb9..a8a4968e58c 100644
--- a/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary.asm
+++ b/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary.asm
@@ -47,32 +47,36 @@ type g_cbTests_ %+ %1 object
%endif
%endmacro
-IEM_TEST_DATA addps_u128, "tstIEMAImplDataSseBinary-addps_u128.bin"
-IEM_TEST_DATA mulps_u128, "tstIEMAImplDataSseBinary-mulps_u128.bin"
-IEM_TEST_DATA subps_u128, "tstIEMAImplDataSseBinary-subps_u128.bin"
-IEM_TEST_DATA minps_u128, "tstIEMAImplDataSseBinary-minps_u128.bin"
-IEM_TEST_DATA divps_u128, "tstIEMAImplDataSseBinary-divps_u128.bin"
-IEM_TEST_DATA maxps_u128, "tstIEMAImplDataSseBinary-maxps_u128.bin"
+IEM_TEST_DATA addps_u128, "tstIEMAImplDataSseBinary-addps_u128.bin"
+IEM_TEST_DATA mulps_u128, "tstIEMAImplDataSseBinary-mulps_u128.bin"
+IEM_TEST_DATA subps_u128, "tstIEMAImplDataSseBinary-subps_u128.bin"
+IEM_TEST_DATA minps_u128, "tstIEMAImplDataSseBinary-minps_u128.bin"
+IEM_TEST_DATA divps_u128, "tstIEMAImplDataSseBinary-divps_u128.bin"
+IEM_TEST_DATA maxps_u128, "tstIEMAImplDataSseBinary-maxps_u128.bin"
+IEM_TEST_DATA haddps_u128, "tstIEMAImplDataSseBinary-haddps_u128.bin"
+IEM_TEST_DATA hsubps_u128, "tstIEMAImplDataSseBinary-hsubps_u128.bin"
-IEM_TEST_DATA addss_u128_r32, "tstIEMAImplDataSseBinary-addss_u128_r32.bin"
-IEM_TEST_DATA mulss_u128_r32, "tstIEMAImplDataSseBinary-mulss_u128_r32.bin"
-IEM_TEST_DATA subss_u128_r32, "tstIEMAImplDataSseBinary-subss_u128_r32.bin"
-IEM_TEST_DATA minss_u128_r32, "tstIEMAImplDataSseBinary-minss_u128_r32.bin"
-IEM_TEST_DATA divss_u128_r32, "tstIEMAImplDataSseBinary-divss_u128_r32.bin"
-IEM_TEST_DATA maxss_u128_r32, "tstIEMAImplDataSseBinary-maxss_u128_r32.bin"
-IEM_TEST_DATA cvtss2sd_u128_r32, "tstIEMAImplDataSseBinary-cvtss2sd_u128_r32.bin"
+IEM_TEST_DATA addss_u128_r32, "tstIEMAImplDataSseBinary-addss_u128_r32.bin"
+IEM_TEST_DATA mulss_u128_r32, "tstIEMAImplDataSseBinary-mulss_u128_r32.bin"
+IEM_TEST_DATA subss_u128_r32, "tstIEMAImplDataSseBinary-subss_u128_r32.bin"
+IEM_TEST_DATA minss_u128_r32, "tstIEMAImplDataSseBinary-minss_u128_r32.bin"
+IEM_TEST_DATA divss_u128_r32, "tstIEMAImplDataSseBinary-divss_u128_r32.bin"
+IEM_TEST_DATA maxss_u128_r32, "tstIEMAImplDataSseBinary-maxss_u128_r32.bin"
+IEM_TEST_DATA cvtss2sd_u128_r32, "tstIEMAImplDataSseBinary-cvtss2sd_u128_r32.bin"
-IEM_TEST_DATA addpd_u128, "tstIEMAImplDataSseBinary-addpd_u128.bin"
-IEM_TEST_DATA mulpd_u128, "tstIEMAImplDataSseBinary-mulpd_u128.bin"
-IEM_TEST_DATA subpd_u128, "tstIEMAImplDataSseBinary-subpd_u128.bin"
-IEM_TEST_DATA minpd_u128, "tstIEMAImplDataSseBinary-minpd_u128.bin"
-IEM_TEST_DATA divpd_u128, "tstIEMAImplDataSseBinary-divpd_u128.bin"
-IEM_TEST_DATA maxpd_u128, "tstIEMAImplDataSseBinary-maxpd_u128.bin"
+IEM_TEST_DATA addpd_u128, "tstIEMAImplDataSseBinary-addpd_u128.bin"
+IEM_TEST_DATA mulpd_u128, "tstIEMAImplDataSseBinary-mulpd_u128.bin"
+IEM_TEST_DATA subpd_u128, "tstIEMAImplDataSseBinary-subpd_u128.bin"
+IEM_TEST_DATA minpd_u128, "tstIEMAImplDataSseBinary-minpd_u128.bin"
+IEM_TEST_DATA divpd_u128, "tstIEMAImplDataSseBinary-divpd_u128.bin"
+IEM_TEST_DATA maxpd_u128, "tstIEMAImplDataSseBinary-maxpd_u128.bin"
+IEM_TEST_DATA haddpd_u128, "tstIEMAImplDataSseBinary-haddpd_u128.bin"
+IEM_TEST_DATA hsubpd_u128, "tstIEMAImplDataSseBinary-hsubpd_u128.bin"
-IEM_TEST_DATA addsd_u128_r64, "tstIEMAImplDataSseBinary-addsd_u128_r64.bin"
-IEM_TEST_DATA mulsd_u128_r64, "tstIEMAImplDataSseBinary-mulsd_u128_r64.bin"
-IEM_TEST_DATA subsd_u128_r64, "tstIEMAImplDataSseBinary-subsd_u128_r64.bin"
-IEM_TEST_DATA minsd_u128_r64, "tstIEMAImplDataSseBinary-minsd_u128_r64.bin"
-IEM_TEST_DATA divsd_u128_r64, "tstIEMAImplDataSseBinary-divsd_u128_r64.bin"
-IEM_TEST_DATA maxsd_u128_r64, "tstIEMAImplDataSseBinary-maxsd_u128_r64.bin"
-IEM_TEST_DATA cvtsd2ss_u128_r64, "tstIEMAImplDataSseBinary-cvtsd2ss_u128_r64.bin"
+IEM_TEST_DATA addsd_u128_r64, "tstIEMAImplDataSseBinary-addsd_u128_r64.bin"
+IEM_TEST_DATA mulsd_u128_r64, "tstIEMAImplDataSseBinary-mulsd_u128_r64.bin"
+IEM_TEST_DATA subsd_u128_r64, "tstIEMAImplDataSseBinary-subsd_u128_r64.bin"
+IEM_TEST_DATA minsd_u128_r64, "tstIEMAImplDataSseBinary-minsd_u128_r64.bin"
+IEM_TEST_DATA divsd_u128_r64, "tstIEMAImplDataSseBinary-divsd_u128_r64.bin"
+IEM_TEST_DATA maxsd_u128_r64, "tstIEMAImplDataSseBinary-maxsd_u128_r64.bin"
+IEM_TEST_DATA cvtsd2ss_u128_r64, "tstIEMAImplDataSseBinary-cvtsd2ss_u128_r64.bin"