mirror of
https://github.com/FEX-Emu/FEX.git
synced 2025-01-09 07:10:39 +00:00
e89dd27f2a
We can avoid needing to use movprfx here by moving directly into the destination when possible and just doing the SMIN directly.
52 lines
1.5 KiB
NASM
52 lines
1.5 KiB
NASM
%ifdef CONFIG
|
|
{
|
|
"HostFeatures": ["AVX"],
|
|
"RegData": {
|
|
"XMM0": ["0x4142434445464748", "0x7172737475767778", "0x4142434445464748", "0x7172737475767778"],
|
|
"XMM1": ["0x8000000065666768", "0x5152535455565758", "0x6162636465666768", "0x5152535455565758"],
|
|
"XMM2": ["0x8000000045464748", "0x5152535455565758", "0x0000000000000000", "0x0000000000000000"],
|
|
"XMM3": ["0x8000000045464748", "0x5152535455565758", "0x4142434445464748", "0x5152535455565758"],
|
|
"XMM4": ["0x8000000045464748", "0x5152535455565758", "0x0000000000000000", "0x0000000000000000"],
|
|
"XMM5": ["0x8000000045464748", "0x5152535455565758", "0x4142434445464748", "0x5152535455565758"],
|
|
"XMM6": ["0x8000000045464748", "0x5152535455565758", "0x4142434445464748", "0x5152535455565758"],
|
|
"XMM7": ["0x8000000045464748", "0x5152535455565758", "0x4142434445464748", "0x5152535455565758"]
|
|
},
|
|
"MemoryRegions": {
|
|
"0x100000000": "4096"
|
|
}
|
|
}
|
|
%endif
|
|
|
|
lea rdx, [rel .data]
|
|
|
|
vmovapd ymm0, [rdx]
|
|
vmovapd ymm1, [rdx + 32]
|
|
|
|
vpminsd xmm2, xmm0, xmm1
|
|
vpminsd ymm3, ymm0, ymm1
|
|
|
|
vpminsd xmm4, xmm0, [rdx + 32]
|
|
vpminsd ymm5, ymm0, [rdx + 32]
|
|
|
|
; Some funky combinations for testing fast paths
|
|
; Related to SVE sources aliasing the destination
|
|
vmovapd ymm6, ymm0
|
|
vpminsd ymm6, ymm6, ymm5
|
|
|
|
vmovapd ymm7, ymm0
|
|
vpminsd ymm7, ymm5, ymm7
|
|
|
|
hlt
|
|
|
|
align 32
|
|
.data:
|
|
dq 0x4142434445464748
|
|
dq 0x7172737475767778
|
|
dq 0x4142434445464748
|
|
dq 0x7172737475767778
|
|
|
|
dq 0x8000000065666768
|
|
dq 0x5152535455565758
|
|
dq 0x6162636465666768
|
|
dq 0x5152535455565758
|