Closed BigUglySpider closed 2 years ago
Note: This branch is being merged into MatrixUpdate-MiscMath
as it initially branched off from it, primarily to take advantage of any new TMP items that could have been helpful. As this branch is not ready to merge into MatrixUpdate
, let alone dev-unstable
, this completed feature will be provided as part of the MatrixUpdate-MiscMath
branch and, ultimately, placed in dev-unstable
once MatrixUpdate
is completed.
Took a diversion when inspiration hit for an approach to implementing templatised SIMD Vectors.
This adds a significant amount to
EmuSIMD
, but the star of the show isEmuMath::FastVector<Size_, T_, RegisterWidth_ = 128>
, which provides the following benefits:EmuSIMD
templates to provide a generic approach to interacting with SIMD Vectors of arbitrary types and widthsEmuMath::Vector
, adaptively making use ofstore
andload
intrinsics respectively when possible to optimise conversion speedsEmuMath::Vector
functionalities (and all that are highly common for graphical mathematics), but taking advantage of explicit use of SIMD intrinsics to boost performanceEmuMath::Vector
(albeit still somewhat flexible with certain functions) to prevent users from straying too far from a performance focusEmuMath::Vector
) to allow users to optimise for specific use casesGetRegister
).