SimdAsHWIntrinsic improvements and cleanup (#80134)
authorTanner Gooding <tagoo@outlook.com>
Fri, 6 Jan 2023 18:58:01 +0000 (10:58 -0800)
committerGitHub <noreply@github.com>
Fri, 6 Jan 2023 18:58:01 +0000 (10:58 -0800)
commit1808d1c812ba1d1c2873023685530c853eb8dce1
tree86f19816a173acabfd6cafcdaaa0bc6f9c4f7c22
parentc5f5e6ab314fc466fece0553abd6ffd6fce492f6
SimdAsHWIntrinsic improvements and cleanup (#80134)

* Merge common code paths in simdashwintrinsic.cpp

* Fixing a bug in the WithElement node for CreateFromVector

* Ensure simdashwintrinsic paths consistently use the gtNewSimd*Node helpers where one path was already

* Ensure remaining simdashwintrinsic paths use the gtNewSimd*Node helpers

* Consistently use fgMakeMultiUse in the gtNewSimd*Node APIs

* Applying formatting patch

* Ensure isSimdAsHWIntrinsic gets passed through

* Revert "Consistently use fgMakeMultiUse in the gtNewSimd*Node APIs"

This reverts commit edb2ce8aa64c123f9407bd2a2f44c08900c54295.

* Handle SN_op_UnaryNegation for Vector2/3/4 on Mono

* Ensure short, ushort, float, and double don't assert for Vector128_Dot on downlevel hardware
src/coreclr/jit/gentree.cpp
src/coreclr/jit/hwintrinsicxarch.cpp
src/coreclr/jit/simdashwintrinsic.cpp
src/coreclr/jit/simdashwintrinsic.h
src/coreclr/jit/simdashwintrinsiclistarm64.h
src/coreclr/jit/simdashwintrinsiclistxarch.h
src/libraries/System.Private.CoreLib/src/System/Numerics/Vector2.cs
src/libraries/System.Private.CoreLib/src/System/Numerics/Vector3.cs
src/libraries/System.Private.CoreLib/src/System/Numerics/Vector4.cs
src/mono/mono/mini/simd-intrinsics.c