Add support for AvxVnni instructions under Experimental. (#51998)
authorweilinwa <weilin.wang@intel.com>
Wed, 2 Jun 2021 02:18:48 +0000 (19:18 -0700)
committerGitHub <noreply@github.com>
Wed, 2 Jun 2021 02:18:48 +0000 (19:18 -0700)
commitca889dd0afb0a927b6ef704b9814182f288bb214
tree1945e02a5b904fa767dae543f9547f0696b901c8
parent190c69d78f42f6d312d66e3676eef3a714f7bdf2
Add support for AvxVnni instructions under Experimental. (#51998)

* Add support for AvxVnni instructions under Experimental.

* Add support for AvxVnni instructions

* Add preveiw feature attribute

* Handle operands in lsra

* Undo changes for Experimental

* Update JITEEVersionIdentifier and fix remaining issues

* Resolve Mono CI failure

* Disable tests

* Disable Vector128 tests

* Modify disable tests

Co-authored-by: Tanner Gooding <tagoo@outlook.com>
39 files changed:
src/coreclr/inc/corinfoinstructionset.h
src/coreclr/inc/jiteeversionguid.h
src/coreclr/inc/readytoruninstructionset.h
src/coreclr/jit/compiler.cpp
src/coreclr/jit/emitxarch.cpp
src/coreclr/jit/hwintrinsiccodegenxarch.cpp
src/coreclr/jit/hwintrinsiclistxarch.h
src/coreclr/jit/hwintrinsicxarch.cpp
src/coreclr/jit/instrsxarch.h
src/coreclr/jit/jitconfigvalues.h
src/coreclr/jit/lowerxarch.cpp
src/coreclr/jit/lsraxarch.cpp
src/coreclr/tools/Common/Internal/Runtime/ReadyToRunInstructionSet.cs
src/coreclr/tools/Common/Internal/Runtime/ReadyToRunInstructionSetHelper.cs
src/coreclr/tools/Common/JitInterface/CorInfoInstructionSet.cs
src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt
src/coreclr/vm/codeman.cpp
src/libraries/System.Private.CoreLib/src/ILLink/ILLink.Substitutions.NoX86Intrinsics.xml
src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems
src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/AvxVnni.PlatformNotSupported.cs [new file with mode: 0644]
src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/AvxVnni.cs [new file with mode: 0644]
src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs
src/mono/mono/mini/simd-intrinsics.c
src/tests/JIT/HardwareIntrinsics/X86/AvxVnni/MultiplyWideningAndAdd.Byte.cs [new file with mode: 0644]
src/tests/JIT/HardwareIntrinsics/X86/AvxVnni/MultiplyWideningAndAdd.Int16.cs [new file with mode: 0644]
src/tests/JIT/HardwareIntrinsics/X86/AvxVnni/MultiplyWideningAndAddSaturate.Byte.cs [new file with mode: 0644]
src/tests/JIT/HardwareIntrinsics/X86/AvxVnni/MultiplyWideningAndAddSaturate.Int16.cs [new file with mode: 0644]
src/tests/JIT/HardwareIntrinsics/X86/AvxVnni/MultiplyWideningAndAdd_r.csproj [new file with mode: 0644]
src/tests/JIT/HardwareIntrinsics/X86/AvxVnni/MultiplyWideningAndAdd_ro.csproj [new file with mode: 0644]
src/tests/JIT/HardwareIntrinsics/X86/AvxVnni/Program.AvxVnni.cs [new file with mode: 0644]
src/tests/JIT/HardwareIntrinsics/X86/AvxVnni_Vector128/MultiplyWideningAndAdd.Byte.cs [new file with mode: 0644]
src/tests/JIT/HardwareIntrinsics/X86/AvxVnni_Vector128/MultiplyWideningAndAdd.Int16.cs [new file with mode: 0644]
src/tests/JIT/HardwareIntrinsics/X86/AvxVnni_Vector128/MultiplyWideningAndAddSaturate.Byte.cs [new file with mode: 0644]
src/tests/JIT/HardwareIntrinsics/X86/AvxVnni_Vector128/MultiplyWideningAndAddSaturate.Int16.cs [new file with mode: 0644]
src/tests/JIT/HardwareIntrinsics/X86/AvxVnni_Vector128/MultiplyWideningAndAdd_r.csproj [new file with mode: 0644]
src/tests/JIT/HardwareIntrinsics/X86/AvxVnni_Vector128/MultiplyWideningAndAdd_ro.csproj [new file with mode: 0644]
src/tests/JIT/HardwareIntrinsics/X86/AvxVnni_Vector128/Program.AvxVnni_Vector128.cs [new file with mode: 0644]
src/tests/JIT/HardwareIntrinsics/X86/Shared/Program.cs
src/tests/issues.targets