Ryan Houdek
6cb0f52e94
Merge pull request #2907 from Sonicadvance1/fix_dumpir_bug
...
FEXCore/IR: Fixes bug in IRDumper without specification
2023-08-16 14:24:33 -07:00
Ryan Houdek
f283ba4b05
InstCountCI: clwb/clfush/clflushopt is now optimal
...
One or two instructions depending.
2023-08-16 14:20:22 -07:00
Ryan Houdek
4522a766e0
Arm64: Optimize CacheLine{Clear,Clean}
...
When the cacheline size matches the expected x86 cacheline size then we
can remove the spurious move + add.
2023-08-16 14:20:22 -07:00
Ryan Houdek
dc0cf98a81
Merge pull request #2898 from Sonicadvance1/instcount_asm
...
InstCountCI: Support encoding expected Arm64 ASM in JSON
2023-08-16 13:51:43 -07:00
Ryan Houdek
fc12958095
FEXCore/IR: Fixes bug in IRDumper without specification
...
Didn't notice this in the previous PR, When DUMPIR=stderr without and
selection of where to place it in PASSMANAGERDUMPIR it was supposed to
put the dumper at the end of the passes.
We need to make sure that it it placed at the end of the passes rather
than current `it`.
2023-08-16 13:51:03 -07:00
Ryan Houdek
fd40e058e8
InstCountCI: Update tests with inline asm
...
This will result in a decent amount of data churn but it's all
automated so it is a non-issue.
2023-08-16 13:38:45 -07:00
Ryan Houdek
8706f895d0
InstCountCI: Sanitize out vixl address calculations
2023-08-16 13:38:45 -07:00
Ryan Houdek
9753ebdebc
InstCountCI: Support encoding expected Arm64 ASM in JSON
...
This will allow investigating the Arm64 directly next to the test, plus
publicly linking directly to badly behaving tests.
Perfect for nerdsniping implementations.
2023-08-16 01:50:06 -07:00
Mai
f95ef7092c
Merge pull request #2905 from Sonicadvance1/instcountci_updatetests
...
InstCountCI: Update tests from actual ARM64 device
2023-08-16 04:13:05 -04:00
Ryan Houdek
d4d5bc9635
InstCountCI: Update tests from actual ARM64 device
...
Previous numbers were from the simulator which were slightly different.
2023-08-15 14:39:37 -07:00
Mai
df3d4efc80
Merge pull request #2904 from Sonicadvance1/instcountci_only_arm
...
GIthub: Only enable InstCountCI on an ARM platform
2023-08-15 17:33:10 -04:00
Mai
dac220a6ff
Merge pull request #2903 from Sonicadvance1/instcountci_rng
...
InstCountCI: Adds RNG support
2023-08-15 17:21:03 -04:00
Ryan Houdek
9ba7f2fd0e
InstCountCI: Fixes instcountci_tests depends
2023-08-15 14:14:24 -07:00
Ryan Houdek
1441cb76b9
HostFeatures: Adds support for overriding ARMv8.1 LSE atomics
...
Always enable it on the InstCountCI.
2023-08-15 14:12:27 -07:00
Ryan Houdek
2d20513e34
GIthub: Only enable InstCountCI on an ARM platform
...
simulator generates some instruction count differences that we don't
care about. Just run this on ARM platforms only instead.
2023-08-15 14:12:27 -07:00
Mai
da334fe7d5
Merge pull request #2901 from Sonicadvance1/instcountci_only_disassembler
...
InstCountCI: Disables tests with unsupported configurations
2023-08-15 16:01:47 -04:00
Ryan Houdek
04f1f073c8
InstCountCI: Adds RNG support
...
Some instructions in the SecondaryGroup need RNG support for testing.
2023-08-15 12:58:53 -07:00
Ryan Houdek
0e52158cef
Merge pull request #2902 from lioncash/unary
...
OpcodeDispatcher: Eliminate unnecessary moves in AVXVectorUnaryOpImpl
2023-08-15 12:54:47 -07:00
Lioncache
17956eac5f
OpcodeDispatcher: Eliminate unnecessary moves in AVXVectorUnaryOpImpl
...
We no longer need to do any manual zero-extending here, since this
will occur automatically on hardware with SVE when 128-bit AdvSIMD
is used.
2023-08-15 15:43:34 -04:00
Ryan Houdek
6ad053a1e6
Merge pull request #2900 from lioncash/sqrt
...
Arm64/VectorOps: Remove redundant move in VFRSqrt SVE path
2023-08-15 12:39:02 -07:00
Ryan Houdek
b18e5e2f63
InstCountCI: Disables tests with unsupported configurations
...
Need to have the vixl disassembler enabled for instcountci.
Also need to make sure the host platform is using the ARM64 JIT.
2023-08-15 12:27:32 -07:00
Lioncache
2708374d95
Arm64/VectorOps: Remove redundant move in VFRSqrt SVE path
...
We can perform the SQRT first and then broadcast 1.0 into the destination
since all the intermediary work is done, meaning we don't have to worry
about Dst and Vector aliasing one another.
2023-08-15 15:22:21 -04:00
Mai
3c99fb84e2
Merge pull request #2899 from Sonicadvance1/instcountci_fix_asm_name
...
InstCountCI: Ensure output nasm name doesn't conflict
2023-08-15 14:44:44 -04:00
Ryan Houdek
710a3928ff
Merge pull request #2897 from lioncash/broad
...
ARMEmitter: Handle SVE load and broadcast element group
2023-08-15 11:36:20 -07:00
Ryan Houdek
ac1d2ec1d9
InstCountCI: Ensure output nasm name doesn't conflict
...
Pretty sure this is why CI is unhappy. If a test in a different file has
the same name then it is highly likely to conflict when nasm is
generating files and will overwrite and erase, causing CI to break.
Include the incoming json filename as part of the asm keys so it can't
conflict here.
2023-08-15 11:29:39 -07:00
Lioncache
6acce60855
ARMEmitter: Handle SVE load and broadcast element group
...
These can be used to improve vbroadcast implementations from
doing a mem load+dup in the non-GPR case into just directly
loading into the destination.
2023-08-15 13:47:12 -04:00
Mai
63f28eae4f
Merge pull request #2896 from Sonicadvance1/primary_table
...
InstCountCI: Adds primary tables
2023-08-15 13:07:35 -04:00
Ryan Houdek
eda67eb0a5
Merge pull request #2895 from lioncash/scalar
...
ARMEmitter: Handle load/store multiple structures (scalar plus scalar) groups
2023-08-15 09:12:40 -07:00
Ryan Houdek
21cac6ef0b
InstCountCI: Adds primary tables
...
Surprisingly few instructions are optimal here.
This is all the instruction tables completed now!
2023-08-15 09:11:39 -07:00
Ryan Houdek
1193b55150
InstCountCI: Script auto change line
2023-08-15 09:11:29 -07:00
Ryan Houdek
27a53280bd
InstCountCI: Fixes bitness in script
2023-08-15 09:11:07 -07:00
Mai
135b9ac425
Merge pull request #2894 from Sonicadvance1/instcount_secondary_prefixes
...
InstCountCI: Adds secondary prefix tables
2023-08-15 10:22:28 -04:00
Lioncache
81115f64f6
ARMEmitter: Handle SVE Store Multiple Structures (scalar plus scalar)
2023-08-15 10:18:37 -04:00
Lioncache
0176efa3bb
ARMEmitter: Handle SVE Load Multiple Structures (scalar plus scalar) group
2023-08-15 10:01:15 -04:00
Ryan Houdek
2508274ddb
InstCountCI: Adds secondary prefix tables
...
Most of these 128-bit vector ops are looking pretty good. Scalar and
edge case ops aren't always optimal though.
2023-08-15 06:57:47 -07:00
Mai
24d01cd8d2
Merge pull request #2893 from Sonicadvance1/instcount_secondary
...
InstCountCI: Adds secondary tables
2023-08-15 04:24:40 -04:00
Ryan Houdek
2fb72f822d
InstCountCI: Adds secondary tables
...
A decent number of instructions that are optimal but still quite a lot
that aren't.
2023-08-14 16:04:31 -07:00
Ryan Houdek
a2c2b042b2
CodeSizeValidation: Fixes nullptr dereference
2023-08-14 16:04:20 -07:00
Ryan Houdek
398e76be89
X86Tables: Fixes typo
2023-08-14 16:04:05 -07:00
Ryan Houdek
3885bc42f6
Merge pull request #2892 from Sonicadvance1/minor_config_changes
...
Config: Minor changes
2023-08-14 15:10:42 -07:00
Ryan Houdek
c5439b294c
TestHarnessRunner: InitializeConfig paths
...
Just removes an erroneous message in the TestHarnessRuner on each
execution.
2023-08-14 12:37:35 -07:00
Ryan Houdek
f248e7f3e7
Config: If DumpIR is enabled, default enable a passmanager option
...
If DumpIR is enabled but the PassManagerDumpIR option isn't enabled then
this currently does nothing.
As a convenience, enable dumping the final optimized IR if an option
hasn't been specified.
2023-08-14 12:29:56 -07:00
Ryan Houdek
e51606c669
Config: Fixes mixup in PassManagerDumpIR
...
The opt and pass options were inverted in PassManager.
Renames the enum to make this more clear.
2023-08-14 12:28:37 -07:00
Ryan Houdek
648d8aeb65
Config: Adds missing server option to DumpIR description
...
This was accepted but I failed to describe it when added.
2023-08-14 12:22:35 -07:00
Ryan Houdek
112c463655
Config: Ensure OutputLog to server doesn't try to expand path
...
"server" isn't a path, this was missed when it was added.
2023-08-14 12:20:58 -07:00
Ryan Houdek
2f0c690d54
Merge pull request #2890 from alyssarosenzweig/constprop/set-but-not
...
ConstProp: Fix set-but-not-used mask variable
2023-08-14 10:17:42 -07:00
Alyssa Rosenzweig
7ecbbd6c04
ConstProp: Fix set-but-not-used mask variable
...
I think this was the intended logic?
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
2023-08-14 11:59:59 -04:00
Mai
103e6044fa
Merge pull request #2889 from Sonicadvance1/instcount_primarygroup
...
InstCountCI: Adds Primary group tables
2023-08-13 23:07:25 -04:00
Mai
e334278f80
Merge pull request #2887 from Sonicadvance1/instcount_vex_map3
...
InstCountCI: Adds VEX map3 tables
2023-08-13 23:06:55 -04:00
Mai
7fe2d3b305
Merge pull request #2888 from Sonicadvance1/instcount_vex_map_group
...
InstCountCI: Adds VEX map group tables
2023-08-13 23:06:06 -04:00