Ryan Houdek
0b829d2c46
unittests: Adds a test for full pshufd imm coverage
2024-07-18 04:13:03 -07:00
Ryan Houdek
d79b7fcc49
Merge pull request #3808 from alyssarosenzweig/rclse/3
...
Try to delete RCLSE again
2024-07-12 20:38:06 -07:00
Ryan Houdek
3c7318d7c8
AVX128: Fixes vmovq loading too much data
...
This was doing a 128-bit load from memory and then a 64-bit zero extend
which looked like a spurious move but it was trying to match the
behaviour of vmovq where it needed the zero extend.
Also adds a unit test to ensure that we aren't loading too much data by
loading right up against a page boundary.
Fixes #3787
2024-07-11 18:34:05 -07:00
Alyssa Rosenzweig
5e0952159d
unittests: add test for a MMX register cache bug
...
this failed on an earlier version of the register cache.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-07-10 11:34:24 -04:00
Alyssa Rosenzweig
3ef9ea94e5
Merge pull request #3848 from pmatos/FTSTX87Tests
...
Tests for X87 FTST
2024-07-09 09:10:29 -04:00
Paulo Matos
381ce23fd7
Tests for X87 FTST
2024-07-09 13:36:16 +02:00
Mai
af6a0be832
Merge pull request #3842 from Sonicadvance1/fix_f64_to_i32
...
VCVT{T,}PD2DQ fixes and optimization
2024-07-09 03:49:31 -04:00
Ryan Houdek
c9c163cd7b
unittests: Update vcv{t,tt}pd2dq tests to ensure upper bits of destination are cleared
2024-07-08 03:30:10 -07:00
Ryan Houdek
fa587398bd
unittests: Extends vinsert{i,f}128 tests for garbage data
...
Just to ensure we don't hit an issue with masking the immediate bits.
Fixes #3753
2024-07-07 02:16:21 -07:00
Ryan Houdek
9bad09c45f
Merge pull request #3823 from alyssarosenzweig/bug/shl-var-small
...
Fix CF with small shifts
2024-07-06 01:33:57 -07:00
Ryan Houdek
b67343fc5a
unittests: Adds a test for small shift flags calculation
...
Currently we calculate CF incorrectly in the case of small shifts with
large offsets.
2024-07-05 18:38:12 -04:00
Ryan Houdek
51c57cc5ae
unittests: More rotate with carry unit tests
...
Looks like we missed some edge cases with small carry rotate. Adds even
more unit tests.
2024-07-05 18:34:18 -04:00
Ryan Houdek
653bf04db0
Merge pull request #3819 from alyssarosenzweig/bug/rcr-smol
...
Fix 8/16-bit RCR
2024-07-05 12:49:23 -07:00
Ryan Houdek
b77a25b21a
Merge pull request #3818 from alyssarosenzweig/jit/shiftbymaskstozero
...
JIT: fix ShiftFlags masking
2024-07-05 12:49:16 -07:00
Ryan Houdek
bad5cef52b
unittests: Adds rotate with carry test for large rotates
...
FEX-Emu currently doesn't do large rotates for small data sources
correctly. This will fail CI until fixed in OpcodeDispatcher
2024-07-05 10:49:02 -04:00
Ryan Houdek
8ac9bb5c72
unittests: Adds test for flags when shifting by zero
2024-07-05 09:57:42 -04:00
Alyssa Rosenzweig
97329ccc7a
Merge pull request #3812 from Sonicadvance1/fix_rotates_with_zero
...
OpcodeDispatcher: Fixes rotates with zero not zero extending 32-bit result
2024-07-05 09:48:01 -04:00
Mai
f2d1f2de56
Merge pull request #3817 from Sonicadvance1/fix_x87_integer_indefinite
...
Softfloat: Fixes Integer indefinite return for 16-bit signed values
2024-07-04 23:11:44 -04:00
Ryan Houdek
692c2fae96
Merge pull request #3813 from alyssarosenzweig/bug/fix-sbb
...
Fix 16-bit SBB
2024-07-04 19:52:37 -07:00
Ryan Houdek
ecaca0fe15
unittests: Adds x87 integer indefinite test
...
Tests 16-bit, 32-bit, and 64-bit integer conversions
2024-07-04 17:53:28 -07:00
Ryan Houdek
1a8aaebd79
unittests: Adds long signed divide test
2024-07-04 16:43:21 -07:00
Ryan Houdek
1084a031e7
unittests: Adds test for previous fix
...
All of these results would have failed except for the rorx result.
2024-07-04 14:35:43 -07:00
Ryan Houdek
90a6647fa4
Merge pull request #3811 from alyssarosenzweig/ra/fix-lsp
...
RA: fix interaction between SRA & shuffles
2024-07-04 14:20:46 -07:00
Alyssa Rosenzweig
fbf41e3149
unittests: add test for small sbc flags
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-07-04 16:58:45 -04:00
Alyssa Rosenzweig
2d75801024
unittests: add tricky RA test
...
this fails on current main with blocksize=500 due to mentioned RA bug. passes
with blocksize=1.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-07-04 13:37:13 -04:00
Ryan Houdek
95dd6ceba8
unittests: Adds MMX and x87 conflating unit test
...
This failed with prior RCLSE deletion caching.
2024-07-03 13:54:07 -07:00
Ryan Houdek
f453e1523e
Merge pull request #3803 from pmatos/NinjaCore
...
Use number of jobs as defined by TEST_JOB_COUNT
2024-07-03 12:42:14 -07:00
Paulo Matos
ad52514b97
Use number of jobs as defined by TEST_JOB_COUNT
...
At the moment we always run ctest with max number of cpus. If
undefined, it will keep current behaviour, otherwise it will
honour TEST_JOB_COUNT.
Therefore to run ctest one test at a time, use
`cmake ... -DTEST_JOB_COUNT=1`
2024-07-03 14:09:39 +02:00
Ryan Houdek
fb7167c2d2
CodeEmitter: Fixes vector {ldr,str}{b,h} with reg-reg source
...
We had failed to enable these implementations for the
`ExtendedMemOperand` helpers. We had already implemented the non-helper
forms, which are already tested in CI. These helpers just weren't
updated?
Noticed this when running libaom's SSE4.1 tests, where it managed to
execute a pmovzxbq instruction with reg+reg memory source and was
breaking the test results.
There are /very/ few vector register operations that access only 8-bit
or 16-bit in vectors so this flew under the radar for quite a while.
Fixes their unit tests.
Also adds a unittest using sse4.1 pmovzxbq to ensure we support the
reg+reg case, and also a few other instructions to test 8-bit and 16-bit
vector loads and stores.
2024-07-01 17:03:47 -07:00
Ryan Houdek
8b9b1a90e4
unittests: Fixes typo in vpcmpgtw test
2024-07-01 14:42:23 -07:00
Ryan Houdek
babde31bf0
AVX128: Fixes vmovlhps
...
We didn't have a unit test for this and we weren't implementing it at
all.
We treated it as vmovhps/vmovhpd accidentally. Once again caught by the
libaom Intrinsics unit tests.
2024-07-01 13:54:11 -07:00
Ryan Houdek
9e94784e26
unittests: Adds test for xmm4 VSIB bug
2024-06-27 20:55:30 -07:00
Ryan Houdek
aba7a3a830
AVX128: Fixes vblendps lower and upper selector
2024-06-27 17:20:39 -07:00
Ryan Houdek
9027d1eee7
AVX128: Fixes bug in vector immediate shift
2024-06-27 16:22:14 -07:00
Ryan Houdek
b0eb63ab9a
FEXCore: Fixes address size override on GPR sources and destinations
...
When the source or destination is a register, the address size override
doesn't apply. We were accidentally applying it on all sources
regardless of type which was causing us to zero extend on operations
that aren't affected by address size override.
This fixes the OpenSSL cert error in every application, but most
importantly Steam.
2024-06-27 14:12:01 -07:00
Ryan Houdek
c6c147daf6
unittests: Updates vcvtps2ph test for failure case of writing too much memory.
2024-06-26 16:49:00 -07:00
Ryan Houdek
52e541d453
Unittests: Stop using AVX2 flag
2024-06-26 14:56:01 -07:00
Ryan Houdek
ba28e6f82e
unittests: Adds vcvtps2ph tests that use mxcsr
2024-06-26 14:08:20 -07:00
Ryan Houdek
94fd100fc7
Merge pull request #3719 from lioncash/f16c
...
OpcodeDispatcher: Handle F16C operations
2024-06-26 12:12:13 -07:00
Lioncache
cd5a809ec9
OpcodeDispatcher: Handle VCVTPS2PH
2024-06-26 15:05:03 -04:00
Lioncache
045a8efbeb
OpcodeDispatcher: Handle VCVTPH2PS
...
Fairly straightforward, since we already have handling for half-float conversions.
2024-06-26 15:05:00 -04:00
Ryan Houdek
54a1f7d833
Merge pull request #3764 from Sonicadvance1/rorx_masking
...
BMI2: Ensure rorx immediate masks by operation size correctly.
2024-06-26 11:52:47 -07:00
Alyssa Rosenzweig
7d939a3b3d
Merge pull request #3758 from Sonicadvance1/avx_17
...
AVX128: FMA3
2024-06-26 14:18:32 -04:00
Ryan Houdek
a515061465
BMI2: Ensure rorx immediate masks by operation size correctly.
2024-06-26 11:11:37 -07:00
Alyssa Rosenzweig
7e10dba5e2
unittests: add test for a BEXTR bug
...
Ryan reduced this test while debugging openssl. This fails without the constprop
fix.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-06-26 12:06:47 -04:00
Ryan Houdek
122ae5b710
unittests: Adds FMA3 unittests
2024-06-25 11:37:18 -07:00
Ryan Houdek
41923bac99
OpcodeDispatcher: Fixes PCMUL with weird selectors and zero-extend
...
We had a bug where we weren't correctly ignoring the non-used bits in
the selector. This was causing an assert in the ARM backend.
2024-06-25 12:54:03 -04:00
Alyssa Rosenzweig
77aaa9af4d
Merge pull request #3748 from Sonicadvance1/avx_15
...
AVX128: More instructions Part 4
2024-06-25 12:39:48 -04:00
Ryan Houdek
6911917819
Disable vpclmulqdq_256 on simulator
2024-06-25 10:03:33 -04:00
Ryan Houdek
48e7aae38f
unittests: Adds support for 256-bit vpclmulqdq
...
It's easy because the test was already written for this in mind.
2024-06-25 10:03:33 -04:00