mirror of
https://github.com/FEX-Emu/FEX.git
synced 2025-02-15 12:28:36 +00:00
unittests: Add missing VPMASKMOVQ store test
Realized I forgot to add this in the commit that added VPMASKMOVD/VPMASKMOVQ support.
This commit is contained in:
parent
456e9dbdea
commit
8369f9c25b
104
unittests/ASM/VEX/vpmaskmovq_store.asm
Normal file
104
unittests/ASM/VEX/vpmaskmovq_store.asm
Normal file
@ -0,0 +1,104 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"HostFeatures": ["AVX"],
|
||||
"RegData": {
|
||||
"XMM0": ["0x8868C3F30AED56E0", "0x10FCE9E284E6E6DE", "0x1DDDDDDD8DDDDDDD", "0x8CCCCCCC0CCCCCCC"],
|
||||
"XMM1": ["0x0000000000000000", "0x0000000000000000", "0x0000000000000000", "0x0000000000000000"],
|
||||
"XMM2": ["0x8000000080000000", "0x8000000080000000", "0x8000000080000000", "0x8000000080000000"],
|
||||
"XMM3": ["0xA76C4F06A12BFCE0", "0x9B80767F1E6A060F", "0xDDDDDDDDDDDDDDDD", "0xEEEEEEEEEEEEEEEE"],
|
||||
"XMM4": ["0xA76C4F06A12BFCE0", "0xFFFFFFFFFFFFFFFF", "0xFFFFFFFFFFFFFFFF", "0xEEEEEEEEEEEEEEEE"],
|
||||
"XMM5": ["0xA76C4F06A12BFCE0", "0xFFFFFFFFFFFFFFFF", "0xFFFFFFFFFFFFFFFF", "0xFFFFFFFFFFFFFFFF"],
|
||||
"XMM6": ["0xFFFFFFFFFFFFFFFF", "0xFFFFFFFFFFFFFFFF", "0xFFFFFFFFFFFFFFFF", "0xFFFFFFFFFFFFFFFF"],
|
||||
"XMM7": ["0xFFFFFFFFFFFFFFFF", "0xFFFFFFFFFFFFFFFF", "0xFFFFFFFFFFFFFFFF", "0xFFFFFFFFFFFFFFFF"],
|
||||
"XMM8": ["0xA76C4F06A12BFCE0", "0x9B80767F1E6A060F", "0xDDDDDDDDDDDDDDDD", "0xEEEEEEEEEEEEEEEE"],
|
||||
"XMM9": ["0xA76C4F06A12BFCE0", "0x9B80767F1E6A060F", "0xFFFFFFFFFFFFFFFF", "0xFFFFFFFFFFFFFFFF"]
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
lea rdx, [rel .data]
|
||||
|
||||
vmovaps ymm0, [rdx + 32]
|
||||
vmovaps ymm1, [rdx + 64]
|
||||
vmovaps ymm2, [rdx + 96]
|
||||
vmovaps ymm3, [rdx]
|
||||
|
||||
vpmaskmovq [rel .scratch1], ymm0, ymm3
|
||||
vpmaskmovq [rel .scratch2], xmm0, xmm3
|
||||
|
||||
vpmaskmovq [rel .scratch3], ymm1, ymm3
|
||||
vpmaskmovq [rel .scratch4], xmm1, xmm3
|
||||
|
||||
vpmaskmovq [rel .scratch5], ymm2, ymm3
|
||||
vpmaskmovq [rel .scratch6], xmm2, xmm3
|
||||
|
||||
; Now reload to verify results
|
||||
vmovaps ymm4, [rel .scratch1]
|
||||
vmovaps ymm5, [rel .scratch2]
|
||||
vmovaps ymm6, [rel .scratch3]
|
||||
vmovaps ymm7, [rel .scratch4]
|
||||
vmovaps ymm8, [rel .scratch5]
|
||||
vmovaps ymm9, [rel .scratch6]
|
||||
|
||||
hlt
|
||||
|
||||
align 32
|
||||
.data:
|
||||
dq 0xA76C4F06A12BFCE0
|
||||
dq 0x9B80767F1E6A060F
|
||||
dq 0xDDDDDDDDDDDDDDDD
|
||||
dq 0xEEEEEEEEEEEEEEEE
|
||||
|
||||
; Disastrously organized mask (sign mask [1, 0, 0, 1])
|
||||
dq 0x8868C3F30AED56E0
|
||||
dq 0x10FCE9E284E6E6DE
|
||||
dq 0x1DDDDDDD8DDDDDDD
|
||||
dq 0x8CCCCCCC0CCCCCCC
|
||||
|
||||
; No masking at all. Should not touch memory at all.
|
||||
dq 0x0000000000000000
|
||||
dq 0x0000000000000000
|
||||
dq 0x0000000000000000
|
||||
dq 0x0000000000000000
|
||||
|
||||
; Select all elements
|
||||
dq 0x8000000080000000
|
||||
dq 0x8000000080000000
|
||||
dq 0x8000000080000000
|
||||
dq 0x8000000080000000
|
||||
|
||||
.scratch1:
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
|
||||
.scratch2:
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
|
||||
.scratch3:
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
|
||||
.scratch4:
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
|
||||
.scratch5:
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
|
||||
.scratch6:
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
Loading…
x
Reference in New Issue
Block a user