From ce16ce887bb38cfc41538ea9bf7bb51458d762f8 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Sat, 26 Sep 2020 22:01:23 +0100 Subject: [PATCH] Implements PHADD/PHSUB XMM unit tests --- unittests/ASM/H0F38/66_01.asm | 27 +++++++++++++++++++++++++++ unittests/ASM/H0F38/66_02.asm | 27 +++++++++++++++++++++++++++ unittests/ASM/H0F38/66_05.asm | 27 +++++++++++++++++++++++++++ unittests/ASM/H0F38/66_06.asm | 27 +++++++++++++++++++++++++++ 4 files changed, 108 insertions(+) create mode 100644 unittests/ASM/H0F38/66_01.asm create mode 100644 unittests/ASM/H0F38/66_02.asm create mode 100644 unittests/ASM/H0F38/66_05.asm create mode 100644 unittests/ASM/H0F38/66_06.asm diff --git a/unittests/ASM/H0F38/66_01.asm b/unittests/ASM/H0F38/66_01.asm new file mode 100644 index 000000000..ca37d8a1a --- /dev/null +++ b/unittests/ASM/H0F38/66_01.asm @@ -0,0 +1,27 @@ +%ifdef CONFIG +{ + "RegData": { + "XMM0": ["0xA4A6ACAE84868C8E", "0xE4E6ECEEC4C6CCCE"], + "XMM1": ["0xE4E6ECEEC4C6CCCE", "0xA4A6ACAE84868C8E"] + } +} +%endif + +mov rdx, 0xe0000000 + +mov rax, 0x4142434445464748 +mov [rdx + 8 * 0], rax +mov rax, 0x5152535455565758 +mov [rdx + 8 * 1], rax +mov rax, 0x6162636465666768 +mov [rdx + 8 * 2], rax +mov rax, 0x7172737475767778 +mov [rdx + 8 * 3], rax + +movaps xmm0, [rdx + 8 * 0] +movaps xmm1, [rdx + 8 * 2] + +phaddw xmm0, [rdx + 8 * 2] +phaddw xmm1, [rdx + 8 * 0] + +hlt diff --git a/unittests/ASM/H0F38/66_02.asm b/unittests/ASM/H0F38/66_02.asm new file mode 100644 index 000000000..417dc2060 --- /dev/null +++ b/unittests/ASM/H0F38/66_02.asm @@ -0,0 +1,27 @@ +%ifdef CONFIG +{ + "RegData": { + "XMM0": ["0xA6A8AAAC86888A8C", "0xE6E8EAECC6C8CACC"], + "XMM1": ["0xE6E8EAECC6C8CACC", "0xA6A8AAAC86888A8C"] + } +} +%endif + +mov rdx, 0xe0000000 + +mov rax, 0x4142434445464748 +mov [rdx + 8 * 0], rax +mov rax, 0x5152535455565758 +mov [rdx + 8 * 1], rax +mov rax, 0x6162636465666768 +mov [rdx + 8 * 2], rax +mov rax, 0x7172737475767778 +mov [rdx + 8 * 3], rax + +movaps xmm0, [rdx + 8 * 0] +movaps xmm1, [rdx + 8 * 2] + +phaddd xmm0, [rdx + 8 * 2] +phaddd xmm1, [rdx + 8 * 0] + +hlt diff --git a/unittests/ASM/H0F38/66_05.asm b/unittests/ASM/H0F38/66_05.asm new file mode 100644 index 000000000..3cd98403e --- /dev/null +++ b/unittests/ASM/H0F38/66_05.asm @@ -0,0 +1,27 @@ +%ifdef CONFIG +{ + "RegData": { + "XMM0": ["0xF202F20212021202", "0x0202020202020202"], + "XMM1": ["0x0202020202020202", "0xF202F20212021202"] + } +} +%endif + +mov rdx, 0xe0000000 + +mov rax, 0x5142634475468748 +mov [rdx + 8 * 0], rax +mov rax, 0x5152435435562758 +mov [rdx + 8 * 1], rax +mov rax, 0x6172637465766778 +mov [rdx + 8 * 2], rax +mov rax, 0x7162736475667768 +mov [rdx + 8 * 3], rax + +movaps xmm0, [rdx + 8 * 0] +movaps xmm1, [rdx + 8 * 2] + +phsubw xmm0, [rdx + 8 * 2] +phsubw xmm1, [rdx + 8 * 0] + +hlt diff --git a/unittests/ASM/H0F38/66_06.asm b/unittests/ASM/H0F38/66_06.asm new file mode 100644 index 000000000..4551d8fb3 --- /dev/null +++ b/unittests/ASM/H0F38/66_06.asm @@ -0,0 +1,27 @@ +%ifdef CONFIG +{ + "RegData": { + "XMM0": ["0xE403E40424042404", "0x0404040404040404"], + "XMM1": ["0x0404040404040404", "0xE403E40424042404"] + } +} +%endif + +mov rdx, 0xe0000000 + +mov rax, 0x5142634475468748 +mov [rdx + 8 * 0], rax +mov rax, 0x5152435435562758 +mov [rdx + 8 * 1], rax +mov rax, 0x6172637465766778 +mov [rdx + 8 * 2], rax +mov rax, 0x7162736475667768 +mov [rdx + 8 * 3], rax + +movaps xmm0, [rdx + 8 * 0] +movaps xmm1, [rdx + 8 * 2] + +phsubd xmm0, [rdx + 8 * 2] +phsubd xmm1, [rdx + 8 * 0] + +hlt