Enable the HWIntrinsic extension methods and remove the instance implementations...
authorTanner Gooding <tagoo@outlook.com>
Thu, 21 Feb 2019 11:09:40 +0000 (03:09 -0800)
committerGitHub <noreply@github.com>
Thu, 21 Feb 2019 11:09:40 +0000 (03:09 -0800)
commit4ba958c9fd412b217e21a1dd508ec466a21aa462
treeb405b229b15ba500dec8b72e61460e5a7752fc1d
parentfeed8ae9df458f336b2dd76cc9abe934bb2a5751
Enable the HWIntrinsic extension methods and remove the instance implementations (#22705)

* Removing various S.R.I.Vector instance method APIs, since they should now be exposed as extension methods

* Updating the JIT to recognize the S.R.I.Vector extension methods.

* Updating various S.R.I.Vector test templates

* Regenerating the S.R.I tests that are created from a template.

* Fixing the numArgs for Base_Vector256_GetLower

* Fixing the handling for `Base_VectorXXX_As` to normalize the struct type.

* Adding the Base_Vector128_As intrinsics back for arm64
196 files changed:
src/System.Private.CoreLib/shared/System/Runtime/Intrinsics/Vector128.cs
src/System.Private.CoreLib/shared/System/Runtime/Intrinsics/Vector128_1.cs
src/System.Private.CoreLib/shared/System/Runtime/Intrinsics/Vector256.cs
src/System.Private.CoreLib/shared/System/Runtime/Intrinsics/Vector256_1.cs
src/System.Private.CoreLib/shared/System/Runtime/Intrinsics/Vector64_1.cs
src/jit/compiler.h
src/jit/hwintrinsicArm64.cpp
src/jit/hwintrinsiclistxarch.h
src/jit/hwintrinsicxarch.cpp
src/jit/importer.cpp
tests/src/JIT/HardwareIntrinsics/General/Shared/VectorAsTest.template
tests/src/JIT/HardwareIntrinsics/General/Shared/VectorExtendTest.template
tests/src/JIT/HardwareIntrinsics/General/Shared/VectorGetAndWithElementTest.template
tests/src/JIT/HardwareIntrinsics/General/Shared/VectorGetAndWithLowerAndUpperTest.template
tests/src/JIT/HardwareIntrinsics/General/Shared/VectorToScalarTest.template
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/As.Byte.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/As.Double.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/As.Int16.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/As.Int32.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/As.Int64.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/As.SByte.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/As.Single.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/As.UInt16.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/As.UInt32.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/As.UInt64.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.Byte.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.Byte.15.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.Byte.7.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.Double.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.Double.1.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.Int16.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.Int16.3.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.Int16.7.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.Int32.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.Int32.1.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.Int32.3.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.Int64.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.Int64.1.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.SByte.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.SByte.15.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.SByte.7.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.Single.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.Single.1.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.Single.3.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.UInt16.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.UInt16.3.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.UInt16.7.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.UInt32.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.UInt32.1.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.UInt32.3.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.UInt64.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithElement.UInt64.1.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithLowerAndUpper.Byte.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithLowerAndUpper.Double.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithLowerAndUpper.Int16.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithLowerAndUpper.Int32.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithLowerAndUpper.Int64.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithLowerAndUpper.SByte.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithLowerAndUpper.Single.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithLowerAndUpper.UInt16.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithLowerAndUpper.UInt32.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/GetAndWithLowerAndUpper.UInt64.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/ToScalar.Byte.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/ToScalar.Double.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/ToScalar.Int16.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/ToScalar.Int32.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/ToScalar.Int64.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/ToScalar.SByte.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/ToScalar.Single.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/ToScalar.UInt16.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/ToScalar.UInt32.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/ToScalar.UInt64.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/ToVector256.Byte.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/ToVector256.Double.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/ToVector256.Int16.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/ToVector256.Int32.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/ToVector256.Int64.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/ToVector256.SByte.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/ToVector256.Single.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/ToVector256.UInt16.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/ToVector256.UInt32.cs
tests/src/JIT/HardwareIntrinsics/General/Vector128_1/ToVector256.UInt64.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/As.Byte.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/As.Double.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/As.Int16.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/As.Int32.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/As.Int64.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/As.SByte.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/As.Single.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/As.UInt16.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/As.UInt32.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/As.UInt64.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.Byte.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.Byte.15.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.Byte.31.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.Byte.7.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.Double.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.Double.1.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.Double.3.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.Int16.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.Int16.15.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.Int16.3.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.Int16.7.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.Int32.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.Int32.1.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.Int32.3.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.Int32.7.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.Int64.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.Int64.1.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.Int64.3.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.SByte.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.SByte.15.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.SByte.31.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.SByte.7.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.Single.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.Single.1.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.Single.3.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.Single.7.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.UInt16.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.UInt16.15.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.UInt16.3.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.UInt16.7.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.UInt32.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.UInt32.1.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.UInt32.3.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.UInt32.7.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.UInt64.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.UInt64.1.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithElement.UInt64.3.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithLowerAndUpper.Byte.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithLowerAndUpper.Double.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithLowerAndUpper.Int16.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithLowerAndUpper.Int32.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithLowerAndUpper.Int64.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithLowerAndUpper.SByte.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithLowerAndUpper.Single.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithLowerAndUpper.UInt16.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithLowerAndUpper.UInt32.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/GetAndWithLowerAndUpper.UInt64.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/ToScalar.Byte.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/ToScalar.Double.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/ToScalar.Int16.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/ToScalar.Int32.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/ToScalar.Int64.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/ToScalar.SByte.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/ToScalar.Single.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/ToScalar.UInt16.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/ToScalar.UInt32.cs
tests/src/JIT/HardwareIntrinsics/General/Vector256_1/ToScalar.UInt64.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/As.Byte.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/As.Double.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/As.Int16.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/As.Int32.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/As.Int64.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/As.SByte.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/As.Single.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/As.UInt16.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/As.UInt32.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/As.UInt64.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/GetAndWithElement.Byte.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/GetAndWithElement.Byte.7.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/GetAndWithElement.Double.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/GetAndWithElement.Int16.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/GetAndWithElement.Int16.3.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/GetAndWithElement.Int32.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/GetAndWithElement.Int32.1.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/GetAndWithElement.Int64.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/GetAndWithElement.SByte.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/GetAndWithElement.SByte.7.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/GetAndWithElement.Single.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/GetAndWithElement.Single.1.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/GetAndWithElement.UInt16.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/GetAndWithElement.UInt16.3.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/GetAndWithElement.UInt32.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/GetAndWithElement.UInt32.1.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/GetAndWithElement.UInt64.0.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/ToScalar.Byte.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/ToScalar.Double.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/ToScalar.Int16.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/ToScalar.Int32.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/ToScalar.Int64.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/ToScalar.SByte.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/ToScalar.Single.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/ToScalar.UInt16.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/ToScalar.UInt32.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/ToScalar.UInt64.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/ToVector128.Byte.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/ToVector128.Double.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/ToVector128.Int16.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/ToVector128.Int32.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/ToVector128.Int64.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/ToVector128.SByte.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/ToVector128.Single.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/ToVector128.UInt16.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/ToVector128.UInt32.cs
tests/src/JIT/HardwareIntrinsics/General/Vector64_1/ToVector128.UInt64.cs