Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Optimize some Matrix4x4 operations with SSE (dotnet/corefx#31779)
* Optimize some Matrix4x4 operations with SSE * fix typo * use SetZeroVector128 instead of SetAllVector128(0.0f) * [StructLayout(LayoutKind.Sequential)] on top of Matrix4x4 * collapse operators (call corresponding methods) * mark operators with [MethodImpl(MethodImplOptions.AggressiveInlining)] * remove [MethodImpl(MethodImplOptions.AggressiveInlining)], call operators inside static methods if SSE is enabled (operators should be small enough to be inlined) * overwrite value1 in Multiply instead of new instance * Optimize == and != * prefer CompareNotEqual than CompareEqual * fix typo in == and != * clean up methods-operators * optimize Transpose * simplify Equals * improve Transpose * Lerp as a separate method * remove SSE from != as it fails some NaN-related tests * remove unsafe from != * wrap intrinsics with #if netcoreapp * forgot Letp method and usings * define netcoreapp in csproj * rename netcoreapp symbol to HAS_INTRINSICS * Move Equal and Lerp to VectorMath.cs internal helper * Implement != operator * Debug.Assert(Sse.IsSupported) in VectorMath * replace SetAllVector with Shuffle in Multiply * remove #if HAS_INTRINSICS from VectorMath * fix indention in System.Numerics.Vectors.csproj Commit migrated from dotnet/corefx@5ab0d37
- Loading branch information