Nekotekina
|
04c9d01390
|
PPU LLVM: modernize most vector instructions
Rewritten VSUM instructions:
VSUMSWS, VSUM2SWS, VSUM4SBS, VSUM4SHS, VSUM4UBS
|
2021-12-03 00:14:06 +03:00 |
|
Malcolm Jestadt
|
7573d7289b
|
SPU LLVM: Hook up 128 bit spu verification
- Also fix FMA enablement for sapphirerapids
|
2021-11-06 21:12:12 +03:00 |
|
Nekotekina
|
69f321a471
|
LLVM 13
|
2021-11-02 20:11:08 +03:00 |
|
Malcolm Jestadt
|
f06c8b22e8
|
PPU/SPU LLVM: Emulate VPERM2B with a 256 bit wide VPERMB
- Save 1 uop by using 256 wide VPERMB instead of VPERM2B. (Compiles down to a vinserti128 and vpermb)
|
2021-10-13 17:51:54 +03:00 |
|
Nekotekina
|
55ec4808f1
|
SPU LLVM Fixup for VDBPSADBW
Fixes #10947
|
2021-09-30 17:53:47 +03:00 |
|
Malcolm Jestadt
|
2cfa5406e7
|
LLVM DSL: reimplement vdbpsadbw
|
2021-09-30 13:22:35 +03:00 |
|
Malcolm Jestadt
|
f9ab077908
|
SPU LLVM: Use VDBPSADBW in SUMB
- This instruction can be used to sum bytes horrizontally if the second input vector is all zeroes.
|
2021-09-30 13:22:35 +03:00 |
|
Nekotekina
|
d28b0ba2fa
|
SPU LLVM: implement spu_re, spu_rsqrte
Improve matching with peek_through_bitcasts() helper.
Implement erase_stores() helper.
|
2021-09-17 10:23:43 +03:00 |
|
Nekotekina
|
543fb7a9cb
|
LLVM DSL / SPU LLVM: implement infinite precision shifts
Remove old make_*** helpers in favor of matcheable expressions.
|
2021-09-17 10:23:43 +03:00 |
|
Nekotekina
|
67b3fc70f8
|
LLVM DSL: implement absd and match helpers
Matcheable expression absd(a, b) (absolute difference).
|
2021-09-17 10:23:43 +03:00 |
|
Nekotekina
|
2268aa9093
|
LLVM DSL: reimplement fre, frsqe, fmax, fmin
|
2021-09-17 10:23:43 +03:00 |
|
Nekotekina
|
4b8ee85995
|
LLVM DSL: reimplement pshufb, add 'calli'
Implement postponed custom intrinsic replacement.
Make bitcast operator static like other ones.
|
2021-09-17 10:23:43 +03:00 |
|
Nekotekina
|
7ec7f261b1
|
LLVM DSL: implement fpcast
|
2021-09-17 10:23:43 +03:00 |
|
Nekotekina
|
1685769bd9
|
LLVM DSL: reimplement fmuladd, force hw fma if present
|
2021-09-17 10:23:43 +03:00 |
|
Nekotekina
|
7cf9d1380b
|
LLVM DSL: add line number in get_const_vector automatically
|
2021-09-17 10:23:43 +03:00 |
|
Nekotekina
|
f188019244
|
LLVM DSL: reimpelement fsqrt, fabs
|
2021-09-17 10:23:43 +03:00 |
|
Nekotekina
|
38dfc88e8d
|
LLVM DSL: reimplement avg
|
2021-09-17 10:23:43 +03:00 |
|
Nekotekina
|
95c36221fa
|
LLVM DSL: reimplement ctlz, ctpop
|
2021-09-17 10:23:43 +03:00 |
|
Malcolm Jestadt
|
43cc62d267
|
SPU LLVM: Add m_use_vnni
- Alderlake and Sapphirerapids will require an update to the llvm fork before they can be detected
|
2021-08-31 14:02:05 +03:00 |
|
Malcolm Jestadt
|
d304b52391
|
SPU LLVM: Add VNNI optimized variant of sumb
- Uses vpdpbusd to horrizontally add values, for some reason this is much faster than the normal horizontal add instructions.
|
2021-08-31 14:02:05 +03:00 |
|
Nekotekina
|
2491aad6f2
|
types.hpp: implement min_v<>, max_v<>, SignedInt, UnsignedInt, FPInt concepts
Restrict smax to only work with signed values for consistency.
Cleanup <climits> includes.
Cleanup <limits> includes.
|
2021-05-23 19:43:51 +03:00 |
|
David Carlier
|
082bbc7336
|
Following up on MacOS build fix.
Specialisation of llvm_value_t to allow build with LLVM this time.
|
2021-04-23 15:20:40 +03:00 |
|
Malcolm Jestadt
|
0a7df9d02e
|
SPU LLVM: add AVX-512 SPU verification
- This is hidden behind a new setting, as some cpus may downclock agressively when executing 512 wide instructions
|
2021-04-16 09:35:26 +03:00 |
|
Megamouse
|
a16d8ba3ea
|
More random changes
|
2021-04-11 14:01:51 +03:00 |
|
Nekotekina
|
95725bf7fc
|
Add -Werror=missing-noreturn (GCC, clang)
May be useful to diagnose functions which fail assertions unconditionally.
|
2021-04-08 10:29:47 +03:00 |
|
Nekotekina
|
2212a131ef
|
Fix some -Weffc++ warnings (part 1)
|
2021-03-31 11:27:09 +03:00 |
|
Nekotekina
|
a4fdbf0a88
|
Enable -Wstrict-aliasing=1 (GCC)
Fixed partially.
|
2021-03-09 03:10:15 +03:00 |
|
Nekotekina
|
87af905018
|
Enable -Wunused-parameter
|
2021-03-06 18:07:08 +03:00 |
|
Malcolm Jestadt
|
486d48e4f8
|
SPU LLVM: Optimize ROTQBY family for VBMI
- Avoid masking pshufb index by 0xf by using vpermb instead.
- Also fix conversion of vperm2b index to ShuffleVector index.
|
2021-01-25 13:18:23 +03:00 |
|
Nekotekina
|
db8e6fe7a7
|
Enable -Wunused-variable
|
2021-01-12 14:34:14 +03:00 |
|
Nekotekina
|
6231b07d2a
|
Silence one warning (clang)
|
2021-01-07 12:42:15 +03:00 |
|
Nekotekina
|
41ee792f95
|
MSVC: remove MemLeak build support
There are better memleak detection tools.
1) Requires to guard placement new and external libs
2) Doesn't work thoroughly
|
2020-12-22 14:32:30 +03:00 |
|
Nekotekina
|
fb29933d3d
|
Add usz alias for std::size_t
|
2020-12-18 12:23:53 +03:00 |
|
Nekotekina
|
e321765c54
|
Split BEType.h to util/v128.hpp and util/to_endian.hpp
|
2020-12-13 16:34:45 +03:00 |
|
Nekotekina
|
a6a5292cd7
|
Use uptr (std::uintptr_t alias)
|
2020-12-12 16:29:55 +03:00 |
|
Nekotekina
|
b59f142d4e
|
Move types.h to util/types.hpp
|
2020-12-12 15:12:01 +03:00 |
|
RipleyTom
|
af8c661a64
|
Remove BOM markers
|
2020-12-06 15:30:12 +03:00 |
|
Nekotekina
|
1b8bf081b5
|
Upgrade to LLVM 11 Stable
|
2020-11-02 21:23:25 +03:00 |
|
Whatcookie
|
9e4f43f4d1
|
SPU LLVM: Add icelake optimized paths for SHUFB (#8712)
|
2020-08-13 15:00:56 +01:00 |
|
Whatcookie
|
4ce2ad54a8
|
PPU LLVM: Use VPERM2B to emulate VPERM (#8704)
- The VPERM2B instructions are a match of VPERM's behavior, besides operating in reverse byte order
|
2020-08-09 01:50:26 +01:00 |
|
Eladash
|
6a51c27fde
|
PPU LLVM: Fix VMAXFP, VMINFP NaN handling
|
2020-08-03 15:43:00 +01:00 |
|
Eladash
|
f6764767f6
|
SPU/PPU LLVM: Fix cpu_translator::get_const_vector<v128>()
|
2020-07-30 17:06:24 +01:00 |
|
Nekotekina
|
e1042bc631
|
Get rid of "module" keyword
Workaround some intellisense problems.
|
2020-05-06 18:20:11 +03:00 |
|
Nekotekina
|
fc68c508c8
|
LLVM DSL: fix FNeg pattern matching
|
2020-05-01 22:00:57 +03:00 |
|
Nekotekina
|
a53d0d50b3
|
SPU LLVM: add alternative ROTQBY implementation
Used if SSSE3 is not available (exec_rotqby).
|
2020-04-04 21:38:40 +03:00 |
|
Nekotekina
|
e4a81b1d13
|
Move Log.h to util/logs.hpp
|
2020-03-07 12:29:23 +03:00 |
|
Nekotekina
|
5b0476e772
|
Update LLVM to new llvm-mirror (LLVM 11)
Use clang-cl to build LLVM on Windows.
|
2020-03-03 18:33:02 +03:00 |
|
JohnHolmesII
|
479a64c4e8
|
Remove some inline compiler pragmas
|
2020-02-23 09:38:04 +03:00 |
|
Nekotekina
|
244e74ebe2
|
Try to ignore some annoying warning (seems CIB)
|
2020-02-17 20:56:03 +03:00 |
|
Eladash
|
c9b0f0e734
|
SPU: Fix FREST
|
2020-01-16 23:42:50 +03:00 |
|