Ensure that the S.N.Vector methods are marked as [Intrinsic] and that the attribute...
authorTanner Gooding <tagoo@outlook.com>
Fri, 21 Dec 2018 21:13:21 +0000 (13:13 -0800)
committerGitHub <noreply@github.com>
Fri, 21 Dec 2018 21:13:21 +0000 (13:13 -0800)
commit20dbfee9dc7bea590c359aaa8ebdd5cf47c46186
treee2a185950f23fc7061a76094c71ac8b2cdf40455
parent4306c0776b5bc973d185a2d9852dc26433304b96
Ensure that the S.N.Vector methods are marked as [Intrinsic] and that the attribute is respected by the runtime (dotnet/coreclr#21601)

* Updating the SIMD intrinsics to check for the `[Intrinsic]` attribute

* Ensure that the existing Vector/Vector<T> intrinsic methods are marked as such.

* Fixing Vector<T>.DotProduct and Vector.AndNot to be treated as intrinsic

* Fixing `SIMDIntrinsicBitwiseAndNot` to swap the operands for XARCH

Commit migrated from https://github.com/dotnet/coreclr/commit/61c8abe982bc1936112ea843524b0921e373f40f
src/coreclr/src/jit/compiler.h
src/coreclr/src/jit/importer.cpp
src/coreclr/src/jit/simd.cpp
src/coreclr/src/jit/simdintrinsiclist.h
src/coreclr/src/vm/methodtablebuilder.cpp
src/libraries/System.Private.CoreLib/src/System/Numerics/Vector.cs
src/libraries/System.Private.CoreLib/src/System/Numerics/Vector.tt
src/libraries/System.Private.CoreLib/src/System/Numerics/Vector_Operations.cs