lioncash
ce12ed60ae
OpcodeDispatcher: Handle VPMOVSXBQ
2022-12-15 17:58:42 +00:00
lioncash
d7eab5f787
OpcodeDispatcher: Handle VPMOVSXBD
2022-12-15 17:54:51 +00:00
lioncash
21537a3636
OpcodeDispatcher: Handle VPMOVSXBW
2022-12-15 17:50:58 +00:00
lioncash
588a2611a7
OpcodeDispatcher: Handle VPMOVZXDQ
2022-12-15 17:45:14 +00:00
lioncash
2895a09101
OpcodeDispatcher: Handle VPMOVZXWQ
2022-12-15 17:41:15 +00:00
lioncash
5c8d40d9be
OpcodeDispatcher: Handle VPMOVZXWD
2022-12-15 17:37:51 +00:00
lioncash
b4079cfea3
OpcodeDispatcher: Handle VPMOVZXBQ
2022-12-15 17:32:18 +00:00
lioncash
2b5570a910
OpcodeDispatcher: Handle VPMOVZXBD
2022-12-15 17:28:35 +00:00
lioncash
6bb0c5b24c
OpcodeDispatcher: Handle VPMOVZXBW
2022-12-15 17:18:49 +00:00
lioncash
bc31f98f16
OpcodeDispatcher: Move ExtendVectorElements impl to regular function
...
This can be reused for the AVX versions.
2022-12-15 17:11:02 +00:00
lioncash
58c3e20bd1
OpcodeDispatcher: Move template impl to regular function where applicable
...
Reduces the amount of code size generated by the specializations.
Only targets ones that are heavily templated like the generic op helper
functions.
2022-12-15 01:54:12 +00:00
lioncash
27ea6096a2
OpcodeDispatcher: Handle VROUNDSD
2022-12-14 06:41:36 +00:00
lioncash
2244dd9847
OpcodeDispatcher: Handle VROUNDSS
2022-12-14 06:34:58 +00:00
lioncash
ca2f4bd468
OpcodeDispatcher: Handle VROUNDPD
2022-12-14 06:28:17 +00:00
lioncash
6b5c94be23
OpcodeDispatcher: Handle VROUNDPS
2022-12-14 06:27:59 +00:00
lioncash
779dc48d8d
OpcodeDispatcher: Factor out VectorRound into VectorRoundImpl
...
This will be used in following commits for the AVX versions that use
this.
2022-12-14 05:52:16 +00:00
lioncash
90828aeb11
OpcodeDispatcher: Handle VINSERTI128
2022-12-14 04:26:42 +00:00
lioncash
fe7c6da1e2
OpcodeDispatcher: Handle VINSERTF128
2022-12-14 04:24:04 +00:00
lioncash
a9ad0d081c
OpcodeDispatcher: Handle VPERM2I128
2022-12-14 03:41:29 +00:00
lioncash
54885bec32
OpcodeDispatcher: Handle VPERM2F128
2022-12-14 03:41:22 +00: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
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
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
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
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
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
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