Porting additional SIMD Intrinsics to use SimdAsHWIntrinsic (#37882)
* Moving SIMDIntrinsicInit to use SimdAsHWIntrinsic
* Optimize the simple case of Create(0) and Create(-1) to get_Zero and get_AllBitsSet
* Adding a new gtNewSimdCreateBroadcastNode method
* Updating SIMDIntrinsicGetOne to use SimdAsHWIntrinsic
* Fixing build errors
* Ensure all forms of ToScalar are intrinsic on x86
* Moving SIMDIntrinsicDot to use SimdAsHWIntrinsic
* Removing SIMDIntrinsicDot, SIMDIntrinsicAdd, SIMDIntrinsicMul, and SIMDIntrinsicDiv
* Removing SIMDIntrinsicGetCount, SIMDIntrinsicGetOne, SIMDIntrinsicGetAllOnes, and SIMDIntrinsicGetZero
* Default TYP_SIMD12 constants to be 16 bytes
* Get the simdType from the size for LowerHWIntrinsicDot
* Applying formatting patch
* Use AddPairwise for floating-point dot product
* Applying formatting patch
* Correctly handle decomposed long constants on x86
* Check JitConfig.EnableHWIntrinsic when in impSIMDIntrinsic or impSimdAsHWIntrinsic
* Ensure AdvSimd.Arm64.Multiply is used for TYP_DOUBLE
* Applying formatting patch
* Updating LowerHWIntrinsicCreate to handle TYP_SIMD8 retyped as TYP_DOUBLE and fixing VectorT128_get_One
* Ensure the CreateBroadcast SimdAsHWIntrinsic nodes have the correct gtType
* Applying formatting patch
* Apply suggestions from code review
Co-authored-by: Carol Eidt <carol.eidt@microsoft.com>
* Adding some additional clarifying comments
* Breaking NI_Vector256_ToScalar importation logic into its own checks
* Applying formatting patch
Co-authored-by: Carol Eidt <carol.eidt@microsoft.com>
20 files changed: