Ryan Houdek
60a45615df
Merge pull request #2238 from lioncash/permq
...
OpcodeDispatcher: Handle VPERMQ/VPERMPD
2022-12-13 17:54:21 -08:00
lioncash
8a961bfcc5
VEXTables: Specify VPERMQ/VPERMPD as 256-bit
...
The AVX versions of these operands only operate on 256-bit ymm
registers, so we can specify this directly to be a little more
self-documenting.
2022-12-14 01:51:36 +00:00
lioncash
d6ab7a4f97
Frontend: Handle 256-bit destination sizes directly
...
Previously the only time we'd promote to a 256-bit size is if the VEX.L
bit was set in the 128-bit path.
Allow specifying 256-bit sizes directly.
2022-12-14 01:50:05 +00:00
lioncash
7114fb3293
OpcodeDispatcher: Handle VPERMPD
2022-12-14 01:37:27 +00:00
lioncash
8a87aff730
OpcodeDispatcher: Handle VPERMQ
2022-12-14 01:30:55 +00:00
Ryan Houdek
ded257c92f
Merge pull request #2237 from lioncash/hadd
...
OpcodeDispatcher: Handle VHADDP{D, S}
2022-12-13 16:00:13 -08:00
lioncash
c5b4719793
OpcodeDispatcher: Handle VHADDPD
2022-12-13 23:45:42 +00:00
lioncash
0f6201108f
OpcodeDispatcher: Handle VHADDPS
2022-12-13 23:45:38 +00:00
lioncash
b589dce7f5
x86_64/VectorOps: Make VFADDP behavior consistent with ARMv8
...
We need to swap the second and third results to be consistent with ARM.
Also fixes the mistake where I used vhaddpd instead of vhaddps in the
single-precision 256-bit case.
2022-12-13 23:34:12 +00:00
Ryan Houdek
9de5840f7a
Merge pull request #2236 from lioncash/max
...
OpcodeDispatcher: Handle VPMAXS{B, D, W}/VPMAXU{B, D, W}
2022-12-13 14:11:17 -08:00
lioncash
c98fffd33d
OpcodeDispatcher: Handle VPMAXSD
2022-12-13 21:49:40 +00:00
lioncash
de3777cc78
OpcodeDispatcher: Handle VPMAXSW
2022-12-13 21:47:17 +00:00
lioncash
dd640e7a3d
OpcodeDispatcher: Handle VPMAXSB
2022-12-13 21:44:46 +00:00
lioncash
d53ddb73bf
OpcodeDispatcher: Handle VPMAXUD
2022-12-13 21:40:29 +00:00
lioncash
25e9333abb
OpcodeDispatcher: Handle VPMAXUW
2022-12-13 21:38:52 +00:00
lioncash
85766dd074
OpcodeDispatcher: Handle VPMAXUB
2022-12-13 21:36:47 +00:00
Ryan Houdek
40bab6b58e
Merge pull request #2235 from lioncash/min
...
OpcodeDispatcher: Handle VPMINS{B, D, W}/VPMINU{B, D, W}
2022-12-13 13:31:14 -08:00
lioncash
b0e0a2a165
OpcodeDispatcher: Handle VPMINSD
2022-12-13 20:51:14 +00:00
lioncash
0efcb912b5
OpcodeDispatcher: Handle VPMINSW
2022-12-13 20:49:08 +00:00
lioncash
9d0cc58737
OpcodeDispatcher: Handle VPMINSB
2022-12-13 20:47:00 +00:00
lioncash
b671ed57ef
OpcodeDispatcher: Handle VPMINUD
2022-12-13 20:41:53 +00:00
lioncash
a2a44d188a
OpcodeDispatcher: Handle VPMINUW
2022-12-13 20:39:55 +00:00
lioncash
364064536b
OpcodeDispatcher: Handle VPMINUB
2022-12-13 20:36:51 +00:00
Mai
98a454169d
Merge pull request #2234 from lioncash/sadd
...
OpcodeDispatcher: Handle VPADDS{B, W}/VPSUBS{B, W}
2022-12-13 20:25:25 +00:00
lioncash
6d44370f28
OpcodeDispatcher: Handle VPSUBSW
2022-12-13 18:52:55 +00:00
lioncash
273e2977a8
OpcodeDispatcher: Handle VPSUBSB
2022-12-13 18:50:02 +00:00
lioncash
7264b07d4f
OpcodeDispatcher: Handle VPADDSW
2022-12-13 18:42:11 +00:00
lioncash
92351e7f33
OpcodeDispatcher: Handle VPADDSB
2022-12-13 18:40:08 +00:00
Ryan Houdek
757602bb1e
Merge pull request #2233 from lioncash/uadd
...
OpcodeDispatcher: Handle VPADDUS{B, W}/VPSUBUS{B, W}
2022-12-13 10:25:59 -08:00
lioncash
6aaffec67f
OpcodeDispatcher: Handle VPSUBUSW
2022-12-13 18:05:46 +00:00
lioncash
6f474cedd3
OpcodeDispatcher: Handle VPSUBUSB
2022-12-13 18:03:13 +00:00
lioncash
d9176114c5
OpcodeDispatcher: Handle VPADDUSW
2022-12-13 18:03:07 +00:00
lioncash
287cee5b41
OpcodeDispatcher: Handle VPADDUSB
2022-12-13 18:02:55 +00:00
Mai
a90067fb1e
Merge pull request #2232 from lioncash/psub
...
OpcodeDispatcher: Handle VPSUB{B, D, Q, W}
2022-12-13 17:41:49 +00:00
lioncash
90d23098db
OpcoodeDispatcher: Handle VPSUBQ
2022-12-13 06:01:19 +00:00
lioncash
384a09bbf1
OpcoodeDispatcher: Handle VPSUBD
2022-12-13 05:58:37 +00:00
lioncash
2fd29c47d4
OpcoodeDispatcher: Handle VPSUBW
2022-12-13 05:58:34 +00:00
lioncash
e8aa8d89ec
OpcoodeDispatcher: Handle VPSUBB
2022-12-13 05:47:50 +00:00
Ryan Houdek
1bc013d5f0
Merge pull request #2231 from lioncash/psign
...
OpcodeDispatcher: Handle VPSIGN{B, D, W}
2022-12-12 21:43:59 -08:00
lioncash
469ff91311
OpcodeDispatcher: Handle VPSIGND
2022-12-13 05:24:35 +00:00
lioncash
ef14c411ce
OpcodeDispatcher: Handle VPSIGNW
2022-12-13 05:20:12 +00:00
lioncash
c2c5d176e4
OpcodeDispatcher: Handle VPSIGNB
2022-12-13 05:13:26 +00:00
lioncash
2328430d2e
OpcodeDispatcher: Factor PSIGN handling into helper
...
This will allow us to use this with VEX and non-VEX variants without
needing to insert the upper-lane clearing for 128-bit variants into the
non-VEX path.
That, and this also allows us to not need to add additional template
arguments
2022-12-13 05:13:17 +00:00
Ryan Houdek
a07a533640
Merge pull request #2230 from lioncash/div
...
OpcodeDispatcher: Handle VDIVP{D, S}/VDIVS{D, S}
2022-12-12 20:40:26 -08:00
lioncash
8c59e3e9e2
OpcodeDispatcher: Handle VDIVSD
2022-12-13 04:28:19 +00:00
lioncash
fed861fa6b
OpcodeDispatcher: Handle VDIVSS
2022-12-13 04:22:00 +00:00
lioncash
ce9969ee8f
OpcodeDispatcher: Handle VDIVPD
2022-12-13 04:16:33 +00:00
lioncash
9330ca41ea
OpcodeDispatcher: Handle VDIVPS
2022-12-13 04:12:32 +00:00
Ryan Houdek
eefcea49f4
Merge pull request #2229 from lioncash/mul
...
OpcodeDispatcher: Handle VMULP{D, S}/VMULS{D, S}
2022-12-12 20:03:43 -08:00
lioncash
ed1b060494
OpcodeDispatcher: Handle VMULSD
2022-12-13 03:46:23 +00:00