Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
### Known Issues - half8 "equals" and "not equals" operators don't conform to the IEEE 754 standard - Unity has not yet reacted to my bug-report in regards to their "half" implementation ### Fixes - fixed undefined behavior of "vshr" functions for vector types smaller than 128 bits - fixed SSE2 implementations of "vrol" and "vror" functions for the (u)short16 type ### Additions - implemented Bmi1 and Bmi2 intrinsics as functions with a "bits_" prefix (except for "andn", which has already been implemented as "andnot") - added high performance and/or SIMD "isdivisible" functions for all integer vector types and scalar value types - added high performance and/or SIMD "intpow" - integer exponantiation - functions for (u)int, (u)long and all integer vector types - added high performance and/or SIMD "floorpow2" functions for all integer vector types - added "nabs" - negative absolute value functions for all non-boolean vector- and single value types - added "indexof(vector v, value x)" functions for all non-boolean vector types ### Improvements - aggressivley optimized away global variables (shuffle masks) and thus memory access and usage where appropriate - improved performance of 256 bit vector subvector getters - added Sse2 fallback code for all (u)long2/3/4 operators - improved performance of mulitplication, division and modulo operations for all (s)byte- and (u)short vector- and matrix types when dividing by a single non-compile time constant value - added overloads for (s)byte- and (u)short vectors' "divrem" functions with a scalar value as the divisor parameter, improving performance when it is a compile time constant - improved performance of "intsqrt" functions for most types ### Changes - bump com.unity.burst to version 1.5 ### Fixed Oversights - added bitmask8 and bitmask16 functions for (s)byte and (u)short vector types, respectively
- Loading branch information