diff options
| author | JosJuice <josjuice@gmail.com> | 2025-10-03 20:32:27 +0200 |
|---|---|---|
| committer | JosJuice <josjuice@gmail.com> | 2026-01-18 20:03:54 +0100 |
| commit | 3b1a4739bc02942fe4995ede8908bb625a4226f1 (patch) | |
| tree | aa082126376656dc285a124ccb31067dd3f93c4a /Source/Core/DolphinQt/RiivolutionBootWidget.cpp | |
| parent | 58487f1633b1e00d0ba7091ec96dc7c39afe8617 (diff) | |
JitArm64: Special-case fmadds with single-precision inputs
If all inputs to an fmadds instruction (including cousins like fmsubs,
fnmadd...) are single-precision, then the result is identical between a
double-precision calculation with an error-free transform (whether the
calculation is fused or not) and a single-precision FMA instruction
(must be fused). So as a performance optimization in JitArm64, if we
were going to use double precision with EFT but the inputs are singles,
instead we'll use a normal single-precision FMA instruction without
anything extra. This lets us skip both the EFT and double-to-single
conversions.
Also renaming `inaccurate_fma` to `nonfused` because it's confusing that
`inaccurate_fma` and `m_accurate_fmadds` have such similar names
despite controlling separate things.
Diffstat (limited to 'Source/Core/DolphinQt/RiivolutionBootWidget.cpp')
0 files changed, 0 insertions, 0 deletions
