Ryan Houdek
|
a05644172a
|
AVX128: Implement support for vdd{ps,pd}
|
2024-06-25 10:03:33 -04:00 |
|
Ryan Houdek
|
cc168ce0fb
|
VectorOps: Restructure DPPOpImpl. This will get reused by AVX128
|
2024-06-25 10:03:33 -04:00 |
|
Alyssa Rosenzweig
|
18574f3cf1
|
OpcodeDispatcher: extract VPERMILRegOpImpl
for avx
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
|
2024-06-25 10:03:33 -04:00 |
|
Alyssa Rosenzweig
|
665215ab47
|
OpcodeDispatcher: extract PTestOpImpl
for avx128
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
|
2024-06-25 09:52:48 -04:00 |
|
Alyssa Rosenzweig
|
6009f36403
|
OpcodeDispatcher: extract VPERMDIndices
and rename things accordingly.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
|
2024-06-25 09:46:17 -04:00 |
|
Alyssa Rosenzweig
|
2580efda0d
|
OpcodeDispatcher: tweak VTestOp signature
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
|
2024-06-25 09:46:17 -04:00 |
|
Alyssa Rosenzweig
|
21c6986dc7
|
OpcodeDispatcher: tweak HSUBPOpImpl
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
|
2024-06-24 18:21:08 -04:00 |
|
Alyssa Rosenzweig
|
635720fe12
|
OpcodeDispatcher: tweak PHADDSOpImpl signature
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
|
2024-06-24 18:21:08 -04:00 |
|
Ryan Houdek
|
702ecf7637
|
AVX128: Implement support for round{ss,sd}
|
2024-06-24 15:19:08 -04:00 |
|
Ryan Houdek
|
0595f1e044
|
AVX128: Implement support for vround{ps,pd}
|
2024-06-24 15:19:08 -04:00 |
|
Ryan Houdek
|
cebb032bd3
|
AVX128: Implement support for vphminposuw
Reuses the non-AVX implementation since it only operates on 128-bits.
|
2024-06-24 15:19:08 -04:00 |
|
Ryan Houdek
|
8e32763ada
|
AVX128: Implements support for AVX string ops
Reuses the implementation from the SSE4.2 implementation, just
explicitly zeroes the hardcoded YMM0's upper 128-bits.
|
2024-06-24 15:19:08 -04:00 |
|
Ryan Houdek
|
7532337231
|
AVX128: Implements support for vector AES instructions
|
2024-06-24 15:19:08 -04:00 |
|
Ryan Houdek
|
4a66d4570e
|
AVX128: Implement support for a trinary operation with a passed in vector
Will be used for AES operations
|
2024-06-24 15:19:08 -04:00 |
|
Alyssa Rosenzweig
|
6f5e99d47d
|
OpcodeDispatcher: factor out TranslateRoundType
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
|
2024-06-24 15:19:08 -04:00 |
|
Alyssa Rosenzweig
|
9ee9f5bddd
|
OpcodeDispatcher: tweak VectorRoundImpl signature
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
|
2024-06-24 15:14:55 -04:00 |
|
Ryan Houdek
|
d29139d88a
|
AVX128: Implement support for vextract{i,f}128
|
2024-06-24 14:27:19 -04:00 |
|
Ryan Houdek
|
317575ba99
|
AVX128: Implement support for cvtdq2{ps,pd}
|
2024-06-24 14:27:19 -04:00 |
|
Ryan Houdek
|
d4f2638a2e
|
AVX128: Implement support for cvt{t,}pd2pq
|
2024-06-24 14:27:19 -04:00 |
|
Ryan Houdek
|
b67d9be227
|
AVX128: Implement support for vcvt{pd2ps,ps2pd}
Fairly complex set of instructions due to the edge cases.
|
2024-06-24 14:27:19 -04:00 |
|
Ryan Houdek
|
d52add8fad
|
AVX128: Implement support for vcvt{ss2sd,sd2ss}
|
2024-06-24 14:27:19 -04:00 |
|
Ryan Houdek
|
aa9159d25c
|
AVX128: Implement support for vpmulh{u,}w
|
2024-06-24 14:27:19 -04:00 |
|
Ryan Houdek
|
94c777259e
|
AVX128: Implements support for vpmulhrsw
|
2024-06-24 14:27:19 -04:00 |
|
Ryan Houdek
|
c9f8fa5662
|
AVX128: Implement support for vpmul{u,}dq
|
2024-06-24 14:27:19 -04:00 |
|
Ryan Houdek
|
64ee6b119e
|
AVX128: Implement support for vaddsubp{s,d}
|
2024-06-24 14:27:19 -04:00 |
|
Ryan Houdek
|
d2ec9a8936
|
AVX128: Implement support for vpsubsw
|
2024-06-24 14:27:19 -04:00 |
|
Ryan Houdek
|
2a927453f7
|
AVX128: Implement support for vphsub{w,d}
|
2024-06-24 14:27:19 -04:00 |
|
Ryan Houdek
|
c19d489c9a
|
AVX128: Implement support for vinsertps
This one actually reuses the core base implementation which is nice.
|
2024-06-24 14:27:19 -04:00 |
|
Ryan Houdek
|
6012eb051b
|
AVX128: Implement support for vinsert{f128,i128}
|
2024-06-24 14:27:19 -04:00 |
|
Alyssa Rosenzweig
|
3974746473
|
OpcodeDispatcher: tweak PHSUBOpImpl
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
|
2024-06-24 14:14:23 -04:00 |
|
Alyssa Rosenzweig
|
e1bcdcf387
|
OpcodeDispatcher: tweak PHSUBSOpImpl signature
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
|
2024-06-24 14:14:23 -04:00 |
|
Alyssa Rosenzweig
|
fd5fbddae9
|
OpcodeDispatcher: tweak PMULLOpImpl for avx128
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
|
2024-06-24 14:14:23 -04:00 |
|
Alyssa Rosenzweig
|
8ff72beddb
|
OpcodeDispatcher: tweak PMULHRSWOpImpl signature for avx128
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
|
2024-06-24 14:14:23 -04:00 |
|
Alyssa Rosenzweig
|
cba5f7877b
|
OpcodeDispatcher: tweak ADDSUBPOpImpl signature for AVX128
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
|
2024-06-24 14:14:23 -04:00 |
|
Alyssa Rosenzweig
|
9d7e9fd9fc
|
OpcodeDispatcher: add AVX128_Zext helper
should let us clean up a lot.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
|
2024-06-24 14:14:23 -04:00 |
|
Ryan Houdek
|
9c531d97b0
|
AVX128: Implements the various vector shift instructions
These are very closely related to each other so it makes sense to
implement the roughly three different families in one commit.
|
2024-06-24 09:20:19 -04:00 |
|
Ryan Houdek
|
abdcaa7c86
|
AVX128: Implement support for vpinsr{b,w,d,q}
|
2024-06-21 15:53:52 -04:00 |
|
Ryan Houdek
|
ad122cf463
|
AVX128: Implement support for vpmovmskb
|
2024-06-21 15:53:52 -04:00 |
|
Ryan Houdek
|
b58a57d225
|
AVX128: Implement support for vmovmskp{s,d}
|
2024-06-21 15:53:52 -04:00 |
|
Ryan Houdek
|
28d679de98
|
AVX128: Implement support for vpmov{s,z}{b,w,d}{w,d,q}
|
2024-06-21 15:53:52 -04:00 |
|
Ryan Houdek
|
d1dd055e6a
|
AVX128: Implement support for vpextr{b,w,d,q}
|
2024-06-21 15:53:52 -04:00 |
|
Ryan Houdek
|
3045578da4
|
AVX128: Implement vmov{d,q}
|
2024-06-21 15:53:52 -04:00 |
|
Ryan Houdek
|
9566dda73e
|
AVX128: Implement support for vcmps{s,d}
|
2024-06-21 15:53:52 -04:00 |
|
Ryan Houdek
|
a0ced2b685
|
AVX128: Implement support for vcmpp{s,d}
|
2024-06-21 15:50:26 -04:00 |
|
Ryan Houdek
|
df232f567b
|
AVX128: Implement support for v{add,sub,mul,fmin,fmax,fdiv,sqrt,rsqrt,rcp}s{s,d}
|
2024-06-21 15:50:05 -04:00 |
|
Ryan Houdek
|
2a6d6a9d13
|
AVX128: Implement support for v{u,}comis{s,d}
|
2024-06-21 15:50:05 -04:00 |
|
Alyssa Rosenzweig
|
cd03932bd1
|
OpcodeDispatcher: tweak InsertScalarFCMPOpImpl signature
so AVX128 can reuse it.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
|
2024-06-21 15:50:05 -04:00 |
|
Ryan Houdek
|
fac9972bad
|
Merge pull request #3741 from alyssarosenzweig/cleanup/comiss
OpcodeDispatcher: refactor Comiss helper
|
2024-06-21 11:43:05 -07:00 |
|
Alyssa Rosenzweig
|
9ecb960f3a
|
OpcodeDispatcher: refactor Comiss helper
AVX128 will use this, it's not SSE-specific.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
|
2024-06-21 14:23:20 -04:00 |
|
Ryan Houdek
|
424218e327
|
AVX128: Implement support for vpsign{b,w,d}
|
2024-06-21 08:11:22 -07:00 |
|