From b5948bf4036215d9ccc022e17effd73228d19ede Mon Sep 17 00:00:00 2001 From: Khushal Modi Date: Sat, 8 Jun 2024 20:03:38 -0700 Subject: [PATCH] AVX10.1 API introduction in JIT (#101938) * Add AVX10v1 API surface * Define HWINTRINSIC for AVX10v1, AVX10v1_V256 and AVX10v1_V512 * Setup template testing for AVX10v1 APIs * Handle AVX10v1 APIs in JIT where equivalent AVX512* APIs are handled * Merge Avx10v1 and Avx10v1.V256. Rename Avx10.cs to Avx10v1.cs * Add Avx10v1 to relevant places * Fix CI errors. Add missing API in Avx10v1.PlatofrmNotSupported ad end line with a new character * Changes to be made with latest changes on main. Make appropriate comments. Update tests in template testing for Avx10v1 * Lower AVX10v1 hwintrinsic in lowering and gentree.cpp for simdSize 32/16 * Fix failures on GNR for AVX10v1 * Disable template tests disabled for Avx512 * Distinguish between Avx10v1 and Avx10v1/512, Add appropriate comments and clean up code in lowerCast * Remove duplicate code and rather use a single if condition * Use bool instead of compIsa checks where possible * remove duplication of code in shuffle * resolve review comments. Make evex encoding checks clear to read and resolve a bug in gtNewSimdCvtNode * Add FMA and Avx512F.X64 instructions to AVX10v1. Restructure code and compOpportunistic checks * Combine compOpportunistic checks with Avx10 check using IsAvx10OrIsaSupportedOpportunistically * Introduce a new internal ISA InstructionSet_EVEX and remove InstructionSet_AVX10v1_V256 to make space for the new ISA. Also change all the internal special intrinsic nodes for Avx512F on x86/x64 arch to evex nodes * Addressing review comments. resolving errors introduced when merged with main * fix formatting * Reorder declaration of InstructionSet_EVEX to proper position. Run formatting adn resolve errors introduced when merging with main --- src/coreclr/inc/corinfoinstructionset.h | 164 +- src/coreclr/inc/jiteeversionguid.h | 10 +- src/coreclr/inc/readytoruninstructionset.h | 2 +- src/coreclr/jit/assertionprop.cpp | 4 +- src/coreclr/jit/codegencommon.cpp | 34 +- src/coreclr/jit/codegenxarch.cpp | 37 +- src/coreclr/jit/compiler.cpp | 1 - src/coreclr/jit/compiler.h | 94 +- src/coreclr/jit/gentree.cpp | 260 +- src/coreclr/jit/gentree.h | 4 +- src/coreclr/jit/hwintrinsiccodegenxarch.cpp | 69 +- src/coreclr/jit/hwintrinsiclistxarch.h | 218 +- src/coreclr/jit/hwintrinsicxarch.cpp | 231 +- src/coreclr/jit/importercalls.cpp | 49 +- src/coreclr/jit/importervectorization.cpp | 4 +- src/coreclr/jit/lowerxarch.cpp | 303 +- src/coreclr/jit/lsraxarch.cpp | 25 +- src/coreclr/jit/morph.cpp | 39 +- src/coreclr/jit/simdashwintrinsic.cpp | 62 +- src/coreclr/jit/valuenum.cpp | 24 +- .../Compiler/HardwareIntrinsicHelpers.cs | 12 +- .../Runtime/ReadyToRunInstructionSet.cs | 2 +- .../Runtime/ReadyToRunInstructionSetHelper.cs | 8 +- .../JitInterface/CorInfoInstructionSet.cs | 198 +- .../ThunkGenerator/InstructionSetDesc.txt | 17 +- src/coreclr/vm/codeman.cpp | 12 +- .../ILLink.Substitutions.NoX86Intrinsics.xml | 6 + .../System.Private.CoreLib.Shared.projitems | 3 + .../X86/Avx10v1.PlatformNotSupported.cs | 3385 +++++++++++++++++ .../System/Runtime/Intrinsics/X86/Avx10v1.cs | 3375 ++++++++++++++++ .../ref/System.Runtime.Intrinsics.cs | 567 +++ .../ILLink.Substitutions.Intrinsics.x86.xml | 12 + src/mono/mono/mini/simd-intrinsics.c | 1 + src/native/minipal/cpufeatures.c | 7 +- src/native/minipal/cpufeatures.h | 4 +- .../GenerateHWIntrinsicTests_X86.cs | 1382 +++++++ .../HardwareIntrinsics_X86_Avx10v1_r.csproj | 20 + .../HardwareIntrinsics_X86_Avx10v1_ro.csproj | 20 + .../Shared/SimpleUnaryOpEmbRounding.template | 24 + .../Avx10v1AbsTest.cs | 79 + ...Avx512BW_VL_Vector128_handwritten_r.csproj | 14 + ...vx512BW_VL_Vector128_handwritten_ro.csproj | 14 + .../Avx10v1_Avx512BW_VL_Vector128_r.csproj | 14 + .../Avx10v1_Avx512BW_VL_Vector128_ro.csproj | 14 + ...HardwareIntrinsics_X86_Avx10_r.tempLog.xml | 10 + ...wareIntrinsics_X86_Avx10_r.testResults.xml | 31 + ...rdwareIntrinsics_X86_Avx10_r.testStats.csv | 2 + .../Program.Avx10v1_Avx512BW_VL_Vector128.cs | 16 + ...Avx512BW_VL_Vector256_handwritten_r.csproj | 13 + ...vx512BW_VL_Vector256_handwritten_ro.csproj | 13 + .../Avx10v1_Avx512BW_VL_Vector256_r.csproj | 14 + .../Avx10v1_Avx512BW_VL_Vector256_ro.csproj | 14 + .../Program.Avx10v1_Avx512BW_VL_Vector256.cs | 16 + ...Avx512CD_VL_Vector128_handwritten_r.csproj | 13 + ...vx512CD_VL_Vector128_handwritten_ro.csproj | 13 + .../Avx10v1_Avx512CD_VL_Vector128_r.csproj | 14 + .../Avx10v1_Avx512CD_VL_Vector128_ro.csproj | 14 + .../Program.Avx10v1_Avx512CD_VL_Vector128.cs | 16 + ...Avx512CD_VL_Vector256_handwritten_r.csproj | 13 + ...vx512CD_VL_Vector256_handwritten_ro.csproj | 13 + .../Avx10v1_Avx512CD_VL_Vector256_r.csproj | 14 + .../Avx10v1_Avx512CD_VL_Vector256_ro.csproj | 14 + .../Program.Avx10v1_Avx512CD_VL_Vector256.cs | 16 + ...Avx512DQ_VL_Vector128_handwritten_r.csproj | 13 + ...vx512DQ_VL_Vector128_handwritten_ro.csproj | 13 + .../Avx10v1_Avx512DQ_VL_Vector128_r.csproj | 14 + .../Avx10v1_Avx512DQ_VL_Vector128_ro.csproj | 14 + .../Program.Avx10v1_Avx512DQ_VL_Vector128.cs | 16 + ...Avx512DQ_VL_Vector256_handwritten_r.csproj | 13 + ...vx512DQ_VL_Vector256_handwritten_ro.csproj | 13 + .../Avx10v1_Avx512DQ_VL_Vector256_r.csproj | 14 + .../Avx10v1_Avx512DQ_VL_Vector256_ro.csproj | 14 + .../Program.Avx10v1_Avx512DQ_VL_Vector256.cs | 16 + ...1_Avx512F_ScalarUpper_handwritten_r.csproj | 13 + ..._Avx512F_ScalarUpper_handwritten_ro.csproj | 13 + .../Avx10v1_Avx512F_ScalarUpper_r.csproj | 14 + .../Avx10v1_Avx512F_ScalarUpper_ro.csproj | 14 + .../Program.Avx10v1_Avx512F_ScalarUpper.cs | 16 + ..._Avx512F_VL_Vector128_handwritten_r.csproj | 13 + ...Avx512F_VL_Vector128_handwritten_ro.csproj | 13 + .../Avx10v1_Avx512F_VL_Vector128_r.csproj | 14 + .../Avx10v1_Avx512F_VL_Vector128_ro.csproj | 14 + .../Program.Avx10v1_Avx512F_VL_Vector128.cs | 16 + ..._Avx512F_VL_Vector256_handwritten_r.csproj | 13 + ...Avx512F_VL_Vector256_handwritten_ro.csproj | 13 + .../Avx10v1_Avx512F_VL_Vector256_r.csproj | 14 + .../Avx10v1_Avx512F_VL_Vector256_ro.csproj | 14 + .../Program.Avx10v1_Avx512F_VL_Vector256.cs | 16 + ...x512Vbmi_VL_Vector128_handwritten_r.csproj | 13 + ...512Vbmi_VL_Vector128_handwritten_ro.csproj | 13 + .../Avx10v1_Avx512Vbmi_VL_Vector128_r.csproj | 14 + .../Avx10v1_Avx512Vbmi_VL_Vector128_ro.csproj | 14 + ...Program.Avx10v1_Avx512Vbmi_VL_Vector128.cs | 16 + ...x512Vbmi_VL_Vector256_handwritten_r.csproj | 13 + ...512Vbmi_VL_Vector256_handwritten_ro.csproj | 13 + .../Avx10v1_Avx512Vbmi_VL_Vector256_r.csproj | 14 + .../Avx10v1_Avx512Vbmi_VL_Vector256_ro.csproj | 14 + ...Program.Avx10v1_Avx512Vbmi_VL_Vector256.cs | 16 + ...Avx10v1_V512_Avx512CD_handwritten_r.csproj | 13 + ...vx10v1_V512_Avx512CD_handwritten_ro.csproj | 13 + .../Avx10v1_V512_Avx512CD_r.csproj | 14 + .../Avx10v1_V512_Avx512CD_ro.csproj | 14 + .../Program.Avx10v1_V512_Avx512CD.cs | 16 + ...Avx10v1_V512_Avx512DQ_handwritten_r.csproj | 13 + ...vx10v1_V512_Avx512DQ_handwritten_ro.csproj | 13 + .../Avx10v1_V512_Avx512DQ_r.csproj | 14 + .../Avx10v1_V512_Avx512DQ_ro.csproj | 14 + .../Program.Avx10v1_V512_Avx512DQ.cs | 16 + ...x10v1_V512_Avx512Vbmi_handwritten_r.csproj | 13 + ...10v1_V512_Avx512Vbmi_handwritten_ro.csproj | 13 + .../Avx10v1_V512_Avx512Vbmi_r.csproj | 14 + .../Avx10v1_V512_Avx512Vbmi_ro.csproj | 14 + .../Program.Avx10v1_V512_Avx512Vbmi.cs | 16 + .../X86_Avx10v1/Directory.Build.props | 10 + .../X86_Avx10v1/Directory.Build.targets | 32 + 115 files changed, 11280 insertions(+), 555 deletions(-) create mode 100644 src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Avx10v1.PlatformNotSupported.cs create mode 100644 src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Avx10v1.cs create mode 100644 src/tests/JIT/HardwareIntrinsics/HardwareIntrinsics_X86_Avx10v1_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/HardwareIntrinsics_X86_Avx10v1_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/Avx10v1AbsTest.cs create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/Avx10v1_Avx512BW_VL_Vector128_handwritten_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/Avx10v1_Avx512BW_VL_Vector128_handwritten_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/Avx10v1_Avx512BW_VL_Vector128_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/Avx10v1_Avx512BW_VL_Vector128_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/HardwareIntrinsics_X86_Avx10_r.tempLog.xml create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/HardwareIntrinsics_X86_Avx10_r.testResults.xml create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/HardwareIntrinsics_X86_Avx10_r.testStats.csv create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/Program.Avx10v1_Avx512BW_VL_Vector128.cs create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector256/Avx10v1_Avx512BW_VL_Vector256_handwritten_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector256/Avx10v1_Avx512BW_VL_Vector256_handwritten_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector256/Avx10v1_Avx512BW_VL_Vector256_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector256/Avx10v1_Avx512BW_VL_Vector256_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector256/Program.Avx10v1_Avx512BW_VL_Vector256.cs create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector128/Avx10v1_Avx512CD_VL_Vector128_handwritten_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector128/Avx10v1_Avx512CD_VL_Vector128_handwritten_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector128/Avx10v1_Avx512CD_VL_Vector128_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector128/Avx10v1_Avx512CD_VL_Vector128_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector128/Program.Avx10v1_Avx512CD_VL_Vector128.cs create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector256/Avx10v1_Avx512CD_VL_Vector256_handwritten_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector256/Avx10v1_Avx512CD_VL_Vector256_handwritten_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector256/Avx10v1_Avx512CD_VL_Vector256_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector256/Avx10v1_Avx512CD_VL_Vector256_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector256/Program.Avx10v1_Avx512CD_VL_Vector256.cs create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector128/Avx10v1_Avx512DQ_VL_Vector128_handwritten_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector128/Avx10v1_Avx512DQ_VL_Vector128_handwritten_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector128/Avx10v1_Avx512DQ_VL_Vector128_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector128/Avx10v1_Avx512DQ_VL_Vector128_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector128/Program.Avx10v1_Avx512DQ_VL_Vector128.cs create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector256/Avx10v1_Avx512DQ_VL_Vector256_handwritten_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector256/Avx10v1_Avx512DQ_VL_Vector256_handwritten_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector256/Avx10v1_Avx512DQ_VL_Vector256_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector256/Avx10v1_Avx512DQ_VL_Vector256_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector256/Program.Avx10v1_Avx512DQ_VL_Vector256.cs create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_ScalarUpper/Avx10v1_Avx512F_ScalarUpper_handwritten_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_ScalarUpper/Avx10v1_Avx512F_ScalarUpper_handwritten_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_ScalarUpper/Avx10v1_Avx512F_ScalarUpper_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_ScalarUpper/Avx10v1_Avx512F_ScalarUpper_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_ScalarUpper/Program.Avx10v1_Avx512F_ScalarUpper.cs create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector128/Avx10v1_Avx512F_VL_Vector128_handwritten_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector128/Avx10v1_Avx512F_VL_Vector128_handwritten_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector128/Avx10v1_Avx512F_VL_Vector128_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector128/Avx10v1_Avx512F_VL_Vector128_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector128/Program.Avx10v1_Avx512F_VL_Vector128.cs create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector256/Avx10v1_Avx512F_VL_Vector256_handwritten_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector256/Avx10v1_Avx512F_VL_Vector256_handwritten_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector256/Avx10v1_Avx512F_VL_Vector256_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector256/Avx10v1_Avx512F_VL_Vector256_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector256/Program.Avx10v1_Avx512F_VL_Vector256.cs create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector128/Avx10v1_Avx512Vbmi_VL_Vector128_handwritten_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector128/Avx10v1_Avx512Vbmi_VL_Vector128_handwritten_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector128/Avx10v1_Avx512Vbmi_VL_Vector128_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector128/Avx10v1_Avx512Vbmi_VL_Vector128_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector128/Program.Avx10v1_Avx512Vbmi_VL_Vector128.cs create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector256/Avx10v1_Avx512Vbmi_VL_Vector256_handwritten_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector256/Avx10v1_Avx512Vbmi_VL_Vector256_handwritten_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector256/Avx10v1_Avx512Vbmi_VL_Vector256_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector256/Avx10v1_Avx512Vbmi_VL_Vector256_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector256/Program.Avx10v1_Avx512Vbmi_VL_Vector256.cs create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512CD/Avx10v1_V512_Avx512CD_handwritten_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512CD/Avx10v1_V512_Avx512CD_handwritten_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512CD/Avx10v1_V512_Avx512CD_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512CD/Avx10v1_V512_Avx512CD_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512CD/Program.Avx10v1_V512_Avx512CD.cs create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512DQ/Avx10v1_V512_Avx512DQ_handwritten_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512DQ/Avx10v1_V512_Avx512DQ_handwritten_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512DQ/Avx10v1_V512_Avx512DQ_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512DQ/Avx10v1_V512_Avx512DQ_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512DQ/Program.Avx10v1_V512_Avx512DQ.cs create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512Vbmi/Avx10v1_V512_Avx512Vbmi_handwritten_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512Vbmi/Avx10v1_V512_Avx512Vbmi_handwritten_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512Vbmi/Avx10v1_V512_Avx512Vbmi_r.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512Vbmi/Avx10v1_V512_Avx512Vbmi_ro.csproj create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512Vbmi/Program.Avx10v1_V512_Avx512Vbmi.cs create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Directory.Build.props create mode 100644 src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Directory.Build.targets diff --git a/src/coreclr/inc/corinfoinstructionset.h b/src/coreclr/inc/corinfoinstructionset.h index e3b57b6a1e043..d83f6c0cc94a4 100644 --- a/src/coreclr/inc/corinfoinstructionset.h +++ b/src/coreclr/inc/corinfoinstructionset.h @@ -65,18 +65,18 @@ enum CORINFO_InstructionSet InstructionSet_AVXVNNI=20, InstructionSet_MOVBE=21, InstructionSet_X86Serialize=22, - InstructionSet_AVX512F=23, - InstructionSet_AVX512F_VL=24, - InstructionSet_AVX512BW=25, - InstructionSet_AVX512BW_VL=26, - InstructionSet_AVX512CD=27, - InstructionSet_AVX512CD_VL=28, - InstructionSet_AVX512DQ=29, - InstructionSet_AVX512DQ_VL=30, - InstructionSet_AVX512VBMI=31, - InstructionSet_AVX512VBMI_VL=32, - InstructionSet_AVX10v1=33, - InstructionSet_AVX10v1_V256=34, + InstructionSet_EVEX=23, + InstructionSet_AVX512F=24, + InstructionSet_AVX512F_VL=25, + InstructionSet_AVX512BW=26, + InstructionSet_AVX512BW_VL=27, + InstructionSet_AVX512CD=28, + InstructionSet_AVX512CD_VL=29, + InstructionSet_AVX512DQ=30, + InstructionSet_AVX512DQ_VL=31, + InstructionSet_AVX512VBMI=32, + InstructionSet_AVX512VBMI_VL=33, + InstructionSet_AVX10v1=34, InstructionSet_AVX10v1_V512=35, InstructionSet_VectorT128=36, InstructionSet_VectorT256=37, @@ -100,18 +100,18 @@ enum CORINFO_InstructionSet InstructionSet_AVXVNNI_X64=55, InstructionSet_MOVBE_X64=56, InstructionSet_X86Serialize_X64=57, - InstructionSet_AVX512F_X64=58, - InstructionSet_AVX512F_VL_X64=59, - InstructionSet_AVX512BW_X64=60, - InstructionSet_AVX512BW_VL_X64=61, - InstructionSet_AVX512CD_X64=62, - InstructionSet_AVX512CD_VL_X64=63, - InstructionSet_AVX512DQ_X64=64, - InstructionSet_AVX512DQ_VL_X64=65, - InstructionSet_AVX512VBMI_X64=66, - InstructionSet_AVX512VBMI_VL_X64=67, - InstructionSet_AVX10v1_X64=68, - InstructionSet_AVX10v1_V256_X64=69, + InstructionSet_EVEX_X64=58, + InstructionSet_AVX512F_X64=59, + InstructionSet_AVX512F_VL_X64=60, + InstructionSet_AVX512BW_X64=61, + InstructionSet_AVX512BW_VL_X64=62, + InstructionSet_AVX512CD_X64=63, + InstructionSet_AVX512CD_VL_X64=64, + InstructionSet_AVX512DQ_X64=65, + InstructionSet_AVX512DQ_VL_X64=66, + InstructionSet_AVX512VBMI_X64=67, + InstructionSet_AVX512VBMI_VL_X64=68, + InstructionSet_AVX10v1_X64=69, InstructionSet_AVX10v1_V512_X64=70, #endif // TARGET_AMD64 #ifdef TARGET_X86 @@ -137,18 +137,18 @@ enum CORINFO_InstructionSet InstructionSet_AVXVNNI=20, InstructionSet_MOVBE=21, InstructionSet_X86Serialize=22, - InstructionSet_AVX512F=23, - InstructionSet_AVX512F_VL=24, - InstructionSet_AVX512BW=25, - InstructionSet_AVX512BW_VL=26, - InstructionSet_AVX512CD=27, - InstructionSet_AVX512CD_VL=28, - InstructionSet_AVX512DQ=29, - InstructionSet_AVX512DQ_VL=30, - InstructionSet_AVX512VBMI=31, - InstructionSet_AVX512VBMI_VL=32, - InstructionSet_AVX10v1=33, - InstructionSet_AVX10v1_V256=34, + InstructionSet_EVEX=23, + InstructionSet_AVX512F=24, + InstructionSet_AVX512F_VL=25, + InstructionSet_AVX512BW=26, + InstructionSet_AVX512BW_VL=27, + InstructionSet_AVX512CD=28, + InstructionSet_AVX512CD_VL=29, + InstructionSet_AVX512DQ=30, + InstructionSet_AVX512DQ_VL=31, + InstructionSet_AVX512VBMI=32, + InstructionSet_AVX512VBMI_VL=33, + InstructionSet_AVX10v1=34, InstructionSet_AVX10v1_V512=35, InstructionSet_VectorT128=36, InstructionSet_VectorT256=37, @@ -172,18 +172,18 @@ enum CORINFO_InstructionSet InstructionSet_AVXVNNI_X64=55, InstructionSet_MOVBE_X64=56, InstructionSet_X86Serialize_X64=57, - InstructionSet_AVX512F_X64=58, - InstructionSet_AVX512F_VL_X64=59, - InstructionSet_AVX512BW_X64=60, - InstructionSet_AVX512BW_VL_X64=61, - InstructionSet_AVX512CD_X64=62, - InstructionSet_AVX512CD_VL_X64=63, - InstructionSet_AVX512DQ_X64=64, - InstructionSet_AVX512DQ_VL_X64=65, - InstructionSet_AVX512VBMI_X64=66, - InstructionSet_AVX512VBMI_VL_X64=67, - InstructionSet_AVX10v1_X64=68, - InstructionSet_AVX10v1_V256_X64=69, + InstructionSet_EVEX_X64=58, + InstructionSet_AVX512F_X64=59, + InstructionSet_AVX512F_VL_X64=60, + InstructionSet_AVX512BW_X64=61, + InstructionSet_AVX512BW_VL_X64=62, + InstructionSet_AVX512CD_X64=63, + InstructionSet_AVX512CD_VL_X64=64, + InstructionSet_AVX512DQ_X64=65, + InstructionSet_AVX512DQ_VL_X64=66, + InstructionSet_AVX512VBMI_X64=67, + InstructionSet_AVX512VBMI_VL_X64=68, + InstructionSet_AVX10v1_X64=69, InstructionSet_AVX10v1_V512_X64=70, #endif // TARGET_X86 @@ -338,6 +338,8 @@ struct CORINFO_InstructionSetFlags AddInstructionSet(InstructionSet_MOVBE_X64); if (HasInstructionSet(InstructionSet_X86Serialize)) AddInstructionSet(InstructionSet_X86Serialize_X64); + if (HasInstructionSet(InstructionSet_EVEX)) + AddInstructionSet(InstructionSet_EVEX_X64); if (HasInstructionSet(InstructionSet_AVX512F)) AddInstructionSet(InstructionSet_AVX512F_X64); if (HasInstructionSet(InstructionSet_AVX512F_VL)) @@ -360,8 +362,6 @@ struct CORINFO_InstructionSetFlags AddInstructionSet(InstructionSet_AVX512VBMI_VL_X64); if (HasInstructionSet(InstructionSet_AVX10v1)) AddInstructionSet(InstructionSet_AVX10v1_X64); - if (HasInstructionSet(InstructionSet_AVX10v1_V256)) - AddInstructionSet(InstructionSet_AVX10v1_V256_X64); if (HasInstructionSet(InstructionSet_AVX10v1_V512)) AddInstructionSet(InstructionSet_AVX10v1_V512_X64); #endif // TARGET_AMD64 @@ -520,6 +520,10 @@ inline CORINFO_InstructionSetFlags EnsureInstructionSetFlagsAreValid(CORINFO_Ins resultflags.RemoveInstructionSet(InstructionSet_X86Serialize); if (resultflags.HasInstructionSet(InstructionSet_X86Serialize_X64) && !resultflags.HasInstructionSet(InstructionSet_X86Serialize)) resultflags.RemoveInstructionSet(InstructionSet_X86Serialize_X64); + if (resultflags.HasInstructionSet(InstructionSet_EVEX) && !resultflags.HasInstructionSet(InstructionSet_EVEX_X64)) + resultflags.RemoveInstructionSet(InstructionSet_EVEX); + if (resultflags.HasInstructionSet(InstructionSet_EVEX_X64) && !resultflags.HasInstructionSet(InstructionSet_EVEX)) + resultflags.RemoveInstructionSet(InstructionSet_EVEX_X64); if (resultflags.HasInstructionSet(InstructionSet_AVX512F) && !resultflags.HasInstructionSet(InstructionSet_AVX512F_X64)) resultflags.RemoveInstructionSet(InstructionSet_AVX512F); if (resultflags.HasInstructionSet(InstructionSet_AVX512F_X64) && !resultflags.HasInstructionSet(InstructionSet_AVX512F)) @@ -564,10 +568,6 @@ inline CORINFO_InstructionSetFlags EnsureInstructionSetFlagsAreValid(CORINFO_Ins resultflags.RemoveInstructionSet(InstructionSet_AVX10v1); if (resultflags.HasInstructionSet(InstructionSet_AVX10v1_X64) && !resultflags.HasInstructionSet(InstructionSet_AVX10v1)) resultflags.RemoveInstructionSet(InstructionSet_AVX10v1_X64); - if (resultflags.HasInstructionSet(InstructionSet_AVX10v1_V256) && !resultflags.HasInstructionSet(InstructionSet_AVX10v1_V256_X64)) - resultflags.RemoveInstructionSet(InstructionSet_AVX10v1_V256); - if (resultflags.HasInstructionSet(InstructionSet_AVX10v1_V256_X64) && !resultflags.HasInstructionSet(InstructionSet_AVX10v1_V256)) - resultflags.RemoveInstructionSet(InstructionSet_AVX10v1_V256_X64); if (resultflags.HasInstructionSet(InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet(InstructionSet_AVX10v1_V512_X64)) resultflags.RemoveInstructionSet(InstructionSet_AVX10v1_V512); if (resultflags.HasInstructionSet(InstructionSet_AVX10v1_V512_X64) && !resultflags.HasInstructionSet(InstructionSet_AVX10v1_V512)) @@ -614,9 +614,11 @@ inline CORINFO_InstructionSetFlags EnsureInstructionSetFlagsAreValid(CORINFO_Ins resultflags.RemoveInstructionSet(InstructionSet_MOVBE); if (resultflags.HasInstructionSet(InstructionSet_X86Serialize) && !resultflags.HasInstructionSet(InstructionSet_X86Base)) resultflags.RemoveInstructionSet(InstructionSet_X86Serialize); - if (resultflags.HasInstructionSet(InstructionSet_AVX512F) && !resultflags.HasInstructionSet(InstructionSet_AVX2)) - resultflags.RemoveInstructionSet(InstructionSet_AVX512F); - if (resultflags.HasInstructionSet(InstructionSet_AVX512F) && !resultflags.HasInstructionSet(InstructionSet_FMA)) + if (resultflags.HasInstructionSet(InstructionSet_EVEX) && !resultflags.HasInstructionSet(InstructionSet_AVX2)) + resultflags.RemoveInstructionSet(InstructionSet_EVEX); + if (resultflags.HasInstructionSet(InstructionSet_EVEX) && !resultflags.HasInstructionSet(InstructionSet_FMA)) + resultflags.RemoveInstructionSet(InstructionSet_EVEX); + if (resultflags.HasInstructionSet(InstructionSet_AVX512F) && !resultflags.HasInstructionSet(InstructionSet_EVEX)) resultflags.RemoveInstructionSet(InstructionSet_AVX512F); if (resultflags.HasInstructionSet(InstructionSet_AVX512F_VL) && !resultflags.HasInstructionSet(InstructionSet_AVX512F)) resultflags.RemoveInstructionSet(InstructionSet_AVX512F_VL); @@ -644,13 +646,13 @@ inline CORINFO_InstructionSetFlags EnsureInstructionSetFlagsAreValid(CORINFO_Ins resultflags.RemoveInstructionSet(InstructionSet_AVX512VBMI_VL); if (resultflags.HasInstructionSet(InstructionSet_AVX512VBMI_VL) && !resultflags.HasInstructionSet(InstructionSet_AVX512BW_VL)) resultflags.RemoveInstructionSet(InstructionSet_AVX512VBMI_VL); - if (resultflags.HasInstructionSet(InstructionSet_AVX10v1) && !resultflags.HasInstructionSet(InstructionSet_AVX2)) - resultflags.RemoveInstructionSet(InstructionSet_AVX10v1); - if (resultflags.HasInstructionSet(InstructionSet_AVX10v1) && !resultflags.HasInstructionSet(InstructionSet_FMA)) + if (resultflags.HasInstructionSet(InstructionSet_EVEX) && !resultflags.HasInstructionSet(InstructionSet_AVX2)) + resultflags.RemoveInstructionSet(InstructionSet_EVEX); + if (resultflags.HasInstructionSet(InstructionSet_EVEX) && !resultflags.HasInstructionSet(InstructionSet_FMA)) + resultflags.RemoveInstructionSet(InstructionSet_EVEX); + if (resultflags.HasInstructionSet(InstructionSet_AVX10v1) && !resultflags.HasInstructionSet(InstructionSet_EVEX)) resultflags.RemoveInstructionSet(InstructionSet_AVX10v1); - if (resultflags.HasInstructionSet(InstructionSet_AVX10v1_V256) && !resultflags.HasInstructionSet(InstructionSet_AVX10v1)) - resultflags.RemoveInstructionSet(InstructionSet_AVX10v1_V256); - if (resultflags.HasInstructionSet(InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet(InstructionSet_AVX10v1_V256)) + if (resultflags.HasInstructionSet(InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet(InstructionSet_AVX10v1)) resultflags.RemoveInstructionSet(InstructionSet_AVX10v1_V512); if (resultflags.HasInstructionSet(InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet(InstructionSet_AVX512F)) resultflags.RemoveInstructionSet(InstructionSet_AVX10v1_V512); @@ -728,9 +730,11 @@ inline CORINFO_InstructionSetFlags EnsureInstructionSetFlagsAreValid(CORINFO_Ins resultflags.RemoveInstructionSet(InstructionSet_MOVBE); if (resultflags.HasInstructionSet(InstructionSet_X86Serialize) && !resultflags.HasInstructionSet(InstructionSet_X86Base)) resultflags.RemoveInstructionSet(InstructionSet_X86Serialize); - if (resultflags.HasInstructionSet(InstructionSet_AVX512F) && !resultflags.HasInstructionSet(InstructionSet_AVX2)) - resultflags.RemoveInstructionSet(InstructionSet_AVX512F); - if (resultflags.HasInstructionSet(InstructionSet_AVX512F) && !resultflags.HasInstructionSet(InstructionSet_FMA)) + if (resultflags.HasInstructionSet(InstructionSet_EVEX) && !resultflags.HasInstructionSet(InstructionSet_AVX2)) + resultflags.RemoveInstructionSet(InstructionSet_EVEX); + if (resultflags.HasInstructionSet(InstructionSet_EVEX) && !resultflags.HasInstructionSet(InstructionSet_FMA)) + resultflags.RemoveInstructionSet(InstructionSet_EVEX); + if (resultflags.HasInstructionSet(InstructionSet_AVX512F) && !resultflags.HasInstructionSet(InstructionSet_EVEX)) resultflags.RemoveInstructionSet(InstructionSet_AVX512F); if (resultflags.HasInstructionSet(InstructionSet_AVX512F_VL) && !resultflags.HasInstructionSet(InstructionSet_AVX512F)) resultflags.RemoveInstructionSet(InstructionSet_AVX512F_VL); @@ -758,13 +762,13 @@ inline CORINFO_InstructionSetFlags EnsureInstructionSetFlagsAreValid(CORINFO_Ins resultflags.RemoveInstructionSet(InstructionSet_AVX512VBMI_VL); if (resultflags.HasInstructionSet(InstructionSet_AVX512VBMI_VL) && !resultflags.HasInstructionSet(InstructionSet_AVX512BW_VL)) resultflags.RemoveInstructionSet(InstructionSet_AVX512VBMI_VL); - if (resultflags.HasInstructionSet(InstructionSet_AVX10v1) && !resultflags.HasInstructionSet(InstructionSet_AVX2)) - resultflags.RemoveInstructionSet(InstructionSet_AVX10v1); - if (resultflags.HasInstructionSet(InstructionSet_AVX10v1) && !resultflags.HasInstructionSet(InstructionSet_FMA)) + if (resultflags.HasInstructionSet(InstructionSet_EVEX) && !resultflags.HasInstructionSet(InstructionSet_AVX2)) + resultflags.RemoveInstructionSet(InstructionSet_EVEX); + if (resultflags.HasInstructionSet(InstructionSet_EVEX) && !resultflags.HasInstructionSet(InstructionSet_FMA)) + resultflags.RemoveInstructionSet(InstructionSet_EVEX); + if (resultflags.HasInstructionSet(InstructionSet_AVX10v1) && !resultflags.HasInstructionSet(InstructionSet_EVEX)) resultflags.RemoveInstructionSet(InstructionSet_AVX10v1); - if (resultflags.HasInstructionSet(InstructionSet_AVX10v1_V256) && !resultflags.HasInstructionSet(InstructionSet_AVX10v1)) - resultflags.RemoveInstructionSet(InstructionSet_AVX10v1_V256); - if (resultflags.HasInstructionSet(InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet(InstructionSet_AVX10v1_V256)) + if (resultflags.HasInstructionSet(InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet(InstructionSet_AVX10v1)) resultflags.RemoveInstructionSet(InstructionSet_AVX10v1_V512); if (resultflags.HasInstructionSet(InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet(InstructionSet_AVX512F)) resultflags.RemoveInstructionSet(InstructionSet_AVX10v1_V512); @@ -948,6 +952,10 @@ inline const char *InstructionSetToString(CORINFO_InstructionSet instructionSet) return "X86Serialize"; case InstructionSet_X86Serialize_X64 : return "X86Serialize_X64"; + case InstructionSet_EVEX : + return "EVEX"; + case InstructionSet_EVEX_X64 : + return "EVEX_X64"; case InstructionSet_AVX512F : return "AVX512F"; case InstructionSet_AVX512F_X64 : @@ -992,10 +1000,6 @@ inline const char *InstructionSetToString(CORINFO_InstructionSet instructionSet) return "AVX10v1"; case InstructionSet_AVX10v1_X64 : return "AVX10v1_X64"; - case InstructionSet_AVX10v1_V256 : - return "AVX10v1_V256"; - case InstructionSet_AVX10v1_V256_X64 : - return "AVX10v1_V256_X64"; case InstructionSet_AVX10v1_V512 : return "AVX10v1_V512"; case InstructionSet_AVX10v1_V512_X64 : @@ -1052,6 +1056,8 @@ inline const char *InstructionSetToString(CORINFO_InstructionSet instructionSet) return "MOVBE"; case InstructionSet_X86Serialize : return "X86Serialize"; + case InstructionSet_EVEX : + return "EVEX"; case InstructionSet_AVX512F : return "AVX512F"; case InstructionSet_AVX512F_VL : @@ -1074,8 +1080,6 @@ inline const char *InstructionSetToString(CORINFO_InstructionSet instructionSet) return "AVX512VBMI_VL"; case InstructionSet_AVX10v1 : return "AVX10v1"; - case InstructionSet_AVX10v1_V256 : - return "AVX10v1_V256"; case InstructionSet_AVX10v1_V512 : return "AVX10v1_V512"; case InstructionSet_VectorT128 : @@ -1138,6 +1142,7 @@ inline CORINFO_InstructionSet InstructionSetFromR2RInstructionSet(ReadyToRunInst case READYTORUN_INSTRUCTION_AvxVnni: return InstructionSet_AVXVNNI; case READYTORUN_INSTRUCTION_Movbe: return InstructionSet_MOVBE; case READYTORUN_INSTRUCTION_X86Serialize: return InstructionSet_X86Serialize; + case READYTORUN_INSTRUCTION_EVEX: return InstructionSet_EVEX; case READYTORUN_INSTRUCTION_Avx512F: return InstructionSet_AVX512F; case READYTORUN_INSTRUCTION_Avx512F_VL: return InstructionSet_AVX512F_VL; case READYTORUN_INSTRUCTION_Avx512BW: return InstructionSet_AVX512BW; @@ -1149,7 +1154,6 @@ inline CORINFO_InstructionSet InstructionSetFromR2RInstructionSet(ReadyToRunInst case READYTORUN_INSTRUCTION_Avx512Vbmi: return InstructionSet_AVX512VBMI; case READYTORUN_INSTRUCTION_Avx512Vbmi_VL: return InstructionSet_AVX512VBMI_VL; case READYTORUN_INSTRUCTION_Avx10v1: return InstructionSet_AVX10v1; - case READYTORUN_INSTRUCTION_Avx10v1_V256: return InstructionSet_AVX10v1_V256; case READYTORUN_INSTRUCTION_Avx10v1_V512: return InstructionSet_AVX10v1_V512; case READYTORUN_INSTRUCTION_VectorT128: return InstructionSet_VectorT128; case READYTORUN_INSTRUCTION_VectorT256: return InstructionSet_VectorT256; @@ -1175,6 +1179,7 @@ inline CORINFO_InstructionSet InstructionSetFromR2RInstructionSet(ReadyToRunInst case READYTORUN_INSTRUCTION_AvxVnni: return InstructionSet_AVXVNNI; case READYTORUN_INSTRUCTION_Movbe: return InstructionSet_MOVBE; case READYTORUN_INSTRUCTION_X86Serialize: return InstructionSet_X86Serialize; + case READYTORUN_INSTRUCTION_EVEX: return InstructionSet_EVEX; case READYTORUN_INSTRUCTION_Avx512F: return InstructionSet_AVX512F; case READYTORUN_INSTRUCTION_Avx512F_VL: return InstructionSet_AVX512F_VL; case READYTORUN_INSTRUCTION_Avx512BW: return InstructionSet_AVX512BW; @@ -1186,7 +1191,6 @@ inline CORINFO_InstructionSet InstructionSetFromR2RInstructionSet(ReadyToRunInst case READYTORUN_INSTRUCTION_Avx512Vbmi: return InstructionSet_AVX512VBMI; case READYTORUN_INSTRUCTION_Avx512Vbmi_VL: return InstructionSet_AVX512VBMI_VL; case READYTORUN_INSTRUCTION_Avx10v1: return InstructionSet_AVX10v1; - case READYTORUN_INSTRUCTION_Avx10v1_V256: return InstructionSet_AVX10v1_V256; case READYTORUN_INSTRUCTION_Avx10v1_V512: return InstructionSet_AVX10v1_V512; case READYTORUN_INSTRUCTION_VectorT128: return InstructionSet_VectorT128; case READYTORUN_INSTRUCTION_VectorT256: return InstructionSet_VectorT256; diff --git a/src/coreclr/inc/jiteeversionguid.h b/src/coreclr/inc/jiteeversionguid.h index 46b50f5410ce4..35a7e623b9a9b 100644 --- a/src/coreclr/inc/jiteeversionguid.h +++ b/src/coreclr/inc/jiteeversionguid.h @@ -43,11 +43,11 @@ typedef const GUID *LPCGUID; #define GUID_DEFINED #endif // !GUID_DEFINED -constexpr GUID JITEEVersionIdentifier = { /* 227e46fa-1be3-4770-b613-4a239e7c28aa */ - 0x227e46fa, - 0x1be3, - 0x4770, - {0xb6, 0x13, 0x4a, 0x23, 0x9e, 0x7c, 0x28, 0xaa} +constexpr GUID JITEEVersionIdentifier = { /* 6e0b439f-0d18-4836-a486-4962af0cc948 */ + 0x6e0b439f, + 0x0d18, + 0x4836, + {0xa4, 0x86, 0x49, 0x62, 0xaf, 0x0c, 0xc9, 0x48} }; ////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/coreclr/inc/readytoruninstructionset.h b/src/coreclr/inc/readytoruninstructionset.h index fe388c04a60fc..4ad8c6b4e5912 100644 --- a/src/coreclr/inc/readytoruninstructionset.h +++ b/src/coreclr/inc/readytoruninstructionset.h @@ -53,8 +53,8 @@ enum ReadyToRunInstructionSet READYTORUN_INSTRUCTION_Rcpc2=42, READYTORUN_INSTRUCTION_Sve=43, READYTORUN_INSTRUCTION_Avx10v1=44, - READYTORUN_INSTRUCTION_Avx10v1_V256=45, READYTORUN_INSTRUCTION_Avx10v1_V512=46, + READYTORUN_INSTRUCTION_EVEX=47, }; diff --git a/src/coreclr/jit/assertionprop.cpp b/src/coreclr/jit/assertionprop.cpp index 7f41f0ae7ac64..3cfcabcf2f7b9 100644 --- a/src/coreclr/jit/assertionprop.cpp +++ b/src/coreclr/jit/assertionprop.cpp @@ -3184,8 +3184,8 @@ bool Compiler::optIsProfitableToSubstitute(GenTree* dest, BasicBlock* destBlock, return (simdBaseType == TYP_FLOAT) && vecCon->IsZero(); } - case NI_AVX512F_CompareEqualMask: - case NI_AVX512F_CompareNotEqualMask: + case NI_EVEX_CompareEqualMask: + case NI_EVEX_CompareNotEqualMask: { // We can optimize when the constant is zero, but only // for non floating-point since +0.0 == -0.0 diff --git a/src/coreclr/jit/codegencommon.cpp b/src/coreclr/jit/codegencommon.cpp index ebf6bd7fc9908..5a886b3929a55 100644 --- a/src/coreclr/jit/codegencommon.cpp +++ b/src/coreclr/jit/codegencommon.cpp @@ -1827,7 +1827,22 @@ void CodeGen::genGenerateMachineCode() #if defined(TARGET_X86) if (compiler->canUseEvexEncoding()) { - printf("X86 with AVX512"); + if (compiler->compOpportunisticallyDependsOn(InstructionSet_AVX10v1)) + { + if (compiler->compOpportunisticallyDependsOn(InstructionSet_AVX10v1_V512)) + { + printf("X86 with AVX10/512"); + } + else + { + printf("X86 with AVX10/256"); + } + } + else + { + assert(compiler->compIsaSupportedDebugOnly(InstructionSet_AVX512F)); + printf("X86 with AVX512"); + } } else if (compiler->canUseVexEncoding()) { @@ -1840,7 +1855,22 @@ void CodeGen::genGenerateMachineCode() #elif defined(TARGET_AMD64) if (compiler->canUseEvexEncoding()) { - printf("X64 with AVX512"); + if (compiler->compOpportunisticallyDependsOn(InstructionSet_AVX10v1)) + { + if (compiler->compOpportunisticallyDependsOn(InstructionSet_AVX10v1_V512)) + { + printf("X86 with AVX10/512"); + } + else + { + printf("X86 with AVX10/256"); + } + } + else + { + assert(compiler->compIsaSupportedDebugOnly(InstructionSet_AVX512F)); + printf("X86 with AVX512"); + } } else if (compiler->canUseVexEncoding()) { diff --git a/src/coreclr/jit/codegenxarch.cpp b/src/coreclr/jit/codegenxarch.cpp index 757491b95034d..2595482b2ba16 100644 --- a/src/coreclr/jit/codegenxarch.cpp +++ b/src/coreclr/jit/codegenxarch.cpp @@ -465,7 +465,7 @@ void CodeGen::genSetRegToConst(regNumber targetReg, var_types targetType, simd_t { if (emitter::isHighSimdReg(targetReg)) { - assert(compiler->compIsaSupportedDebugOnly(InstructionSet_AVX512F)); + assert(compiler->canUseEvexEncodingDebugOnly()); emit->emitIns_SIMD_R_R_R_I(INS_vpternlogd, attr, targetReg, targetReg, targetReg, static_cast(0xFF), INS_OPTS_NONE); } @@ -492,7 +492,7 @@ void CodeGen::genSetRegToConst(regNumber targetReg, var_types targetType, simd_t { if (emitter::isHighSimdReg(targetReg)) { - assert(compiler->compIsaSupportedDebugOnly(InstructionSet_AVX512F)); + assert(compiler->canUseEvexEncodingDebugOnly()); emit->emitIns_SIMD_R_R_R_I(INS_vpternlogd, attr, targetReg, targetReg, targetReg, static_cast(0xFF), INS_OPTS_NONE); } @@ -521,7 +521,7 @@ void CodeGen::genSetRegToConst(regNumber targetReg, var_types targetType, simd_t { if (emitter::isHighSimdReg(targetReg)) { - assert(compiler->compIsaSupportedDebugOnly(InstructionSet_AVX512F)); + assert(compiler->canUseEvexEncodingDebugOnly()); emit->emitIns_SIMD_R_R_R_I(INS_vpternlogd, attr, targetReg, targetReg, targetReg, static_cast(0xFF), INS_OPTS_NONE); } @@ -548,7 +548,7 @@ void CodeGen::genSetRegToConst(regNumber targetReg, var_types targetType, simd_t { if (emitter::isHighSimdReg(targetReg)) { - assert(compiler->compIsaSupportedDebugOnly(InstructionSet_AVX512F)); + assert(compiler->canUseEvexEncodingDebugOnly()); emit->emitIns_SIMD_R_R_R_I(INS_vpternlogd, attr, targetReg, targetReg, targetReg, static_cast(0xFF), INS_OPTS_NONE); } @@ -667,7 +667,7 @@ void CodeGen::genSetRegToConst(regNumber targetReg, var_types targetType, GenTre { if (emitter::isHighSimdReg(targetReg)) { - assert(compiler->compIsaSupportedDebugOnly(InstructionSet_AVX512F)); + assert(compiler->canUseEvexEncodingDebugOnly()); emit->emitIns_SIMD_R_R_R_I(INS_vpternlogd, EA_16BYTE, targetReg, targetReg, targetReg, static_cast(0xFF), INS_OPTS_NONE); } @@ -5654,6 +5654,8 @@ void CodeGen::genCodeForStoreInd(GenTreeStoreInd* tree) case NI_AVX512F_ExtractVector256: case NI_AVX512DQ_ExtractVector128: case NI_AVX512DQ_ExtractVector256: + case NI_AVX10v1_V512_ExtractVector128: + case NI_AVX10v1_V512_ExtractVector256: { // These intrinsics are "ins reg/mem, xmm, imm8" ins = HWIntrinsicInfo::lookupIns(intrinsicId, baseType); @@ -5682,6 +5684,8 @@ void CodeGen::genCodeForStoreInd(GenTreeStoreInd* tree) case NI_AVX512F_ConvertToVector256UInt32: case NI_AVX512F_VL_ConvertToVector128UInt32: case NI_AVX512F_VL_ConvertToVector128UInt32WithSaturation: + case NI_AVX10v1_ConvertToVector128UInt32: + case NI_AVX10v1_ConvertToVector128UInt32WithSaturation: { assert(!varTypeIsFloating(baseType)); FALLTHROUGH; @@ -5719,6 +5723,16 @@ void CodeGen::genCodeForStoreInd(GenTreeStoreInd* tree) case NI_AVX512BW_VL_ConvertToVector128ByteWithSaturation: case NI_AVX512BW_VL_ConvertToVector128SByte: case NI_AVX512BW_VL_ConvertToVector128SByteWithSaturation: + case NI_AVX10v1_ConvertToVector128Byte: + case NI_AVX10v1_ConvertToVector128ByteWithSaturation: + case NI_AVX10v1_ConvertToVector128Int16: + case NI_AVX10v1_ConvertToVector128Int16WithSaturation: + case NI_AVX10v1_ConvertToVector128Int32: + case NI_AVX10v1_ConvertToVector128Int32WithSaturation: + case NI_AVX10v1_ConvertToVector128SByte: + case NI_AVX10v1_ConvertToVector128SByteWithSaturation: + case NI_AVX10v1_ConvertToVector128UInt16: + case NI_AVX10v1_ConvertToVector128UInt16WithSaturation: { // These intrinsics are "ins reg/mem, xmm" ins = HWIntrinsicInfo::lookupIns(intrinsicId, baseType); @@ -7324,13 +7338,11 @@ void CodeGen::genIntToFloatCast(GenTree* treeNode) // Also we don't expect to see uint32 -> float/double and uint64 -> float conversions // here since they should have been lowered appropriately. noway_assert(srcType != TYP_UINT); - assert((srcType != TYP_ULONG) || (dstType != TYP_FLOAT) || - compiler->compIsaSupportedDebugOnly(InstructionSet_AVX512F)); + assert((srcType != TYP_ULONG) || (dstType != TYP_FLOAT) || compiler->canUseEvexEncodingDebugOnly()); - if ((srcType == TYP_ULONG) && varTypeIsFloating(dstType) && - compiler->compOpportunisticallyDependsOn(InstructionSet_AVX512F)) + if ((srcType == TYP_ULONG) && varTypeIsFloating(dstType) && compiler->canUseEvexEncoding()) { - assert(compiler->compIsaSupportedDebugOnly(InstructionSet_AVX512F)); + assert(compiler->canUseEvexEncodingDebugOnly()); genConsumeOperands(treeNode->AsOp()); instruction ins = ins_FloatConv(dstType, srcType, emitTypeSize(srcType)); GetEmitter()->emitInsBinary(ins, emitTypeSize(srcType), treeNode, op1); @@ -7458,13 +7470,12 @@ void CodeGen::genFloatToIntCast(GenTree* treeNode) // into a helper call by either front-end or lowering phase, unless we have AVX512F // accelerated conversions. assert(!varTypeIsUnsigned(dstType) || (dstSize != EA_ATTR(genTypeSize(TYP_LONG))) || - compiler->compIsaSupportedDebugOnly(InstructionSet_AVX512F)); + compiler->canUseEvexEncodingDebugOnly()); // If the dstType is TYP_UINT, we have 32-bits to encode the // float number. Any of 33rd or above bits can be the sign bit. // To achieve it we pretend as if we are converting it to a long. - if (varTypeIsUnsigned(dstType) && (dstSize == EA_ATTR(genTypeSize(TYP_INT))) && - !compiler->compOpportunisticallyDependsOn(InstructionSet_AVX512F)) + if (varTypeIsUnsigned(dstType) && (dstSize == EA_ATTR(genTypeSize(TYP_INT))) && !compiler->canUseEvexEncoding()) { dstType = TYP_LONG; } diff --git a/src/coreclr/jit/compiler.cpp b/src/coreclr/jit/compiler.cpp index 54be15ed7f20b..aa1daa1ccfca1 100644 --- a/src/coreclr/jit/compiler.cpp +++ b/src/coreclr/jit/compiler.cpp @@ -2307,7 +2307,6 @@ void Compiler::compSetProcessor() { instructionSetFlags.AddInstructionSet(InstructionSet_Vector256); } - // x86-64-v4 feature level supports AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL // These have been shipped together historically and at the time of this writing // there exists no hardware which doesn't support the entire feature set. To simplify diff --git a/src/coreclr/jit/compiler.h b/src/coreclr/jit/compiler.h index 9281f55471ec7..75fa2d9e8e2a4 100644 --- a/src/coreclr/jit/compiler.h +++ b/src/coreclr/jit/compiler.h @@ -9554,6 +9554,14 @@ class Compiler return opts.compSupportsISA.HasInstructionSet(isa); } + // Following cases should be taken into consideration when using the below APIs: + // InstructionSet_EVEX implies Avx10v1 -or- Avx512F+CD+DQ+BW+VL and can be used for 128-bit or 256-bit EVEX encoding + // instructions in these instruction sets InstructionSet_Avx10v1_V512 should never be queried directly, it is + // covered by querying Avx512* InstructionSet_Avx512F (and same for BW, CD, DQ) is only queried for 512-bit EVEX + // encoded instructions + // InstructionSet_Avx10v1 is only queried for cases like 128-bit/256-bit instructions that wouldn't be in + // F+CD+DQ+BW+VL (such as VBMI) and should appear with a corresponding query around AVX512*_VL (i.e. AVX512_VBMI_VL) + #ifdef DEBUG //------------------------------------------------------------------------ // IsBaselineVector512IsaSupportedDebugOnly - Does isa support exist for Vector512. @@ -9567,6 +9575,42 @@ class Compiler return compIsaSupportedDebugOnly(InstructionSet_AVX512F); #else return false; +#endif + } + + //------------------------------------------------------------------------ + // canUseEvexEncodingDebugOnly - Answer the question: Is Evex encoding supported on this target. + // + // Returns: + // `true` if Evex encoding is supported, `false` if not. + // + bool canUseEvexEncodingDebugOnly() const + { +#ifdef TARGET_XARCH + return (compIsaSupportedDebugOnly(InstructionSet_EVEX)); +#else + return false; +#endif + } + + //------------------------------------------------------------------------ + // IsAvx10OrIsaSupportedDebugOnly - Answer the question: Is AVX10v1 or the given ISA supported. + // + // Returns: + // `true` if AVX10v1 or the given ISA is supported, `false` if not. + // + bool IsAvx10OrIsaSupportedDebugOnly(CORINFO_InstructionSet isa) const + { +#ifdef TARGET_XARCH + // For the below cases, check for evex encoding should be used. + assert(isa != InstructionSet_AVX512F || isa != InstructionSet_AVX512F_VL || isa != InstructionSet_AVX512BW || + isa != InstructionSet_AVX512BW_VL || isa != InstructionSet_AVX512CD || + isa != InstructionSet_AVX512CD_VL || isa != InstructionSet_AVX512DQ || + isa != InstructionSet_AVX512DQ_VL); + + return (compIsaSupportedDebugOnly(InstructionSet_AVX10v1) || compIsaSupportedDebugOnly(isa)); +#else + return false; #endif } #endif // DEBUG @@ -9586,6 +9630,21 @@ class Compiler #endif } + //------------------------------------------------------------------------ + // IsAvx10OrIsaSupportedOpportunistically - Does opportunistic isa support exist for AVX10v1 or the given ISA. + // + // Returns: + // `true` if AVX10v1 or the given ISA is supported, `false` if not. + // + bool IsAvx10OrIsaSupportedOpportunistically(CORINFO_InstructionSet isa) const + { +#ifdef TARGET_XARCH + return (compOpportunisticallyDependsOn(InstructionSet_AVX10v1) || compOpportunisticallyDependsOn(isa)); +#else + return false; +#endif + } + bool canUseEmbeddedBroadcast() const { return JitConfig.EnableEmbeddedBroadcast(); @@ -9598,6 +9657,35 @@ class Compiler #ifdef TARGET_XARCH public: + + //------------------------------------------------------------------------ + // compIsEvexOpportunisticallySupported - Checks for whether AVX10v1 or avx512InstructionSet is supported + // opportunistically. + // + // Returns: + // returns true if AVX10v1 or avx512InstructionSet is supported opportunistically and + // sets isV512Supported to true if AVX512F is supported, false otherwise. + // + bool compIsEvexOpportunisticallySupported(bool& isV512Supported, + CORINFO_InstructionSet avx512InstructionSet = InstructionSet_AVX512F) + { + assert(avx512InstructionSet == InstructionSet_AVX512F || avx512InstructionSet == InstructionSet_AVX512F_VL || + avx512InstructionSet == InstructionSet_AVX512BW || avx512InstructionSet == InstructionSet_AVX512BW_VL || + avx512InstructionSet == InstructionSet_AVX512CD || avx512InstructionSet == InstructionSet_AVX512CD_VL || + avx512InstructionSet == InstructionSet_AVX512DQ || avx512InstructionSet == InstructionSet_AVX512DQ_VL || + avx512InstructionSet == InstructionSet_AVX512VBMI || + avx512InstructionSet == InstructionSet_AVX512VBMI_VL); + + if (compOpportunisticallyDependsOn(avx512InstructionSet)) + { + isV512Supported = true; + return true; + } + + isV512Supported = false; + return compOpportunisticallyDependsOn(InstructionSet_AVX10v1); + } + bool canUseVexEncoding() const { return compOpportunisticallyDependsOn(InstructionSet_AVX); @@ -9611,7 +9699,7 @@ class Compiler // bool canUseEvexEncoding() const { - return compOpportunisticallyDependsOn(InstructionSet_AVX512F); + return (compOpportunisticallyDependsOn(InstructionSet_EVEX)); } private: @@ -9641,6 +9729,10 @@ class Compiler return true; } + else if (JitConfig.JitStressEvexEncoding() && compOpportunisticallyDependsOn(InstructionSet_AVX10v1)) + { + return true; + } #endif // DEBUG return false; diff --git a/src/coreclr/jit/gentree.cpp b/src/coreclr/jit/gentree.cpp index 000def1e8f1eb..98d6bb788d450 100644 --- a/src/coreclr/jit/gentree.cpp +++ b/src/coreclr/jit/gentree.cpp @@ -19795,6 +19795,8 @@ bool GenTree::isContainableHWIntrinsic() const case NI_AVX512F_ConvertToVector256UInt32: case NI_AVX512F_VL_ConvertToVector128UInt32: case NI_AVX512F_VL_ConvertToVector128UInt32WithSaturation: + case NI_AVX10v1_ConvertToVector128UInt32: + case NI_AVX10v1_ConvertToVector128UInt32WithSaturation: { if (varTypeIsFloating(AsHWIntrinsic()->GetSimdBaseType())) { @@ -19854,6 +19856,18 @@ bool GenTree::isContainableHWIntrinsic() const case NI_AVX512BW_VL_ConvertToVector128SByteWithSaturation: case NI_AVX512DQ_ExtractVector128: case NI_AVX512DQ_ExtractVector256: + case NI_AVX10v1_ConvertToVector128Byte: + case NI_AVX10v1_ConvertToVector128ByteWithSaturation: + case NI_AVX10v1_ConvertToVector128Int16: + case NI_AVX10v1_ConvertToVector128Int16WithSaturation: + case NI_AVX10v1_ConvertToVector128Int32: + case NI_AVX10v1_ConvertToVector128Int32WithSaturation: + case NI_AVX10v1_ConvertToVector128SByte: + case NI_AVX10v1_ConvertToVector128SByteWithSaturation: + case NI_AVX10v1_ConvertToVector128UInt16: + case NI_AVX10v1_ConvertToVector128UInt16WithSaturation: + case NI_AVX10v1_V512_ExtractVector128: + case NI_AVX10v1_V512_ExtractVector256: { // These HWIntrinsic operations are contained as part of a store return true; @@ -19910,7 +19924,7 @@ bool GenTree::isRMWHWIntrinsic(Compiler* comp) switch (intrinsicId) { - case NI_AVX512F_BlendVariableMask: + case NI_EVEX_BlendVariableMask: { GenTree* op2 = hwintrinsic->Op(2); @@ -19935,6 +19949,8 @@ bool GenTree::isRMWHWIntrinsic(Compiler* comp) case NI_AVX512F_Fixup: case NI_AVX512F_FixupScalar: case NI_AVX512F_VL_Fixup: + case NI_AVX10v1_Fixup: + case NI_AVX10v1_FixupScalar: { // We are actually only RMW in the case where the lookup table // has any value that could result in `op1` being picked. So @@ -19962,7 +19978,7 @@ bool GenTree::isRMWHWIntrinsic(Compiler* comp) uint32_t count = simdSize / sizeof(uint32_t); uint32_t incSize = (simdBaseType == TYP_FLOAT) ? 1 : 2; - if (intrinsicId == NI_AVX512F_FixupScalar) + if (intrinsicId == NI_AVX512F_FixupScalar || intrinsicId == NI_AVX10v1_FixupScalar) { // Upper elements come from op2 count = 1; @@ -19985,6 +20001,7 @@ bool GenTree::isRMWHWIntrinsic(Compiler* comp) case NI_AVX512F_TernaryLogic: case NI_AVX512F_VL_TernaryLogic: + case NI_AVX10v1_TernaryLogic: { // We may not be RMW depending on the control byte as there // are many operations that do not use all three inputs. @@ -20049,6 +20066,7 @@ bool GenTree::isEmbeddedMaskingCompatibleHWIntrinsic() const case NI_AVX512F_ConvertToVector512Int32: case NI_AVX512F_ConvertToVector512UInt32: case NI_AVX512F_VL_ConvertToVector128UInt32: + case NI_AVX10v1_ConvertToVector128UInt32: { return varTypeIsFloating(simdBaseType); } @@ -20206,6 +20224,10 @@ GenTree* Compiler::gtNewSimdAbsNode(var_types type, GenTree* op1, CorInfoType si assert(compIsaSupportedDebugOnly(InstructionSet_AVX512F)); intrinsic = NI_AVX512F_Abs; } + else if (compOpportunisticallyDependsOn(InstructionSet_AVX10v1)) + { + intrinsic = NI_AVX10v1_Abs; + } else if (compOpportunisticallyDependsOn(InstructionSet_AVX512F_VL)) { intrinsic = NI_AVX512F_VL_Abs; @@ -20557,8 +20579,15 @@ GenTree* Compiler::gtNewSimdBinOpNode( if (varTypeIsLong(simdBaseType) || (simdBaseType == TYP_DOUBLE)) { assert(varTypeIsSigned(simdBaseType)); - assert(compIsaSupportedDebugOnly(InstructionSet_AVX512F_VL)); - intrinsic = NI_AVX512F_VL_ShiftRightArithmetic; + if (compOpportunisticallyDependsOn(InstructionSet_AVX10v1)) + { + intrinsic = NI_AVX10v1_ShiftRightArithmetic; + } + else + { + assert(compIsaSupportedDebugOnly(InstructionSet_AVX512F_VL)); + intrinsic = NI_AVX512F_VL_ShiftRightArithmetic; + } } else { @@ -20619,8 +20648,15 @@ GenTree* Compiler::gtNewSimdBinOpNode( if (varTypeIsLong(simdBaseType) || (simdBaseType == TYP_DOUBLE)) { assert(varTypeIsSigned(simdBaseType)); - assert(compIsaSupportedDebugOnly(InstructionSet_AVX512F_VL)); - intrinsic = NI_AVX512F_VL_ShiftRightArithmetic; + if (compOpportunisticallyDependsOn(InstructionSet_AVX10v1)) + { + intrinsic = NI_AVX10v1_ShiftRightArithmetic; + } + else + { + assert(compIsaSupportedDebugOnly(InstructionSet_AVX512F_VL)); + intrinsic = NI_AVX512F_VL_ShiftRightArithmetic; + } } else { @@ -20693,6 +20729,7 @@ GenTree* Compiler::gtNewSimdBinOpNode( NamedIntrinsic narrowIntrinsic; var_types widenedType; unsigned widenedSimdSize; + bool isV512Supported = false; if (simdSize == 32 && IsBaselineVector512IsaSupportedOpportunistically()) { @@ -20734,7 +20771,7 @@ GenTree* Compiler::gtNewSimdBinOpNode( } else if (simdSize == 16 && compOpportunisticallyDependsOn(InstructionSet_AVX2)) { - if (IsBaselineVector512IsaSupportedOpportunistically()) + if (compIsEvexOpportunisticallySupported(isV512Supported)) { // Input is SIMD16 [U]Byte and AVX512BW_VL is supported: // - Widen inputs as SIMD32 [U]Short @@ -20745,12 +20782,14 @@ GenTree* Compiler::gtNewSimdBinOpNode( if (simdBaseType == TYP_BYTE) { widenedSimdBaseJitType = CORINFO_TYPE_SHORT; - narrowIntrinsic = NI_AVX512BW_VL_ConvertToVector128SByte; + narrowIntrinsic = !isV512Supported ? NI_AVX10v1_ConvertToVector128SByte + : NI_AVX512BW_VL_ConvertToVector128SByte; } else { widenedSimdBaseJitType = CORINFO_TYPE_USHORT; - narrowIntrinsic = NI_AVX512BW_VL_ConvertToVector128Byte; + narrowIntrinsic = !isV512Supported ? NI_AVX10v1_ConvertToVector128Byte + : NI_AVX512BW_VL_ConvertToVector128Byte; } widenedType = TYP_SIMD32; @@ -20808,7 +20847,7 @@ GenTree* Compiler::gtNewSimdBinOpNode( } // Validate we can't use AVX512F_VL_TernaryLogic here - assert(!compIsaSupportedDebugOnly(InstructionSet_AVX512F_VL)); + assert(!canUseEvexEncodingDebugOnly()); // Vector256 maskedProduct = Avx2.And(widenedProduct, vecCon1).AsInt16() GenTree* maskedProduct = gtNewSimdBinOpNode(GT_AND, widenedType, widenedProduct, vecCon1, @@ -20954,15 +20993,20 @@ GenTree* Compiler::gtNewSimdBinOpNode( case TYP_ULONG: { assert((simdSize == 16) || (simdSize == 32) || (simdSize == 64)); - assert(compIsaSupportedDebugOnly(InstructionSet_AVX512DQ_VL)); - if (simdSize != 64) + if (simdSize == 64) { - intrinsic = NI_AVX512DQ_VL_MultiplyLow; + assert(compIsaSupportedDebugOnly(InstructionSet_AVX512DQ)); + intrinsic = NI_AVX512DQ_MultiplyLow; + } + else if (compOpportunisticallyDependsOn(InstructionSet_AVX10v1)) + { + intrinsic = NI_AVX10v1_MultiplyLow; } else { - intrinsic = NI_AVX512DQ_MultiplyLow; + assert(compIsaSupportedDebugOnly(InstructionSet_AVX512DQ_VL)); + intrinsic = NI_AVX512DQ_VL_MultiplyLow; } break; @@ -21506,12 +21550,14 @@ GenTree* Compiler::gtNewSimdCvtNode(var_types type, #if defined(TARGET_XARCH) assert(IsBaselineVector512IsaSupportedDebugOnly() || + (simdSize != 64 && compIsaSupportedDebugOnly(InstructionSet_AVX10v1)) || ((simdTargetBaseType == TYP_INT) && ((simdSize == 16 && compIsaSupportedDebugOnly(InstructionSet_SSE41)) || (simdSize == 32 && compIsaSupportedDebugOnly(InstructionSet_AVX))))); GenTree* fixupVal; + bool isV512Supported = false; - if (IsBaselineVector512IsaSupportedOpportunistically()) + if (compIsEvexOpportunisticallySupported(isV512Supported)) { /*Generate the control table for VFIXUPIMMSD/SS - For conversion to unsigned @@ -21537,10 +21583,19 @@ GenTree* Compiler::gtNewSimdCvtNode(var_types type, GenTree* tblCon = gtNewSimdCreateBroadcastNode(type, gtNewIconNode(iconVal), simdTargetBaseJitType, simdSize); // We need op1Clone to run fixup - GenTree* op1Clone = fgMakeMultiUse(&op1); + GenTree* op1Clone = fgMakeMultiUse(&op1); + NamedIntrinsic fixupHwIntrinsicID; + if (simdSize == 64) + { + fixupHwIntrinsicID = NI_AVX512F_Fixup; + } + else + { + fixupHwIntrinsicID = !isV512Supported ? NI_AVX10v1_Fixup : NI_AVX512F_VL_Fixup; + } // run vfixupimmsd base on table and no flags reporting - fixupVal = gtNewSimdHWIntrinsicNode(type, op1, op1Clone, tblCon, gtNewIconNode(0), NI_AVX512F_Fixup, + fixupVal = gtNewSimdHWIntrinsicNode(type, op1, op1Clone, tblCon, gtNewIconNode(0), fixupHwIntrinsicID, simdSourceBaseJitType, simdSize); } else @@ -21622,6 +21677,7 @@ GenTree* Compiler::gtNewSimdCvtNativeNode(var_types type, #if defined(TARGET_XARCH) assert(IsBaselineVector512IsaSupportedDebugOnly() || + (simdSize != 64 && compIsaSupportedDebugOnly(InstructionSet_AVX10v1)) || ((simdTargetBaseType == TYP_INT) && ((simdSize == 16) || (simdSize == 32 && compIsaSupportedDebugOnly(InstructionSet_AVX))))); @@ -21671,13 +21727,17 @@ GenTree* Compiler::gtNewSimdCvtNativeNode(var_types type, case 32: { - hwIntrinsicID = NI_AVX512F_VL_ConvertToVector256UInt32WithTruncation; + hwIntrinsicID = compOpportunisticallyDependsOn(InstructionSet_AVX10v1) + ? NI_AVX10v1_ConvertToVector256UInt32WithTruncation + : NI_AVX512F_VL_ConvertToVector256UInt32WithTruncation; break; } case 16: { - hwIntrinsicID = NI_AVX512F_VL_ConvertToVector128UInt32WithTruncation; + hwIntrinsicID = compOpportunisticallyDependsOn(InstructionSet_AVX10v1) + ? NI_AVX10v1_ConvertToVector128UInt32WithTruncation + : NI_AVX512F_VL_ConvertToVector128UInt32WithTruncation; break; } @@ -21709,13 +21769,17 @@ GenTree* Compiler::gtNewSimdCvtNativeNode(var_types type, case 32: { - hwIntrinsicID = NI_AVX512DQ_VL_ConvertToVector256Int64WithTruncation; + hwIntrinsicID = compOpportunisticallyDependsOn(InstructionSet_AVX10v1) + ? NI_AVX10v1_ConvertToVector256Int64WithTruncation + : NI_AVX512DQ_VL_ConvertToVector256Int64WithTruncation; break; } case 16: { - hwIntrinsicID = NI_AVX512DQ_VL_ConvertToVector128Int64WithTruncation; + hwIntrinsicID = compOpportunisticallyDependsOn(InstructionSet_AVX10v1) + ? NI_AVX10v1_ConvertToVector128Int64WithTruncation + : NI_AVX512DQ_VL_ConvertToVector128Int64WithTruncation; break; } @@ -21737,13 +21801,17 @@ GenTree* Compiler::gtNewSimdCvtNativeNode(var_types type, case 32: { - hwIntrinsicID = NI_AVX512DQ_VL_ConvertToVector256UInt64WithTruncation; + hwIntrinsicID = compOpportunisticallyDependsOn(InstructionSet_AVX10v1) + ? NI_AVX10v1_ConvertToVector256UInt64WithTruncation + : NI_AVX512DQ_VL_ConvertToVector256UInt64WithTruncation; break; } case 16: { - hwIntrinsicID = NI_AVX512DQ_VL_ConvertToVector128UInt64WithTruncation; + hwIntrinsicID = compOpportunisticallyDependsOn(InstructionSet_AVX10v1) + ? NI_AVX10v1_ConvertToVector128UInt64WithTruncation + : NI_AVX512DQ_VL_ConvertToVector128UInt64WithTruncation; break; } @@ -21851,8 +21919,8 @@ GenTree* Compiler::gtNewSimdCmpOpNode( { if (simdSize == 64) { - assert(IsBaselineVector512IsaSupportedDebugOnly()); - intrinsic = NI_AVX512F_CompareEqualMask; + assert(canUseEvexEncodingDebugOnly()); + intrinsic = NI_EVEX_CompareEqualMask; needsConvertMaskToVector = true; } else if (simdSize == 32) @@ -21914,11 +21982,11 @@ GenTree* Compiler::gtNewSimdCmpOpNode( case GT_GE: { - if (IsBaselineVector512IsaSupportedOpportunistically()) + if (canUseEvexEncoding()) { if ((simdSize == 64) || !varTypeIsFloating(simdBaseType)) { - intrinsic = NI_AVX512F_CompareGreaterThanOrEqualMask; + intrinsic = NI_EVEX_CompareGreaterThanOrEqualMask; needsConvertMaskToVector = true; break; } @@ -21988,11 +22056,11 @@ GenTree* Compiler::gtNewSimdCmpOpNode( case GT_GT: { - if (IsBaselineVector512IsaSupportedOpportunistically()) + if (canUseEvexEncoding()) { if ((simdSize == 64) || varTypeIsUnsigned(simdBaseType)) { - intrinsic = NI_AVX512F_CompareGreaterThanMask; + intrinsic = NI_EVEX_CompareGreaterThanMask; needsConvertMaskToVector = true; break; } @@ -22153,7 +22221,7 @@ GenTree* Compiler::gtNewSimdCmpOpNode( CORINFO_TYPE_INT, simdSize); // Validate we can't use AVX512F_VL_TernaryLogic here - assert(!compIsaSupportedDebugOnly(InstructionSet_AVX512F_VL)); + assert(!canUseEvexEncodingDebugOnly()); op2 = gtNewSimdBinOpNode(GT_AND, type, u, v, simdBaseJitType, simdSize); return gtNewSimdBinOpNode(GT_OR, type, op1, op2, simdBaseJitType, simdSize); @@ -22169,11 +22237,11 @@ GenTree* Compiler::gtNewSimdCmpOpNode( case GT_LE: { - if (IsBaselineVector512IsaSupportedOpportunistically()) + if (canUseEvexEncoding()) { if ((simdSize == 64) || !varTypeIsFloating(simdBaseType)) { - intrinsic = NI_AVX512F_CompareLessThanOrEqualMask; + intrinsic = NI_EVEX_CompareLessThanOrEqualMask; needsConvertMaskToVector = true; break; } @@ -22243,11 +22311,11 @@ GenTree* Compiler::gtNewSimdCmpOpNode( case GT_LT: { - if (IsBaselineVector512IsaSupportedOpportunistically()) + if (canUseEvexEncoding()) { if ((simdSize == 64) || varTypeIsUnsigned(simdBaseType)) { - intrinsic = NI_AVX512F_CompareLessThanMask; + intrinsic = NI_EVEX_CompareLessThanMask; needsConvertMaskToVector = true; break; } @@ -22408,7 +22476,7 @@ GenTree* Compiler::gtNewSimdCmpOpNode( CORINFO_TYPE_INT, simdSize); // Validate we can't use AVX512F_VL_TernaryLogic here - assert(!compIsaSupportedDebugOnly(InstructionSet_AVX512F_VL)); + assert(!canUseEvexEncodingDebugOnly()); op2 = gtNewSimdBinOpNode(GT_AND, type, u, v, simdBaseJitType, simdSize); return gtNewSimdBinOpNode(GT_OR, type, op1, op2, simdBaseJitType, simdSize); @@ -22505,7 +22573,7 @@ GenTree* Compiler::gtNewSimdCmpOpNode( if (needsConvertMaskToVector) { GenTree* retNode = gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, intrinsic, simdBaseJitType, simdSize); - return gtNewSimdHWIntrinsicNode(type, retNode, NI_AVX512F_ConvertMaskToVector, simdBaseJitType, simdSize); + return gtNewSimdHWIntrinsicNode(type, retNode, NI_EVEX_ConvertMaskToVector, simdBaseJitType, simdSize); } else { @@ -22815,7 +22883,7 @@ GenTree* Compiler::gtNewSimdCndSelNode( #if defined(TARGET_XARCH) assert((simdSize != 32) || compIsaSupportedDebugOnly(InstructionSet_AVX)); - if (compOpportunisticallyDependsOn(InstructionSet_AVX512F_VL)) + if (canUseEvexEncoding()) { GenTree* control = gtNewIconNode(0xCA); // (B & A) | (C & ~A) return gtNewSimdTernaryLogicNode(type, op1, op2, op3, control, simdBaseJitType, simdSize); @@ -24032,6 +24100,10 @@ GenTree* Compiler::gtNewSimdMaxNode( { intrinsic = NI_AVX2_Max; } + else if (compOpportunisticallyDependsOn(InstructionSet_AVX10v1)) + { + intrinsic = NI_AVX10v1_Max; + } else if (compOpportunisticallyDependsOn(InstructionSet_AVX512F_VL)) { intrinsic = NI_AVX512F_VL_Max; @@ -24145,7 +24217,11 @@ GenTree* Compiler::gtNewSimdMaxNode( case TYP_LONG: case TYP_ULONG: { - if (compOpportunisticallyDependsOn(InstructionSet_AVX512F_VL)) + if (compOpportunisticallyDependsOn(InstructionSet_AVX10v1)) + { + intrinsic = NI_AVX10v1_Max; + } + else if (compOpportunisticallyDependsOn(InstructionSet_AVX512F_VL)) { intrinsic = NI_AVX512F_VL_Max; } @@ -24239,6 +24315,10 @@ GenTree* Compiler::gtNewSimdMinNode( { intrinsic = NI_AVX2_Min; } + else if (compOpportunisticallyDependsOn(InstructionSet_AVX10v1)) + { + intrinsic = NI_AVX10v1_Min; + } else if (compOpportunisticallyDependsOn(InstructionSet_AVX512F_VL)) { intrinsic = NI_AVX512F_VL_Min; @@ -24348,7 +24428,11 @@ GenTree* Compiler::gtNewSimdMinNode( case TYP_LONG: case TYP_ULONG: { - if (compOpportunisticallyDependsOn(InstructionSet_AVX512F_VL)) + if (compOpportunisticallyDependsOn(InstructionSet_AVX10v1)) + { + intrinsic = NI_AVX10v1_Min; + } + else if (compOpportunisticallyDependsOn(InstructionSet_AVX512F_VL)) { intrinsic = NI_AVX512F_VL_Min; } @@ -24426,11 +24510,12 @@ GenTree* Compiler::gtNewSimdNarrowNode( GenTree* tmp1; GenTree* tmp2; + bool isV512Supported = false; + #if defined(TARGET_XARCH) GenTree* tmp3; GenTree* tmp4; - - if (IsBaselineVector512IsaSupportedOpportunistically()) + if (compIsEvexOpportunisticallySupported(isV512Supported)) { // This is the same in principle to the other comments below, however due to // code formatting, its too long to reasonably display here. @@ -24451,7 +24536,8 @@ GenTree* Compiler::gtNewSimdNarrowNode( } else { - intrinsicId = NI_AVX512BW_VL_ConvertToVector128SByte; + intrinsicId = + !isV512Supported ? NI_AVX10v1_ConvertToVector128SByte : NI_AVX512BW_VL_ConvertToVector128SByte; } opBaseJitType = CORINFO_TYPE_SHORT; @@ -24466,7 +24552,8 @@ GenTree* Compiler::gtNewSimdNarrowNode( } else { - intrinsicId = NI_AVX512BW_VL_ConvertToVector128Byte; + intrinsicId = + !isV512Supported ? NI_AVX10v1_ConvertToVector128Byte : NI_AVX512BW_VL_ConvertToVector128Byte; } opBaseJitType = CORINFO_TYPE_USHORT; @@ -24481,7 +24568,8 @@ GenTree* Compiler::gtNewSimdNarrowNode( } else { - intrinsicId = NI_AVX512F_VL_ConvertToVector128Int16; + intrinsicId = + !isV512Supported ? NI_AVX10v1_ConvertToVector128Int16 : NI_AVX512F_VL_ConvertToVector128Int16; } opBaseJitType = CORINFO_TYPE_INT; @@ -24496,7 +24584,8 @@ GenTree* Compiler::gtNewSimdNarrowNode( } else { - intrinsicId = NI_AVX512F_VL_ConvertToVector128UInt16; + intrinsicId = + !isV512Supported ? NI_AVX10v1_ConvertToVector128UInt16 : NI_AVX512F_VL_ConvertToVector128UInt16; } opBaseJitType = CORINFO_TYPE_UINT; @@ -24511,7 +24600,8 @@ GenTree* Compiler::gtNewSimdNarrowNode( } else { - intrinsicId = NI_AVX512F_VL_ConvertToVector128Int32; + intrinsicId = + !isV512Supported ? NI_AVX10v1_ConvertToVector128Int32 : NI_AVX512F_VL_ConvertToVector128Int32; } opBaseJitType = CORINFO_TYPE_LONG; @@ -24526,7 +24616,8 @@ GenTree* Compiler::gtNewSimdNarrowNode( } else { - intrinsicId = NI_AVX512F_VL_ConvertToVector128UInt32; + intrinsicId = + !isV512Supported ? NI_AVX10v1_ConvertToVector128UInt32 : NI_AVX512F_VL_ConvertToVector128UInt32; } opBaseJitType = CORINFO_TYPE_ULONG; @@ -24594,7 +24685,7 @@ GenTree* Compiler::gtNewSimdNarrowNode( GenTree* vecCon2 = gtCloneExpr(vecCon1); // Validate we can't use AVX512F_VL_TernaryLogic here - assert(!compIsaSupportedDebugOnly(InstructionSet_AVX512F_VL)); + assert(!canUseEvexEncodingDebugOnly()); tmp1 = gtNewSimdBinOpNode(GT_AND, type, op1, vecCon1, simdBaseJitType, simdSize); tmp2 = gtNewSimdBinOpNode(GT_AND, type, op2, vecCon2, simdBaseJitType, simdSize); @@ -24635,7 +24726,7 @@ GenTree* Compiler::gtNewSimdNarrowNode( GenTree* vecCon2 = gtCloneExpr(vecCon1); // Validate we can't use AVX512F_VL_TernaryLogic here - assert(!compIsaSupportedDebugOnly(InstructionSet_AVX512F_VL)); + assert(!canUseEvexEncodingDebugOnly()); tmp1 = gtNewSimdBinOpNode(GT_AND, type, op1, vecCon1, simdBaseJitType, simdSize); tmp2 = gtNewSimdBinOpNode(GT_AND, type, op2, vecCon2, simdBaseJitType, simdSize); @@ -24739,7 +24830,7 @@ GenTree* Compiler::gtNewSimdNarrowNode( GenTree* vecCon2 = gtCloneExpr(vecCon1); // Validate we can't use AVX512F_VL_TernaryLogic here - assert(!compIsaSupportedDebugOnly(InstructionSet_AVX512F_VL)); + assert(!canUseEvexEncodingDebugOnly()); tmp1 = gtNewSimdBinOpNode(GT_AND, type, op1, vecCon1, simdBaseJitType, simdSize); tmp2 = gtNewSimdBinOpNode(GT_AND, type, op2, vecCon2, simdBaseJitType, simdSize); @@ -24778,7 +24869,7 @@ GenTree* Compiler::gtNewSimdNarrowNode( GenTree* vecCon2 = gtCloneExpr(vecCon1); // Validate we can't use AVX512F_VL_TernaryLogic here - assert(!compIsaSupportedDebugOnly(InstructionSet_AVX512F_VL)); + assert(!canUseEvexEncodingDebugOnly()); tmp1 = gtNewSimdBinOpNode(GT_AND, type, op1, vecCon1, simdBaseJitType, simdSize); tmp2 = gtNewSimdBinOpNode(GT_AND, type, op2, vecCon2, simdBaseJitType, simdSize); @@ -25036,9 +25127,11 @@ GenTree* Compiler::gtNewSimdShuffleNode( if (simdSize == 32) { assert(compIsaSupportedDebugOnly(InstructionSet_AVX2)); - - if ((varTypeIsByte(simdBaseType) && !compOpportunisticallyDependsOn(InstructionSet_AVX512VBMI_VL)) || - (varTypeIsShort(simdBaseType) && !compOpportunisticallyDependsOn(InstructionSet_AVX512BW_VL))) + bool isV512Supported = false; + if ((varTypeIsByte(simdBaseType) && + !compIsEvexOpportunisticallySupported(isV512Supported, InstructionSet_AVX512VBMI_VL)) || + (varTypeIsShort(simdBaseType) && + !compIsEvexOpportunisticallySupported(isV512Supported, InstructionSet_AVX512BW_VL))) { if (crossLane) { @@ -25093,7 +25186,7 @@ GenTree* Compiler::gtNewSimdShuffleNode( } else if (elementSize == 2) { - assert(compIsaSupportedDebugOnly(InstructionSet_AVX512BW_VL)); + assert(canUseEvexEncodingDebugOnly()); for (uint32_t i = 0; i < elementCount; i++) { vecCns.u16[i] = (uint8_t)(vecCns.u8[i * elementSize] / elementSize); @@ -25103,18 +25196,22 @@ GenTree* Compiler::gtNewSimdShuffleNode( op2->AsVecCon()->gtSimdVal = vecCns; // swap the operands to match the encoding requirements - retNode = - gtNewSimdHWIntrinsicNode(type, op2, op1, NI_AVX512BW_VL_PermuteVar16x16, simdBaseJitType, simdSize); + retNode = !isV512Supported ? gtNewSimdHWIntrinsicNode(type, op2, op1, NI_AVX10v1_PermuteVar16x16, + simdBaseJitType, simdSize) + : gtNewSimdHWIntrinsicNode(type, op2, op1, NI_AVX512BW_VL_PermuteVar16x16, + simdBaseJitType, simdSize); } else if (elementSize == 1) { - assert(compIsaSupportedDebugOnly(InstructionSet_AVX512VBMI_VL)); + assert(IsAvx10OrIsaSupportedDebugOnly(InstructionSet_AVX512VBMI_VL)); op2 = gtNewVconNode(type); op2->AsVecCon()->gtSimdVal = vecCns; // swap the operands to match the encoding requirements - retNode = - gtNewSimdHWIntrinsicNode(type, op2, op1, NI_AVX512VBMI_VL_PermuteVar32x8, simdBaseJitType, simdSize); + retNode = !isV512Supported ? gtNewSimdHWIntrinsicNode(type, op2, op1, NI_AVX10v1_PermuteVar32x8, + simdBaseJitType, simdSize) + : gtNewSimdHWIntrinsicNode(type, op2, op1, NI_AVX512VBMI_VL_PermuteVar32x8, + simdBaseJitType, simdSize); } else { @@ -25736,7 +25833,8 @@ GenTree* Compiler::gtNewSimdTernaryLogicNode(var_types type, CorInfoType simdBaseJitType, unsigned simdSize) { - assert(IsBaselineVector512IsaSupportedDebugOnly()); + assert(IsBaselineVector512IsaSupportedDebugOnly() || + ((simdSize != 64) && compIsaSupportedDebugOnly(InstructionSet_AVX10v1))); assert(varTypeIsSIMD(type)); assert(getSIMDTypeForSize(simdSize) == type); @@ -25762,6 +25860,11 @@ GenTree* Compiler::gtNewSimdTernaryLogicNode(var_types type, { intrinsic = NI_AVX512F_TernaryLogic; } + else if (compOpportunisticallyDependsOn(InstructionSet_AVX10v1)) + { + assert((simdSize == 16) || (simdSize == 32)); + intrinsic = NI_AVX10v1_TernaryLogic; + } else { assert((simdSize == 16) || (simdSize == 32)); @@ -25908,8 +26011,11 @@ GenTree* Compiler::gtNewSimdUnOpNode( { assert(compIsaSupportedDebugOnly(InstructionSet_AVX)); } - - if ((genTypeSize(simdBaseType) >= 4) && compOpportunisticallyDependsOn(InstructionSet_AVX512F_VL)) + if ((genTypeSize(simdBaseType) >= 4) && compOpportunisticallyDependsOn(InstructionSet_AVX10v1)) + { + intrinsic = NI_AVX10v1_TernaryLogic; + } + else if ((genTypeSize(simdBaseType) >= 4) && compOpportunisticallyDependsOn(InstructionSet_AVX512F_VL)) { intrinsic = NI_AVX512F_VL_TernaryLogic; } @@ -25918,7 +26024,7 @@ GenTree* Compiler::gtNewSimdUnOpNode( if (intrinsic != NI_Illegal) { // AVX512 allows performing `not` without requiring a memory access - assert(compIsaSupportedDebugOnly(InstructionSet_AVX512F_VL)); + assert(canUseEvexEncodingDebugOnly()); op2 = gtNewZeroConNode(type); op3 = gtNewZeroConNode(type); @@ -26978,6 +27084,7 @@ bool GenTreeHWIntrinsic::OperIsEmbBroadcastCompatible() const case NI_AVX512F_ConvertToVector256Int32: case NI_AVX512F_ConvertToVector256UInt32: case NI_AVX512F_VL_ConvertToVector128UInt32: + case NI_AVX10v1_ConvertToVector128UInt32: { return varTypeIsFloating(simdBaseType); } @@ -27087,6 +27194,11 @@ bool GenTreeHWIntrinsic::OperIsEmbRoundingEnabled() const case NI_AVX512F_MultiplyScalar: case NI_AVX512F_SubtractScalar: case NI_AVX512F_SqrtScalar: + case NI_AVX10v1_AddScalar: + case NI_AVX10v1_DivideScalar: + case NI_AVX10v1_MultiplyScalar: + case NI_AVX10v1_SubtractScalar: + case NI_AVX10v1_SqrtScalar: { return true; } @@ -27101,6 +27213,10 @@ bool GenTreeHWIntrinsic::OperIsEmbRoundingEnabled() const case NI_AVX512F_FusedMultiplySubtractNegated: case NI_AVX512F_FusedMultiplySubtractNegatedScalar: case NI_AVX512F_FusedMultiplySubtractScalar: + case NI_AVX10v1_FusedMultiplyAddScalar: + case NI_AVX10v1_FusedMultiplyAddNegatedScalar: + case NI_AVX10v1_FusedMultiplySubtractScalar: + case NI_AVX10v1_FusedMultiplySubtractNegatedScalar: { return numArgs == 4; } @@ -27112,12 +27228,16 @@ bool GenTreeHWIntrinsic::OperIsEmbRoundingEnabled() const case NI_AVX512F_Scale: case NI_AVX512F_ScaleScalar: + case NI_AVX10v1_ScaleScalar: case NI_AVX512F_ConvertScalarToVector128Single: #if defined(TARGET_AMD64) case NI_AVX512F_X64_ConvertScalarToVector128Double: case NI_AVX512F_X64_ConvertScalarToVector128Single: + case NI_AVX10v1_X64_ConvertScalarToVector128Double: + case NI_AVX10v1_X64_ConvertScalarToVector128Single: #endif // TARGET_AMD64 + case NI_AVX10v1_ConvertScalarToVector128Single: { return numArgs == 3; } @@ -27134,11 +27254,19 @@ bool GenTreeHWIntrinsic::OperIsEmbRoundingEnabled() const #if defined(TARGET_AMD64) case NI_AVX512F_X64_ConvertToInt64: case NI_AVX512F_X64_ConvertToUInt64: + case NI_AVX10v1_X64_ConvertToInt64: + case NI_AVX10v1_X64_ConvertToUInt64: #endif // TARGET_AMD64 case NI_AVX512DQ_ConvertToVector256Single: case NI_AVX512DQ_ConvertToVector512Double: case NI_AVX512DQ_ConvertToVector512Int64: case NI_AVX512DQ_ConvertToVector512UInt64: + case NI_AVX10v1_ConvertToInt32: + case NI_AVX10v1_ConvertToUInt32: + case NI_AVX10v1_V512_ConvertToVector256Single: + case NI_AVX10v1_V512_ConvertToVector512Double: + case NI_AVX10v1_V512_ConvertToVector512Int64: + case NI_AVX10v1_V512_ConvertToVector512UInt64: { return numArgs == 2; } @@ -27399,6 +27527,7 @@ genTreeOps GenTreeHWIntrinsic::HWOperGet() const case NI_AVX2_And: case NI_AVX512F_And: case NI_AVX512DQ_And: + case NI_AVX10v1_V512_And: #elif defined(TARGET_ARM64) case NI_AdvSimd_And: #endif @@ -27420,6 +27549,7 @@ genTreeOps GenTreeHWIntrinsic::HWOperGet() const case NI_AVX2_Xor: case NI_AVX512F_Xor: case NI_AVX512DQ_Xor: + case NI_AVX10v1_V512_Xor: #elif defined(TARGET_ARM64) case NI_AdvSimd_Xor: #endif @@ -27434,6 +27564,7 @@ genTreeOps GenTreeHWIntrinsic::HWOperGet() const case NI_AVX2_Or: case NI_AVX512F_Or: case NI_AVX512DQ_Or: + case NI_AVX10v1_V512_Or: #elif defined(TARGET_ARM64) case NI_AdvSimd_Or: #endif @@ -27448,6 +27579,7 @@ genTreeOps GenTreeHWIntrinsic::HWOperGet() const case NI_AVX2_AndNot: case NI_AVX512F_AndNot: case NI_AVX512DQ_AndNot: + case NI_AVX10v1_V512_AndNot: { return GT_AND_NOT; } diff --git a/src/coreclr/jit/gentree.h b/src/coreclr/jit/gentree.h index 578b2f43b349b..942e75bdd4960 100644 --- a/src/coreclr/jit/gentree.h +++ b/src/coreclr/jit/gentree.h @@ -6518,7 +6518,7 @@ struct GenTreeHWIntrinsic : public GenTreeJitIntrinsic bool OperIsConvertMaskToVector() const { #if defined(TARGET_XARCH) - return GetHWIntrinsicId() == NI_AVX512F_ConvertMaskToVector; + return GetHWIntrinsicId() == NI_EVEX_ConvertMaskToVector; #elif defined(TARGET_ARM64) return GetHWIntrinsicId() == NI_Sve_ConvertMaskToVector; #else @@ -6529,7 +6529,7 @@ struct GenTreeHWIntrinsic : public GenTreeJitIntrinsic bool OperIsConvertVectorToMask() const { #if defined(TARGET_XARCH) - return GetHWIntrinsicId() == NI_AVX512F_ConvertVectorToMask; + return GetHWIntrinsicId() == NI_EVEX_ConvertVectorToMask; #elif defined(TARGET_ARM64) return GetHWIntrinsicId() == NI_Sve_ConvertVectorToMask; #else diff --git a/src/coreclr/jit/hwintrinsiccodegenxarch.cpp b/src/coreclr/jit/hwintrinsiccodegenxarch.cpp index 8b8bbac6280a2..57ee811ef8be7 100644 --- a/src/coreclr/jit/hwintrinsiccodegenxarch.cpp +++ b/src/coreclr/jit/hwintrinsiccodegenxarch.cpp @@ -198,7 +198,7 @@ void CodeGen::genHWIntrinsic(GenTreeHWIntrinsic* node) if (op2->IsEmbMaskOp()) { - assert(intrinsicId == NI_AVX512F_BlendVariableMask); + assert(intrinsicId == NI_EVEX_BlendVariableMask); assert(op2->isContained()); assert(op2->OperIsHWIntrinsic()); @@ -613,7 +613,7 @@ void CodeGen::genHWIntrinsic(GenTreeHWIntrinsic* node) case NI_SSE41_BlendVariable: case NI_AVX_BlendVariable: case NI_AVX2_BlendVariable: - case NI_AVX512F_BlendVariableMask: + case NI_EVEX_BlendVariableMask: { genHWIntrinsic_R_R_RM_R(node, ins, simdSize, instOptions); break; @@ -776,6 +776,12 @@ void CodeGen::genHWIntrinsic(GenTreeHWIntrinsic* node) case InstructionSet_AVX512BW_VL: case InstructionSet_AVX512VBMI: case InstructionSet_AVX512VBMI_VL: + case InstructionSet_AVX10v1: + case InstructionSet_AVX10v1_X64: + case InstructionSet_AVX10v1_V512: + case InstructionSet_AVX10v1_V512_X64: + case InstructionSet_EVEX: + case InstructionSet_EVEX_X64: { genAvxFamilyIntrinsic(node, instOptions); break; @@ -908,7 +914,7 @@ void CodeGen::genHWIntrinsic_R_RM( { if (varTypeIsSmall(node->GetSimdBaseType())) { - if (compiler->compOpportunisticallyDependsOn(InstructionSet_AVX512BW_VL)) + if (compiler->canUseEvexEncoding()) { needsInstructionFixup = true; } @@ -917,7 +923,7 @@ void CodeGen::genHWIntrinsic_R_RM( needsBroadcastFixup = true; } } - else if (compiler->compOpportunisticallyDependsOn(InstructionSet_AVX512F_VL)) + else if (compiler->canUseEvexEncoding()) { needsInstructionFixup = true; } @@ -1293,7 +1299,8 @@ void CodeGen::genHWIntrinsic_R_R_R_RM_I( #if defined(DEBUG) NamedIntrinsic intrinsicId = node->GetHWIntrinsicId(); - assert((intrinsicId == NI_AVX512F_TernaryLogic) || (intrinsicId == NI_AVX512F_VL_TernaryLogic)); + assert((intrinsicId == NI_AVX512F_TernaryLogic) || (intrinsicId == NI_AVX512F_VL_TernaryLogic) || + (intrinsicId == NI_AVX10v1_TernaryLogic)); uint8_t control = static_cast(ival); const TernaryLogicInfo& info = TernaryLogicInfo::lookup(control); @@ -1462,9 +1469,13 @@ void CodeGen::genNonTableDrivenHWIntrinsicsJumpTableFallback(GenTreeHWIntrinsic* case NI_AVX512F_ConvertToInt32: case NI_AVX512F_ConvertToUInt32: + case NI_AVX10v1_ConvertToInt32: + case NI_AVX10v1_ConvertToUInt32: #if defined(TARGET_AMD64) case NI_AVX512F_X64_ConvertToInt64: case NI_AVX512F_X64_ConvertToUInt64: + case NI_AVX10v1_X64_ConvertToInt64: + case NI_AVX10v1_X64_ConvertToUInt64: #endif // TARGET_AMD64 { assert(varTypeIsFloating(baseType)); @@ -1483,6 +1494,8 @@ void CodeGen::genNonTableDrivenHWIntrinsicsJumpTableFallback(GenTreeHWIntrinsic* case NI_AVX512F_X64_ConvertScalarToVector128Single: case NI_AVX512F_X64_ConvertScalarToVector128Double: + case NI_AVX10v1_X64_ConvertScalarToVector128Single: + case NI_AVX10v1_X64_ConvertScalarToVector128Double: { assert(varTypeIsLong(baseType)); auto emitSwCase = [&](int8_t i) { @@ -1505,6 +1518,10 @@ void CodeGen::genNonTableDrivenHWIntrinsicsJumpTableFallback(GenTreeHWIntrinsic* case NI_AVX512F_FusedMultiplySubtractNegated: case NI_AVX512F_FusedMultiplySubtractNegatedScalar: case NI_AVX512F_FusedMultiplySubtractScalar: + case NI_AVX10v1_FusedMultiplyAddScalar: + case NI_AVX10v1_FusedMultiplyAddNegatedScalar: + case NI_AVX10v1_FusedMultiplySubtractScalar: + case NI_AVX10v1_FusedMultiplySubtractNegatedScalar: { // For FMA intrinsics, since it is not possible to get any contained operand in this case: embedded rounding // is limited in register-to-register form, and the control byte is dynamic, we don't need to do any swap. @@ -2404,7 +2421,7 @@ void CodeGen::genAvxFamilyIntrinsic(GenTreeHWIntrinsic* node, insOpts instOption break; } - case NI_AVX512F_AddMask: + case NI_EVEX_AddMask: { assert(instOptions == INS_OPTS_NONE); @@ -2444,7 +2461,7 @@ void CodeGen::genAvxFamilyIntrinsic(GenTreeHWIntrinsic* node, insOpts instOption break; } - case NI_AVX512F_AndMask: + case NI_EVEX_AndMask: { assert(instOptions == INS_OPTS_NONE); @@ -2484,7 +2501,7 @@ void CodeGen::genAvxFamilyIntrinsic(GenTreeHWIntrinsic* node, insOpts instOption break; } - case NI_AVX512F_AndNotMask: + case NI_EVEX_AndNotMask: { assert(instOptions == INS_OPTS_NONE); @@ -2524,7 +2541,7 @@ void CodeGen::genAvxFamilyIntrinsic(GenTreeHWIntrinsic* node, insOpts instOption break; } - case NI_AVX512F_MoveMask: + case NI_EVEX_MoveMask: { assert(instOptions == INS_OPTS_NONE); @@ -2561,7 +2578,7 @@ void CodeGen::genAvxFamilyIntrinsic(GenTreeHWIntrinsic* node, insOpts instOption break; } - case NI_AVX512F_KORTEST: + case NI_EVEX_KORTEST: { assert(instOptions == INS_OPTS_NONE); @@ -2603,7 +2620,7 @@ void CodeGen::genAvxFamilyIntrinsic(GenTreeHWIntrinsic* node, insOpts instOption break; } - case NI_AVX512F_KTEST: + case NI_EVEX_KTEST: { assert(instOptions == INS_OPTS_NONE); @@ -2641,7 +2658,7 @@ void CodeGen::genAvxFamilyIntrinsic(GenTreeHWIntrinsic* node, insOpts instOption break; } - case NI_AVX512F_NotMask: + case NI_EVEX_NotMask: { assert(instOptions == INS_OPTS_NONE); @@ -2676,7 +2693,7 @@ void CodeGen::genAvxFamilyIntrinsic(GenTreeHWIntrinsic* node, insOpts instOption break; } - case NI_AVX512F_OrMask: + case NI_EVEX_OrMask: { assert(instOptions == INS_OPTS_NONE); @@ -2716,7 +2733,7 @@ void CodeGen::genAvxFamilyIntrinsic(GenTreeHWIntrinsic* node, insOpts instOption break; } - case NI_AVX512F_ShiftLeftMask: + case NI_EVEX_ShiftLeftMask: { assert(instOptions == INS_OPTS_NONE); @@ -2757,7 +2774,7 @@ void CodeGen::genAvxFamilyIntrinsic(GenTreeHWIntrinsic* node, insOpts instOption break; } - case NI_AVX512F_ShiftRightMask: + case NI_EVEX_ShiftRightMask: { assert(instOptions == INS_OPTS_NONE); @@ -2798,7 +2815,7 @@ void CodeGen::genAvxFamilyIntrinsic(GenTreeHWIntrinsic* node, insOpts instOption break; } - case NI_AVX512F_XorMask: + case NI_EVEX_XorMask: { assert(instOptions == INS_OPTS_NONE); @@ -2844,6 +2861,12 @@ void CodeGen::genAvxFamilyIntrinsic(GenTreeHWIntrinsic* node, insOpts instOption case NI_AVX512F_X64_ConvertToInt64: case NI_AVX512F_X64_ConvertToUInt64: case NI_AVX512F_X64_ConvertToUInt64WithTruncation: + case NI_AVX10v1_X64_ConvertToInt64: + case NI_AVX10v1_X64_ConvertToUInt64: + case NI_AVX10v1_X64_ConvertToUInt64WithTruncation: + case NI_AVX10v1_ConvertToInt32: + case NI_AVX10v1_ConvertToUInt32: + case NI_AVX10v1_ConvertToUInt32WithTruncation: { assert(baseType == TYP_DOUBLE || baseType == TYP_FLOAT); emitAttr attr = emitTypeSize(targetType); @@ -2857,6 +2880,8 @@ void CodeGen::genAvxFamilyIntrinsic(GenTreeHWIntrinsic* node, insOpts instOption case NI_AVX512F_ConvertToVector256UInt32: case NI_AVX512F_VL_ConvertToVector128UInt32: case NI_AVX512F_VL_ConvertToVector128UInt32WithSaturation: + case NI_AVX10v1_ConvertToVector128UInt32: + case NI_AVX10v1_ConvertToVector128UInt32WithSaturation: { if (varTypeIsFloating(baseType)) { @@ -2899,6 +2924,16 @@ void CodeGen::genAvxFamilyIntrinsic(GenTreeHWIntrinsic* node, insOpts instOption case NI_AVX512BW_VL_ConvertToVector128ByteWithSaturation: case NI_AVX512BW_VL_ConvertToVector128SByte: case NI_AVX512BW_VL_ConvertToVector128SByteWithSaturation: + case NI_AVX10v1_ConvertToVector128Byte: + case NI_AVX10v1_ConvertToVector128ByteWithSaturation: + case NI_AVX10v1_ConvertToVector128Int16: + case NI_AVX10v1_ConvertToVector128Int16WithSaturation: + case NI_AVX10v1_ConvertToVector128Int32: + case NI_AVX10v1_ConvertToVector128Int32WithSaturation: + case NI_AVX10v1_ConvertToVector128SByte: + case NI_AVX10v1_ConvertToVector128SByteWithSaturation: + case NI_AVX10v1_ConvertToVector128UInt16: + case NI_AVX10v1_ConvertToVector128UInt16WithSaturation: { instruction ins = HWIntrinsicInfo::lookupIns(intrinsicId, baseType); @@ -2912,6 +2947,8 @@ void CodeGen::genAvxFamilyIntrinsic(GenTreeHWIntrinsic* node, insOpts instOption case NI_AVX512F_X64_ConvertScalarToVector128Double: case NI_AVX512F_X64_ConvertScalarToVector128Single: + case NI_AVX10v1_X64_ConvertScalarToVector128Double: + case NI_AVX10v1_X64_ConvertScalarToVector128Single: { assert(baseType == TYP_ULONG || baseType == TYP_LONG); instruction ins = HWIntrinsicInfo::lookupIns(intrinsicId, baseType); diff --git a/src/coreclr/jit/hwintrinsiclistxarch.h b/src/coreclr/jit/hwintrinsiclistxarch.h index 578e50f76821c..4711d19c2234a 100644 --- a/src/coreclr/jit/hwintrinsiclistxarch.h +++ b/src/coreclr/jit/hwintrinsiclistxarch.h @@ -1122,6 +1122,162 @@ HARDWARE_INTRINSIC(AVX512VBMI_VL, PermuteVar16x8x2, HARDWARE_INTRINSIC(AVX512VBMI_VL, PermuteVar32x8, 32, 2, false, {INS_vpermb, INS_vpermb, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_SpecialImport|HW_Flag_EmbMaskingCompatible) HARDWARE_INTRINSIC(AVX512VBMI_VL, PermuteVar32x8x2, 32, 3, false, {INS_vpermt2b, INS_vpermt2b, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_SpecialCodeGen|HW_Flag_PermuteVar2x|HW_Flag_RmwIntrinsic|HW_Flag_EmbMaskingCompatible) +// *************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** +// ISA Function name SIMD size NumArg EncodesExtraTypeArg Instructions Category Flags +// {TYP_BYTE, TYP_UBYTE, TYP_SHORT, TYP_USHORT, TYP_INT, TYP_UINT, TYP_LONG, TYP_ULONG, TYP_FLOAT, TYP_DOUBLE} +// *************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** +// AVX10V1 Intrinsics +HARDWARE_INTRINSIC(AVX10v1, Abs, -1, 1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vpabsq, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, AddScalar, 16, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_addss, INS_addsd}, HW_Category_SIMDScalar, HW_Flag_CopyUpperBits|HW_Flag_EmbRoundingCompatible) +HARDWARE_INTRINSIC(AVX10v1, AlignRight32, -1, 3, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_valignd, INS_valignd, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_IMM, HW_Flag_FullRangeIMM|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, AlignRight64, -1, 3, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_valignq, INS_valignq, INS_invalid, INS_invalid}, HW_Category_IMM, HW_Flag_FullRangeIMM|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, BroadcastPairScalarToVector128, 16, 1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vbroadcasti32x2, INS_vbroadcasti32x2, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_NoFlag) +HARDWARE_INTRINSIC(AVX10v1, BroadcastPairScalarToVector256, 32, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vbroadcasti32x2, INS_vbroadcasti32x2, INS_invalid, INS_invalid, INS_vbroadcastf32x2, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_NoFlag) +HARDWARE_INTRINSIC(AVX10v1, CompareGreaterThan, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_InvalidNodeId) +HARDWARE_INTRINSIC(AVX10v1, CompareGreaterThanOrEqual, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_InvalidNodeId) +HARDWARE_INTRINSIC(AVX10v1, CompareLessThan, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_InvalidNodeId) +HARDWARE_INTRINSIC(AVX10v1, CompareLessThanOrEqual, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_InvalidNodeId) +HARDWARE_INTRINSIC(AVX10v1, CompareNotEqual, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_InvalidNodeId) +HARDWARE_INTRINSIC(AVX10v1, ConvertScalarToVector128Double, 16, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_cvtsi2sd32, INS_vcvtusi2sd32, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMDScalar, HW_Flag_BaseTypeFromSecondArg|HW_Flag_CopyUpperBits) +HARDWARE_INTRINSIC(AVX10v1, ConvertScalarToVector128Single, 16, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_cvtsi2ss32, INS_vcvtusi2ss32, INS_invalid, INS_invalid, INS_invalid, INS_cvtsd2ss}, HW_Category_SIMDScalar, HW_Flag_BaseTypeFromSecondArg|HW_Flag_CopyUpperBits|HW_Flag_EmbRoundingCompatible) +HARDWARE_INTRINSIC(AVX10v1, ConvertToInt32, 16, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_cvtss2si, INS_cvtsd2si}, HW_Category_SIMDScalar, HW_Flag_BaseTypeFromFirstArg|HW_Flag_SpecialCodeGen|HW_Flag_EmbRoundingCompatible) +HARDWARE_INTRINSIC(AVX10v1, ConvertToUInt32, 16, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcvtss2usi, INS_vcvtsd2usi}, HW_Category_SIMDScalar, HW_Flag_BaseTypeFromFirstArg|HW_Flag_SpecialCodeGen|HW_Flag_EmbRoundingCompatible) +HARDWARE_INTRINSIC(AVX10v1, ConvertToUInt32WithTruncation, 16, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcvttss2usi32, INS_vcvttsd2usi32}, HW_Category_SIMDScalar, HW_Flag_BaseTypeFromFirstArg|HW_Flag_SpecialCodeGen) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector128Byte, -1, 1, true, {INS_invalid, INS_invalid, INS_vpmovwb, INS_vpmovwb, INS_vpmovdb, INS_vpmovdb, INS_vpmovqb, INS_vpmovqb, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_SpecialCodeGen) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector128ByteWithSaturation, -1, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_vpmovuswb, INS_invalid, INS_vpmovusdb, INS_invalid, INS_vpmovusqb, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_SpecialCodeGen) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector128Double, 16, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcvtudq2pd, INS_vcvtqq2pd, INS_vcvtuqq2pd, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector128Int16, -1, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vpmovdw, INS_vpmovdw, INS_vpmovqw, INS_vpmovqw, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_SpecialCodeGen) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector128Int16WithSaturation, -1, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vpmovsdw, INS_invalid, INS_vpmovsqw, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_SpecialCodeGen) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector128Int32, -1, 1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vpmovqd, INS_vpmovqd, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_SpecialCodeGen) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector128Int32WithSaturation, -1, 1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vpmovsqd, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_SpecialCodeGen) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector128Int64, 16, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcvtps2qq, INS_vcvtpd2qq}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector128Int64WithTruncation, 16, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcvttps2qq, INS_vcvttpd2qq}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector128SByte, -1, 1, true, {INS_invalid, INS_invalid, INS_vpmovwb, INS_vpmovwb, INS_vpmovdb, INS_vpmovdb, INS_vpmovqb, INS_vpmovqb, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_SpecialCodeGen) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector128SByteWithSaturation, -1, 1, true, {INS_invalid, INS_invalid, INS_vpmovswb, INS_invalid, INS_vpmovsdb, INS_invalid, INS_vpmovsqb, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_SpecialCodeGen) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector128Single, -1, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcvtudq2ps, INS_vcvtqq2ps, INS_vcvtuqq2ps, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector128UInt16, -1, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vpmovdw, INS_vpmovdw, INS_vpmovqw, INS_vpmovqw, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_SpecialCodeGen) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector128UInt16WithSaturation, -1, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vpmovusdw, INS_invalid, INS_vpmovusqw, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_SpecialCodeGen) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector128UInt32, -1, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vpmovqd, INS_vpmovqd, INS_vcvtps2udq, INS_vcvtpd2udq}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_SpecialCodeGen) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector128UInt32WithSaturation, -1, 1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vpmovusqd, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_SpecialCodeGen) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector128UInt32WithTruncation, -1, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcvttps2udq, INS_vcvttpd2udq}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector128UInt64, 16, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcvtps2uqq, INS_vcvtpd2uqq}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector128UInt64WithTruncation, 16, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcvttps2uqq, INS_vcvttpd2uqq}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector256Double, 32, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcvtudq2pd, INS_vcvtqq2pd, INS_vcvtuqq2pd, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector256Int64, 32, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcvtps2qq, INS_vcvtpd2qq}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector256Int64WithTruncation, 32, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcvttps2qq, INS_vcvttpd2qq}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector256Single, 32, 1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcvtudq2ps, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector256UInt32, 32, 1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcvtps2udq, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector256UInt32WithTruncation, 32, 1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcvttps2udq, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector256UInt64, 32, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcvtps2uqq, INS_vcvtpd2uqq}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, ConvertToVector256UInt64WithTruncation, 32, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcvttps2uqq, INS_vcvttpd2uqq}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, DetectConflicts, -1, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vpconflictd, INS_vpconflictd, INS_vpconflictq, INS_vpconflictq, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, DivideScalar, 16, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_divss, INS_divsd}, HW_Category_SIMDScalar, HW_Flag_CopyUpperBits|HW_Flag_EmbRoundingCompatible) +HARDWARE_INTRINSIC(AVX10v1, Fixup, -1, 4, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vfixupimmps, INS_vfixupimmpd}, HW_Category_IMM, HW_Flag_SpecialImport|HW_Flag_FullRangeIMM|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, FixupScalar, 16, 4, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vfixupimmss, INS_vfixupimmsd}, HW_Category_IMM, HW_Flag_SpecialImport|HW_Flag_FullRangeIMM|HW_Flag_CopyUpperBits) +HARDWARE_INTRINSIC(AVX10v1, FusedMultiplyAddNegatedScalar, 16, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vfnmadd213ss, INS_vfnmadd213sd}, HW_Category_SIMDScalar, HW_Flag_SpecialCodeGen|HW_Flag_FmaIntrinsic|HW_Flag_RmwIntrinsic|HW_Flag_EmbRoundingCompatible|HW_Flag_CopyUpperBits) +HARDWARE_INTRINSIC(AVX10v1, FusedMultiplyAddScalar, 16, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vfmadd213ss, INS_vfmadd213sd}, HW_Category_SIMDScalar, HW_Flag_SpecialCodeGen|HW_Flag_FmaIntrinsic|HW_Flag_RmwIntrinsic|HW_Flag_EmbRoundingCompatible|HW_Flag_CopyUpperBits) +HARDWARE_INTRINSIC(AVX10v1, FusedMultiplySubtractNegatedScalar, 16, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vfnmsub213ss, INS_vfnmsub213sd}, HW_Category_SIMDScalar, HW_Flag_SpecialCodeGen|HW_Flag_FmaIntrinsic|HW_Flag_RmwIntrinsic|HW_Flag_EmbRoundingCompatible|HW_Flag_CopyUpperBits) +HARDWARE_INTRINSIC(AVX10v1, FusedMultiplySubtractScalar, 16, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vfmsub213ss, INS_vfmsub213sd}, HW_Category_SIMDScalar, HW_Flag_SpecialCodeGen|HW_Flag_FmaIntrinsic|HW_Flag_RmwIntrinsic|HW_Flag_EmbRoundingCompatible|HW_Flag_CopyUpperBits) +HARDWARE_INTRINSIC(AVX10v1, GetExponent, -1, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vgetexpps, INS_vgetexppd}, HW_Category_SimpleSIMD, HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, GetExponentScalar, 16, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vgetexpss, INS_vgetexpsd}, HW_Category_SIMDScalar, HW_Flag_CopyUpperBits) +HARDWARE_INTRINSIC(AVX10v1, GetMantissa, -1, 2, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vgetmantps, INS_vgetmantpd}, HW_Category_IMM, HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, GetMantissaScalar, 16, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vgetmantss, INS_vgetmantsd}, HW_Category_IMM, HW_Flag_CopyUpperBits) +HARDWARE_INTRINSIC(AVX10v1, LeadingZeroCount, -1, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vplzcntd, INS_vplzcntd, INS_vplzcntq, INS_vplzcntq, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, Max, -1, 2, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vpmaxsq, INS_vpmaxuq, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible|HW_Flag_Commutative) +HARDWARE_INTRINSIC(AVX10v1, Min, -1, 2, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vpminsq, INS_vpminuq, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible|HW_Flag_Commutative) +HARDWARE_INTRINSIC(AVX10v1, MultiplyAdd, -1, 3, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vfmadd213ps, INS_vfmadd213pd}, HW_Category_SimpleSIMD, HW_Flag_SpecialCodeGen|HW_Flag_FmaIntrinsic|HW_Flag_RmwIntrinsic|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, MultiplyAddNegated, -1, 3, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vfnmadd213ps, INS_vfnmadd213pd}, HW_Category_SimpleSIMD, HW_Flag_SpecialCodeGen|HW_Flag_FmaIntrinsic|HW_Flag_RmwIntrinsic|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, MultiplyAddNegatedScalar, 16, 3, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vfnmadd213ss, INS_vfnmadd213sd}, HW_Category_SIMDScalar, HW_Flag_SpecialCodeGen|HW_Flag_FmaIntrinsic|HW_Flag_RmwIntrinsic|HW_Flag_CopyUpperBits) +HARDWARE_INTRINSIC(AVX10v1, MultiplyAddScalar, 16, 3, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vfmadd213ss, INS_vfmadd213sd}, HW_Category_SIMDScalar, HW_Flag_SpecialCodeGen|HW_Flag_FmaIntrinsic|HW_Flag_RmwIntrinsic|HW_Flag_CopyUpperBits) +HARDWARE_INTRINSIC(AVX10v1, MultiplyAddSubtract, -1, 3, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vfmaddsub213ps, INS_vfmaddsub213pd}, HW_Category_SimpleSIMD, HW_Flag_SpecialCodeGen|HW_Flag_FmaIntrinsic|HW_Flag_RmwIntrinsic|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, MultiplyLow, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vpmullq, INS_vpmullq, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_Commutative|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, MultiplyScalar, 16, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_mulss, INS_mulsd}, HW_Category_SIMDScalar, HW_Flag_CopyUpperBits|HW_Flag_EmbRoundingCompatible) +HARDWARE_INTRINSIC(AVX10v1, MultiplySubtract, -1, 3, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vfmsub213ps, INS_vfmsub213pd}, HW_Category_SimpleSIMD, HW_Flag_SpecialCodeGen|HW_Flag_FmaIntrinsic|HW_Flag_RmwIntrinsic|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, MultiplySubtractAdd, -1, 3, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vfmsubadd213ps, INS_vfmsubadd213pd}, HW_Category_SimpleSIMD, HW_Flag_SpecialCodeGen|HW_Flag_FmaIntrinsic|HW_Flag_RmwIntrinsic|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, MultiplySubtractNegated, -1, 3, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vfnmsub213ps, INS_vfnmsub213pd}, HW_Category_SimpleSIMD, HW_Flag_SpecialCodeGen|HW_Flag_FmaIntrinsic|HW_Flag_RmwIntrinsic|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, MultiplySubtractNegatedScalar, 16, 3, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vfnmsub213ss, INS_vfnmsub213sd}, HW_Category_SIMDScalar, HW_Flag_SpecialCodeGen|HW_Flag_FmaIntrinsic|HW_Flag_RmwIntrinsic|HW_Flag_CopyUpperBits) +HARDWARE_INTRINSIC(AVX10v1, MultiplySubtractScalar, 16, 3, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vfmsub213ss, INS_vfmsub213sd}, HW_Category_SIMDScalar, HW_Flag_SpecialCodeGen|HW_Flag_FmaIntrinsic|HW_Flag_RmwIntrinsic|HW_Flag_CopyUpperBits) +HARDWARE_INTRINSIC(AVX10v1, PermuteVar16x16, 32, 2, false, {INS_invalid, INS_invalid, INS_vpermw, INS_vpermw, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_SpecialImport|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, PermuteVar16x16x2, 32, 3, false, {INS_invalid, INS_invalid, INS_vpermt2w, INS_vpermt2w, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_SpecialCodeGen|HW_Flag_PermuteVar2x|HW_Flag_RmwIntrinsic|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, PermuteVar16x8, 16, 2, false, {INS_vpermb, INS_vpermb, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_SpecialImport|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, PermuteVar16x8x2, 16, 3, false, {INS_vpermt2b, INS_vpermt2b, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_SpecialCodeGen|HW_Flag_PermuteVar2x|HW_Flag_RmwIntrinsic|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, PermuteVar2x64x2, 16, 3, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vpermt2q, INS_vpermt2q, INS_invalid, INS_vpermt2pd}, HW_Category_SimpleSIMD, HW_Flag_SpecialCodeGen|HW_Flag_PermuteVar2x|HW_Flag_RmwIntrinsic|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, PermuteVar32x8, 32, 2, false, {INS_vpermb, INS_vpermb, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_SpecialImport|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, PermuteVar32x8x2, 32, 3, false, {INS_vpermt2b, INS_vpermt2b, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_SpecialCodeGen|HW_Flag_PermuteVar2x|HW_Flag_RmwIntrinsic|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, PermuteVar4x32x2, 16, 3, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vpermt2d, INS_vpermt2d, INS_invalid, INS_invalid, INS_vpermt2ps, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_SpecialCodeGen|HW_Flag_PermuteVar2x|HW_Flag_RmwIntrinsic|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, PermuteVar4x64, 32, 2, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vpermq_reg, INS_vpermq_reg, INS_invalid, INS_vpermpd_reg}, HW_Category_SimpleSIMD, HW_Flag_SpecialImport|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, PermuteVar4x64x2, 32, 3, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vpermt2q, INS_vpermt2q, INS_invalid, INS_vpermt2pd}, HW_Category_SimpleSIMD, HW_Flag_SpecialCodeGen|HW_Flag_PermuteVar2x|HW_Flag_RmwIntrinsic|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, PermuteVar8x16, 16, 2, false, {INS_invalid, INS_invalid, INS_vpermw, INS_vpermw, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_SpecialImport|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, PermuteVar8x16x2, 16, 3, false, {INS_invalid, INS_invalid, INS_vpermt2w, INS_vpermt2w, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_SpecialCodeGen|HW_Flag_PermuteVar2x|HW_Flag_RmwIntrinsic|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, PermuteVar8x32x2, 32, 3, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vpermt2d, INS_vpermt2d, INS_invalid, INS_invalid, INS_vpermt2ps, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_SpecialCodeGen|HW_Flag_PermuteVar2x|HW_Flag_RmwIntrinsic|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, Range, -1, 3, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vrangeps, INS_vrangepd}, HW_Category_IMM, HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, RangeScalar, 16, 3, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vrangess, INS_vrangesd}, HW_Category_IMM, HW_Flag_CopyUpperBits) +HARDWARE_INTRINSIC(AVX10v1, Reciprocal14, -1, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vrcp14ps, INS_vrcp14pd}, HW_Category_SimpleSIMD, HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, Reciprocal14Scalar, 16, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vrcp14ss, INS_vrcp14sd}, HW_Category_SimpleSIMD, HW_Flag_CopyUpperBits) +HARDWARE_INTRINSIC(AVX10v1, ReciprocalSqrt14, -1, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vrsqrt14ps, INS_vrsqrt14pd}, HW_Category_SimpleSIMD, HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, ReciprocalSqrt14Scalar, 16, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vrsqrt14ss, INS_vrsqrt14sd}, HW_Category_SimpleSIMD, HW_Flag_CopyUpperBits) +HARDWARE_INTRINSIC(AVX10v1, Reduce, -1, 2, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vreduceps, INS_vreducepd}, HW_Category_IMM, HW_Flag_FullRangeIMM|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, ReduceScalar, 16, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vreducess, INS_vreducesd}, HW_Category_IMM, HW_Flag_FullRangeIMM|HW_Flag_CopyUpperBits) +HARDWARE_INTRINSIC(AVX10v1, RotateLeft, -1, 2, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vprold, INS_vprold, INS_vprolq, INS_vprolq, INS_invalid, INS_invalid}, HW_Category_IMM, HW_Flag_MaybeIMM|HW_Flag_MaybeNoJmpTableIMM|HW_Flag_FullRangeIMM|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, RotateLeftVariable, -1, 2, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vprolvd, INS_vprolvd, INS_vprolvq, INS_vprolvq, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, RotateRight, -1, 2, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vprord, INS_vprord, INS_vprorq, INS_vprorq, INS_invalid, INS_invalid}, HW_Category_IMM, HW_Flag_MaybeIMM|HW_Flag_MaybeNoJmpTableIMM|HW_Flag_FullRangeIMM|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, RotateRightVariable, -1, 2, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vprorvd, INS_vprorvd, INS_vprorvq, INS_vprorvq, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, RoundScale, -1, 2, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vrndscaleps, INS_vrndscalepd}, HW_Category_IMM, HW_Flag_FullRangeIMM|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, RoundScaleScalar, 16, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vrndscaless, INS_vrndscalesd}, HW_Category_IMM, HW_Flag_FullRangeIMM|HW_Flag_CopyUpperBits) +HARDWARE_INTRINSIC(AVX10v1, Scale, -1, 2, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vscalefps, INS_vscalefpd}, HW_Category_SimpleSIMD, HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, ScaleScalar, 16, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vscalefss, INS_vscalefsd}, HW_Category_SIMDScalar, HW_Flag_CopyUpperBits|HW_Flag_EmbRoundingCompatible) +HARDWARE_INTRINSIC(AVX10v1, ShiftLeftLogicalVariable, -1, 2, false, {INS_invalid, INS_invalid, INS_vpsllvw, INS_vpsllvw, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, ShiftRightArithmetic, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vpsraq, INS_invalid, INS_invalid, INS_invalid}, HW_Category_IMM, HW_Flag_MaybeIMM|HW_Flag_NoJmpTableIMM|HW_Flag_FullRangeIMM|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, ShiftRightArithmeticVariable, -1, 2, true, {INS_invalid, INS_invalid, INS_vpsravw, INS_invalid, INS_invalid, INS_invalid, INS_vpsravq, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_EmbBroadcastCompatible) +HARDWARE_INTRINSIC(AVX10v1, ShiftRightLogicalVariable, -1, 2, false, {INS_invalid, INS_invalid, INS_vpsrlvw, INS_vpsrlvw, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, Shuffle2x128, 32, 3, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vshufi32x4, INS_vshufi32x4, INS_vshufi64x2, INS_vshufi64x2, INS_vshuff32x4, INS_vshuff64x2}, HW_Category_IMM, HW_Flag_FullRangeIMM|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, SqrtScalar, 16, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sqrtss, INS_sqrtsd}, HW_Category_SIMDScalar, HW_Flag_CopyUpperBits|HW_Flag_EmbRoundingCompatible) +HARDWARE_INTRINSIC(AVX10v1, SubtractScalar, 16, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_subss, INS_subsd}, HW_Category_SIMDScalar, HW_Flag_CopyUpperBits|HW_Flag_EmbRoundingCompatible) +HARDWARE_INTRINSIC(AVX10v1, SumAbsoluteDifferencesInBlock32, -1, 3, false, {INS_invalid, INS_invalid, INS_invalid, INS_vdbpsadbw, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_IMM, HW_Flag_FullRangeIMM|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1, TernaryLogic, -1, 4, true, {INS_vpternlogd, INS_vpternlogd, INS_vpternlogd, INS_vpternlogd, INS_vpternlogd, INS_vpternlogd, INS_vpternlogq, INS_vpternlogq, INS_vpternlogd, INS_vpternlogq}, HW_Category_IMM, HW_Flag_SpecialImport|HW_Flag_FullRangeIMM|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) + +// *************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** +// ISA Function name SIMD size NumArg EncodesExtraTypeArg Instructions Category Flags +// {TYP_BYTE, TYP_UBYTE, TYP_SHORT, TYP_USHORT, TYP_INT, TYP_UINT, TYP_LONG, TYP_ULONG, TYP_FLOAT, TYP_DOUBLE} +// *************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** +// AVX10V1_V512 Intrinsics +HARDWARE_INTRINSIC(AVX10v1_V512, And, 64, 2, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_andps, INS_andpd}, HW_Category_SimpleSIMD, HW_Flag_Commutative|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1_V512, AndNot, 64, 2, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_andnps, INS_andnpd}, HW_Category_SimpleSIMD, HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1_V512, BroadcastPairScalarToVector512, 64, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vbroadcasti32x2, INS_vbroadcasti32x2, INS_invalid, INS_invalid, INS_vbroadcastf32x2, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_NoFlag) +HARDWARE_INTRINSIC(AVX10v1_V512, BroadcastVector128ToVector512, 64, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vbroadcasti64x2, INS_vbroadcasti64x2, INS_invalid, INS_vbroadcastf64x2}, HW_Category_MemoryLoad, HW_Flag_NoFlag) +HARDWARE_INTRINSIC(AVX10v1_V512, BroadcastVector256ToVector512, 64, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vbroadcasti32x8, INS_vbroadcasti32x8, INS_invalid, INS_invalid, INS_vbroadcastf32x8, INS_invalid}, HW_Category_MemoryLoad, HW_Flag_NoFlag) +HARDWARE_INTRINSIC(AVX10v1_V512, ConvertToVector256Single, 64, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcvtqq2ps, INS_vcvtuqq2ps, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible|HW_Flag_EmbRoundingCompatible) +HARDWARE_INTRINSIC(AVX10v1_V512, ConvertToVector512Double, 64, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcvtqq2pd, INS_vcvtuqq2pd, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible|HW_Flag_EmbRoundingCompatible) +HARDWARE_INTRINSIC(AVX10v1_V512, ConvertToVector512Int64, 64, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcvtps2qq, INS_vcvtpd2qq}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible|HW_Flag_EmbRoundingCompatible) +HARDWARE_INTRINSIC(AVX10v1_V512, ConvertToVector512Int64WithTruncation, 64, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcvttps2qq, INS_vcvttpd2qq}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1_V512, ConvertToVector512UInt64, 64, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcvtps2uqq, INS_vcvtpd2uqq}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible|HW_Flag_EmbRoundingCompatible) +HARDWARE_INTRINSIC(AVX10v1_V512, ConvertToVector512UInt64WithTruncation, 64, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcvttps2uqq, INS_vcvttpd2uqq}, HW_Category_SimpleSIMD, HW_Flag_BaseTypeFromFirstArg|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1_V512, DetectConflicts, 64, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vpconflictd, INS_vpconflictd, INS_vpconflictq, INS_vpconflictq, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1_V512, ExtractVector128, 64, 2, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vextracti64x2, INS_vextracti64x2, INS_invalid, INS_vextractf64x2}, HW_Category_IMM, HW_Flag_FullRangeIMM|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1_V512, ExtractVector256, 64, 2, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vextracti32x8, INS_vextracti32x8, INS_invalid, INS_invalid, INS_vextractf32x8, INS_invalid}, HW_Category_IMM, HW_Flag_FullRangeIMM|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1_V512, InsertVector128, 64, 3, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vinserti64x2, INS_vinserti64x2, INS_invalid, INS_vinsertf64x2}, HW_Category_IMM, HW_Flag_FullRangeIMM|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1_V512, InsertVector256, 64, 3, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vinserti32x8, INS_vinserti32x8, INS_invalid, INS_invalid, INS_vinsertf32x8, INS_invalid}, HW_Category_IMM, HW_Flag_FullRangeIMM|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1_V512, LeadingZeroCount, 64, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vplzcntd, INS_vplzcntd, INS_vplzcntq, INS_vplzcntq, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1_V512, MultiplyLow, 64, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vpmullq, INS_vpmullq, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_Commutative|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1_V512, Or, 64, 2, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_orps, INS_orpd}, HW_Category_SimpleSIMD, HW_Flag_Commutative|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1_V512, PermuteVar64x8, 64, 2, false, {INS_vpermb, INS_vpermb, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_SpecialImport|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1_V512, PermuteVar64x8x2, 64, 3, false, {INS_vpermt2b, INS_vpermt2b, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_SpecialCodeGen|HW_Flag_PermuteVar2x|HW_Flag_RmwIntrinsic|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1_V512, Range, 64, 3, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vrangeps, INS_vrangepd}, HW_Category_IMM, HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1_V512, Reduce, 64, 2, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vreduceps, INS_vreducepd}, HW_Category_IMM, HW_Flag_FullRangeIMM|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) +HARDWARE_INTRINSIC(AVX10v1_V512, Xor, 64, 2, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_xorps, INS_xorpd}, HW_Category_SimpleSIMD, HW_Flag_Commutative|HW_Flag_EmbBroadcastCompatible|HW_Flag_EmbMaskingCompatible) + +// *************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** +// ISA Function name SIMD size NumArg EncodesExtraTypeArg Instructions Category Flags +// {TYP_BYTE, TYP_UBYTE, TYP_SHORT, TYP_USHORT, TYP_INT, TYP_UINT, TYP_LONG, TYP_ULONG, TYP_FLOAT, TYP_DOUBLE} +// *************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** +// AVX512F.X64 Intrinsics +HARDWARE_INTRINSIC(AVX10v1_X64, ConvertScalarToVector128Double, 16, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_cvtsi2sd64, INS_vcvtusi2sd64, INS_invalid, INS_invalid}, HW_Category_SIMDScalar, HW_Flag_BaseTypeFromSecondArg|HW_Flag_CopyUpperBits|HW_Flag_SpecialCodeGen|HW_Flag_EmbRoundingCompatible) +HARDWARE_INTRINSIC(AVX10v1_X64, ConvertScalarToVector128Single, 16, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_cvtsi2ss64, INS_vcvtusi2ss64, INS_invalid, INS_invalid}, HW_Category_SIMDScalar, HW_Flag_BaseTypeFromSecondArg|HW_Flag_CopyUpperBits|HW_Flag_SpecialCodeGen|HW_Flag_EmbRoundingCompatible) +HARDWARE_INTRINSIC(AVX10v1_X64, ConvertToInt64, 16, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_cvtss2si, INS_cvtsd2si}, HW_Category_SIMDScalar, HW_Flag_BaseTypeFromFirstArg|HW_Flag_SpecialCodeGen|HW_Flag_EmbRoundingCompatible) +HARDWARE_INTRINSIC(AVX10v1_X64, ConvertToUInt64, 16, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcvtss2usi, INS_vcvtsd2usi}, HW_Category_SIMDScalar, HW_Flag_BaseTypeFromFirstArg|HW_Flag_SpecialCodeGen|HW_Flag_EmbRoundingCompatible) +HARDWARE_INTRINSIC(AVX10v1_X64, ConvertToUInt64WithTruncation, 16, 1, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcvttss2usi64, INS_vcvttsd2usi64}, HW_Category_SIMDScalar, HW_Flag_BaseTypeFromFirstArg|HW_Flag_SpecialCodeGen) + + // *************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** // ISA Function name SIMD size NumArg EncodesExtraTypeArg Instructions Category Flags // {TYP_BYTE, TYP_UBYTE, TYP_SHORT, TYP_USHORT, TYP_INT, TYP_UINT, TYP_LONG, TYP_ULONG, TYP_FLOAT, TYP_DOUBLE} @@ -1256,38 +1412,38 @@ HARDWARE_INTRINSIC(SSE2, COMISD, HARDWARE_INTRINSIC(SSE2, UCOMISD, 16, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_ucomisd}, HW_Category_SIMDScalar, HW_Flag_NoRMWSemantics) HARDWARE_INTRINSIC(SSE41, PTEST, 16, 2, false, {INS_ptest, INS_ptest, INS_ptest, INS_ptest, INS_ptest, INS_ptest, INS_ptest, INS_ptest, INS_invalid, INS_invalid}, HW_Category_SimpleSIMD, HW_Flag_NoRMWSemantics|HW_Flag_NoEvexSemantics) HARDWARE_INTRINSIC(AVX, PTEST, 0, 2, false, {INS_ptest, INS_ptest, INS_ptest, INS_ptest, INS_ptest, INS_ptest, INS_ptest, INS_ptest, INS_vtestps, INS_vtestpd}, HW_Category_SimpleSIMD, HW_Flag_NoEvexSemantics) -HARDWARE_INTRINSIC(AVX512F, KORTEST, 0, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Special, HW_Flag_NoContainment) -HARDWARE_INTRINSIC(AVX512F, KTEST, 0, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Special, HW_Flag_NoContainment) -HARDWARE_INTRINSIC(AVX512F, PTESTM, 0, 2, false, {INS_vptestmb, INS_vptestmb, INS_vptestmw, INS_vptestmw, INS_vptestmd, INS_vptestmd, INS_vptestmq, INS_vptestmq, INS_vptestmd, INS_vptestmq}, HW_Category_SimpleSIMD, HW_Flag_EmbBroadcastCompatible) -HARDWARE_INTRINSIC(AVX512F, PTESTNM, 0, 2, false, {INS_vptestnmb, INS_vptestnmb, INS_vptestnmw, INS_vptestnmw, INS_vptestnmd, INS_vptestnmd, INS_vptestnmq, INS_vptestnmq, INS_vptestnmd, INS_vptestnmq}, HW_Category_SimpleSIMD, HW_Flag_EmbBroadcastCompatible) +HARDWARE_INTRINSIC(EVEX, KORTEST, 0, -1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Special, HW_Flag_NoContainment) +HARDWARE_INTRINSIC(EVEX, KTEST, 0, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Special, HW_Flag_NoContainment) +HARDWARE_INTRINSIC(EVEX, PTESTM, 0, 2, false, {INS_vptestmb, INS_vptestmb, INS_vptestmw, INS_vptestmw, INS_vptestmd, INS_vptestmd, INS_vptestmq, INS_vptestmq, INS_vptestmd, INS_vptestmq}, HW_Category_SimpleSIMD, HW_Flag_EmbBroadcastCompatible) +HARDWARE_INTRINSIC(EVEX, PTESTNM, 0, 2, false, {INS_vptestnmb, INS_vptestnmb, INS_vptestnmw, INS_vptestnmw, INS_vptestnmd, INS_vptestnmd, INS_vptestnmq, INS_vptestnmq, INS_vptestnmd, INS_vptestnmq}, HW_Category_SimpleSIMD, HW_Flag_EmbBroadcastCompatible) -HARDWARE_INTRINSIC(AVX512F, AddMask, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Special, HW_Flag_NoContainment|HW_Flag_Commutative|HW_Flag_ReturnsPerElementMask) -HARDWARE_INTRINSIC(AVX512F, AndMask, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Special, HW_Flag_NoContainment|HW_Flag_Commutative|HW_Flag_ReturnsPerElementMask) -HARDWARE_INTRINSIC(AVX512F, AndNotMask, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Special, HW_Flag_NoContainment|HW_Flag_Commutative|HW_Flag_ReturnsPerElementMask) -HARDWARE_INTRINSIC(AVX512F, BlendVariableMask, -1, 3, true, {INS_vpblendmb, INS_vpblendmb, INS_vpblendmw, INS_vpblendmw, INS_vpblendmd, INS_vpblendmd, INS_vpblendmq, INS_vpblendmq, INS_vblendmps, INS_vblendmpd}, HW_Category_SimpleSIMD, HW_Flag_EmbBroadcastCompatible) -HARDWARE_INTRINSIC(AVX512F, CompareMask, -1, 3, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcmpps, INS_vcmppd}, HW_Category_IMM, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible) -HARDWARE_INTRINSIC(AVX512F, CompareEqualMask, -1, 2, true, {INS_vpcmpeqb, INS_vpcmpeqb, INS_vpcmpeqw, INS_vpcmpeqw, INS_vpcmpeqd, INS_vpcmpeqd, INS_vpcmpeqq, INS_vpcmpeqq, INS_vcmpps, INS_vcmppd}, HW_Category_SimpleSIMD, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible|HW_Flag_Commutative|HW_Flag_CanBenefitFromConstantProp) -HARDWARE_INTRINSIC(AVX512F, CompareGreaterThanMask, -1, 2, true, {INS_vpcmpgtb, INS_vpcmpub, INS_vpcmpgtw, INS_vpcmpuw, INS_vpcmpgtd, INS_vpcmpud, INS_vpcmpgtq, INS_vpcmpuq, INS_vcmpps, INS_vcmppd}, HW_Category_SimpleSIMD, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible) -HARDWARE_INTRINSIC(AVX512F, CompareGreaterThanOrEqualMask, -1, 2, true, {INS_vpcmpb, INS_vpcmpub, INS_vpcmpw, INS_vpcmpuw, INS_vpcmpd, INS_vpcmpud, INS_vpcmpq, INS_vpcmpuq, INS_vcmpps, INS_vcmppd}, HW_Category_SimpleSIMD, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible) -HARDWARE_INTRINSIC(AVX512F, CompareLessThanMask, -1, 2, true, {INS_vpcmpb, INS_vpcmpub, INS_vpcmpw, INS_vpcmpuw, INS_vpcmpd, INS_vpcmpud, INS_vpcmpq, INS_vpcmpuq, INS_vcmpps, INS_vcmppd}, HW_Category_SimpleSIMD, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible) -HARDWARE_INTRINSIC(AVX512F, CompareLessThanOrEqualMask, -1, 2, true, {INS_vpcmpb, INS_vpcmpub, INS_vpcmpw, INS_vpcmpuw, INS_vpcmpd, INS_vpcmpud, INS_vpcmpq, INS_vpcmpuq, INS_vcmpps, INS_vcmppd}, HW_Category_SimpleSIMD, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible) -HARDWARE_INTRINSIC(AVX512F, CompareNotEqualMask, -1, 2, true, {INS_vpcmpb, INS_vpcmpub, INS_vpcmpw, INS_vpcmpuw, INS_vpcmpd, INS_vpcmpud, INS_vpcmpq, INS_vpcmpuq, INS_vcmpps, INS_vcmppd}, HW_Category_SimpleSIMD, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible|HW_Flag_Commutative|HW_Flag_CanBenefitFromConstantProp) -HARDWARE_INTRINSIC(AVX512F, CompareNotGreaterThanMask, -1, 2, true, {INS_vpcmpb, INS_vpcmpub, INS_vpcmpw, INS_vpcmpuw, INS_vpcmpd, INS_vpcmpud, INS_vpcmpq, INS_vpcmpuq, INS_vcmpps, INS_vcmppd}, HW_Category_SimpleSIMD, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible) -HARDWARE_INTRINSIC(AVX512F, CompareNotGreaterThanOrEqualMask, -1, 2, true, {INS_vpcmpb, INS_vpcmpub, INS_vpcmpw, INS_vpcmpuw, INS_vpcmpd, INS_vpcmpud, INS_vpcmpq, INS_vpcmpuq, INS_vcmpps, INS_vcmppd}, HW_Category_SimpleSIMD, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible) -HARDWARE_INTRINSIC(AVX512F, CompareNotLessThanMask, -1, 2, true, {INS_vpcmpb, INS_vpcmpub, INS_vpcmpw, INS_vpcmpuw, INS_vpcmpd, INS_vpcmpud, INS_vpcmpq, INS_vpcmpuq, INS_vcmpps, INS_vcmppd}, HW_Category_SimpleSIMD, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible) -HARDWARE_INTRINSIC(AVX512F, CompareNotLessThanOrEqualMask, -1, 2, true, {INS_vpcmpb, INS_vpcmpub, INS_vpcmpw, INS_vpcmpuw, INS_vpcmpd, INS_vpcmpud, INS_vpcmpq, INS_vpcmpuq, INS_vcmpps, INS_vcmppd}, HW_Category_SimpleSIMD, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible) -HARDWARE_INTRINSIC(AVX512F, CompareOrderedMask, -1, 2, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcmpps, INS_vcmppd}, HW_Category_SimpleSIMD, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible) -HARDWARE_INTRINSIC(AVX512F, CompareUnorderedMask, -1, 2, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcmpps, INS_vcmppd}, HW_Category_SimpleSIMD, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible) -HARDWARE_INTRINSIC(AVX512F, ConvertMaskToVector, -1, 1, true, {INS_vpmovm2b, INS_vpmovm2b, INS_vpmovm2w, INS_vpmovm2w, INS_vpmovm2d, INS_vpmovm2d, INS_vpmovm2q, INS_vpmovm2q, INS_vpmovm2d, INS_vpmovm2q}, HW_Category_SimpleSIMD, HW_Flag_NoContainment|HW_Flag_ReturnsPerElementMask) -HARDWARE_INTRINSIC(AVX512F, ConvertVectorToMask, -1, 1, true, {INS_vpmovb2m, INS_vpmovb2m, INS_vpmovw2m, INS_vpmovw2m, INS_vpmovd2m, INS_vpmovd2m, INS_vpmovq2m, INS_vpmovq2m, INS_vpmovd2m, INS_vpmovq2m}, HW_Category_SimpleSIMD, HW_Flag_NoContainment|HW_Flag_ReturnsPerElementMask) -HARDWARE_INTRINSIC(AVX512F, MoveMask, -1, 1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Special, HW_Flag_NoContainment) -HARDWARE_INTRINSIC(AVX512F, NotMask, -1, 1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Special, HW_Flag_NoContainment|HW_Flag_ReturnsPerElementMask) -HARDWARE_INTRINSIC(AVX512F, op_EqualityMask, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Special, HW_Flag_NoContainment|HW_Flag_Commutative) -HARDWARE_INTRINSIC(AVX512F, op_InequalityMask, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Special, HW_Flag_NoContainment|HW_Flag_Commutative) -HARDWARE_INTRINSIC(AVX512F, OrMask, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Special, HW_Flag_NoContainment|HW_Flag_Commutative|HW_Flag_ReturnsPerElementMask) -HARDWARE_INTRINSIC(AVX512F, ShiftLeftMask, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_IMM, HW_Flag_FullRangeIMM|HW_Flag_SpecialCodeGen) -HARDWARE_INTRINSIC(AVX512F, ShiftRightMask, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_IMM, HW_Flag_FullRangeIMM|HW_Flag_SpecialCodeGen) -HARDWARE_INTRINSIC(AVX512F, XorMask, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Special, HW_Flag_NoContainment|HW_Flag_Commutative|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(EVEX, AddMask, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Special, HW_Flag_NoContainment|HW_Flag_Commutative|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(EVEX, AndMask, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Special, HW_Flag_NoContainment|HW_Flag_Commutative|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(EVEX, AndNotMask, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Special, HW_Flag_NoContainment|HW_Flag_Commutative|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(EVEX, BlendVariableMask, -1, 3, true, {INS_vpblendmb, INS_vpblendmb, INS_vpblendmw, INS_vpblendmw, INS_vpblendmd, INS_vpblendmd, INS_vpblendmq, INS_vpblendmq, INS_vblendmps, INS_vblendmpd}, HW_Category_SimpleSIMD, HW_Flag_EmbBroadcastCompatible) +HARDWARE_INTRINSIC(EVEX, CompareMask, -1, 3, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcmpps, INS_vcmppd}, HW_Category_IMM, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible) +HARDWARE_INTRINSIC(EVEX, CompareEqualMask, -1, 2, true, {INS_vpcmpeqb, INS_vpcmpeqb, INS_vpcmpeqw, INS_vpcmpeqw, INS_vpcmpeqd, INS_vpcmpeqd, INS_vpcmpeqq, INS_vpcmpeqq, INS_vcmpps, INS_vcmppd}, HW_Category_SimpleSIMD, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible|HW_Flag_Commutative|HW_Flag_CanBenefitFromConstantProp) +HARDWARE_INTRINSIC(EVEX, CompareGreaterThanMask, -1, 2, true, {INS_vpcmpgtb, INS_vpcmpub, INS_vpcmpgtw, INS_vpcmpuw, INS_vpcmpgtd, INS_vpcmpud, INS_vpcmpgtq, INS_vpcmpuq, INS_vcmpps, INS_vcmppd}, HW_Category_SimpleSIMD, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible) +HARDWARE_INTRINSIC(EVEX, CompareGreaterThanOrEqualMask, -1, 2, true, {INS_vpcmpb, INS_vpcmpub, INS_vpcmpw, INS_vpcmpuw, INS_vpcmpd, INS_vpcmpud, INS_vpcmpq, INS_vpcmpuq, INS_vcmpps, INS_vcmppd}, HW_Category_SimpleSIMD, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible) +HARDWARE_INTRINSIC(EVEX, CompareLessThanMask, -1, 2, true, {INS_vpcmpb, INS_vpcmpub, INS_vpcmpw, INS_vpcmpuw, INS_vpcmpd, INS_vpcmpud, INS_vpcmpq, INS_vpcmpuq, INS_vcmpps, INS_vcmppd}, HW_Category_SimpleSIMD, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible) +HARDWARE_INTRINSIC(EVEX, CompareLessThanOrEqualMask, -1, 2, true, {INS_vpcmpb, INS_vpcmpub, INS_vpcmpw, INS_vpcmpuw, INS_vpcmpd, INS_vpcmpud, INS_vpcmpq, INS_vpcmpuq, INS_vcmpps, INS_vcmppd}, HW_Category_SimpleSIMD, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible) +HARDWARE_INTRINSIC(EVEX, CompareNotEqualMask, -1, 2, true, {INS_vpcmpb, INS_vpcmpub, INS_vpcmpw, INS_vpcmpuw, INS_vpcmpd, INS_vpcmpud, INS_vpcmpq, INS_vpcmpuq, INS_vcmpps, INS_vcmppd}, HW_Category_SimpleSIMD, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible|HW_Flag_Commutative|HW_Flag_CanBenefitFromConstantProp) +HARDWARE_INTRINSIC(EVEX, CompareNotGreaterThanMask, -1, 2, true, {INS_vpcmpb, INS_vpcmpub, INS_vpcmpw, INS_vpcmpuw, INS_vpcmpd, INS_vpcmpud, INS_vpcmpq, INS_vpcmpuq, INS_vcmpps, INS_vcmppd}, HW_Category_SimpleSIMD, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible) +HARDWARE_INTRINSIC(EVEX, CompareNotGreaterThanOrEqualMask, -1, 2, true, {INS_vpcmpb, INS_vpcmpub, INS_vpcmpw, INS_vpcmpuw, INS_vpcmpd, INS_vpcmpud, INS_vpcmpq, INS_vpcmpuq, INS_vcmpps, INS_vcmppd}, HW_Category_SimpleSIMD, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible) +HARDWARE_INTRINSIC(EVEX, CompareNotLessThanMask, -1, 2, true, {INS_vpcmpb, INS_vpcmpub, INS_vpcmpw, INS_vpcmpuw, INS_vpcmpd, INS_vpcmpud, INS_vpcmpq, INS_vpcmpuq, INS_vcmpps, INS_vcmppd}, HW_Category_SimpleSIMD, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible) +HARDWARE_INTRINSIC(EVEX, CompareNotLessThanOrEqualMask, -1, 2, true, {INS_vpcmpb, INS_vpcmpub, INS_vpcmpw, INS_vpcmpuw, INS_vpcmpd, INS_vpcmpud, INS_vpcmpq, INS_vpcmpuq, INS_vcmpps, INS_vcmppd}, HW_Category_SimpleSIMD, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible) +HARDWARE_INTRINSIC(EVEX, CompareOrderedMask, -1, 2, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcmpps, INS_vcmppd}, HW_Category_SimpleSIMD, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible) +HARDWARE_INTRINSIC(EVEX, CompareUnorderedMask, -1, 2, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_vcmpps, INS_vcmppd}, HW_Category_SimpleSIMD, HW_Flag_ReturnsPerElementMask|HW_Flag_EmbBroadcastCompatible) +HARDWARE_INTRINSIC(EVEX, ConvertMaskToVector, -1, 1, true, {INS_vpmovm2b, INS_vpmovm2b, INS_vpmovm2w, INS_vpmovm2w, INS_vpmovm2d, INS_vpmovm2d, INS_vpmovm2q, INS_vpmovm2q, INS_vpmovm2d, INS_vpmovm2q}, HW_Category_SimpleSIMD, HW_Flag_NoContainment|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(EVEX, ConvertVectorToMask, -1, 1, true, {INS_vpmovb2m, INS_vpmovb2m, INS_vpmovw2m, INS_vpmovw2m, INS_vpmovd2m, INS_vpmovd2m, INS_vpmovq2m, INS_vpmovq2m, INS_vpmovd2m, INS_vpmovq2m}, HW_Category_SimpleSIMD, HW_Flag_NoContainment|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(EVEX, MoveMask, -1, 1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Special, HW_Flag_NoContainment) +HARDWARE_INTRINSIC(EVEX, NotMask, -1, 1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Special, HW_Flag_NoContainment|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(EVEX, op_EqualityMask, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Special, HW_Flag_NoContainment|HW_Flag_Commutative) +HARDWARE_INTRINSIC(EVEX, op_InequalityMask, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Special, HW_Flag_NoContainment|HW_Flag_Commutative) +HARDWARE_INTRINSIC(EVEX, OrMask, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Special, HW_Flag_NoContainment|HW_Flag_Commutative|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(EVEX, ShiftLeftMask, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_IMM, HW_Flag_FullRangeIMM|HW_Flag_SpecialCodeGen) +HARDWARE_INTRINSIC(EVEX, ShiftRightMask, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_IMM, HW_Flag_FullRangeIMM|HW_Flag_SpecialCodeGen) +HARDWARE_INTRINSIC(EVEX, XorMask, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Special, HW_Flag_NoContainment|HW_Flag_Commutative|HW_Flag_ReturnsPerElementMask) #endif // FEATURE_HW_INTRINSIC diff --git a/src/coreclr/jit/hwintrinsicxarch.cpp b/src/coreclr/jit/hwintrinsicxarch.cpp index 917c0c9d95641..f96a0a1a199d4 100644 --- a/src/coreclr/jit/hwintrinsicxarch.cpp +++ b/src/coreclr/jit/hwintrinsicxarch.cpp @@ -56,6 +56,10 @@ static CORINFO_InstructionSet X64VersionOfIsa(CORINFO_InstructionSet isa) return InstructionSet_AVX512VBMI_X64; case InstructionSet_AVX512VBMI_VL: return InstructionSet_AVX512VBMI_VL_X64; + case InstructionSet_AVX10v1: + return InstructionSet_AVX10v1_X64; + case InstructionSet_AVX10v1_V512: + return InstructionSet_AVX10v1_V512_X64; case InstructionSet_AVXVNNI: return InstructionSet_AVXVNNI_X64; case InstructionSet_AES: @@ -74,6 +78,8 @@ static CORINFO_InstructionSet X64VersionOfIsa(CORINFO_InstructionSet isa) return InstructionSet_POPCNT_X64; case InstructionSet_X86Serialize: return InstructionSet_X86Serialize_X64; + case InstructionSet_EVEX: + return InstructionSet_EVEX_X64; default: return InstructionSet_NONE; } @@ -106,6 +112,25 @@ static CORINFO_InstructionSet VLVersionOfIsa(CORINFO_InstructionSet isa) } } +//------------------------------------------------------------------------ +// V512VersionOfIsa: Gets the corresponding AVX10V512 only InstructionSet for a given InstructionSet +// +// Arguments: +// isa -- The InstructionSet ID +// +// Return Value: +// The AVX10V512 only InstructionSet associated with isa +static CORINFO_InstructionSet V512VersionOfIsa(CORINFO_InstructionSet isa) +{ + switch (isa) + { + case InstructionSet_AVX10v1: + return InstructionSet_AVX10v1_V512; + default: + return InstructionSet_NONE; + } +} + //------------------------------------------------------------------------ // lookupInstructionSet: Gets the InstructionSet for a given class name // @@ -155,6 +180,10 @@ static CORINFO_InstructionSet lookupInstructionSet(const char* className) { return InstructionSet_AVXVNNI; } + if (strcmp(className, "Avx10v1") == 0) + { + return InstructionSet_AVX10v1; + } } else if (className[0] == 'S') { @@ -268,6 +297,11 @@ CORINFO_InstructionSet HWIntrinsicInfo::lookupIsa(const char* className, const c assert(enclosingClassName != nullptr); return VLVersionOfIsa(lookupInstructionSet(enclosingClassName)); } + else if (strcmp(className, "V512") == 0) + { + assert(enclosingClassName != nullptr); + return V512VersionOfIsa(lookupInstructionSet(enclosingClassName)); + } else { return lookupInstructionSet(className); @@ -302,7 +336,7 @@ int HWIntrinsicInfo::lookupImmUpperBound(NamedIntrinsic id) case NI_AVX_Compare: case NI_AVX_CompareScalar: case NI_AVX512F_Compare: - case NI_AVX512F_CompareMask: + case NI_EVEX_CompareMask: { assert(!HWIntrinsicInfo::HasFullRangeImm(id)); return 31; // enum FloatComparisonMode has 32 values @@ -323,6 +357,11 @@ int HWIntrinsicInfo::lookupImmUpperBound(NamedIntrinsic id) case NI_AVX512DQ_Range: case NI_AVX512DQ_RangeScalar: case NI_AVX512DQ_VL_Range: + case NI_AVX10v1_GetMantissa: + case NI_AVX10v1_GetMantissaScalar: + case NI_AVX10v1_Range: + case NI_AVX10v1_RangeScalar: + case NI_AVX10v1_V512_Range: { assert(!HWIntrinsicInfo::HasFullRangeImm(id)); return 15; @@ -520,6 +559,9 @@ bool HWIntrinsicInfo::isFullyImplementedIsa(CORINFO_InstructionSet isa) case InstructionSet_X86Base_X64: case InstructionSet_X86Serialize: case InstructionSet_X86Serialize_X64: + case InstructionSet_AVX10v1: + case InstructionSet_AVX10v1_V512: + case InstructionSet_EVEX: { return true; } @@ -584,7 +626,7 @@ int HWIntrinsicInfo::lookupIval(Compiler* comp, NamedIntrinsic id, var_types sim case NI_SSE2_CompareEqual: case NI_SSE2_CompareScalarEqual: case NI_AVX_CompareEqual: - case NI_AVX512F_CompareEqualMask: + case NI_EVEX_CompareEqualMask: { if (varTypeIsFloating(simdBaseType)) { @@ -602,7 +644,7 @@ int HWIntrinsicInfo::lookupIval(Compiler* comp, NamedIntrinsic id, var_types sim case NI_SSE2_CompareGreaterThan: case NI_SSE2_CompareScalarGreaterThan: case NI_AVX_CompareGreaterThan: - case NI_AVX512F_CompareGreaterThanMask: + case NI_EVEX_CompareGreaterThanMask: { if (varTypeIsFloating(simdBaseType)) { @@ -612,7 +654,7 @@ int HWIntrinsicInfo::lookupIval(Compiler* comp, NamedIntrinsic id, var_types sim assert(comp->compIsaSupportedDebugOnly(InstructionSet_AVX)); return static_cast(FloatComparisonMode::OrderedGreaterThanSignaling); } - else if ((id == NI_AVX512F_CompareGreaterThanMask) && varTypeIsUnsigned(simdBaseType)) + else if ((id == NI_EVEX_CompareGreaterThanMask) && varTypeIsUnsigned(simdBaseType)) { // TODO-XARCH-CQ: Allow the other integer paths to use the EVEX encoding return static_cast(IntComparisonMode::GreaterThan); @@ -625,13 +667,13 @@ int HWIntrinsicInfo::lookupIval(Compiler* comp, NamedIntrinsic id, var_types sim case NI_SSE2_CompareLessThan: case NI_SSE2_CompareScalarLessThan: case NI_AVX_CompareLessThan: - case NI_AVX512F_CompareLessThanMask: + case NI_EVEX_CompareLessThanMask: { if (varTypeIsFloating(simdBaseType)) { return static_cast(FloatComparisonMode::OrderedLessThanSignaling); } - else if (id == NI_AVX512F_CompareLessThanMask) + else if (id == NI_EVEX_CompareLessThanMask) { // TODO-XARCH-CQ: Allow the other integer paths to use the EVEX encoding return static_cast(IntComparisonMode::LessThan); @@ -644,7 +686,7 @@ int HWIntrinsicInfo::lookupIval(Compiler* comp, NamedIntrinsic id, var_types sim case NI_SSE2_CompareGreaterThanOrEqual: case NI_SSE2_CompareScalarGreaterThanOrEqual: case NI_AVX_CompareGreaterThanOrEqual: - case NI_AVX512F_CompareGreaterThanOrEqualMask: + case NI_EVEX_CompareGreaterThanOrEqualMask: { if (varTypeIsFloating(simdBaseType)) { @@ -656,7 +698,7 @@ int HWIntrinsicInfo::lookupIval(Compiler* comp, NamedIntrinsic id, var_types sim } else { - assert(id == NI_AVX512F_CompareGreaterThanOrEqualMask); + assert(id == NI_EVEX_CompareGreaterThanOrEqualMask); return static_cast(IntComparisonMode::GreaterThanOrEqual); } break; @@ -667,7 +709,7 @@ int HWIntrinsicInfo::lookupIval(Compiler* comp, NamedIntrinsic id, var_types sim case NI_SSE2_CompareLessThanOrEqual: case NI_SSE2_CompareScalarLessThanOrEqual: case NI_AVX_CompareLessThanOrEqual: - case NI_AVX512F_CompareLessThanOrEqualMask: + case NI_EVEX_CompareLessThanOrEqualMask: { if (varTypeIsFloating(simdBaseType)) { @@ -675,7 +717,7 @@ int HWIntrinsicInfo::lookupIval(Compiler* comp, NamedIntrinsic id, var_types sim } else { - assert(id == NI_AVX512F_CompareLessThanOrEqualMask); + assert(id == NI_EVEX_CompareLessThanOrEqualMask); return static_cast(IntComparisonMode::LessThanOrEqual); } break; @@ -686,7 +728,7 @@ int HWIntrinsicInfo::lookupIval(Compiler* comp, NamedIntrinsic id, var_types sim case NI_SSE2_CompareNotEqual: case NI_SSE2_CompareScalarNotEqual: case NI_AVX_CompareNotEqual: - case NI_AVX512F_CompareNotEqualMask: + case NI_EVEX_CompareNotEqualMask: { if (varTypeIsFloating(simdBaseType)) { @@ -694,7 +736,7 @@ int HWIntrinsicInfo::lookupIval(Compiler* comp, NamedIntrinsic id, var_types sim } else { - assert(id == NI_AVX512F_CompareNotEqualMask); + assert(id == NI_EVEX_CompareNotEqualMask); return static_cast(IntComparisonMode::NotEqual); } break; @@ -705,7 +747,7 @@ int HWIntrinsicInfo::lookupIval(Compiler* comp, NamedIntrinsic id, var_types sim case NI_SSE2_CompareNotGreaterThan: case NI_SSE2_CompareScalarNotGreaterThan: case NI_AVX_CompareNotGreaterThan: - case NI_AVX512F_CompareNotGreaterThanMask: + case NI_EVEX_CompareNotGreaterThanMask: { if (varTypeIsFloating(simdBaseType)) { @@ -717,7 +759,7 @@ int HWIntrinsicInfo::lookupIval(Compiler* comp, NamedIntrinsic id, var_types sim } else { - assert(id == NI_AVX512F_CompareNotGreaterThanMask); + assert(id == NI_EVEX_CompareNotGreaterThanMask); return static_cast(IntComparisonMode::LessThanOrEqual); } break; @@ -728,7 +770,7 @@ int HWIntrinsicInfo::lookupIval(Compiler* comp, NamedIntrinsic id, var_types sim case NI_SSE2_CompareNotLessThan: case NI_SSE2_CompareScalarNotLessThan: case NI_AVX_CompareNotLessThan: - case NI_AVX512F_CompareNotLessThanMask: + case NI_EVEX_CompareNotLessThanMask: { if (varTypeIsFloating(simdBaseType)) { @@ -736,7 +778,7 @@ int HWIntrinsicInfo::lookupIval(Compiler* comp, NamedIntrinsic id, var_types sim } else { - assert(id == NI_AVX512F_CompareNotLessThanMask); + assert(id == NI_EVEX_CompareNotLessThanMask); return static_cast(IntComparisonMode::GreaterThanOrEqual); } break; @@ -747,7 +789,7 @@ int HWIntrinsicInfo::lookupIval(Compiler* comp, NamedIntrinsic id, var_types sim case NI_SSE2_CompareNotGreaterThanOrEqual: case NI_SSE2_CompareScalarNotGreaterThanOrEqual: case NI_AVX_CompareNotGreaterThanOrEqual: - case NI_AVX512F_CompareNotGreaterThanOrEqualMask: + case NI_EVEX_CompareNotGreaterThanOrEqualMask: { if (varTypeIsFloating(simdBaseType)) { @@ -759,7 +801,7 @@ int HWIntrinsicInfo::lookupIval(Compiler* comp, NamedIntrinsic id, var_types sim } else { - assert(id == NI_AVX512F_CompareNotGreaterThanOrEqualMask); + assert(id == NI_EVEX_CompareNotGreaterThanOrEqualMask); return static_cast(IntComparisonMode::LessThan); } break; @@ -770,7 +812,7 @@ int HWIntrinsicInfo::lookupIval(Compiler* comp, NamedIntrinsic id, var_types sim case NI_SSE2_CompareNotLessThanOrEqual: case NI_SSE2_CompareScalarNotLessThanOrEqual: case NI_AVX_CompareNotLessThanOrEqual: - case NI_AVX512F_CompareNotLessThanOrEqualMask: + case NI_EVEX_CompareNotLessThanOrEqualMask: { if (varTypeIsFloating(simdBaseType)) { @@ -778,7 +820,7 @@ int HWIntrinsicInfo::lookupIval(Compiler* comp, NamedIntrinsic id, var_types sim } else { - assert(id == NI_AVX512F_CompareNotLessThanOrEqualMask); + assert(id == NI_EVEX_CompareNotLessThanOrEqualMask); return static_cast(IntComparisonMode::GreaterThan); } break; @@ -789,7 +831,7 @@ int HWIntrinsicInfo::lookupIval(Compiler* comp, NamedIntrinsic id, var_types sim case NI_SSE2_CompareOrdered: case NI_SSE2_CompareScalarOrdered: case NI_AVX_CompareOrdered: - case NI_AVX512F_CompareOrderedMask: + case NI_EVEX_CompareOrderedMask: { assert(varTypeIsFloating(simdBaseType)); return static_cast(FloatComparisonMode::OrderedNonSignaling); @@ -800,7 +842,7 @@ int HWIntrinsicInfo::lookupIval(Compiler* comp, NamedIntrinsic id, var_types sim case NI_SSE2_CompareUnordered: case NI_SSE2_CompareScalarUnordered: case NI_AVX_CompareUnordered: - case NI_AVX512F_CompareUnorderedMask: + case NI_EVEX_CompareUnorderedMask: { assert(varTypeIsFloating(simdBaseType)); return static_cast(FloatComparisonMode::UnorderedNonSignaling); @@ -899,6 +941,7 @@ GenTree* Compiler::impNonConstFallback(NamedIntrinsic intrinsic, var_types simdT case NI_AVX512BW_ShiftLeftLogical: case NI_AVX512BW_ShiftRightArithmetic: case NI_AVX512BW_ShiftRightLogical: + case NI_AVX10v1_ShiftRightArithmetic: { // These intrinsics have overloads that take op2 in a simd register and just read the lowest 8-bits @@ -916,6 +959,8 @@ GenTree* Compiler::impNonConstFallback(NamedIntrinsic intrinsic, var_types simdT case NI_AVX512F_RotateRight: case NI_AVX512F_VL_RotateLeft: case NI_AVX512F_VL_RotateRight: + case NI_AVX10v1_RotateLeft: + case NI_AVX10v1_RotateRight: { var_types simdBaseType = JitType2PreciseVarType(simdBaseJitType); @@ -925,7 +970,9 @@ GenTree* Compiler::impNonConstFallback(NamedIntrinsic intrinsic, var_types simdT static_assert_no_msg(NI_AVX512F_RotateLeftVariable == (NI_AVX512F_RotateLeft + 1)); static_assert_no_msg(NI_AVX512F_RotateRightVariable == (NI_AVX512F_RotateRight + 1)); static_assert_no_msg(NI_AVX512F_VL_RotateLeftVariable == (NI_AVX512F_VL_RotateLeft + 1)); + static_assert_no_msg(NI_AVX10v1_RotateLeftVariable == (NI_AVX10v1_RotateLeft + 1)); static_assert_no_msg(NI_AVX512F_VL_RotateRightVariable == (NI_AVX512F_VL_RotateRight + 1)); + static_assert_no_msg(NI_AVX10v1_RotateRightVariable == (NI_AVX10v1_RotateRight + 1)); impSpillSideEffect(true, verCurrentState.esStackDepth - 2 DEBUGARG("Spilling op1 side effects for HWIntrinsic")); @@ -1345,7 +1392,8 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, { assert(sig->numArgs == 1); assert(varTypeIsLong(simdBaseType)); - if (IsBaselineVector512IsaSupportedOpportunistically()) + if (IsBaselineVector512IsaSupportedOpportunistically() || + ((simdSize != 64) && compOpportunisticallyDependsOn(InstructionSet_AVX10v1))) { if (simdSize == 64) { @@ -1353,12 +1401,16 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, } else if (simdSize == 32) { - intrinsic = NI_AVX512DQ_VL_ConvertToVector256Double; + intrinsic = compOpportunisticallyDependsOn(InstructionSet_AVX10v1) + ? NI_AVX10v1_ConvertToVector256Double + : NI_AVX512DQ_VL_ConvertToVector256Double; } else { assert(simdSize == 16); - intrinsic = NI_AVX512DQ_VL_ConvertToVector128Double; + intrinsic = compOpportunisticallyDependsOn(InstructionSet_AVX10v1) + ? NI_AVX10v1_ConvertToVector128Double + : NI_AVX512DQ_VL_ConvertToVector128Double; } op1 = impSIMDPopStack(); retNode = gtNewSimdHWIntrinsicNode(retType, op1, intrinsic, simdBaseJitType, simdSize); @@ -1405,7 +1457,8 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, assert(sig->numArgs == 1); assert(simdBaseType == TYP_DOUBLE); - if (IsBaselineVector512IsaSupportedOpportunistically()) + if (IsBaselineVector512IsaSupportedOpportunistically() || + (simdSize != 64 && compOpportunisticallyDependsOn(InstructionSet_AVX10v1))) { op1 = impSIMDPopStack(); retNode = gtNewSimdCvtNode(retType, op1, CORINFO_TYPE_LONG, simdBaseJitType, simdSize); @@ -1425,7 +1478,8 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, break; } - if (IsBaselineVector512IsaSupportedOpportunistically()) + if (IsBaselineVector512IsaSupportedOpportunistically() || + (simdSize != 64 && compOpportunisticallyDependsOn(InstructionSet_AVX10v1))) { op1 = impSIMDPopStack(); retNode = gtNewSimdCvtNativeNode(retType, op1, CORINFO_TYPE_LONG, simdBaseJitType, simdSize); @@ -1457,6 +1511,21 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, unreached(); } } + else if (simdBaseType == TYP_UINT && simdSize != 64 && + compOpportunisticallyDependsOn(InstructionSet_AVX10v1)) + { + switch (simdSize) + { + case 16: + intrinsic = NI_AVX10v1_ConvertToVector128Single; + break; + case 32: + intrinsic = NI_AVX10v1_ConvertToVector256Single; + break; + default: + unreached(); + } + } else if (simdBaseType == TYP_UINT && IsBaselineVector512IsaSupportedOpportunistically()) { switch (simdSize) @@ -1489,7 +1558,8 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, assert(sig->numArgs == 1); assert(simdBaseType == TYP_FLOAT); - if (IsBaselineVector512IsaSupportedOpportunistically()) + if (IsBaselineVector512IsaSupportedOpportunistically() || + (simdSize != 64 && compOpportunisticallyDependsOn(InstructionSet_AVX10v1))) { op1 = impSIMDPopStack(); retNode = gtNewSimdCvtNode(retType, op1, CORINFO_TYPE_UINT, simdBaseJitType, simdSize); @@ -1509,7 +1579,8 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, break; } - if (IsBaselineVector512IsaSupportedOpportunistically()) + if (IsBaselineVector512IsaSupportedOpportunistically() || + (simdSize != 64 && compOpportunisticallyDependsOn(InstructionSet_AVX10v1))) { op1 = impSIMDPopStack(); retNode = gtNewSimdCvtNativeNode(retType, op1, CORINFO_TYPE_UINT, simdBaseJitType, simdSize); @@ -1523,8 +1594,8 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, { assert(sig->numArgs == 1); assert(simdBaseType == TYP_DOUBLE); - - if (IsBaselineVector512IsaSupportedOpportunistically()) + if (IsBaselineVector512IsaSupportedOpportunistically() || + (simdSize != 64 && compOpportunisticallyDependsOn(InstructionSet_AVX10v1))) { op1 = impSIMDPopStack(); retNode = gtNewSimdCvtNode(retType, op1, CORINFO_TYPE_ULONG, simdBaseJitType, simdSize); @@ -1544,7 +1615,8 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, break; } - if (IsBaselineVector512IsaSupportedOpportunistically()) + if (IsBaselineVector512IsaSupportedOpportunistically() || + (simdSize != 64 && compOpportunisticallyDependsOn(InstructionSet_AVX10v1))) { op1 = impSIMDPopStack(); retNode = gtNewSimdCvtNativeNode(retType, op1, CORINFO_TYPE_ULONG, simdBaseJitType, simdSize); @@ -1819,7 +1891,7 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, // generate better code. However, if it isn't then we need to fallback in the // cases where multiplication isn't supported. - if ((simdSize != 64) && !compOpportunisticallyDependsOn(InstructionSet_AVX512DQ_VL)) + if ((simdSize != 64) && !canUseEvexEncoding()) { // TODO-XARCH-CQ: We should support long/ulong multiplication break; @@ -1971,10 +2043,10 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, if (!varTypeIsMask(op1)) { - op1 = gtNewSimdHWIntrinsicNode(TYP_MASK, op1, NI_AVX512F_ConvertVectorToMask, simdBaseJitType, - simdSize); + op1 = + gtNewSimdHWIntrinsicNode(TYP_MASK, op1, NI_EVEX_ConvertVectorToMask, simdBaseJitType, simdSize); } - retNode = gtNewSimdHWIntrinsicNode(retType, op1, NI_AVX512F_MoveMask, simdBaseJitType, simdSize); + retNode = gtNewSimdHWIntrinsicNode(retType, op1, NI_EVEX_MoveMask, simdBaseJitType, simdSize); } break; } @@ -2557,7 +2629,7 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, if (varTypeIsLong(simdBaseType)) { - if (simdSize != 64 && !compOpportunisticallyDependsOn(InstructionSet_AVX512DQ_VL)) + if (simdSize != 64 && !canUseEvexEncoding()) { // TODO-XARCH-CQ: We should support long/ulong multiplication break; @@ -3466,6 +3538,12 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, case NI_AVX512VBMI_PermuteVar64x8: case NI_AVX512VBMI_VL_PermuteVar16x8: case NI_AVX512VBMI_VL_PermuteVar32x8: + case NI_AVX10v1_PermuteVar16x8: + case NI_AVX10v1_PermuteVar8x16: + case NI_AVX10v1_PermuteVar16x16: + case NI_AVX10v1_PermuteVar32x8: + case NI_AVX10v1_PermuteVar4x64: + case NI_AVX10v1_V512_PermuteVar64x8: { simdBaseJitType = getBaseJitTypeOfSIMDType(sig->retTypeSigClass); @@ -3483,6 +3561,8 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, case NI_AVX512F_Fixup: case NI_AVX512F_FixupScalar: case NI_AVX512F_VL_Fixup: + case NI_AVX10v1_Fixup: + case NI_AVX10v1_FixupScalar: { assert(sig->numArgs == 4); @@ -3516,6 +3596,7 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, case NI_AVX512F_TernaryLogic: case NI_AVX512F_VL_TernaryLogic: + case NI_AVX10v1_TernaryLogic: { assert(sig->numArgs == 4); @@ -4060,11 +4141,10 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, if (!varTypeIsMask(op3)) { - op3 = - gtNewSimdHWIntrinsicNode(TYP_MASK, op3, NI_AVX512F_ConvertVectorToMask, simdBaseJitType, simdSize); + op3 = gtNewSimdHWIntrinsicNode(TYP_MASK, op3, NI_EVEX_ConvertVectorToMask, simdBaseJitType, simdSize); } - retNode = gtNewSimdHWIntrinsicNode(retType, op1, op2, op3, NI_AVX512F_BlendVariableMask, simdBaseJitType, - simdSize); + retNode = + gtNewSimdHWIntrinsicNode(retType, op1, op2, op3, NI_EVEX_BlendVariableMask, simdBaseJitType, simdSize); break; } @@ -4076,10 +4156,9 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, op2 = impSIMDPopStack(); op1 = impSIMDPopStack(); + retNode = gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, op3, NI_EVEX_CompareMask, simdBaseJitType, simdSize); retNode = - gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, op3, NI_AVX512F_CompareMask, simdBaseJitType, simdSize); - retNode = - gtNewSimdHWIntrinsicNode(retType, retNode, NI_AVX512F_ConvertMaskToVector, simdBaseJitType, simdSize); + gtNewSimdHWIntrinsicNode(retType, retNode, NI_EVEX_ConvertMaskToVector, simdBaseJitType, simdSize); break; } @@ -4092,16 +4171,16 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, op2 = impSIMDPopStack(); op1 = impSIMDPopStack(); + retNode = gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, NI_EVEX_CompareEqualMask, simdBaseJitType, simdSize); retNode = - gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, NI_AVX512F_CompareEqualMask, simdBaseJitType, simdSize); - retNode = - gtNewSimdHWIntrinsicNode(retType, retNode, NI_AVX512F_ConvertMaskToVector, simdBaseJitType, simdSize); + gtNewSimdHWIntrinsicNode(retType, retNode, NI_EVEX_ConvertMaskToVector, simdBaseJitType, simdSize); break; } case NI_AVX512F_CompareGreaterThan: case NI_AVX512F_VL_CompareGreaterThan: + case NI_AVX10v1_CompareGreaterThan: case NI_AVX512BW_CompareGreaterThan: case NI_AVX512BW_VL_CompareGreaterThan: { @@ -4110,10 +4189,10 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, op2 = impSIMDPopStack(); op1 = impSIMDPopStack(); - retNode = gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, NI_AVX512F_CompareGreaterThanMask, simdBaseJitType, - simdSize); retNode = - gtNewSimdHWIntrinsicNode(retType, retNode, NI_AVX512F_ConvertMaskToVector, simdBaseJitType, simdSize); + gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, NI_EVEX_CompareGreaterThanMask, simdBaseJitType, simdSize); + retNode = + gtNewSimdHWIntrinsicNode(retType, retNode, NI_EVEX_ConvertMaskToVector, simdBaseJitType, simdSize); break; } @@ -4122,16 +4201,17 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, case NI_AVX512F_VL_CompareGreaterThanOrEqual: case NI_AVX512BW_CompareGreaterThanOrEqual: case NI_AVX512BW_VL_CompareGreaterThanOrEqual: + case NI_AVX10v1_CompareGreaterThanOrEqual: { assert(sig->numArgs == 2); op2 = impSIMDPopStack(); op1 = impSIMDPopStack(); - retNode = gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, NI_AVX512F_CompareGreaterThanOrEqualMask, + retNode = gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, NI_EVEX_CompareGreaterThanOrEqualMask, simdBaseJitType, simdSize); retNode = - gtNewSimdHWIntrinsicNode(retType, retNode, NI_AVX512F_ConvertMaskToVector, simdBaseJitType, simdSize); + gtNewSimdHWIntrinsicNode(retType, retNode, NI_EVEX_ConvertMaskToVector, simdBaseJitType, simdSize); break; } @@ -4140,6 +4220,7 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, case NI_AVX512F_VL_CompareLessThan: case NI_AVX512BW_CompareLessThan: case NI_AVX512BW_VL_CompareLessThan: + case NI_AVX10v1_CompareLessThan: { assert(sig->numArgs == 2); @@ -4147,9 +4228,9 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, op1 = impSIMDPopStack(); retNode = - gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, NI_AVX512F_CompareLessThanMask, simdBaseJitType, simdSize); + gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, NI_EVEX_CompareLessThanMask, simdBaseJitType, simdSize); retNode = - gtNewSimdHWIntrinsicNode(retType, retNode, NI_AVX512F_ConvertMaskToVector, simdBaseJitType, simdSize); + gtNewSimdHWIntrinsicNode(retType, retNode, NI_EVEX_ConvertMaskToVector, simdBaseJitType, simdSize); break; } @@ -4158,16 +4239,17 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, case NI_AVX512F_VL_CompareLessThanOrEqual: case NI_AVX512BW_CompareLessThanOrEqual: case NI_AVX512BW_VL_CompareLessThanOrEqual: + case NI_AVX10v1_CompareLessThanOrEqual: { assert(sig->numArgs == 2); op2 = impSIMDPopStack(); op1 = impSIMDPopStack(); - retNode = gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, NI_AVX512F_CompareLessThanOrEqualMask, - simdBaseJitType, simdSize); + retNode = gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, NI_EVEX_CompareLessThanOrEqualMask, simdBaseJitType, + simdSize); retNode = - gtNewSimdHWIntrinsicNode(retType, retNode, NI_AVX512F_ConvertMaskToVector, simdBaseJitType, simdSize); + gtNewSimdHWIntrinsicNode(retType, retNode, NI_EVEX_ConvertMaskToVector, simdBaseJitType, simdSize); break; } @@ -4176,6 +4258,7 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, case NI_AVX512F_VL_CompareNotEqual: case NI_AVX512BW_CompareNotEqual: case NI_AVX512BW_VL_CompareNotEqual: + case NI_AVX10v1_CompareNotEqual: { assert(sig->numArgs == 2); @@ -4183,9 +4266,9 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, op1 = impSIMDPopStack(); retNode = - gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, NI_AVX512F_CompareNotEqualMask, simdBaseJitType, simdSize); + gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, NI_EVEX_CompareNotEqualMask, simdBaseJitType, simdSize); retNode = - gtNewSimdHWIntrinsicNode(retType, retNode, NI_AVX512F_ConvertMaskToVector, simdBaseJitType, simdSize); + gtNewSimdHWIntrinsicNode(retType, retNode, NI_EVEX_ConvertMaskToVector, simdBaseJitType, simdSize); break; } @@ -4197,10 +4280,10 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, op2 = impSIMDPopStack(); op1 = impSIMDPopStack(); - retNode = gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, NI_AVX512F_CompareNotGreaterThanMask, - simdBaseJitType, simdSize); + retNode = gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, NI_EVEX_CompareNotGreaterThanMask, simdBaseJitType, + simdSize); retNode = - gtNewSimdHWIntrinsicNode(retType, retNode, NI_AVX512F_ConvertMaskToVector, simdBaseJitType, simdSize); + gtNewSimdHWIntrinsicNode(retType, retNode, NI_EVEX_ConvertMaskToVector, simdBaseJitType, simdSize); break; } @@ -4212,10 +4295,10 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, op2 = impSIMDPopStack(); op1 = impSIMDPopStack(); - retNode = gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, NI_AVX512F_CompareNotGreaterThanOrEqualMask, + retNode = gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, NI_EVEX_CompareNotGreaterThanOrEqualMask, simdBaseJitType, simdSize); retNode = - gtNewSimdHWIntrinsicNode(retType, retNode, NI_AVX512F_ConvertMaskToVector, simdBaseJitType, simdSize); + gtNewSimdHWIntrinsicNode(retType, retNode, NI_EVEX_ConvertMaskToVector, simdBaseJitType, simdSize); break; } @@ -4227,10 +4310,10 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, op2 = impSIMDPopStack(); op1 = impSIMDPopStack(); - retNode = gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, NI_AVX512F_CompareNotLessThanMask, simdBaseJitType, - simdSize); retNode = - gtNewSimdHWIntrinsicNode(retType, retNode, NI_AVX512F_ConvertMaskToVector, simdBaseJitType, simdSize); + gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, NI_EVEX_CompareNotLessThanMask, simdBaseJitType, simdSize); + retNode = + gtNewSimdHWIntrinsicNode(retType, retNode, NI_EVEX_ConvertMaskToVector, simdBaseJitType, simdSize); break; } @@ -4242,10 +4325,10 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, op2 = impSIMDPopStack(); op1 = impSIMDPopStack(); - retNode = gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, NI_AVX512F_CompareNotLessThanOrEqualMask, + retNode = gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, NI_EVEX_CompareNotLessThanOrEqualMask, simdBaseJitType, simdSize); retNode = - gtNewSimdHWIntrinsicNode(retType, retNode, NI_AVX512F_ConvertMaskToVector, simdBaseJitType, simdSize); + gtNewSimdHWIntrinsicNode(retType, retNode, NI_EVEX_ConvertMaskToVector, simdBaseJitType, simdSize); break; } @@ -4258,9 +4341,9 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, op1 = impSIMDPopStack(); retNode = - gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, NI_AVX512F_CompareOrderedMask, simdBaseJitType, simdSize); + gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, NI_EVEX_CompareOrderedMask, simdBaseJitType, simdSize); retNode = - gtNewSimdHWIntrinsicNode(retType, retNode, NI_AVX512F_ConvertMaskToVector, simdBaseJitType, simdSize); + gtNewSimdHWIntrinsicNode(retType, retNode, NI_EVEX_ConvertMaskToVector, simdBaseJitType, simdSize); break; } @@ -4272,10 +4355,10 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, op2 = impSIMDPopStack(); op1 = impSIMDPopStack(); - retNode = gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, NI_AVX512F_CompareUnorderedMask, simdBaseJitType, - simdSize); retNode = - gtNewSimdHWIntrinsicNode(retType, retNode, NI_AVX512F_ConvertMaskToVector, simdBaseJitType, simdSize); + gtNewSimdHWIntrinsicNode(TYP_MASK, op1, op2, NI_EVEX_CompareUnorderedMask, simdBaseJitType, simdSize); + retNode = + gtNewSimdHWIntrinsicNode(retType, retNode, NI_EVEX_ConvertMaskToVector, simdBaseJitType, simdSize); break; } diff --git a/src/coreclr/jit/importercalls.cpp b/src/coreclr/jit/importercalls.cpp index 6c445351f78fe..f52fe739f11c0 100644 --- a/src/coreclr/jit/importercalls.cpp +++ b/src/coreclr/jit/importercalls.cpp @@ -3993,7 +3993,7 @@ GenTree* Compiler::impIntrinsic(GenTree* newobjThis, case NI_System_Math_FusedMultiplyAdd: { #ifdef TARGET_XARCH - if (compOpportunisticallyDependsOn(InstructionSet_FMA)) + if (IsAvx10OrIsaSupportedOpportunistically(InstructionSet_FMA)) { assert(varTypeIsFloating(callType)); @@ -4012,8 +4012,11 @@ GenTree* Compiler::impIntrinsic(GenTree* newobjThis, op2 = gtNewSimdCreateScalarUnsafeNode(TYP_SIMD16, op2, callJitType, 16); op1 = gtNewSimdCreateScalarUnsafeNode(TYP_SIMD16, op1, callJitType, 16); - retNode = - gtNewSimdHWIntrinsicNode(TYP_SIMD16, op1, op2, op3, NI_FMA_MultiplyAddScalar, callJitType, 16); + retNode = compOpportunisticallyDependsOn(InstructionSet_AVX10v1) + ? gtNewSimdHWIntrinsicNode(TYP_SIMD16, op1, op2, op3, NI_AVX10v1_MultiplyAddScalar, + callJitType, 16) + : gtNewSimdHWIntrinsicNode(TYP_SIMD16, op1, op2, op3, NI_FMA_MultiplyAddScalar, + callJitType, 16); retNode = gtNewSimdToScalarNode(callType, retNode, callJitType, 16); break; @@ -5263,6 +5266,10 @@ GenTree* Compiler::impPrimitiveNamedIntrinsic(NamedIntrinsic intrinsic, { hwIntrinsicId = NI_SSE_ConvertToInt32WithTruncation; } + else if (compOpportunisticallyDependsOn(InstructionSet_AVX10v1)) + { + hwIntrinsicId = NI_AVX10v1_ConvertToUInt32WithTruncation; + } else if (IsBaselineVector512IsaSupportedOpportunistically()) { hwIntrinsicId = NI_AVX512F_ConvertToUInt32WithTruncation; @@ -5276,6 +5283,10 @@ GenTree* Compiler::impPrimitiveNamedIntrinsic(NamedIntrinsic intrinsic, { hwIntrinsicId = NI_SSE2_ConvertToInt32WithTruncation; } + else if (compOpportunisticallyDependsOn(InstructionSet_AVX10v1)) + { + hwIntrinsicId = NI_AVX10v1_ConvertToUInt32WithTruncation; + } else if (IsBaselineVector512IsaSupportedOpportunistically()) { hwIntrinsicId = NI_AVX512F_ConvertToUInt32WithTruncation; @@ -5293,6 +5304,10 @@ GenTree* Compiler::impPrimitiveNamedIntrinsic(NamedIntrinsic intrinsic, { hwIntrinsicId = NI_SSE_X64_ConvertToInt64WithTruncation; } + else if (compOpportunisticallyDependsOn(InstructionSet_AVX10v1)) + { + hwIntrinsicId = NI_AVX10v1_X64_ConvertToUInt64WithTruncation; + } else if (IsBaselineVector512IsaSupportedOpportunistically()) { hwIntrinsicId = NI_AVX512F_X64_ConvertToUInt64WithTruncation; @@ -5306,6 +5321,10 @@ GenTree* Compiler::impPrimitiveNamedIntrinsic(NamedIntrinsic intrinsic, { hwIntrinsicId = NI_SSE2_X64_ConvertToInt64WithTruncation; } + else if (compOpportunisticallyDependsOn(InstructionSet_AVX10v1)) + { + hwIntrinsicId = NI_AVX10v1_X64_ConvertToUInt64WithTruncation; + } else if (IsBaselineVector512IsaSupportedOpportunistically()) { hwIntrinsicId = NI_AVX512F_X64_ConvertToUInt64WithTruncation; @@ -8885,7 +8904,12 @@ GenTree* Compiler::impEstimateIntrinsic(CORINFO_METHOD_HANDLE method, assert(sig->numArgs == 1); #if defined(TARGET_XARCH) - if (compExactlyDependsOn(InstructionSet_AVX512F)) + if (compExactlyDependsOn(InstructionSet_AVX10v1)) + { + simdType = TYP_SIMD16; + intrinsicId = NI_AVX10v1_Reciprocal14Scalar; + } + else if (compExactlyDependsOn(InstructionSet_AVX512F)) { simdType = TYP_SIMD16; intrinsicId = NI_AVX512F_Reciprocal14Scalar; @@ -9449,7 +9473,8 @@ GenTree* Compiler::impMinMaxIntrinsic(CORINFO_METHOD_HANDLE method, } #if defined(FEATURE_HW_INTRINSICS) && defined(TARGET_XARCH) - if (compOpportunisticallyDependsOn(InstructionSet_AVX512DQ)) + bool isV512Supported = false; + if (compIsEvexOpportunisticallySupported(isV512Supported, InstructionSet_AVX512DQ)) { // We are constructing a chain of intrinsics similar to: // var op1 = Vector128.CreateScalarUnsafe(x); @@ -9503,7 +9528,10 @@ GenTree* Compiler::impMinMaxIntrinsic(CORINFO_METHOD_HANDLE method, GenTree* op1Clone; op1 = impCloneExpr(op1, &op1Clone, CHECK_SPILL_ALL, nullptr DEBUGARG("Cloning op1 for Math.Max/Min")); - GenTree* tmp = gtNewSimdHWIntrinsicNode(TYP_SIMD16, op1, op2, op3, NI_AVX512DQ_RangeScalar, callJitType, 16); + GenTree* tmp = + !isV512Supported + ? gtNewSimdHWIntrinsicNode(TYP_SIMD16, op1, op2, op3, NI_AVX10v1_RangeScalar, callJitType, 16) + : gtNewSimdHWIntrinsicNode(TYP_SIMD16, op1, op2, op3, NI_AVX512DQ_RangeScalar, callJitType, 16); // FixupScalar(left, right, table, control) computes the input type of right // adjusts it based on the table and then returns @@ -9522,6 +9550,7 @@ GenTree* Compiler::impMinMaxIntrinsic(CORINFO_METHOD_HANDLE method, // * qnan, norm = norm // * norm, norm = norm + NamedIntrinsic fixupHwIntrinsicID = !isV512Supported ? NI_AVX10v1_FixupScalar : NI_AVX512F_FixupScalar; if (isNumber) { // We need to fixup the case of: @@ -9558,9 +9587,9 @@ GenTree* Compiler::impMinMaxIntrinsic(CORINFO_METHOD_HANDLE method, tbl1 = impCloneExpr(tbl1, &tbl2, CHECK_SPILL_ALL, nullptr DEBUGARG("Cloning tbl for Math.Max/Min")); op1Clone = gtNewSimdHWIntrinsicNode(TYP_SIMD16, op1Clone, op2Clone, tbl1, gtNewIconNode(0), - NI_AVX512F_FixupScalar, callJitType, 16); + fixupHwIntrinsicID, callJitType, 16); - tmp = gtNewSimdHWIntrinsicNode(TYP_SIMD16, op1Clone, tmp, tbl2, gtNewIconNode(0), NI_AVX512F_FixupScalar, + tmp = gtNewSimdHWIntrinsicNode(TYP_SIMD16, op1Clone, tmp, tbl2, gtNewIconNode(0), fixupHwIntrinsicID, callJitType, 16); } else @@ -9601,9 +9630,9 @@ GenTree* Compiler::impMinMaxIntrinsic(CORINFO_METHOD_HANDLE method, tbl1 = impCloneExpr(tbl1, &tbl2, CHECK_SPILL_ALL, nullptr DEBUGARG("Cloning tbl for Math.Max/Min")); op1Clone = gtNewSimdHWIntrinsicNode(TYP_SIMD16, op1Clone, op2Clone, tbl1, gtNewIconNode(0), - NI_AVX512F_FixupScalar, callJitType, 16); + fixupHwIntrinsicID, callJitType, 16); - tmp = gtNewSimdHWIntrinsicNode(TYP_SIMD16, tmp, op1Clone, tbl2, gtNewIconNode(0), NI_AVX512F_FixupScalar, + tmp = gtNewSimdHWIntrinsicNode(TYP_SIMD16, tmp, op1Clone, tbl2, gtNewIconNode(0), fixupHwIntrinsicID, callJitType, 16); } diff --git a/src/coreclr/jit/importervectorization.cpp b/src/coreclr/jit/importervectorization.cpp index dddc14dec3b9b..7447c35de2f29 100644 --- a/src/coreclr/jit/importervectorization.cpp +++ b/src/coreclr/jit/importervectorization.cpp @@ -161,7 +161,7 @@ GenTree* Compiler::impExpandHalfConstEqualsSIMD( GenTreeVecCon* toLowerVec2 = gtNewVconNode(simdType, (BYTE*)toLowerMask + byteLen - simdSize); #if defined(TARGET_XARCH) - if (compOpportunisticallyDependsOn(InstructionSet_AVX512F_VL)) + if (canUseEvexEncoding()) { GenTree* control; @@ -185,7 +185,7 @@ GenTree* Compiler::impExpandHalfConstEqualsSIMD( // ((v1 ^ cns1) | (v2 ^ cns2)) == zero #if defined(TARGET_XARCH) - if (compOpportunisticallyDependsOn(InstructionSet_AVX512F_VL)) + if (canUseEvexEncoding()) { GenTree* control; diff --git a/src/coreclr/jit/lowerxarch.cpp b/src/coreclr/jit/lowerxarch.cpp index 2599c7a8b4d84..2675303454beb 100644 --- a/src/coreclr/jit/lowerxarch.cpp +++ b/src/coreclr/jit/lowerxarch.cpp @@ -852,7 +852,7 @@ GenTree* Lowering::LowerCast(GenTree* tree) if (varTypeIsFloating(srcType)) { noway_assert(!tree->gtOverflow()); - assert(castToType != TYP_ULONG || comp->IsBaselineVector512IsaSupportedDebugOnly()); + assert(castToType != TYP_ULONG || comp->canUseEvexEncoding()); } else if (srcType == TYP_UINT) { @@ -860,7 +860,7 @@ GenTree* Lowering::LowerCast(GenTree* tree) } else if (srcType == TYP_ULONG) { - assert(castToType != TYP_FLOAT || comp->IsBaselineVector512IsaSupportedDebugOnly()); + assert(castToType != TYP_FLOAT || comp->canUseEvexEncoding()); } #if defined(TARGET_AMD64) @@ -878,7 +878,8 @@ GenTree* Lowering::LowerCast(GenTree* tree) GenTree* castOutput = nullptr; LIR::Use castOpUse(BlockRange(), &(tree->AsCast()->CastOp()), tree); ReplaceWithLclVar(castOpUse); - castOp = tree->AsCast()->CastOp(); + castOp = tree->AsCast()->CastOp(); + bool isV512Supported = false; /*The code below is to introduce saturating conversions on X86/X64. The C# equivalence of the code is given below --> @@ -894,7 +895,7 @@ GenTree* Lowering::LowerCast(GenTree* tree) Vector128.Create(long.MaxValue) ); */ - if (comp->IsBaselineVector512IsaSupportedOpportunistically()) + if (comp->compIsEvexOpportunisticallySupported(isV512Supported)) { // Clone the cast operand for usage. GenTree* op1Clone1 = comp->gtClone(castOp); @@ -910,11 +911,12 @@ GenTree* Lowering::LowerCast(GenTree* tree) GenTree* ctrlByte = comp->gtNewIconNode(0); BlockRange().InsertAfter(tbl, ctrlByte); + NamedIntrinsic fixupHwIntrinsicID = !isV512Supported ? NI_AVX10v1_FixupScalar : NI_AVX512F_FixupScalar; if (varTypeIsUnsigned(dstType)) { // run vfixupimmsd base on table and no flags reporting GenTree* oper1 = comp->gtNewSimdHWIntrinsicNode(TYP_SIMD16, castOp, op1Clone1, tbl, ctrlByte, - NI_AVX512F_FixupScalar, fieldType, 16); + fixupHwIntrinsicID, fieldType, 16); BlockRange().InsertAfter(ctrlByte, oper1); LowerNode(oper1); @@ -936,7 +938,7 @@ GenTree* Lowering::LowerCast(GenTree* tree) // run vfixupimmsd base on table and no flags reporting GenTree* fixupVal = comp->gtNewSimdHWIntrinsicNode(TYP_SIMD16, castOp, op1Clone1, tbl, ctrlByte, - NI_AVX512F_FixupScalar, fieldType, 16); + fixupHwIntrinsicID, fieldType, 16); BlockRange().InsertAfter(ctrlByte, fixupVal); LowerNode(fixupVal); @@ -1220,7 +1222,7 @@ void Lowering::LowerHWIntrinsicCC(GenTreeHWIntrinsic* node, NamedIntrinsic newIn { GenTreeCC* cc = LowerNodeCC(node, condition); - assert((HWIntrinsicInfo::lookupNumArgs(newIntrinsicId) == 2) || (newIntrinsicId == NI_AVX512F_KORTEST)); + assert((HWIntrinsicInfo::lookupNumArgs(newIntrinsicId) == 2) || (newIntrinsicId == NI_EVEX_KORTEST)); node->ChangeHWIntrinsicId(newIntrinsicId); node->gtType = TYP_VOID; node->ClearUnusedValue(); @@ -1264,8 +1266,8 @@ void Lowering::LowerHWIntrinsicCC(GenTreeHWIntrinsic* node, NamedIntrinsic newIn break; } - case NI_AVX512F_KORTEST: - case NI_AVX512F_KTEST: + case NI_EVEX_KORTEST: + case NI_EVEX_KTEST: { // No containment support, so no reason to swap operands canSwapOperands = false; @@ -1301,28 +1303,30 @@ void Lowering::LowerHWIntrinsicCC(GenTreeHWIntrinsic* node, NamedIntrinsic newIn } //---------------------------------------------------------------------------------------------- -// LowerFusedMultiplyAdd: Changes NI_FMA_MultiplyAddScalar produced by Math(F).FusedMultiplyAdd -// to a better FMA intrinsics if there are GT_NEG around in order to eliminate them. +// LowerFusedMultiplyAdd: Changes NI_FMA_MultiplyAddScalar / NI_AVX10v1_MultiplyAddScalar produced +// by Math(F).FusedMultiplyAdd to a better FMA intrinsics if there are GT_NEG around in order +// to eliminate them. // // Arguments: // node - The hardware intrinsic node // // Notes: -// Math(F).FusedMultiplyAdd is expanded into NI_FMA_MultiplyAddScalar and +// Math(F).FusedMultiplyAdd is expanded into NI_FMA_MultiplyAddScalar / NI_AVX10v1_MultiplyAddScalar and // depending on additional GT_NEG nodes around it can be: // -// x * y + z -> NI_FMA_MultiplyAddScalar -// x * -y + z -> NI_FMA_MultiplyAddNegatedScalar -// -x * y + z -> NI_FMA_MultiplyAddNegatedScalar -// -x * -y + z -> NI_FMA_MultiplyAddScalar -// x * y - z -> NI_FMA_MultiplySubtractScalar -// x * -y - z -> NI_FMA_MultiplySubtractNegatedScalar -// -x * y - z -> NI_FMA_MultiplySubtractNegatedScalar -// -x * -y - z -> NI_FMA_MultiplySubtractScalar +// x * y + z -> NI_FMA_MultiplyAddScalar / NI_AVX10v1_MultiplyAddScalar +// x * -y + z -> NI_FMA_MultiplyAddNegatedScalar / NI_AVX10v1_MultiplyAddNegatedScalar +// -x * y + z -> NI_FMA_MultiplyAddNegatedScalar / NI_AVX10v1_MultiplyAddNegatedScalar +// -x * -y + z -> NI_FMA_MultiplyAddScalar / NI_AVX10v1_MultiplyAddScalar +// x * y - z -> NI_FMA_MultiplySubtractScalar / NI_AVX10v1_MultiplySubtractScalar +// x * -y - z -> NI_FMA_MultiplySubtractNegatedScalar / NI_AVX10v1_MultiplySubtractNegatedScalar +// -x * y - z -> NI_FMA_MultiplySubtractNegatedScalar / NI_AVX10v1_MultiplySubtractNegatedScalar +// -x * -y - z -> NI_FMA_MultiplySubtractScalar / NI_AVX10v1_MultiplySubtractScalar // void Lowering::LowerFusedMultiplyAdd(GenTreeHWIntrinsic* node) { - assert(node->GetHWIntrinsicId() == NI_FMA_MultiplyAddScalar); + assert((node->GetHWIntrinsicId() == NI_FMA_MultiplyAddScalar) || + (node->GetHWIntrinsicId() == NI_AVX10v1_MultiplyAddScalar)); GenTreeHWIntrinsic* createScalarOps[3]; for (size_t i = 1; i <= 3; i++) @@ -1366,11 +1370,26 @@ void Lowering::LowerFusedMultiplyAdd(GenTreeHWIntrinsic* node) createScalarOps[2]->Op(1)->ClearContained(); ContainCheckHWIntrinsic(createScalarOps[2]); - node->ChangeHWIntrinsicId(negMul ? NI_FMA_MultiplySubtractNegatedScalar : NI_FMA_MultiplySubtractScalar); + if (comp->compOpportunisticallyDependsOn(InstructionSet_AVX10v1)) + { + node->ChangeHWIntrinsicId(negMul ? NI_AVX10v1_MultiplySubtractNegatedScalar + : NI_AVX10v1_MultiplySubtractScalar); + } + else + { + node->ChangeHWIntrinsicId(negMul ? NI_FMA_MultiplySubtractNegatedScalar : NI_FMA_MultiplySubtractScalar); + } } else { - node->ChangeHWIntrinsicId(negMul ? NI_FMA_MultiplyAddNegatedScalar : NI_FMA_MultiplyAddScalar); + if (comp->compOpportunisticallyDependsOn(InstructionSet_AVX10v1)) + { + node->ChangeHWIntrinsicId(negMul ? NI_AVX10v1_MultiplyAddNegatedScalar : NI_AVX10v1_MultiplyAddScalar); + } + else + { + node->ChangeHWIntrinsicId(negMul ? NI_FMA_MultiplyAddNegatedScalar : NI_FMA_MultiplyAddScalar); + } } } @@ -1569,8 +1588,8 @@ GenTree* Lowering::LowerHWIntrinsic(GenTreeHWIntrinsic* node) return LowerHWIntrinsicCmpOp(node, GT_NE); } - case NI_AVX512F_CompareEqualMask: - case NI_AVX512F_CompareNotEqualMask: + case NI_EVEX_CompareEqualMask: + case NI_EVEX_CompareNotEqualMask: { GenTree* op1 = node->Op(1); GenTree* op2 = node->Op(2); @@ -1579,14 +1598,14 @@ GenTree* Lowering::LowerHWIntrinsic(GenTreeHWIntrinsic* node) { NamedIntrinsic testIntrinsicId; - if (intrinsicId == NI_AVX512F_CompareEqualMask) + if (intrinsicId == NI_EVEX_CompareEqualMask) { // We have `CompareEqual(x, Zero)` where a given element // equaling zero returns 1. We can therefore use `vptestnm(x, x)` // since it does `(x & x) == 0`, thus giving us `1` if zero and `0` // if non-zero - testIntrinsicId = NI_AVX512F_PTESTNM; + testIntrinsicId = NI_EVEX_PTESTNM; } else { @@ -1595,8 +1614,8 @@ GenTree* Lowering::LowerHWIntrinsic(GenTreeHWIntrinsic* node) // since it does `(x & x) != 0`, thus giving us `1` if non-zero and `0` // if zero - assert(intrinsicId == NI_AVX512F_CompareNotEqualMask); - testIntrinsicId = NI_AVX512F_PTESTM; + assert(intrinsicId == NI_EVEX_CompareNotEqualMask); + testIntrinsicId = NI_EVEX_PTESTM; } node->Op(1) = op1; @@ -2131,6 +2150,7 @@ GenTree* Lowering::LowerHWIntrinsic(GenTreeHWIntrinsic* node) break; case NI_FMA_MultiplyAddScalar: + case NI_AVX10v1_MultiplyAddScalar: LowerFusedMultiplyAdd(node); break; @@ -2152,6 +2172,9 @@ GenTree* Lowering::LowerHWIntrinsic(GenTreeHWIntrinsic* node) case NI_AVX2_Xor: case NI_AVX512F_Xor: case NI_AVX512DQ_Xor: + case NI_AVX10v1_V512_And: + case NI_AVX10v1_V512_Or: + case NI_AVX10v1_V512_Xor: { if (!comp->IsBaselineVector512IsaSupportedOpportunistically()) { @@ -2212,6 +2235,7 @@ GenTree* Lowering::LowerHWIntrinsic(GenTreeHWIntrinsic* node) case NI_AVX512F_TernaryLogic: case NI_AVX512F_VL_TernaryLogic: + case NI_AVX10v1_TernaryLogic: { return LowerHWIntrinsicTernaryLogic(node); } @@ -2259,7 +2283,7 @@ GenTree* Lowering::LowerHWIntrinsicCmpOp(GenTreeHWIntrinsic* node, genTreeOps cm GenTree* op2 = node->Op(2); GenCondition cmpCnd = (cmpOp == GT_EQ) ? GenCondition::EQ : GenCondition::NE; - if (op1Msk->OperIsHWIntrinsic(NI_AVX512F_ConvertMaskToVector)) + if (op1Msk->OperIsHWIntrinsic(NI_EVEX_ConvertMaskToVector)) { op1Msk = op1Msk->AsHWIntrinsic()->Op(1); assert(varTypeIsMask(op1Msk)); @@ -2386,7 +2410,7 @@ GenTree* Lowering::LowerHWIntrinsicCmpOp(GenTreeHWIntrinsic* node, genTreeOps cm // TODO-XARCH-AVX512: We should handle TYP_SIMD12 here under the EVEX path, but doing // so will require us to account for the unused 4th element. - if ((simdType != TYP_SIMD12) && comp->IsBaselineVector512IsaSupportedOpportunistically()) + if ((simdType != TYP_SIMD12) && comp->canUseEvexEncoding()) { // The EVEX encoded versions of the comparison instructions all return a kmask // @@ -2414,7 +2438,7 @@ GenTree* Lowering::LowerHWIntrinsicCmpOp(GenTreeHWIntrinsic* node, genTreeOps cm GenTree* maskNode = node; GenTree* nextNode = node->gtNext; - NamedIntrinsic maskIntrinsicId = NI_AVX512F_CompareEqualMask; + NamedIntrinsic maskIntrinsicId = NI_EVEX_CompareEqualMask; uint32_t count = simdSize / genTypeSize(simdBaseType); // KORTEST does a bitwise or on the result and sets ZF if it is zero and CF if it is all @@ -2516,75 +2540,75 @@ GenTree* Lowering::LowerHWIntrinsicCmpOp(GenTreeHWIntrinsic* node, genTreeOps cm switch (maskIntrinsicId) { - case NI_AVX512F_CompareEqualMask: + case NI_EVEX_CompareEqualMask: { - maskIntrinsicId = NI_AVX512F_CompareNotEqualMask; + maskIntrinsicId = NI_EVEX_CompareNotEqualMask; break; } - case NI_AVX512F_CompareGreaterThanMask: + case NI_EVEX_CompareGreaterThanMask: { - maskIntrinsicId = NI_AVX512F_CompareNotGreaterThanMask; + maskIntrinsicId = NI_EVEX_CompareNotGreaterThanMask; break; } - case NI_AVX512F_CompareGreaterThanOrEqualMask: + case NI_EVEX_CompareGreaterThanOrEqualMask: { - maskIntrinsicId = NI_AVX512F_CompareNotGreaterThanOrEqualMask; + maskIntrinsicId = NI_EVEX_CompareNotGreaterThanOrEqualMask; break; } - case NI_AVX512F_CompareLessThanMask: + case NI_EVEX_CompareLessThanMask: { - maskIntrinsicId = NI_AVX512F_CompareNotLessThanMask; + maskIntrinsicId = NI_EVEX_CompareNotLessThanMask; break; } - case NI_AVX512F_CompareLessThanOrEqualMask: + case NI_EVEX_CompareLessThanOrEqualMask: { - maskIntrinsicId = NI_AVX512F_CompareNotLessThanOrEqualMask; + maskIntrinsicId = NI_EVEX_CompareNotLessThanOrEqualMask; break; } - case NI_AVX512F_CompareNotEqualMask: + case NI_EVEX_CompareNotEqualMask: { - maskIntrinsicId = NI_AVX512F_CompareEqualMask; + maskIntrinsicId = NI_EVEX_CompareEqualMask; break; } - case NI_AVX512F_CompareNotGreaterThanMask: + case NI_EVEX_CompareNotGreaterThanMask: { - maskIntrinsicId = NI_AVX512F_CompareGreaterThanMask; + maskIntrinsicId = NI_EVEX_CompareGreaterThanMask; break; } - case NI_AVX512F_CompareNotGreaterThanOrEqualMask: + case NI_EVEX_CompareNotGreaterThanOrEqualMask: { - maskIntrinsicId = NI_AVX512F_CompareGreaterThanOrEqualMask; + maskIntrinsicId = NI_EVEX_CompareGreaterThanOrEqualMask; break; } - case NI_AVX512F_CompareNotLessThanMask: + case NI_EVEX_CompareNotLessThanMask: { - maskIntrinsicId = NI_AVX512F_CompareLessThanMask; + maskIntrinsicId = NI_EVEX_CompareLessThanMask; break; } - case NI_AVX512F_CompareNotLessThanOrEqualMask: + case NI_EVEX_CompareNotLessThanOrEqualMask: { - maskIntrinsicId = NI_AVX512F_CompareLessThanOrEqualMask; + maskIntrinsicId = NI_EVEX_CompareLessThanOrEqualMask; break; } - case NI_AVX512F_CompareOrderedMask: + case NI_EVEX_CompareOrderedMask: { - maskIntrinsicId = NI_AVX512F_CompareUnorderedMask; + maskIntrinsicId = NI_EVEX_CompareUnorderedMask; break; } - case NI_AVX512F_CompareUnorderedMask: + case NI_EVEX_CompareUnorderedMask: { - maskIntrinsicId = NI_AVX512F_CompareOrderedMask; + maskIntrinsicId = NI_EVEX_CompareOrderedMask; break; } @@ -2599,16 +2623,15 @@ GenTree* Lowering::LowerHWIntrinsicCmpOp(GenTreeHWIntrinsic* node, genTreeOps cm GenTree* cnsNode; - maskNode = comp->gtNewSimdHWIntrinsicNode(TYP_MASK, maskNode, NI_AVX512F_NotMask, + maskNode = comp->gtNewSimdHWIntrinsicNode(TYP_MASK, maskNode, NI_EVEX_NotMask, simdBaseJitType, simdSize); BlockRange().InsertBefore(node, maskNode); cnsNode = comp->gtNewIconNode(8 - count); BlockRange().InsertAfter(maskNode, cnsNode); - maskNode = - comp->gtNewSimdHWIntrinsicNode(TYP_MASK, maskNode, cnsNode, NI_AVX512F_ShiftLeftMask, - simdBaseJitType, simdSize); + maskNode = comp->gtNewSimdHWIntrinsicNode(TYP_MASK, maskNode, cnsNode, + NI_EVEX_ShiftLeftMask, simdBaseJitType, simdSize); BlockRange().InsertAfter(cnsNode, maskNode); LowerNode(maskNode); @@ -2616,11 +2639,11 @@ GenTree* Lowering::LowerHWIntrinsicCmpOp(GenTreeHWIntrinsic* node, genTreeOps cm BlockRange().InsertAfter(maskNode, cnsNode); maskNode = - comp->gtNewSimdHWIntrinsicNode(TYP_MASK, maskNode, cnsNode, NI_AVX512F_ShiftRightMask, + comp->gtNewSimdHWIntrinsicNode(TYP_MASK, maskNode, cnsNode, NI_EVEX_ShiftRightMask, simdBaseJitType, simdSize); BlockRange().InsertAfter(cnsNode, maskNode); - maskIntrinsicId = NI_AVX512F_ShiftRightMask; + maskIntrinsicId = NI_EVEX_ShiftRightMask; break; } } @@ -2667,7 +2690,7 @@ GenTree* Lowering::LowerHWIntrinsicCmpOp(GenTreeHWIntrinsic* node, genTreeOps cm if (!varTypeIsFloating(simdBaseType) && (op2 != nullptr) && op2->IsVectorZero()) { - NamedIntrinsic testIntrinsicId = NI_AVX512F_PTESTM; + NamedIntrinsic testIntrinsicId = NI_EVEX_PTESTM; bool skipReplaceOperands = false; if (op1->OperIsHWIntrinsic()) @@ -2679,6 +2702,7 @@ GenTree* Lowering::LowerHWIntrinsicCmpOp(GenTreeHWIntrinsic* node, genTreeOps cm { case NI_AVX512F_And: case NI_AVX512DQ_And: + case NI_AVX10v1_V512_And: { // We have `(x & y) == 0` with GenCondition::EQ (jz, setz, cmovz) // or `(x & y) != 0`with GenCondition::NE (jnz, setnz, cmovnz) @@ -2696,7 +2720,7 @@ GenTree* Lowering::LowerHWIntrinsicCmpOp(GenTreeHWIntrinsic* node, genTreeOps cm // will then set `ZF: 1` if all elements were 0 and `ZF: 0` if any elements were // non-zero. The default GenCondition then remain correct - assert(testIntrinsicId == NI_AVX512F_PTESTM); + assert(testIntrinsicId == NI_EVEX_PTESTM); node->Op(1) = op1Intrinsic->Op(1); node->Op(2) = op1Intrinsic->Op(2); @@ -2752,7 +2776,7 @@ GenTree* Lowering::LowerHWIntrinsicCmpOp(GenTreeHWIntrinsic* node, genTreeOps cm if (count < 8) { assert((count == 1) || (count == 2) || (count == 4)); - maskIntrinsicId = NI_AVX512F_CompareNotEqualMask; + maskIntrinsicId = NI_EVEX_CompareNotEqualMask; } else { @@ -2764,7 +2788,7 @@ GenTree* Lowering::LowerHWIntrinsicCmpOp(GenTreeHWIntrinsic* node, genTreeOps cm } else { - maskIntrinsicId = NI_AVX512F_CompareNotEqualMask; + maskIntrinsicId = NI_EVEX_CompareNotEqualMask; } } @@ -2780,11 +2804,11 @@ GenTree* Lowering::LowerHWIntrinsicCmpOp(GenTreeHWIntrinsic* node, genTreeOps cm { GenTreeHWIntrinsic* cc; - cc = comp->gtNewSimdHWIntrinsicNode(simdType, maskNode, NI_AVX512F_KORTEST, simdBaseJitType, simdSize); + cc = comp->gtNewSimdHWIntrinsicNode(simdType, maskNode, NI_EVEX_KORTEST, simdBaseJitType, simdSize); BlockRange().InsertBefore(nextNode, cc); use.ReplaceWith(cc); - LowerHWIntrinsicCC(cc, NI_AVX512F_KORTEST, cmpCnd); + LowerHWIntrinsicCC(cc, NI_EVEX_KORTEST, cmpCnd); nextNode = cc->gtNext; } @@ -2966,7 +2990,7 @@ GenTree* Lowering::LowerHWIntrinsicCmpOp(GenTreeHWIntrinsic* node, genTreeOps cm // GenTree* Lowering::LowerHWIntrinsicCndSel(GenTreeHWIntrinsic* node) { - assert(!comp->compIsaSupportedDebugOnly(InstructionSet_AVX512F_VL)); + assert(!comp->canUseEvexEncodingDebugOnly()); var_types simdType = node->gtType; CorInfoType simdBaseJitType = node->GetSimdBaseJitType(); @@ -3090,7 +3114,7 @@ GenTree* Lowering::LowerHWIntrinsicCndSel(GenTreeHWIntrinsic* node) // GenTree* Lowering::LowerHWIntrinsicTernaryLogic(GenTreeHWIntrinsic* node) { - assert(comp->compIsaSupportedDebugOnly(InstructionSet_AVX512F_VL)); + assert(comp->canUseEvexEncodingDebugOnly()); var_types simdType = node->gtType; CorInfoType simdBaseJitType = node->GetSimdBaseJitType(); @@ -3196,7 +3220,7 @@ GenTree* Lowering::LowerHWIntrinsicTernaryLogic(GenTreeHWIntrinsic* node) } } - if (condition->OperIsHWIntrinsic(NI_AVX512F_ConvertMaskToVector)) + if (condition->OperIsHWIntrinsic(NI_EVEX_ConvertMaskToVector)) { GenTree* tmp = condition->AsHWIntrinsic()->Op(1); BlockRange().Remove(condition); @@ -3216,7 +3240,7 @@ GenTree* Lowering::LowerHWIntrinsicTernaryLogic(GenTreeHWIntrinsic* node) { case NI_AVX_Compare: { - cndId = NI_AVX512F_CompareMask; + cndId = NI_EVEX_CompareMask; break; } @@ -3226,7 +3250,7 @@ GenTree* Lowering::LowerHWIntrinsicTernaryLogic(GenTreeHWIntrinsic* node) case NI_AVX_CompareEqual: case NI_AVX2_CompareEqual: { - cndId = NI_AVX512F_CompareEqualMask; + cndId = NI_EVEX_CompareEqualMask; break; } @@ -3236,7 +3260,7 @@ GenTree* Lowering::LowerHWIntrinsicTernaryLogic(GenTreeHWIntrinsic* node) case NI_AVX_CompareGreaterThan: case NI_AVX2_CompareGreaterThan: { - cndId = NI_AVX512F_CompareGreaterThanMask; + cndId = NI_EVEX_CompareGreaterThanMask; break; } @@ -3244,7 +3268,7 @@ GenTree* Lowering::LowerHWIntrinsicTernaryLogic(GenTreeHWIntrinsic* node) case NI_SSE2_CompareGreaterThanOrEqual: case NI_AVX_CompareGreaterThanOrEqual: { - cndId = NI_AVX512F_CompareGreaterThanOrEqualMask; + cndId = NI_EVEX_CompareGreaterThanOrEqualMask; break; } @@ -3254,7 +3278,7 @@ GenTree* Lowering::LowerHWIntrinsicTernaryLogic(GenTreeHWIntrinsic* node) case NI_AVX_CompareLessThan: case NI_AVX2_CompareLessThan: { - cndId = NI_AVX512F_CompareLessThanMask; + cndId = NI_EVEX_CompareLessThanMask; break; } @@ -3262,7 +3286,7 @@ GenTree* Lowering::LowerHWIntrinsicTernaryLogic(GenTreeHWIntrinsic* node) case NI_SSE2_CompareLessThanOrEqual: case NI_AVX_CompareLessThanOrEqual: { - cndId = NI_AVX512F_CompareLessThanOrEqualMask; + cndId = NI_EVEX_CompareLessThanOrEqualMask; break; } @@ -3270,7 +3294,7 @@ GenTree* Lowering::LowerHWIntrinsicTernaryLogic(GenTreeHWIntrinsic* node) case NI_SSE2_CompareNotEqual: case NI_AVX_CompareNotEqual: { - cndId = NI_AVX512F_CompareNotEqualMask; + cndId = NI_EVEX_CompareNotEqualMask; break; } @@ -3278,7 +3302,7 @@ GenTree* Lowering::LowerHWIntrinsicTernaryLogic(GenTreeHWIntrinsic* node) case NI_SSE2_CompareNotGreaterThan: case NI_AVX_CompareNotGreaterThan: { - cndId = NI_AVX512F_CompareGreaterThanMask; + cndId = NI_EVEX_CompareGreaterThanMask; break; } @@ -3286,7 +3310,7 @@ GenTree* Lowering::LowerHWIntrinsicTernaryLogic(GenTreeHWIntrinsic* node) case NI_SSE2_CompareNotGreaterThanOrEqual: case NI_AVX_CompareNotGreaterThanOrEqual: { - cndId = NI_AVX512F_CompareNotGreaterThanOrEqualMask; + cndId = NI_EVEX_CompareNotGreaterThanOrEqualMask; break; } @@ -3294,7 +3318,7 @@ GenTree* Lowering::LowerHWIntrinsicTernaryLogic(GenTreeHWIntrinsic* node) case NI_SSE2_CompareNotLessThan: case NI_AVX_CompareNotLessThan: { - cndId = NI_AVX512F_CompareNotLessThanMask; + cndId = NI_EVEX_CompareNotLessThanMask; break; } @@ -3302,7 +3326,7 @@ GenTree* Lowering::LowerHWIntrinsicTernaryLogic(GenTreeHWIntrinsic* node) case NI_SSE2_CompareNotLessThanOrEqual: case NI_AVX_CompareNotLessThanOrEqual: { - cndId = NI_AVX512F_CompareNotLessThanOrEqualMask; + cndId = NI_EVEX_CompareNotLessThanOrEqualMask; break; } @@ -3310,7 +3334,7 @@ GenTree* Lowering::LowerHWIntrinsicTernaryLogic(GenTreeHWIntrinsic* node) case NI_SSE2_CompareOrdered: case NI_AVX_CompareOrdered: { - cndId = NI_AVX512F_CompareOrderedMask; + cndId = NI_EVEX_CompareOrderedMask; break; } @@ -3318,7 +3342,7 @@ GenTree* Lowering::LowerHWIntrinsicTernaryLogic(GenTreeHWIntrinsic* node) case NI_SSE2_CompareUnordered: case NI_AVX_CompareUnordered: { - cndId = NI_AVX512F_CompareUnorderedMask; + cndId = NI_EVEX_CompareUnorderedMask; break; } @@ -3340,7 +3364,7 @@ GenTree* Lowering::LowerHWIntrinsicTernaryLogic(GenTreeHWIntrinsic* node) } assert(varTypeIsMask(condition)); - node->ResetHWIntrinsicId(NI_AVX512F_BlendVariableMask, comp, selectFalse, selectTrue, condition); + node->ResetHWIntrinsicId(NI_EVEX_BlendVariableMask, comp, selectFalse, selectTrue, condition); BlockRange().Remove(op4); break; } @@ -7424,6 +7448,8 @@ void Lowering::ContainCheckStoreIndir(GenTreeStoreInd* node) case NI_AVX512F_ExtractVector256: case NI_AVX512DQ_ExtractVector128: case NI_AVX512DQ_ExtractVector256: + case NI_AVX10v1_V512_ExtractVector128: + case NI_AVX10v1_V512_ExtractVector256: { // These intrinsics are "ins reg/mem, xmm, imm8" @@ -7445,6 +7471,8 @@ void Lowering::ContainCheckStoreIndir(GenTreeStoreInd* node) case NI_AVX512F_ConvertToVector256UInt32: case NI_AVX512F_VL_ConvertToVector128UInt32: case NI_AVX512F_VL_ConvertToVector128UInt32WithSaturation: + case NI_AVX10v1_ConvertToVector128UInt32: + case NI_AVX10v1_ConvertToVector128UInt32WithSaturation: { if (varTypeIsFloating(simdBaseType)) { @@ -7485,6 +7513,16 @@ void Lowering::ContainCheckStoreIndir(GenTreeStoreInd* node) case NI_AVX512BW_VL_ConvertToVector128ByteWithSaturation: case NI_AVX512BW_VL_ConvertToVector128SByte: case NI_AVX512BW_VL_ConvertToVector128SByteWithSaturation: + case NI_AVX10v1_ConvertToVector128Byte: + case NI_AVX10v1_ConvertToVector128ByteWithSaturation: + case NI_AVX10v1_ConvertToVector128Int16: + case NI_AVX10v1_ConvertToVector128Int16WithSaturation: + case NI_AVX10v1_ConvertToVector128Int32: + case NI_AVX10v1_ConvertToVector128Int32WithSaturation: + case NI_AVX10v1_ConvertToVector128SByte: + case NI_AVX10v1_ConvertToVector128SByteWithSaturation: + case NI_AVX10v1_ConvertToVector128UInt16: + case NI_AVX10v1_ConvertToVector128UInt16WithSaturation: { // These intrinsics are "ins reg/mem, xmm" instruction ins = HWIntrinsicInfo::lookupIns(intrinsicId, simdBaseType); @@ -8520,6 +8558,8 @@ bool Lowering::IsContainableHWIntrinsicOp(GenTreeHWIntrinsic* parentNode, GenTre case NI_AVX512F_ConvertToVector512Double: case NI_AVX512F_VL_ConvertToVector128Double: case NI_AVX512F_VL_ConvertToVector256Double: + case NI_AVX10v1_ConvertToVector128Double: + case NI_AVX10v1_ConvertToVector256Double: { assert(!supportsSIMDScalarLoads); @@ -8621,7 +8661,7 @@ bool Lowering::IsContainableHWIntrinsicOp(GenTreeHWIntrinsic* parentNode, GenTre case NI_AVX2_ShuffleLow: case NI_AVX512F_AlignRight32: case NI_AVX512F_AlignRight64: - case NI_AVX512F_CompareMask: + case NI_EVEX_CompareMask: case NI_AVX512F_Fixup: case NI_AVX512F_GetMantissa: case NI_AVX512F_Permute2x64: @@ -8658,6 +8698,21 @@ bool Lowering::IsContainableHWIntrinsicOp(GenTreeHWIntrinsic* parentNode, GenTre case NI_AVX512DQ_Reduce: case NI_AVX512DQ_VL_Range: case NI_AVX512DQ_VL_Reduce: + case NI_AVX10v1_AlignRight32: + case NI_AVX10v1_AlignRight64: + case NI_AVX10v1_Fixup: + case NI_AVX10v1_GetMantissa: + case NI_AVX10v1_Range: + case NI_AVX10v1_Reduce: + case NI_AVX10v1_RotateLeft: + case NI_AVX10v1_RotateRight: + case NI_AVX10v1_RoundScale: + case NI_AVX10v1_ShiftRightArithmetic: + case NI_AVX10v1_SumAbsoluteDifferencesInBlock32: + case NI_AVX10v1_TernaryLogic: + case NI_AVX10v1_Shuffle2x128: + case NI_AVX10v1_V512_Range: + case NI_AVX10v1_V512_Reduce: { assert(!supportsSIMDScalarLoads); @@ -8702,6 +8757,7 @@ bool Lowering::IsContainableHWIntrinsicOp(GenTreeHWIntrinsic* parentNode, GenTre case NI_AVX2_InsertVector128: case NI_AVX512F_InsertVector128: case NI_AVX512DQ_InsertVector128: + case NI_AVX10v1_V512_InsertVector128: { // InsertVector128 is special in that it returns a TYP_SIMD32 but takes a TYP_SIMD16. assert(!supportsSIMDScalarLoads); @@ -8717,6 +8773,7 @@ bool Lowering::IsContainableHWIntrinsicOp(GenTreeHWIntrinsic* parentNode, GenTre case NI_AVX512F_InsertVector256: case NI_AVX512DQ_InsertVector256: + case NI_AVX10v1_V512_InsertVector256: { // InsertVector256 is special in that it returns a TYP_SIMD64 but takes a TYP_SIMD32. assert(!supportsSIMDScalarLoads); @@ -8790,6 +8847,10 @@ bool Lowering::IsContainableHWIntrinsicOp(GenTreeHWIntrinsic* parentNode, GenTre case NI_AVX512F_RoundScaleScalar: case NI_AVX512DQ_RangeScalar: case NI_AVX512DQ_ReduceScalar: + case NI_AVX10v1_GetMantissaScalar: + case NI_AVX10v1_RangeScalar: + case NI_AVX10v1_ReduceScalar: + case NI_AVX10v1_RoundScaleScalar: { assert(supportsAlignedSIMDLoads == false); assert(supportsUnalignedSIMDLoads == false); @@ -8874,6 +8935,9 @@ bool Lowering::IsContainableHWIntrinsicOp(GenTreeHWIntrinsic* parentNode, GenTre case NI_AVX512F_ConvertScalarToVector128Single: case NI_AVX512F_X64_ConvertScalarToVector128Double: case NI_AVX512F_X64_ConvertScalarToVector128Single: + case NI_AVX10v1_X64_ConvertScalarToVector128Double: + case NI_AVX10v1_X64_ConvertScalarToVector128Single: + case NI_AVX10v1_ConvertScalarToVector128Single: { if (!varTypeIsIntegral(childNode->TypeGet())) { @@ -9028,6 +9092,8 @@ bool Lowering::IsContainableHWIntrinsicOp(GenTreeHWIntrinsic* parentNode, GenTre case NI_AVX512F_ConvertToVector256UInt32: case NI_AVX512F_VL_ConvertToVector128UInt32: case NI_AVX512F_VL_ConvertToVector128UInt32WithSaturation: + case NI_AVX10v1_ConvertToVector128UInt32: + case NI_AVX10v1_ConvertToVector128UInt32WithSaturation: { // These ones are not containable as stores when the base // type is a floating-point type @@ -9085,6 +9151,18 @@ bool Lowering::IsContainableHWIntrinsicOp(GenTreeHWIntrinsic* parentNode, GenTre case NI_AVX512BW_VL_ConvertToVector128SByteWithSaturation: case NI_AVX512DQ_ExtractVector128: case NI_AVX512DQ_ExtractVector256: + case NI_AVX10v1_ConvertToVector128Byte: + case NI_AVX10v1_ConvertToVector128ByteWithSaturation: + case NI_AVX10v1_ConvertToVector128Int16: + case NI_AVX10v1_ConvertToVector128Int16WithSaturation: + case NI_AVX10v1_ConvertToVector128Int32: + case NI_AVX10v1_ConvertToVector128Int32WithSaturation: + case NI_AVX10v1_ConvertToVector128SByte: + case NI_AVX10v1_ConvertToVector128SByteWithSaturation: + case NI_AVX10v1_ConvertToVector128UInt16: + case NI_AVX10v1_ConvertToVector128UInt16WithSaturation: + case NI_AVX10v1_V512_ExtractVector128: + case NI_AVX10v1_V512_ExtractVector256: { // These are only containable as part of a store return false; @@ -9116,8 +9194,7 @@ bool Lowering::IsContainableHWIntrinsicOp(GenTreeHWIntrinsic* parentNode, GenTre assert(childBaseType == TYP_DOUBLE); } - if (comp->compOpportunisticallyDependsOn(InstructionSet_AVX512F_VL) && - parentNode->OperIsEmbBroadcastCompatible()) + if (comp->canUseEvexEncoding() && parentNode->OperIsEmbBroadcastCompatible()) { GenTree* broadcastOperand = hwintrinsic->Op(1); @@ -9526,6 +9603,9 @@ void Lowering::ContainCheckHWIntrinsic(GenTreeHWIntrinsic* node) case NI_AVX512F_GetExponentScalar: case NI_AVX512F_Reciprocal14Scalar: case NI_AVX512F_ReciprocalSqrt14Scalar: + case NI_AVX10v1_GetExponentScalar: + case NI_AVX10v1_Reciprocal14Scalar: + case NI_AVX10v1_ReciprocalSqrt14Scalar: { // These intrinsics have both 1 and 2-operand overloads. // @@ -9625,6 +9705,8 @@ void Lowering::ContainCheckHWIntrinsic(GenTreeHWIntrinsic* node) case NI_AVX512F_ConvertToVector256UInt32: case NI_AVX512F_VL_ConvertToVector128UInt32: case NI_AVX512F_VL_ConvertToVector128UInt32WithSaturation: + case NI_AVX10v1_ConvertToVector128UInt32: + case NI_AVX10v1_ConvertToVector128UInt32WithSaturation: { if (varTypeIsFloating(simdBaseType)) { @@ -9667,6 +9749,16 @@ void Lowering::ContainCheckHWIntrinsic(GenTreeHWIntrinsic* node) case NI_AVX512BW_VL_ConvertToVector128ByteWithSaturation: case NI_AVX512BW_VL_ConvertToVector128SByte: case NI_AVX512BW_VL_ConvertToVector128SByteWithSaturation: + case NI_AVX10v1_ConvertToVector128Byte: + case NI_AVX10v1_ConvertToVector128ByteWithSaturation: + case NI_AVX10v1_ConvertToVector128Int16: + case NI_AVX10v1_ConvertToVector128Int16WithSaturation: + case NI_AVX10v1_ConvertToVector128Int32: + case NI_AVX10v1_ConvertToVector128Int32WithSaturation: + case NI_AVX10v1_ConvertToVector128SByte: + case NI_AVX10v1_ConvertToVector128SByteWithSaturation: + case NI_AVX10v1_ConvertToVector128UInt16: + case NI_AVX10v1_ConvertToVector128UInt16WithSaturation: { // These intrinsics are "ins reg/mem, xmm" and get // contained by the relevant store operation instead. @@ -9803,6 +9895,8 @@ void Lowering::ContainCheckHWIntrinsic(GenTreeHWIntrinsic* node) case NI_AVX512F_ExtractVector256: case NI_AVX512DQ_ExtractVector128: case NI_AVX512DQ_ExtractVector256: + case NI_AVX10v1_V512_ExtractVector128: + case NI_AVX10v1_V512_ExtractVector256: { // These intrinsics are "ins reg/mem, xmm, imm8" and get // contained by the relevant store operation instead. @@ -9826,6 +9920,9 @@ void Lowering::ContainCheckHWIntrinsic(GenTreeHWIntrinsic* node) case NI_AVX512BW_ShiftLeftLogical: case NI_AVX512BW_ShiftRightArithmetic: case NI_AVX512BW_ShiftRightLogical: + case NI_AVX10v1_RotateLeft: + case NI_AVX10v1_RotateRight: + case NI_AVX10v1_ShiftRightArithmetic: { // These intrinsics can have op2 be imm or reg/mem @@ -9947,6 +10044,10 @@ void Lowering::ContainCheckHWIntrinsic(GenTreeHWIntrinsic* node) case NI_AVX512F_VL_RoundScale: case NI_AVX512DQ_Reduce: case NI_AVX512DQ_VL_Reduce: + case NI_AVX10v1_GetMantissa: + case NI_AVX10v1_Reduce: + case NI_AVX10v1_RoundScale: + case NI_AVX10v1_V512_Reduce: { if (!isContainedImm) { @@ -9994,6 +10095,9 @@ void Lowering::ContainCheckHWIntrinsic(GenTreeHWIntrinsic* node) case NI_AVX512F_GetMantissaScalar: case NI_AVX512F_RoundScaleScalar: case NI_AVX512DQ_ReduceScalar: + case NI_AVX10v1_GetMantissaScalar: + case NI_AVX10v1_ReduceScalar: + case NI_AVX10v1_RoundScaleScalar: { // These intrinsics have both 2 and 3-operand overloads. // @@ -10004,8 +10108,8 @@ void Lowering::ContainCheckHWIntrinsic(GenTreeHWIntrinsic* node) return; } - case NI_AVX512F_ShiftLeftMask: - case NI_AVX512F_ShiftRightMask: + case NI_EVEX_ShiftLeftMask: + case NI_EVEX_ShiftRightMask: { // These intrinsics don't support a memory operand and // we don't currently generate a jmp table fallback. @@ -10371,7 +10475,7 @@ void Lowering::ContainCheckHWIntrinsic(GenTreeHWIntrinsic* node) break; } - case NI_AVX512F_BlendVariableMask: + case NI_EVEX_BlendVariableMask: { // BlendVariableMask represents one of the following instructions: // * vblendmpd @@ -10560,7 +10664,7 @@ void Lowering::ContainCheckHWIntrinsic(GenTreeHWIntrinsic* node) case NI_AVX2_Permute2x128: case NI_AVX512F_AlignRight32: case NI_AVX512F_AlignRight64: - case NI_AVX512F_CompareMask: + case NI_EVEX_CompareMask: case NI_AVX512F_GetMantissaScalar: case NI_AVX512F_InsertVector128: case NI_AVX512F_InsertVector256: @@ -10580,6 +10684,18 @@ void Lowering::ContainCheckHWIntrinsic(GenTreeHWIntrinsic* node) case NI_AVX512DQ_VL_Range: case NI_AVX512DQ_ReduceScalar: case NI_PCLMULQDQ_CarrylessMultiply: + case NI_AVX10v1_AlignRight32: + case NI_AVX10v1_AlignRight64: + case NI_AVX10v1_GetMantissaScalar: + case NI_AVX10v1_Range: + case NI_AVX10v1_RangeScalar: + case NI_AVX10v1_ReduceScalar: + case NI_AVX10v1_RoundScaleScalar: + case NI_AVX10v1_SumAbsoluteDifferencesInBlock32: + case NI_AVX10v1_Shuffle2x128: + case NI_AVX10v1_V512_InsertVector128: + case NI_AVX10v1_V512_InsertVector256: + case NI_AVX10v1_V512_Range: { if (!isContainedImm) { @@ -10714,6 +10830,8 @@ void Lowering::ContainCheckHWIntrinsic(GenTreeHWIntrinsic* node) case NI_AVX512F_Fixup: case NI_AVX512F_FixupScalar: case NI_AVX512F_VL_Fixup: + case NI_AVX10v1_Fixup: + case NI_AVX10v1_FixupScalar: { if (!isContainedImm) { @@ -10744,6 +10862,7 @@ void Lowering::ContainCheckHWIntrinsic(GenTreeHWIntrinsic* node) case NI_AVX512F_TernaryLogic: case NI_AVX512F_VL_TernaryLogic: + case NI_AVX10v1_TernaryLogic: { if (!isContainedImm) { diff --git a/src/coreclr/jit/lsraxarch.cpp b/src/coreclr/jit/lsraxarch.cpp index d538f43ed3b83..dff58fba4dd2a 100644 --- a/src/coreclr/jit/lsraxarch.cpp +++ b/src/coreclr/jit/lsraxarch.cpp @@ -2451,6 +2451,20 @@ int LinearScan::BuildHWIntrinsic(GenTreeHWIntrinsic* intrinsicTree, int* pDstCou case NI_AVX512F_FusedMultiplySubtractAdd: case NI_AVX512F_FusedMultiplySubtractNegated: case NI_AVX512F_FusedMultiplySubtractNegatedScalar: + case NI_AVX10v1_FusedMultiplyAddNegatedScalar: + case NI_AVX10v1_FusedMultiplyAddScalar: + case NI_AVX10v1_FusedMultiplySubtractNegatedScalar: + case NI_AVX10v1_FusedMultiplySubtractScalar: + case NI_AVX10v1_MultiplyAdd: + case NI_AVX10v1_MultiplyAddNegated: + case NI_AVX10v1_MultiplyAddNegatedScalar: + case NI_AVX10v1_MultiplyAddScalar: + case NI_AVX10v1_MultiplyAddSubtract: + case NI_AVX10v1_MultiplySubtract: + case NI_AVX10v1_MultiplySubtractAdd: + case NI_AVX10v1_MultiplySubtractNegated: + case NI_AVX10v1_MultiplySubtractNegatedScalar: + case NI_AVX10v1_MultiplySubtractScalar: { assert((numArgs == 3) || (intrinsicTree->OperIsEmbRoundingEnabled())); assert(isRMW); @@ -2572,7 +2586,7 @@ int LinearScan::BuildHWIntrinsic(GenTreeHWIntrinsic* intrinsicTree, int* pDstCou break; } - case NI_AVX512F_BlendVariableMask: + case NI_EVEX_BlendVariableMask: { assert(numArgs == 3); @@ -2630,6 +2644,15 @@ int LinearScan::BuildHWIntrinsic(GenTreeHWIntrinsic* intrinsicTree, int* pDstCou case NI_AVX512VBMI_PermuteVar64x8x2: case NI_AVX512VBMI_VL_PermuteVar16x8x2: case NI_AVX512VBMI_VL_PermuteVar32x8x2: + case NI_AVX10v1_PermuteVar16x8x2: + case NI_AVX10v1_PermuteVar2x64x2: + case NI_AVX10v1_PermuteVar4x32x2: + case NI_AVX10v1_PermuteVar8x16x2: + case NI_AVX10v1_PermuteVar32x8x2: + case NI_AVX10v1_PermuteVar4x64x2: + case NI_AVX10v1_PermuteVar8x32x2: + case NI_AVX10v1_PermuteVar16x16x2: + case NI_AVX10v1_V512_PermuteVar64x8x2: { assert(numArgs == 3); assert(isRMW); diff --git a/src/coreclr/jit/morph.cpp b/src/coreclr/jit/morph.cpp index 89fae6f436709..8f0d1009d0f63 100644 --- a/src/coreclr/jit/morph.cpp +++ b/src/coreclr/jit/morph.cpp @@ -314,7 +314,7 @@ GenTree* Compiler::fgMorphExpandCast(GenTreeCast* tree) // Check if we are going from ulong->double->float if ((innerSrcType == TYP_ULONG) && (innerDstType == TYP_DOUBLE) && (dstType == TYP_FLOAT)) { - if (compOpportunisticallyDependsOn(InstructionSet_AVX512F)) + if (canUseEvexEncoding()) { // One optimized (combined) cast here tree = gtNewCastNode(TYP_FLOAT, innerOper, true, TYP_FLOAT); @@ -341,8 +341,7 @@ GenTree* Compiler::fgMorphExpandCast(GenTreeCast* tree) // For pre-SSE41, the all src is converted to TYP_DOUBLE // and goes through helpers. && (tree->gtOverflow() || (dstType == TYP_LONG) || - !(compOpportunisticallyDependsOn(InstructionSet_AVX512F) || - (dstType == TYP_INT && compOpportunisticallyDependsOn(InstructionSet_SSE41)))) + !(canUseEvexEncoding() || (dstType == TYP_INT && compOpportunisticallyDependsOn(InstructionSet_SSE41)))) #elif defined(TARGET_ARM) // Arm: src = float, dst = int64/uint64 or overflow conversion. && (tree->gtOverflow() || varTypeIsLong(dstType)) @@ -381,7 +380,7 @@ GenTree* Compiler::fgMorphExpandCast(GenTreeCast* tree) // float -> int for SSE41 // double -> int/uint/long for SSE41 // For all other conversions, we use helper functions. - if (compOpportunisticallyDependsOn(InstructionSet_AVX512F) || + if (canUseEvexEncoding() || ((dstType != TYP_ULONG) && compOpportunisticallyDependsOn(InstructionSet_SSE41))) { if (tree->CastOp() != oper) @@ -501,7 +500,7 @@ GenTree* Compiler::fgMorphExpandCast(GenTreeCast* tree) { srcType = varTypeToUnsigned(srcType); - if (srcType == TYP_ULONG && !compOpportunisticallyDependsOn(InstructionSet_AVX512F)) + if (srcType == TYP_ULONG && !canUseEvexEncoding()) { if (dstType == TYP_FLOAT) { @@ -10742,12 +10741,16 @@ GenTree* Compiler::fgOptimizeHWIntrinsic(GenTreeHWIntrinsic* node) case NI_AVX512DQ_Or: case NI_AVX512F_Xor: case NI_AVX512DQ_Xor: + case NI_AVX10v1_V512_And: + case NI_AVX10v1_V512_AndNot: + case NI_AVX10v1_V512_Or: + case NI_AVX10v1_V512_Xor: { GenTree* op1 = node->Op(1); GenTree* op2 = node->Op(2); - if (!op1->OperIsHWIntrinsic(NI_AVX512F_ConvertMaskToVector) || - !op2->OperIsHWIntrinsic(NI_AVX512F_ConvertMaskToVector)) + if (!op1->OperIsHWIntrinsic(NI_EVEX_ConvertMaskToVector) || + !op2->OperIsHWIntrinsic(NI_EVEX_ConvertMaskToVector)) { // We need both operands to be ConvertMaskToVector in // order to optimize this to a direct mask operation @@ -10777,29 +10780,33 @@ GenTree* Compiler::fgOptimizeHWIntrinsic(GenTreeHWIntrinsic* node) { case NI_AVX512F_And: case NI_AVX512DQ_And: + case NI_AVX10v1_V512_And: { - maskIntrinsicId = NI_AVX512F_AndMask; + maskIntrinsicId = NI_EVEX_AndMask; break; } case NI_AVX512F_AndNot: case NI_AVX512DQ_AndNot: + case NI_AVX10v1_V512_AndNot: { - maskIntrinsicId = NI_AVX512F_AndNotMask; + maskIntrinsicId = NI_EVEX_AndNotMask; break; } case NI_AVX512F_Or: case NI_AVX512DQ_Or: + case NI_AVX10v1_V512_Or: { - maskIntrinsicId = NI_AVX512F_OrMask; + maskIntrinsicId = NI_EVEX_OrMask; break; } case NI_AVX512F_Xor: case NI_AVX512DQ_Xor: + case NI_AVX10v1_V512_Xor: { - maskIntrinsicId = NI_AVX512F_XorMask; + maskIntrinsicId = NI_EVEX_XorMask; break; } @@ -10820,17 +10827,17 @@ GenTree* Compiler::fgOptimizeHWIntrinsic(GenTreeHWIntrinsic* node) node->Op(2) = cvtOp2->Op(1); DEBUG_DESTROY_NODE(op2); - node = gtNewSimdHWIntrinsicNode(simdType, node, NI_AVX512F_ConvertMaskToVector, simdBaseJitType, simdSize); + node = gtNewSimdHWIntrinsicNode(simdType, node, NI_EVEX_ConvertMaskToVector, simdBaseJitType, simdSize); INDEBUG(node->gtDebugFlags |= GTF_DEBUG_NODE_MORPHED); break; } - case NI_AVX512F_ConvertMaskToVector: + case NI_EVEX_ConvertMaskToVector: { GenTree* op1 = node->Op(1); - if (!op1->OperIsHWIntrinsic(NI_AVX512F_ConvertVectorToMask)) + if (!op1->OperIsHWIntrinsic(NI_EVEX_ConvertVectorToMask)) { break; } @@ -10853,11 +10860,11 @@ GenTree* Compiler::fgOptimizeHWIntrinsic(GenTreeHWIntrinsic* node) return vectorNode; } - case NI_AVX512F_ConvertVectorToMask: + case NI_EVEX_ConvertVectorToMask: { GenTree* op1 = node->Op(1); - if (!op1->OperIsHWIntrinsic(NI_AVX512F_ConvertMaskToVector)) + if (!op1->OperIsHWIntrinsic(NI_EVEX_ConvertMaskToVector)) { break; } diff --git a/src/coreclr/jit/simdashwintrinsic.cpp b/src/coreclr/jit/simdashwintrinsic.cpp index c7ae69f4ca1e2..3fd8625b138a9 100644 --- a/src/coreclr/jit/simdashwintrinsic.cpp +++ b/src/coreclr/jit/simdashwintrinsic.cpp @@ -556,7 +556,8 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, #if defined(TARGET_XARCH) case NI_VectorT_ConvertToDouble: { - if (IsBaselineVector512IsaSupportedOpportunistically()) + if (IsBaselineVector512IsaSupportedOpportunistically() || + ((simdSize != 64) && compOpportunisticallyDependsOn(InstructionSet_AVX10v1))) { break; } @@ -576,7 +577,8 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, case NI_VectorT_ConvertToUInt32: case NI_VectorT_ConvertToUInt64: { - if (IsBaselineVector512IsaSupportedOpportunistically()) + if (IsBaselineVector512IsaSupportedOpportunistically() || + (simdSize != 64 && compOpportunisticallyDependsOn(InstructionSet_AVX10v1))) { break; } @@ -586,7 +588,9 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, case NI_VectorT_ConvertToSingle: { if ((simdBaseType == TYP_INT) || - (simdBaseType == TYP_UINT && IsBaselineVector512IsaSupportedOpportunistically())) + (simdBaseType == TYP_UINT && + (IsBaselineVector512IsaSupportedOpportunistically() || + (simdSize != 64 && compOpportunisticallyDependsOn(InstructionSet_AVX10v1))))) { break; } @@ -613,7 +617,7 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, if (varTypeIsLong(simdBaseType) && !impStackTop(0).val->OperIsConst()) { #if defined(TARGET_XARCH) - if (!compOpportunisticallyDependsOn(InstructionSet_AVX512DQ_VL)) + if (!canUseEvexEncoding()) { // TODO-XARCH-CQ: We should support long/ulong multiplication return nullptr; @@ -839,7 +843,7 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, { if (varTypeIsLong(simdBaseType)) { - if (!compOpportunisticallyDependsOn(InstructionSet_AVX512DQ_VL)) + if (!canUseEvexEncoding()) { // TODO-XARCH-CQ: We should support long/ulong multiplication return nullptr; @@ -859,7 +863,7 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, { if (varTypeIsLong(simdBaseType) || (simdBaseType == TYP_DOUBLE)) { - if (!compOpportunisticallyDependsOn(InstructionSet_AVX512F_VL)) + if (!canUseEvexEncoding()) { // TODO-XARCH-CQ: We should support long/ulong arithmetic shift return nullptr; @@ -1026,18 +1030,33 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, assert(sig->numArgs == 1); assert(varTypeIsLong(simdBaseType)); NamedIntrinsic intrinsic = NI_Illegal; - if (simdSize == 64) + if (compOpportunisticallyDependsOn(InstructionSet_AVX10v1)) { - intrinsic = NI_AVX512DQ_ConvertToVector512Double; - } - else if (simdSize == 32) - { - intrinsic = NI_AVX512DQ_VL_ConvertToVector256Double; + if (simdSize == 32) + { + intrinsic = NI_AVX10v1_ConvertToVector256Double; + } + else + { + assert(simdSize == 16); + intrinsic = NI_AVX10v1_ConvertToVector128Double; + } } else { - assert(simdSize == 16); - intrinsic = NI_AVX512DQ_VL_ConvertToVector128Double; + if (simdSize == 64) + { + intrinsic = NI_AVX512DQ_ConvertToVector512Double; + } + else if (simdSize == 32) + { + intrinsic = NI_AVX512DQ_VL_ConvertToVector256Double; + } + else + { + assert(simdSize == 16); + intrinsic = NI_AVX512DQ_VL_ConvertToVector128Double; + } } return gtNewSimdHWIntrinsicNode(retType, op1, intrinsic, simdBaseJitType, simdSize); } @@ -1063,6 +1082,21 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, unreached(); } } + else if (simdBaseType == TYP_UINT && simdSize != 64 && + compOpportunisticallyDependsOn(InstructionSet_AVX10v1)) + { + switch (simdSize) + { + case 16: + intrinsic = NI_AVX10v1_ConvertToVector128Single; + break; + case 32: + intrinsic = NI_AVX10v1_ConvertToVector256Single; + break; + default: + unreached(); + } + } else if (simdBaseType == TYP_UINT) { switch (simdSize) diff --git a/src/coreclr/jit/valuenum.cpp b/src/coreclr/jit/valuenum.cpp index 58a5285b2e350..0856a61dc42c5 100644 --- a/src/coreclr/jit/valuenum.cpp +++ b/src/coreclr/jit/valuenum.cpp @@ -7325,6 +7325,8 @@ ValueNum ValueNumStore::EvalHWIntrinsicFunUnary(var_types type, #if defined(TARGET_XARCH) case NI_AVX512CD_LeadingZeroCount: case NI_AVX512CD_VL_LeadingZeroCount: + case NI_AVX10v1_V512_LeadingZeroCount: + case NI_AVX10v1_LeadingZeroCount: { return EvaluateUnarySimd(this, GT_LZCNT, /* scalar */ false, type, baseType, arg0VN); } @@ -7524,6 +7526,7 @@ ValueNum ValueNumStore::EvalHWIntrinsicFunBinary(var_types type, case NI_AVX2_And: case NI_AVX512F_And: case NI_AVX512DQ_And: + case NI_AVX10v1_V512_And: #endif { return EvaluateBinarySimd(this, GT_AND, /* scalar */ false, type, baseType, arg0VN, arg1VN); @@ -7541,6 +7544,7 @@ ValueNum ValueNumStore::EvalHWIntrinsicFunBinary(var_types type, case NI_AVX2_AndNot: case NI_AVX512F_AndNot: case NI_AVX512DQ_AndNot: + case NI_AVX10v1_V512_AndNot: { // xarch does: ~arg0VN & arg1VN return EvaluateBinarySimd(this, GT_AND_NOT, /* scalar */ false, type, baseType, arg1VN, arg0VN); @@ -7619,6 +7623,8 @@ ValueNum ValueNumStore::EvalHWIntrinsicFunBinary(var_types type, case NI_AVX512BW_MultiplyLow: case NI_AVX512DQ_MultiplyLow: case NI_AVX512DQ_VL_MultiplyLow: + case NI_AVX10v1_MultiplyLow: + case NI_AVX10v1_V512_MultiplyLow: #endif { return EvaluateBinarySimd(this, GT_MUL, /* scalar */ false, type, baseType, arg0VN, arg1VN); @@ -7643,6 +7649,7 @@ ValueNum ValueNumStore::EvalHWIntrinsicFunBinary(var_types type, case NI_AVX2_Or: case NI_AVX512F_Or: case NI_AVX512DQ_Or: + case NI_AVX10v1_V512_Or: #endif { return EvaluateBinarySimd(this, GT_OR, /* scalar */ false, type, baseType, arg0VN, arg1VN); @@ -7651,12 +7658,14 @@ ValueNum ValueNumStore::EvalHWIntrinsicFunBinary(var_types type, #ifdef TARGET_XARCH case NI_AVX512F_RotateLeft: case NI_AVX512F_VL_RotateLeft: + case NI_AVX10v1_RotateLeft: { return EvaluateBinarySimd(this, GT_ROL, /* scalar */ false, type, baseType, arg0VN, arg1VN); } case NI_AVX512F_RotateRight: case NI_AVX512F_VL_RotateRight: + case NI_AVX10v1_RotateRight: { return EvaluateBinarySimd(this, GT_ROR, /* scalar */ false, type, baseType, arg0VN, arg1VN); } @@ -7707,6 +7716,7 @@ ValueNum ValueNumStore::EvalHWIntrinsicFunBinary(var_types type, case NI_AVX512F_ShiftRightArithmetic: case NI_AVX512F_VL_ShiftRightArithmetic: case NI_AVX512BW_ShiftRightArithmetic: + case NI_AVX10v1_ShiftRightArithmetic: #endif { #ifdef TARGET_XARCH @@ -7825,6 +7835,7 @@ ValueNum ValueNumStore::EvalHWIntrinsicFunBinary(var_types type, case NI_AVX2_Xor: case NI_AVX512F_Xor: case NI_AVX512DQ_Xor: + case NI_AVX10v1_V512_Xor: #endif { return EvaluateBinarySimd(this, GT_XOR, /* scalar */ false, type, baseType, arg0VN, arg1VN); @@ -7875,6 +7886,7 @@ ValueNum ValueNumStore::EvalHWIntrinsicFunBinary(var_types type, case NI_AVX2_And: case NI_AVX512F_And: case NI_AVX512DQ_And: + case NI_AVX10v1_V512_And: #endif { // Handle `x & 0 == 0` and `0 & x == 0` @@ -7904,6 +7916,7 @@ ValueNum ValueNumStore::EvalHWIntrinsicFunBinary(var_types type, case NI_AVX2_AndNot: case NI_AVX512F_AndNot: case NI_AVX512DQ_AndNot: + case NI_AVX10v1_V512_AndNot: { #ifdef TARGET_ARM64 if (cnsVN == arg0VN) @@ -8023,6 +8036,8 @@ ValueNum ValueNumStore::EvalHWIntrinsicFunBinary(var_types type, case NI_AVX512BW_MultiplyLow: case NI_AVX512DQ_MultiplyLow: case NI_AVX512DQ_VL_MultiplyLow: + case NI_AVX10v1_MultiplyLow: + case NI_AVX10v1_V512_MultiplyLow: #endif { if (!varTypeIsFloating(baseType)) @@ -8066,6 +8081,7 @@ ValueNum ValueNumStore::EvalHWIntrinsicFunBinary(var_types type, case NI_AVX2_Or: case NI_AVX512F_Or: case NI_AVX512DQ_Or: + case NI_AVX10v1_V512_Or: #endif { // Handle `x | 0 == x` and `0 | x == x` @@ -8104,6 +8120,7 @@ ValueNum ValueNumStore::EvalHWIntrinsicFunBinary(var_types type, case NI_AVX512BW_ShiftLeftLogical: case NI_AVX512BW_ShiftRightArithmetic: case NI_AVX512BW_ShiftRightLogical: + case NI_AVX10v1_ShiftRightArithmetic: #endif { // Handle `x << 0 == x` and `0 << x == 0` @@ -8155,6 +8172,7 @@ ValueNum ValueNumStore::EvalHWIntrinsicFunBinary(var_types type, case NI_AVX2_Xor: case NI_AVX512F_Xor: case NI_AVX512DQ_Xor: + case NI_AVX10v1_V512_Xor: #endif { // Handle `x | 0 == x` and `0 | x == x` @@ -8184,6 +8202,7 @@ ValueNum ValueNumStore::EvalHWIntrinsicFunBinary(var_types type, case NI_AVX2_And: case NI_AVX512F_And: case NI_AVX512DQ_And: + case NI_AVX10v1_V512_And: #endif { // Handle `x & x == x` @@ -8199,6 +8218,7 @@ ValueNum ValueNumStore::EvalHWIntrinsicFunBinary(var_types type, case NI_AVX2_AndNot: case NI_AVX512F_AndNot: case NI_AVX512DQ_AndNot: + case NI_AVX10v1_V512_AndNot: { // Handle `x & ~x == 0` return VNZeroForType(type); @@ -8214,6 +8234,7 @@ ValueNum ValueNumStore::EvalHWIntrinsicFunBinary(var_types type, case NI_AVX2_Or: case NI_AVX512F_Or: case NI_AVX512DQ_Or: + case NI_AVX10v1_V512_Or: #endif { // Handle `x | x == x` @@ -8251,6 +8272,7 @@ ValueNum ValueNumStore::EvalHWIntrinsicFunBinary(var_types type, case NI_AVX2_Xor: case NI_AVX512F_Xor: case NI_AVX512DQ_Xor: + case NI_AVX10v1_V512_Xor: #endif { // Handle `x ^ x == 0` @@ -12168,7 +12190,7 @@ void Compiler::fgValueNumberHWIntrinsic(GenTreeHWIntrinsic* tree) #if defined(TARGET_XARCH) switch (intrinsicId) { - case NI_AVX512F_ConvertMaskToVector: + case NI_EVEX_ConvertMaskToVector: { // We want to ensure that we get a TYP_MASK local to // ensure the relevant optimizations can kick in diff --git a/src/coreclr/tools/Common/Compiler/HardwareIntrinsicHelpers.cs b/src/coreclr/tools/Common/Compiler/HardwareIntrinsicHelpers.cs index bef78e07ac7f0..c2b304996debc 100644 --- a/src/coreclr/tools/Common/Compiler/HardwareIntrinsicHelpers.cs +++ b/src/coreclr/tools/Common/Compiler/HardwareIntrinsicHelpers.cs @@ -82,8 +82,8 @@ private static class XArchIntrinsicConstants public const int Avx512Vbmi_vl = 0x1000000; public const int Serialize = 0x2000000; public const int Avx10v1 = 0x4000000; - public const int Avx10v1_v256 = 0x8000000; - public const int Avx10v1_v512 = 0x10000000; + public const int Avx10v1_v512 = 0x8000000; + public const int Evex = 0x10000000; public static void AddToBuilder(InstructionSetSupportBuilder builder, int flags) { @@ -141,10 +141,10 @@ public static void AddToBuilder(InstructionSetSupportBuilder builder, int flags) builder.AddSupportedInstructionSet("serialize"); if ((flags & Avx10v1) != 0) builder.AddSupportedInstructionSet("avx10v1"); - if ((flags & Avx10v1_v256) != 0) - builder.AddSupportedInstructionSet("avx10v1_v256"); if ((flags & Avx10v1_v512) != 0) builder.AddSupportedInstructionSet("avx10v1_v512"); + if ((flags & Evex) != 0) + builder.AddSupportedInstructionSet("evex"); } public static int FromInstructionSet(InstructionSet instructionSet) @@ -210,10 +210,10 @@ public static int FromInstructionSet(InstructionSet instructionSet) InstructionSet.X64_X86Serialize_X64 => Serialize, InstructionSet.X64_AVX10v1 => Avx10v1, InstructionSet.X64_AVX10v1_X64 => Avx10v1, - InstructionSet.X64_AVX10v1_V256 => Avx10v1_v256, - InstructionSet.X64_AVX10v1_V256_X64 => Avx10v1_v256, InstructionSet.X64_AVX10v1_V512 => Avx10v1_v512, InstructionSet.X64_AVX10v1_V512_X64 => Avx10v1_v512, + InstructionSet.X64_EVEX => Evex, + InstructionSet.X64_EVEX_X64 => Evex, // Baseline ISAs - they're always available InstructionSet.X64_SSE => 0, diff --git a/src/coreclr/tools/Common/Internal/Runtime/ReadyToRunInstructionSet.cs b/src/coreclr/tools/Common/Internal/Runtime/ReadyToRunInstructionSet.cs index 0e2fec09e19d5..dd6a57731444e 100644 --- a/src/coreclr/tools/Common/Internal/Runtime/ReadyToRunInstructionSet.cs +++ b/src/coreclr/tools/Common/Internal/Runtime/ReadyToRunInstructionSet.cs @@ -56,8 +56,8 @@ public enum ReadyToRunInstructionSet Rcpc2=42, Sve=43, Avx10v1=44, - Avx10v1_V256=45, Avx10v1_V512=46, + EVEX=47, } } diff --git a/src/coreclr/tools/Common/Internal/Runtime/ReadyToRunInstructionSetHelper.cs b/src/coreclr/tools/Common/Internal/Runtime/ReadyToRunInstructionSetHelper.cs index 533b017e2bae8..361aa92bea955 100644 --- a/src/coreclr/tools/Common/Internal/Runtime/ReadyToRunInstructionSetHelper.cs +++ b/src/coreclr/tools/Common/Internal/Runtime/ReadyToRunInstructionSetHelper.cs @@ -98,6 +98,8 @@ public static class ReadyToRunInstructionSetHelper case InstructionSet.X64_MOVBE_X64: return ReadyToRunInstructionSet.Movbe; case InstructionSet.X64_X86Serialize: return ReadyToRunInstructionSet.X86Serialize; case InstructionSet.X64_X86Serialize_X64: return ReadyToRunInstructionSet.X86Serialize; + case InstructionSet.X64_EVEX: return ReadyToRunInstructionSet.EVEX; + case InstructionSet.X64_EVEX_X64: return ReadyToRunInstructionSet.EVEX; case InstructionSet.X64_AVX512F: return ReadyToRunInstructionSet.Avx512F; case InstructionSet.X64_AVX512F_X64: return ReadyToRunInstructionSet.Avx512F; case InstructionSet.X64_AVX512F_VL: return ReadyToRunInstructionSet.Avx512F_VL; @@ -120,8 +122,6 @@ public static class ReadyToRunInstructionSetHelper case InstructionSet.X64_AVX512VBMI_VL_X64: return ReadyToRunInstructionSet.Avx512Vbmi_VL; case InstructionSet.X64_AVX10v1: return ReadyToRunInstructionSet.Avx10v1; case InstructionSet.X64_AVX10v1_X64: return ReadyToRunInstructionSet.Avx10v1; - case InstructionSet.X64_AVX10v1_V256: return ReadyToRunInstructionSet.Avx10v1_V256; - case InstructionSet.X64_AVX10v1_V256_X64: return ReadyToRunInstructionSet.Avx10v1_V256; case InstructionSet.X64_AVX10v1_V512: return ReadyToRunInstructionSet.Avx10v1_V512; case InstructionSet.X64_AVX10v1_V512_X64: return ReadyToRunInstructionSet.Avx10v1_V512; case InstructionSet.X64_VectorT128: return ReadyToRunInstructionSet.VectorT128; @@ -177,6 +177,8 @@ public static class ReadyToRunInstructionSetHelper case InstructionSet.X86_MOVBE_X64: return null; case InstructionSet.X86_X86Serialize: return ReadyToRunInstructionSet.X86Serialize; case InstructionSet.X86_X86Serialize_X64: return null; + case InstructionSet.X86_EVEX: return ReadyToRunInstructionSet.EVEX; + case InstructionSet.X86_EVEX_X64: return null; case InstructionSet.X86_AVX512F: return ReadyToRunInstructionSet.Avx512F; case InstructionSet.X86_AVX512F_X64: return null; case InstructionSet.X86_AVX512F_VL: return ReadyToRunInstructionSet.Avx512F_VL; @@ -199,8 +201,6 @@ public static class ReadyToRunInstructionSetHelper case InstructionSet.X86_AVX512VBMI_VL_X64: return null; case InstructionSet.X86_AVX10v1: return ReadyToRunInstructionSet.Avx10v1; case InstructionSet.X86_AVX10v1_X64: return null; - case InstructionSet.X86_AVX10v1_V256: return ReadyToRunInstructionSet.Avx10v1_V256; - case InstructionSet.X86_AVX10v1_V256_X64: return null; case InstructionSet.X86_AVX10v1_V512: return ReadyToRunInstructionSet.Avx10v1_V512; case InstructionSet.X86_AVX10v1_V512_X64: return null; case InstructionSet.X86_VectorT128: return ReadyToRunInstructionSet.VectorT128; diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoInstructionSet.cs b/src/coreclr/tools/Common/JitInterface/CorInfoInstructionSet.cs index 270d4834a9c2b..facc1d70acc6f 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoInstructionSet.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoInstructionSet.cs @@ -63,6 +63,7 @@ public enum InstructionSet X64_AVXVNNI = InstructionSet_X64.AVXVNNI, X64_MOVBE = InstructionSet_X64.MOVBE, X64_X86Serialize = InstructionSet_X64.X86Serialize, + X64_EVEX = InstructionSet_X64.EVEX, X64_AVX512F = InstructionSet_X64.AVX512F, X64_AVX512F_VL = InstructionSet_X64.AVX512F_VL, X64_AVX512BW = InstructionSet_X64.AVX512BW, @@ -74,7 +75,6 @@ public enum InstructionSet X64_AVX512VBMI = InstructionSet_X64.AVX512VBMI, X64_AVX512VBMI_VL = InstructionSet_X64.AVX512VBMI_VL, X64_AVX10v1 = InstructionSet_X64.AVX10v1, - X64_AVX10v1_V256 = InstructionSet_X64.AVX10v1_V256, X64_AVX10v1_V512 = InstructionSet_X64.AVX10v1_V512, X64_VectorT128 = InstructionSet_X64.VectorT128, X64_VectorT256 = InstructionSet_X64.VectorT256, @@ -98,6 +98,7 @@ public enum InstructionSet X64_AVXVNNI_X64 = InstructionSet_X64.AVXVNNI_X64, X64_MOVBE_X64 = InstructionSet_X64.MOVBE_X64, X64_X86Serialize_X64 = InstructionSet_X64.X86Serialize_X64, + X64_EVEX_X64 = InstructionSet_X64.EVEX_X64, X64_AVX512F_X64 = InstructionSet_X64.AVX512F_X64, X64_AVX512F_VL_X64 = InstructionSet_X64.AVX512F_VL_X64, X64_AVX512BW_X64 = InstructionSet_X64.AVX512BW_X64, @@ -109,7 +110,6 @@ public enum InstructionSet X64_AVX512VBMI_X64 = InstructionSet_X64.AVX512VBMI_X64, X64_AVX512VBMI_VL_X64 = InstructionSet_X64.AVX512VBMI_VL_X64, X64_AVX10v1_X64 = InstructionSet_X64.AVX10v1_X64, - X64_AVX10v1_V256_X64 = InstructionSet_X64.AVX10v1_V256_X64, X64_AVX10v1_V512_X64 = InstructionSet_X64.AVX10v1_V512_X64, X86_X86Base = InstructionSet_X86.X86Base, X86_SSE = InstructionSet_X86.SSE, @@ -133,6 +133,7 @@ public enum InstructionSet X86_AVXVNNI = InstructionSet_X86.AVXVNNI, X86_MOVBE = InstructionSet_X86.MOVBE, X86_X86Serialize = InstructionSet_X86.X86Serialize, + X86_EVEX = InstructionSet_X86.EVEX, X86_AVX512F = InstructionSet_X86.AVX512F, X86_AVX512F_VL = InstructionSet_X86.AVX512F_VL, X86_AVX512BW = InstructionSet_X86.AVX512BW, @@ -144,7 +145,6 @@ public enum InstructionSet X86_AVX512VBMI = InstructionSet_X86.AVX512VBMI, X86_AVX512VBMI_VL = InstructionSet_X86.AVX512VBMI_VL, X86_AVX10v1 = InstructionSet_X86.AVX10v1, - X86_AVX10v1_V256 = InstructionSet_X86.AVX10v1_V256, X86_AVX10v1_V512 = InstructionSet_X86.AVX10v1_V512, X86_VectorT128 = InstructionSet_X86.VectorT128, X86_VectorT256 = InstructionSet_X86.VectorT256, @@ -168,6 +168,7 @@ public enum InstructionSet X86_AVXVNNI_X64 = InstructionSet_X86.AVXVNNI_X64, X86_MOVBE_X64 = InstructionSet_X86.MOVBE_X64, X86_X86Serialize_X64 = InstructionSet_X86.X86Serialize_X64, + X86_EVEX_X64 = InstructionSet_X86.EVEX_X64, X86_AVX512F_X64 = InstructionSet_X86.AVX512F_X64, X86_AVX512F_VL_X64 = InstructionSet_X86.AVX512F_VL_X64, X86_AVX512BW_X64 = InstructionSet_X86.AVX512BW_X64, @@ -179,7 +180,6 @@ public enum InstructionSet X86_AVX512VBMI_X64 = InstructionSet_X86.AVX512VBMI_X64, X86_AVX512VBMI_VL_X64 = InstructionSet_X86.AVX512VBMI_VL_X64, X86_AVX10v1_X64 = InstructionSet_X86.AVX10v1_X64, - X86_AVX10v1_V256_X64 = InstructionSet_X86.AVX10v1_V256_X64, X86_AVX10v1_V512_X64 = InstructionSet_X86.AVX10v1_V512_X64, } public enum InstructionSet_ARM64 @@ -239,18 +239,18 @@ public enum InstructionSet_X64 AVXVNNI = 20, MOVBE = 21, X86Serialize = 22, - AVX512F = 23, - AVX512F_VL = 24, - AVX512BW = 25, - AVX512BW_VL = 26, - AVX512CD = 27, - AVX512CD_VL = 28, - AVX512DQ = 29, - AVX512DQ_VL = 30, - AVX512VBMI = 31, - AVX512VBMI_VL = 32, - AVX10v1 = 33, - AVX10v1_V256 = 34, + EVEX = 23, + AVX512F = 24, + AVX512F_VL = 25, + AVX512BW = 26, + AVX512BW_VL = 27, + AVX512CD = 28, + AVX512CD_VL = 29, + AVX512DQ = 30, + AVX512DQ_VL = 31, + AVX512VBMI = 32, + AVX512VBMI_VL = 33, + AVX10v1 = 34, AVX10v1_V512 = 35, VectorT128 = 36, VectorT256 = 37, @@ -274,18 +274,18 @@ public enum InstructionSet_X64 AVXVNNI_X64 = 55, MOVBE_X64 = 56, X86Serialize_X64 = 57, - AVX512F_X64 = 58, - AVX512F_VL_X64 = 59, - AVX512BW_X64 = 60, - AVX512BW_VL_X64 = 61, - AVX512CD_X64 = 62, - AVX512CD_VL_X64 = 63, - AVX512DQ_X64 = 64, - AVX512DQ_VL_X64 = 65, - AVX512VBMI_X64 = 66, - AVX512VBMI_VL_X64 = 67, - AVX10v1_X64 = 68, - AVX10v1_V256_X64 = 69, + EVEX_X64 = 58, + AVX512F_X64 = 59, + AVX512F_VL_X64 = 60, + AVX512BW_X64 = 61, + AVX512BW_VL_X64 = 62, + AVX512CD_X64 = 63, + AVX512CD_VL_X64 = 64, + AVX512DQ_X64 = 65, + AVX512DQ_VL_X64 = 66, + AVX512VBMI_X64 = 67, + AVX512VBMI_VL_X64 = 68, + AVX10v1_X64 = 69, AVX10v1_V512_X64 = 70, } @@ -315,18 +315,18 @@ public enum InstructionSet_X86 AVXVNNI = 20, MOVBE = 21, X86Serialize = 22, - AVX512F = 23, - AVX512F_VL = 24, - AVX512BW = 25, - AVX512BW_VL = 26, - AVX512CD = 27, - AVX512CD_VL = 28, - AVX512DQ = 29, - AVX512DQ_VL = 30, - AVX512VBMI = 31, - AVX512VBMI_VL = 32, - AVX10v1 = 33, - AVX10v1_V256 = 34, + EVEX = 23, + AVX512F = 24, + AVX512F_VL = 25, + AVX512BW = 26, + AVX512BW_VL = 27, + AVX512CD = 28, + AVX512CD_VL = 29, + AVX512DQ = 30, + AVX512DQ_VL = 31, + AVX512VBMI = 32, + AVX512VBMI_VL = 33, + AVX10v1 = 34, AVX10v1_V512 = 35, VectorT128 = 36, VectorT256 = 37, @@ -350,18 +350,18 @@ public enum InstructionSet_X86 AVXVNNI_X64 = 55, MOVBE_X64 = 56, X86Serialize_X64 = 57, - AVX512F_X64 = 58, - AVX512F_VL_X64 = 59, - AVX512BW_X64 = 60, - AVX512BW_VL_X64 = 61, - AVX512CD_X64 = 62, - AVX512CD_VL_X64 = 63, - AVX512DQ_X64 = 64, - AVX512DQ_VL_X64 = 65, - AVX512VBMI_X64 = 66, - AVX512VBMI_VL_X64 = 67, - AVX10v1_X64 = 68, - AVX10v1_V256_X64 = 69, + EVEX_X64 = 58, + AVX512F_X64 = 59, + AVX512F_VL_X64 = 60, + AVX512BW_X64 = 61, + AVX512BW_VL_X64 = 62, + AVX512CD_X64 = 63, + AVX512CD_VL_X64 = 64, + AVX512DQ_X64 = 65, + AVX512DQ_VL_X64 = 66, + AVX512VBMI_X64 = 67, + AVX512VBMI_VL_X64 = 68, + AVX10v1_X64 = 69, AVX10v1_V512_X64 = 70, } @@ -658,6 +658,10 @@ public static InstructionSetFlags ExpandInstructionSetByImplicationHelper(Target resultflags.AddInstructionSet(InstructionSet.X64_X86Serialize_X64); if (resultflags.HasInstructionSet(InstructionSet.X64_X86Serialize_X64)) resultflags.AddInstructionSet(InstructionSet.X64_X86Serialize); + if (resultflags.HasInstructionSet(InstructionSet.X64_EVEX)) + resultflags.AddInstructionSet(InstructionSet.X64_EVEX_X64); + if (resultflags.HasInstructionSet(InstructionSet.X64_EVEX_X64)) + resultflags.AddInstructionSet(InstructionSet.X64_EVEX); if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512F)) resultflags.AddInstructionSet(InstructionSet.X64_AVX512F_X64); if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512F_X64)) @@ -702,10 +706,6 @@ public static InstructionSetFlags ExpandInstructionSetByImplicationHelper(Target resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1_X64); if (resultflags.HasInstructionSet(InstructionSet.X64_AVX10v1_X64)) resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1); - if (resultflags.HasInstructionSet(InstructionSet.X64_AVX10v1_V256)) - resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1_V256_X64); - if (resultflags.HasInstructionSet(InstructionSet.X64_AVX10v1_V256_X64)) - resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1_V256); if (resultflags.HasInstructionSet(InstructionSet.X64_AVX10v1_V512)) resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1_V512_X64); if (resultflags.HasInstructionSet(InstructionSet.X64_AVX10v1_V512_X64)) @@ -752,10 +752,12 @@ public static InstructionSetFlags ExpandInstructionSetByImplicationHelper(Target resultflags.AddInstructionSet(InstructionSet.X64_SSE42); if (resultflags.HasInstructionSet(InstructionSet.X64_X86Serialize)) resultflags.AddInstructionSet(InstructionSet.X64_X86Base); - if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512F)) + if (resultflags.HasInstructionSet(InstructionSet.X64_EVEX)) resultflags.AddInstructionSet(InstructionSet.X64_AVX2); - if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512F)) + if (resultflags.HasInstructionSet(InstructionSet.X64_EVEX)) resultflags.AddInstructionSet(InstructionSet.X64_FMA); + if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512F)) + resultflags.AddInstructionSet(InstructionSet.X64_EVEX); if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512F_VL)) resultflags.AddInstructionSet(InstructionSet.X64_AVX512F); if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512CD)) @@ -782,14 +784,14 @@ public static InstructionSetFlags ExpandInstructionSetByImplicationHelper(Target resultflags.AddInstructionSet(InstructionSet.X64_AVX512VBMI); if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512VBMI_VL)) resultflags.AddInstructionSet(InstructionSet.X64_AVX512BW_VL); - if (resultflags.HasInstructionSet(InstructionSet.X64_AVX10v1)) + if (resultflags.HasInstructionSet(InstructionSet.X64_EVEX)) resultflags.AddInstructionSet(InstructionSet.X64_AVX2); - if (resultflags.HasInstructionSet(InstructionSet.X64_AVX10v1)) + if (resultflags.HasInstructionSet(InstructionSet.X64_EVEX)) resultflags.AddInstructionSet(InstructionSet.X64_FMA); - if (resultflags.HasInstructionSet(InstructionSet.X64_AVX10v1_V256)) - resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1); + if (resultflags.HasInstructionSet(InstructionSet.X64_AVX10v1)) + resultflags.AddInstructionSet(InstructionSet.X64_EVEX); if (resultflags.HasInstructionSet(InstructionSet.X64_AVX10v1_V512)) - resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1_V256); + resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1); if (resultflags.HasInstructionSet(InstructionSet.X64_AVX10v1_V512)) resultflags.AddInstructionSet(InstructionSet.X64_AVX512F); if (resultflags.HasInstructionSet(InstructionSet.X64_AVX10v1_V512)) @@ -867,10 +869,12 @@ public static InstructionSetFlags ExpandInstructionSetByImplicationHelper(Target resultflags.AddInstructionSet(InstructionSet.X86_SSE42); if (resultflags.HasInstructionSet(InstructionSet.X86_X86Serialize)) resultflags.AddInstructionSet(InstructionSet.X86_X86Base); - if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512F)) + if (resultflags.HasInstructionSet(InstructionSet.X86_EVEX)) resultflags.AddInstructionSet(InstructionSet.X86_AVX2); - if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512F)) + if (resultflags.HasInstructionSet(InstructionSet.X86_EVEX)) resultflags.AddInstructionSet(InstructionSet.X86_FMA); + if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512F)) + resultflags.AddInstructionSet(InstructionSet.X86_EVEX); if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512F_VL)) resultflags.AddInstructionSet(InstructionSet.X86_AVX512F); if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512CD)) @@ -897,14 +901,14 @@ public static InstructionSetFlags ExpandInstructionSetByImplicationHelper(Target resultflags.AddInstructionSet(InstructionSet.X86_AVX512VBMI); if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512VBMI_VL)) resultflags.AddInstructionSet(InstructionSet.X86_AVX512BW_VL); - if (resultflags.HasInstructionSet(InstructionSet.X86_AVX10v1)) + if (resultflags.HasInstructionSet(InstructionSet.X86_EVEX)) resultflags.AddInstructionSet(InstructionSet.X86_AVX2); - if (resultflags.HasInstructionSet(InstructionSet.X86_AVX10v1)) + if (resultflags.HasInstructionSet(InstructionSet.X86_EVEX)) resultflags.AddInstructionSet(InstructionSet.X86_FMA); - if (resultflags.HasInstructionSet(InstructionSet.X86_AVX10v1_V256)) - resultflags.AddInstructionSet(InstructionSet.X86_AVX10v1); + if (resultflags.HasInstructionSet(InstructionSet.X86_AVX10v1)) + resultflags.AddInstructionSet(InstructionSet.X86_EVEX); if (resultflags.HasInstructionSet(InstructionSet.X86_AVX10v1_V512)) - resultflags.AddInstructionSet(InstructionSet.X86_AVX10v1_V256); + resultflags.AddInstructionSet(InstructionSet.X86_AVX10v1); if (resultflags.HasInstructionSet(InstructionSet.X86_AVX10v1_V512)) resultflags.AddInstructionSet(InstructionSet.X86_AVX512F); if (resultflags.HasInstructionSet(InstructionSet.X86_AVX10v1_V512)) @@ -1041,6 +1045,8 @@ private static InstructionSetFlags ExpandInstructionSetByReverseImplicationHelpe resultflags.AddInstructionSet(InstructionSet.X64_MOVBE); if (resultflags.HasInstructionSet(InstructionSet.X64_X86Serialize_X64)) resultflags.AddInstructionSet(InstructionSet.X64_X86Serialize); + if (resultflags.HasInstructionSet(InstructionSet.X64_EVEX_X64)) + resultflags.AddInstructionSet(InstructionSet.X64_EVEX); if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512F_X64)) resultflags.AddInstructionSet(InstructionSet.X64_AVX512F); if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512F_VL_X64)) @@ -1063,8 +1069,6 @@ private static InstructionSetFlags ExpandInstructionSetByReverseImplicationHelpe resultflags.AddInstructionSet(InstructionSet.X64_AVX512VBMI_VL); if (resultflags.HasInstructionSet(InstructionSet.X64_AVX10v1_X64)) resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1); - if (resultflags.HasInstructionSet(InstructionSet.X64_AVX10v1_V256_X64)) - resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1_V256); if (resultflags.HasInstructionSet(InstructionSet.X64_AVX10v1_V512_X64)) resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1_V512); if (resultflags.HasInstructionSet(InstructionSet.X64_X86Base)) @@ -1110,8 +1114,10 @@ private static InstructionSetFlags ExpandInstructionSetByReverseImplicationHelpe if (resultflags.HasInstructionSet(InstructionSet.X64_X86Base)) resultflags.AddInstructionSet(InstructionSet.X64_X86Serialize); if (resultflags.HasInstructionSet(InstructionSet.X64_AVX2)) - resultflags.AddInstructionSet(InstructionSet.X64_AVX512F); + resultflags.AddInstructionSet(InstructionSet.X64_EVEX); if (resultflags.HasInstructionSet(InstructionSet.X64_FMA)) + resultflags.AddInstructionSet(InstructionSet.X64_EVEX); + if (resultflags.HasInstructionSet(InstructionSet.X64_EVEX)) resultflags.AddInstructionSet(InstructionSet.X64_AVX512F); if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512F)) resultflags.AddInstructionSet(InstructionSet.X64_AVX512F_VL); @@ -1140,12 +1146,12 @@ private static InstructionSetFlags ExpandInstructionSetByReverseImplicationHelpe if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512BW_VL)) resultflags.AddInstructionSet(InstructionSet.X64_AVX512VBMI_VL); if (resultflags.HasInstructionSet(InstructionSet.X64_AVX2)) - resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1); + resultflags.AddInstructionSet(InstructionSet.X64_EVEX); if (resultflags.HasInstructionSet(InstructionSet.X64_FMA)) + resultflags.AddInstructionSet(InstructionSet.X64_EVEX); + if (resultflags.HasInstructionSet(InstructionSet.X64_EVEX)) resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1); if (resultflags.HasInstructionSet(InstructionSet.X64_AVX10v1)) - resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1_V256); - if (resultflags.HasInstructionSet(InstructionSet.X64_AVX10v1_V256)) resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1_V512); if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512F)) resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1_V512); @@ -1225,8 +1231,10 @@ private static InstructionSetFlags ExpandInstructionSetByReverseImplicationHelpe if (resultflags.HasInstructionSet(InstructionSet.X86_X86Base)) resultflags.AddInstructionSet(InstructionSet.X86_X86Serialize); if (resultflags.HasInstructionSet(InstructionSet.X86_AVX2)) - resultflags.AddInstructionSet(InstructionSet.X86_AVX512F); + resultflags.AddInstructionSet(InstructionSet.X86_EVEX); if (resultflags.HasInstructionSet(InstructionSet.X86_FMA)) + resultflags.AddInstructionSet(InstructionSet.X86_EVEX); + if (resultflags.HasInstructionSet(InstructionSet.X86_EVEX)) resultflags.AddInstructionSet(InstructionSet.X86_AVX512F); if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512F)) resultflags.AddInstructionSet(InstructionSet.X86_AVX512F_VL); @@ -1255,12 +1263,12 @@ private static InstructionSetFlags ExpandInstructionSetByReverseImplicationHelpe if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512BW_VL)) resultflags.AddInstructionSet(InstructionSet.X86_AVX512VBMI_VL); if (resultflags.HasInstructionSet(InstructionSet.X86_AVX2)) - resultflags.AddInstructionSet(InstructionSet.X86_AVX10v1); + resultflags.AddInstructionSet(InstructionSet.X86_EVEX); if (resultflags.HasInstructionSet(InstructionSet.X86_FMA)) + resultflags.AddInstructionSet(InstructionSet.X86_EVEX); + if (resultflags.HasInstructionSet(InstructionSet.X86_EVEX)) resultflags.AddInstructionSet(InstructionSet.X86_AVX10v1); if (resultflags.HasInstructionSet(InstructionSet.X86_AVX10v1)) - resultflags.AddInstructionSet(InstructionSet.X86_AVX10v1_V256); - if (resultflags.HasInstructionSet(InstructionSet.X86_AVX10v1_V256)) resultflags.AddInstructionSet(InstructionSet.X86_AVX10v1_V512); if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512F)) resultflags.AddInstructionSet(InstructionSet.X86_AVX10v1_V512); @@ -1392,6 +1400,7 @@ public static IEnumerable ArchitectureToValidInstructionSets yield return new InstructionSetInfo("avxvnni", "AvxVnni", InstructionSet.X64_AVXVNNI, true); yield return new InstructionSetInfo("movbe", "Movbe", InstructionSet.X64_MOVBE, true); yield return new InstructionSetInfo("serialize", "X86Serialize", InstructionSet.X64_X86Serialize, true); + yield return new InstructionSetInfo("evex", "EVEX", InstructionSet.X64_EVEX, true); yield return new InstructionSetInfo("avx512f", "Avx512F", InstructionSet.X64_AVX512F, true); yield return new InstructionSetInfo("avx512f_vl", "Avx512F_VL", InstructionSet.X64_AVX512F_VL, true); yield return new InstructionSetInfo("avx512bw", "Avx512BW", InstructionSet.X64_AVX512BW, true); @@ -1403,7 +1412,6 @@ public static IEnumerable ArchitectureToValidInstructionSets yield return new InstructionSetInfo("avx512vbmi", "Avx512Vbmi", InstructionSet.X64_AVX512VBMI, true); yield return new InstructionSetInfo("avx512vbmi_vl", "Avx512Vbmi_VL", InstructionSet.X64_AVX512VBMI_VL, true); yield return new InstructionSetInfo("avx10v1", "Avx10v1", InstructionSet.X64_AVX10v1, true); - yield return new InstructionSetInfo("avx10v1_v256", "Avx10v1_V256", InstructionSet.X64_AVX10v1_V256, true); yield return new InstructionSetInfo("avx10v1_v512", "Avx10v1_V512", InstructionSet.X64_AVX10v1_V512, true); yield return new InstructionSetInfo("vectort128", "VectorT128", InstructionSet.X64_VectorT128, true); yield return new InstructionSetInfo("vectort256", "VectorT256", InstructionSet.X64_VectorT256, true); @@ -1433,6 +1441,7 @@ public static IEnumerable ArchitectureToValidInstructionSets yield return new InstructionSetInfo("avxvnni", "AvxVnni", InstructionSet.X86_AVXVNNI, true); yield return new InstructionSetInfo("movbe", "Movbe", InstructionSet.X86_MOVBE, true); yield return new InstructionSetInfo("serialize", "X86Serialize", InstructionSet.X86_X86Serialize, true); + yield return new InstructionSetInfo("evex", "EVEX", InstructionSet.X86_EVEX, true); yield return new InstructionSetInfo("avx512f", "Avx512F", InstructionSet.X86_AVX512F, true); yield return new InstructionSetInfo("avx512f_vl", "Avx512F_VL", InstructionSet.X86_AVX512F_VL, true); yield return new InstructionSetInfo("avx512bw", "Avx512BW", InstructionSet.X86_AVX512BW, true); @@ -1444,7 +1453,6 @@ public static IEnumerable ArchitectureToValidInstructionSets yield return new InstructionSetInfo("avx512vbmi", "Avx512Vbmi", InstructionSet.X86_AVX512VBMI, true); yield return new InstructionSetInfo("avx512vbmi_vl", "Avx512Vbmi_VL", InstructionSet.X86_AVX512VBMI_VL, true); yield return new InstructionSetInfo("avx10v1", "Avx10v1", InstructionSet.X86_AVX10v1, true); - yield return new InstructionSetInfo("avx10v1_v256", "Avx10v1_V256", InstructionSet.X86_AVX10v1_V256, true); yield return new InstructionSetInfo("avx10v1_v512", "Avx10v1_V512", InstructionSet.X86_AVX10v1_V512, true); yield return new InstructionSetInfo("vectort128", "VectorT128", InstructionSet.X86_VectorT128, true); yield return new InstructionSetInfo("vectort256", "VectorT256", InstructionSet.X86_VectorT256, true); @@ -1518,6 +1526,8 @@ public void Set64BitInstructionSetVariants(TargetArchitecture architecture) AddInstructionSet(InstructionSet.X64_MOVBE_X64); if (HasInstructionSet(InstructionSet.X64_X86Serialize)) AddInstructionSet(InstructionSet.X64_X86Serialize_X64); + if (HasInstructionSet(InstructionSet.X64_EVEX)) + AddInstructionSet(InstructionSet.X64_EVEX_X64); if (HasInstructionSet(InstructionSet.X64_AVX512F)) AddInstructionSet(InstructionSet.X64_AVX512F_X64); if (HasInstructionSet(InstructionSet.X64_AVX512F_VL)) @@ -1540,8 +1550,6 @@ public void Set64BitInstructionSetVariants(TargetArchitecture architecture) AddInstructionSet(InstructionSet.X64_AVX512VBMI_VL_X64); if (HasInstructionSet(InstructionSet.X64_AVX10v1)) AddInstructionSet(InstructionSet.X64_AVX10v1_X64); - if (HasInstructionSet(InstructionSet.X64_AVX10v1_V256)) - AddInstructionSet(InstructionSet.X64_AVX10v1_V256_X64); if (HasInstructionSet(InstructionSet.X64_AVX10v1_V512)) AddInstructionSet(InstructionSet.X64_AVX10v1_V512_X64); break; @@ -1588,6 +1596,7 @@ public void Set64BitInstructionSetVariantsUnconditionally(TargetArchitecture arc AddInstructionSet(InstructionSet.X64_AVXVNNI_X64); AddInstructionSet(InstructionSet.X64_MOVBE_X64); AddInstructionSet(InstructionSet.X64_X86Serialize_X64); + AddInstructionSet(InstructionSet.X64_EVEX_X64); AddInstructionSet(InstructionSet.X64_AVX512F_X64); AddInstructionSet(InstructionSet.X64_AVX512F_VL_X64); AddInstructionSet(InstructionSet.X64_AVX512BW_X64); @@ -1599,7 +1608,6 @@ public void Set64BitInstructionSetVariantsUnconditionally(TargetArchitecture arc AddInstructionSet(InstructionSet.X64_AVX512VBMI_X64); AddInstructionSet(InstructionSet.X64_AVX512VBMI_VL_X64); AddInstructionSet(InstructionSet.X64_AVX10v1_X64); - AddInstructionSet(InstructionSet.X64_AVX10v1_V256_X64); AddInstructionSet(InstructionSet.X64_AVX10v1_V512_X64); break; @@ -1623,6 +1631,7 @@ public void Set64BitInstructionSetVariantsUnconditionally(TargetArchitecture arc AddInstructionSet(InstructionSet.X86_AVXVNNI_X64); AddInstructionSet(InstructionSet.X86_MOVBE_X64); AddInstructionSet(InstructionSet.X86_X86Serialize_X64); + AddInstructionSet(InstructionSet.X86_EVEX_X64); AddInstructionSet(InstructionSet.X86_AVX512F_X64); AddInstructionSet(InstructionSet.X86_AVX512F_VL_X64); AddInstructionSet(InstructionSet.X86_AVX512BW_X64); @@ -1634,7 +1643,6 @@ public void Set64BitInstructionSetVariantsUnconditionally(TargetArchitecture arc AddInstructionSet(InstructionSet.X86_AVX512VBMI_X64); AddInstructionSet(InstructionSet.X86_AVX512VBMI_VL_X64); AddInstructionSet(InstructionSet.X86_AVX10v1_X64); - AddInstructionSet(InstructionSet.X86_AVX10v1_V256_X64); AddInstructionSet(InstructionSet.X86_AVX10v1_V512_X64); break; } @@ -1868,6 +1876,12 @@ public static InstructionSet LookupPlatformIntrinsicInstructionSet(TargetArchite else { return InstructionSet.X64_X86Serialize; } + case "EVEX": + if (nestedTypeName == "X64") + { return InstructionSet.X64_EVEX_X64; } + else + { return InstructionSet.X64_EVEX; } + case "Avx512F": if (nestedTypeName == "X64") { return InstructionSet.X64_AVX512F_X64; } @@ -1919,12 +1933,6 @@ public static InstructionSet LookupPlatformIntrinsicInstructionSet(TargetArchite else { return InstructionSet.X64_AVX10v1; } - case "Avx10v1_V256": - if (nestedTypeName == "X64") - { return InstructionSet.X64_AVX10v1_V256_X64; } - else - { return InstructionSet.X64_AVX10v1_V256; } - case "Avx10v1_V512": if (nestedTypeName == "X64") { return InstructionSet.X64_AVX10v1_V512_X64; } @@ -2004,6 +2012,9 @@ public static InstructionSet LookupPlatformIntrinsicInstructionSet(TargetArchite case "X86Serialize": { return InstructionSet.X86_X86Serialize; } + case "EVEX": + { return InstructionSet.X86_EVEX; } + case "Avx512F": if (nestedTypeName == "VL") { return InstructionSet.X86_AVX512F_VL; } @@ -2037,9 +2048,6 @@ public static InstructionSet LookupPlatformIntrinsicInstructionSet(TargetArchite case "Avx10v1": { return InstructionSet.X86_AVX10v1; } - case "Avx10v1_V256": - { return InstructionSet.X86_AVX10v1_V256; } - case "Avx10v1_V512": { return InstructionSet.X86_AVX10v1_V512; } diff --git a/src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt b/src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt index 5f1953f71e919..c75cff32f35a2 100644 --- a/src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt +++ b/src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt @@ -47,6 +47,7 @@ instructionset ,X86 , , , ,Vector512 instructionset ,X86 ,AvxVnni , ,25 ,AVXVNNI ,avxvnni instructionset ,X86 ,Movbe , ,27 ,MOVBE ,movbe instructionset ,X86 ,X86Serialize , ,28 ,X86Serialize ,serialize +instructionset ,X86 ,EVEX , ,47 ,EVEX ,evex instructionset ,X86 ,Avx512F , ,29 ,AVX512F ,avx512f instructionset ,X86 ,Avx512F_VL , ,30 ,AVX512F_VL ,avx512f_vl instructionset ,X86 ,Avx512BW , ,31 ,AVX512BW ,avx512bw @@ -58,7 +59,6 @@ instructionset ,X86 ,Avx512DQ_VL , ,36 ,AVX512DQ_VL instructionset ,X86 ,Avx512Vbmi , ,37 ,AVX512VBMI ,avx512vbmi instructionset ,X86 ,Avx512Vbmi_VL , ,38 ,AVX512VBMI_VL ,avx512vbmi_vl instructionset ,X86 ,Avx10v1 , ,44 ,AVX10v1 ,avx10v1 -instructionset ,X86 ,Avx10v1_V256 , ,45 ,AVX10v1_V256 ,avx10v1_v256 instructionset ,X86 ,Avx10v1_V512 , ,46 ,AVX10v1_V512 ,avx10v1_v512 instructionset ,X86 ,VectorT128 , ,39 ,VectorT128 ,vectort128 instructionset ,X86 ,VectorT256 , ,40 ,VectorT256 ,vectort256 @@ -83,6 +83,7 @@ instructionset64bit,X86 ,POPCNT instructionset64bit,X86 ,AVXVNNI instructionset64bit,X86 ,MOVBE instructionset64bit,X86 ,X86Serialize +instructionset64bit,X86 ,EVEX instructionset64bit,X86 ,AVX512F instructionset64bit,X86 ,AVX512F_VL instructionset64bit,X86 ,AVX512BW @@ -94,7 +95,6 @@ instructionset64bit,X86 ,AVX512DQ_VL instructionset64bit,X86 ,AVX512VBMI instructionset64bit,X86 ,AVX512VBMI_VL instructionset64bit,X86 ,AVX10v1 -instructionset64bit,X86 ,AVX10v1_V256 instructionset64bit,X86 ,AVX10v1_V512 vectorinstructionset,X86 ,Vector128 @@ -122,8 +122,9 @@ implication ,X86 ,Vector512 ,AVX512F implication ,X86 ,AVXVNNI ,AVX2 implication ,X86 ,MOVBE ,SSE42 implication ,X86 ,X86Serialize ,X86Base -implication ,X86 ,AVX512F ,AVX2 -implication ,X86 ,AVX512F ,FMA +implication ,X86 ,EVEX ,AVX2 +implication ,X86 ,EVEX ,FMA +implication ,X86 ,AVX512F ,EVEX implication ,X86 ,AVX512F_VL ,AVX512F implication ,X86 ,AVX512CD ,AVX512F implication ,X86 ,AVX512CD_VL ,AVX512CD @@ -137,10 +138,10 @@ implication ,X86 ,AVX512DQ_VL ,AVX512F_VL implication ,X86 ,AVX512VBMI ,AVX512BW implication ,X86 ,AVX512VBMI_VL ,AVX512VBMI implication ,X86 ,AVX512VBMI_VL ,AVX512BW_VL -implication ,X86 ,AVX10v1 ,AVX2 -implication ,X86 ,AVX10v1 ,FMA -implication ,X86 ,AVX10v1_V256 ,AVX10v1 -implication ,X86 ,AVX10v1_V512 ,AVX10v1_V256 +implication ,X86 ,EVEX ,AVX2 +implication ,X86 ,EVEX ,FMA +implication ,X86 ,AVX10v1 ,EVEX +implication ,X86 ,AVX10v1_V512 ,AVX10v1 implication ,X86 ,AVX10v1_V512 ,AVX512F implication ,X86 ,AVX10v1_V512 ,AVX512F_VL implication ,X86 ,AVX10v1_V512 ,AVX512CD diff --git a/src/coreclr/vm/codeman.cpp b/src/coreclr/vm/codeman.cpp index 7d296977d26fe..6e258e2c7d655 100644 --- a/src/coreclr/vm/codeman.cpp +++ b/src/coreclr/vm/codeman.cpp @@ -1425,7 +1425,12 @@ void EEJitManager::SetCpuInfo() CPUCompileFlags.Set(InstructionSet_X86Serialize); } - // As Avx10v1_V512 could imply Avx10v1_V256 and Avx10v1, and Avx10v1_V256 could imply Avx10v1 + if (((cpuFeatures & XArchIntrinsicConstants_Evex) != 0) && (CPUCompileFlags.IsSet(InstructionSet_AVX512F) || CPUCompileFlags.IsSet(InstructionSet_AVX10v1))) + { + CPUCompileFlags.Set(InstructionSet_EVEX); + } + + // As Avx10v1_V512 could imply Avx10v1, // then the flag check here can be conducted for only once, and let // `EnusreValidInstructionSetSupport` to handle the illegal combination. // To ensure `EnusreValidInstructionSetSupport` handle the dependency correctly, the implication @@ -1435,11 +1440,6 @@ void EEJitManager::SetCpuInfo() CPUCompileFlags.Set(InstructionSet_AVX10v1); } - if (((cpuFeatures & XArchIntrinsicConstants_Avx10v1_V256) != 0)) - { - CPUCompileFlags.Set(InstructionSet_AVX10v1_V256); - } - if (((cpuFeatures & XArchIntrinsicConstants_Avx10v1_V512) != 0)) { CPUCompileFlags.Set(InstructionSet_AVX10v1_V512); diff --git a/src/libraries/System.Private.CoreLib/src/ILLink/ILLink.Substitutions.NoX86Intrinsics.xml b/src/libraries/System.Private.CoreLib/src/ILLink/ILLink.Substitutions.NoX86Intrinsics.xml index 382d3d7e71dc0..60020ec1e24df 100644 --- a/src/libraries/System.Private.CoreLib/src/ILLink/ILLink.Substitutions.NoX86Intrinsics.xml +++ b/src/libraries/System.Private.CoreLib/src/ILLink/ILLink.Substitutions.NoX86Intrinsics.xml @@ -24,6 +24,12 @@ + + + + + + diff --git a/src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems b/src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems index ea91a44b9fcec..abdd3fef0fb74 100644 --- a/src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems +++ b/src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems @@ -2611,6 +2611,8 @@ + + @@ -2648,6 +2650,7 @@ + diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Avx10v1.PlatformNotSupported.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Avx10v1.PlatformNotSupported.cs new file mode 100644 index 0000000000000..87e47ec41d871 --- /dev/null +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Avx10v1.PlatformNotSupported.cs @@ -0,0 +1,3385 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; +using System.Runtime.Intrinsics; + +namespace System.Runtime.Intrinsics.X86 +{ + /// This class provides access to X86 Avx10.1 hardware instructions via intrinsics + [CLSCompliant(false)] + public abstract class Avx10v1 : Avx2 + { + internal Avx10v1() { } + + public static new bool IsSupported { [Intrinsic] get { return false; } } + + /// + /// __m128i _mm_abs_epi64 (__m128i a) + /// VPABSQ xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 Abs(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_abs_epi64 (__m128i a) + /// VPABSQ ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 Abs(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_add_round_sd (__m128d a, __m128d b, int rounding) + /// VADDSD xmm1, xmm2, xmm3 {er} + /// + public static Vector128 AddScalar(Vector128 left, Vector128 right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_add_round_ss (__m128 a, __m128 b, int rounding) + /// VADDSS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 AddScalar(Vector128 left, Vector128 right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_alignr_epi32 (__m128i a, __m128i b, const int count) + /// VALIGND xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst, imm8 + /// + public static Vector128 AlignRight32(Vector128 left, Vector128 right, [ConstantExpected] byte mask) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_alignr_epi32 (__m128i a, __m128i b, const int count) + /// VALIGND xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst, imm8 + /// + public static Vector128 AlignRight32(Vector128 left, Vector128 right, [ConstantExpected] byte mask) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_alignr_epi32 (__m256i a, __m256i b, const int count) + /// VALIGND ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 + /// + public static Vector256 AlignRight32(Vector256 left, Vector256 right, [ConstantExpected] byte mask) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_alignr_epi32 (__m256i a, __m256i b, const int count) + /// VALIGND ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 + /// + public static Vector256 AlignRight32(Vector256 left, Vector256 right, [ConstantExpected] byte mask) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_alignr_epi64 (__m128i a, __m128i b, const int count) + /// VALIGNQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst, imm8 + /// + public static Vector128 AlignRight64(Vector128 left, Vector128 right, [ConstantExpected] byte mask) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_alignr_epi64 (__m128i a, __m128i b, const int count) + /// VALIGNQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst, imm8 + /// + public static Vector128 AlignRight64(Vector128 left, Vector128 right, [ConstantExpected] byte mask) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_alignr_epi64 (__m256i a, __m256i b, const int count) + /// VALIGNQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 + /// + public static Vector256 AlignRight64(Vector256 left, Vector256 right, [ConstantExpected] byte mask) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_alignr_epi64 (__m256i a, __m256i b, const int count) + /// VALIGNQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 + /// + public static Vector256 AlignRight64(Vector256 left, Vector256 right, [ConstantExpected] byte mask) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_broadcast_i32x2 (__m128i a) + /// VBROADCASTI32x2 xmm1 {k1}{z}, xmm2/m64 + /// + public static Vector128 BroadcastPairScalarToVector128(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_broadcast_i32x2 (__m128i a) + /// VBROADCASTI32x2 xmm1 {k1}{z}, xmm2/m64 + /// + public static Vector128 BroadcastPairScalarToVector128(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256 _mm256_broadcast_f32x2 (__m128 a) + /// VBROADCASTF32x2 ymm1 {k1}{z}, xmm2/m64 + /// + public static Vector256 BroadcastPairScalarToVector256(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_broadcast_i32x2 (__m128i a) + /// VBROADCASTI32x2 ymm1 {k1}{z}, xmm2/m64 + /// + public static Vector256 BroadcastPairScalarToVector256(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_broadcast_i32x2 (__m128i a) + /// VBROADCASTI32x2 ymm1 {k1}{z}, xmm2/m64 + /// + public static Vector256 BroadcastPairScalarToVector256(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmpgt_epu8 (__m128i a, __m128i b) + /// VPCMPUB k1 {k2}, xmm2, xmm3/m128, imm8(6) + /// + public static Vector128 CompareGreaterThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmpgt_epu32 (__m128i a, __m128i b) + /// VPCMPUD k1 {k2}, xmm2, xmm3/m128/m32bcst, imm8(6) + /// + public static Vector128 CompareGreaterThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmpgt_epu64 (__m128i a, __m128i b) + /// VPCMPUQ k1 {k2}, xmm2, xmm3/m128/m64bcst, imm8(6) + /// + public static Vector128 CompareGreaterThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmpgt_epu16 (__m128i a, __m128i b) + /// VPCMPUW k1 {k2}, xmm2, xmm3/m128, imm8(6) + /// + public static Vector128 CompareGreaterThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmpgt_epu8 (__m256i a, __m256i b) + /// VPCMPUB k1 {k2}, ymm2, ymm3/m256, imm8(6) + /// + public static Vector256 CompareGreaterThan(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmpgt_epu32 (__m256i a, __m256i b) + /// VPCMPUD k1 {k2}, ymm2, ymm3/m256/m32bcst, imm8(6) + /// + public static Vector256 CompareGreaterThan(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmpgt_epu64 (__m256i a, __m256i b) + /// VPCMPUQ k1 {k2}, ymm2, ymm3/m256/m64bcst, imm8(6) + /// + public static Vector256 CompareGreaterThan(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmpgt_epu16 (__m256i a, __m256i b) + /// VPCMPUW k1 {k2}, ymm2, ymm3/m256, imm8(6) + /// + public static Vector256 CompareGreaterThan(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmpge_epu8 (__m128i a, __m128i b) + /// VPCMPUB k1 {k2}, xmm2, xmm3/m128, imm8(5) + /// + public static Vector128 CompareGreaterThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmpge_epi32 (__m128i a, __m128i b) + /// VPCMPD k1 {k2}, xmm2, xmm3/m128/m32bcst, imm8(5) + /// + public static Vector128 CompareGreaterThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmpge_epi64 (__m128i a, __m128i b) + /// VPCMPQ k1 {k2}, xmm2, xmm3/m128/m64bcst, imm8(5) + /// + public static Vector128 CompareGreaterThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmpge_epi8 (__m128i a, __m128i b) + /// VPCMPB k1 {k2}, xmm2, xmm3/m128, imm8(5) + /// + public static Vector128 CompareGreaterThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmpge_epi16 (__m128i a, __m128i b) + /// VPCMPW k1 {k2}, xmm2, xmm3/m128, imm8(5) + /// + public static Vector128 CompareGreaterThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmpge_epu32 (__m128i a, __m128i b) + /// VPCMPUD k1 {k2}, xmm2, xmm3/m128/m32bcst, imm8(5) + /// + public static Vector128 CompareGreaterThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmpge_epu64 (__m128i a, __m128i b) + /// VPCMPUQ k1 {k2}, xmm2, xmm3/m128/m64bcst, imm8(5) + /// + public static Vector128 CompareGreaterThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmpge_epu16 (__m128i a, __m128i b) + /// VPCMPUW k1 {k2}, xmm2, xmm3/m128, imm8(5) + /// + public static Vector128 CompareGreaterThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmpge_epu8 (__m256i a, __m256i b) + /// VPCMPUB k1 {k2}, ymm2, ymm3/m256, imm8(5) + /// + public static Vector256 CompareGreaterThanOrEqual(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmpge_epi32 (__m256i a, __m256i b) + /// VPCMPD k1 {k2}, ymm2, ymm3/m256/m32bcst, imm8(5) + /// + public static Vector256 CompareGreaterThanOrEqual(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmpge_epi64 (__m256i a, __m256i b) + /// VPCMPQ k1 {k2}, ymm2, ymm3/m256/m64bcst, imm8(5) + /// + public static Vector256 CompareGreaterThanOrEqual(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmpge_epi8 (__m256i a, __m256i b) + /// VPCMPB k1 {k2}, ymm2, ymm3/m256, imm8(5) + /// + public static Vector256 CompareGreaterThanOrEqual(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmpge_epi16 (__m256i a, __m256i b) + /// VPCMPW k1 {k2}, ymm2, ymm3/m256, imm8(5) + /// + public static Vector256 CompareGreaterThanOrEqual(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmpge_epu32 (__m256i a, __m256i b) + /// VPCMPUD k1 {k2}, ymm2, ymm3/m256/m32bcst, imm8(5) + /// + public static Vector256 CompareGreaterThanOrEqual(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmpge_epu64 (__m256i a, __m256i b) + /// VPCMPUQ k1 {k2}, ymm2, ymm3/m256/m64bcst, imm8(5) + /// + public static Vector256 CompareGreaterThanOrEqual(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmpge_epu16 (__m256i a, __m256i b) + /// VPCMPUW k1 {k2}, ymm2, ymm3/m256, imm8(5) + /// + public static Vector256 CompareGreaterThanOrEqual(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmplt_epi32 (__m128i a, __m128i b) + /// VPCMPD k1 {k2}, xmm2, xmm3/m128/m32bcst, imm8(1) + /// + public static new Vector128 CompareLessThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmplt_epi8 (__m128i a, __m128i b) + /// VPCMPB k1 {k2}, xmm2, xmm3/m128, imm8(1) + /// + public static new Vector128 CompareLessThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmplt_epi16 (__m128i a, __m128i b) + /// VPCMPW k1 {k2}, xmm2, xmm3/m128, imm8(1) + /// + public static new Vector128 CompareLessThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmplt_epu8 (__m128i a, __m128i b) + /// VPCMPUB k1 {k2}, xmm2, xmm3/m128, imm8(1) + /// + public static Vector128 CompareLessThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmplt_epi64 (__m128i a, __m128i b) + /// VPCMPQ k1 {k2}, xmm2, xmm3/m128/m64bcst, imm8(1) + /// + public static Vector128 CompareLessThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmplt_epu32 (__m128i a, __m128i b) + /// VPCMPUD k1 {k2}, xmm2, xmm3/m128/m32bcst, imm8(1) + /// + public static Vector128 CompareLessThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmplt_epu64 (__m128i a, __m128i b) + /// VPCMPUQ k1 {k2}, xmm2, xmm3/m128/m64bcst, imm8(1) + /// + public static Vector128 CompareLessThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmplt_epu16 (__m128i a, __m128i b) + /// VPCMPUW k1 {k2}, xmm2, xmm3/m128, imm8(1) + /// + public static Vector128 CompareLessThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmplt_epu8 (__m256i a, __m256i b) + /// VPCMPUB k1 {k2}, ymm2, ymm3/m256, imm8(1) + /// + public static Vector256 CompareLessThan(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmplt_epi32 (__m256i a, __m256i b) + /// VPCMPD k1 {k2}, ymm2, ymm3/m256/m32bcst, imm8(1) + /// + public static Vector256 CompareLessThan(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmplt_epi64 (__m256i a, __m256i b) + /// VPCMPQ k1 {k2}, ymm2, ymm3/m256/m64bcst, imm8(1) + /// + public static Vector256 CompareLessThan(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmplt_epi8 (__m256i a, __m256i b) + /// VPCMPB k1 {k2}, ymm2, ymm3/m256, imm8(1) + /// + public static Vector256 CompareLessThan(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmplt_epi16 (__m256i a, __m256i b) + /// VPCMPW k1 {k2}, ymm2, ymm3/m256, imm8(1) + /// + public static Vector256 CompareLessThan(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmplt_epu32 (__m256i a, __m256i b) + /// VPCMPUD k1 {k2}, ymm2, ymm3/m256/m32bcst, imm8(1) + /// + public static Vector256 CompareLessThan(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmplt_epu64 (__m256i a, __m256i b) + /// VPCMPUQ k1 {k2}, ymm2, ymm3/m256/m64bcst, imm8(1) + /// + public static Vector256 CompareLessThan(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmplt_epu16 (__m256i a, __m256i b) + /// VPCMPUW k1 {k2}, ymm2, ymm3/m256, imm8(1) + /// + public static Vector256 CompareLessThan(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmple_epu8 (__m128i a, __m128i b) + /// VPCMPUB k1 {k2}, xmm2, xmm3/m128, imm8(2) + /// + public static Vector128 CompareLessThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmple_epi32 (__m128i a, __m128i b) + /// VPCMPD k1 {k2}, xmm2, xmm3/m128/m32bcst, imm8(2) + /// + public static Vector128 CompareLessThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmple_epi64 (__m128i a, __m128i b) + /// VPCMPQ k1 {k2}, xmm2, xmm3/m128/m64bcst, imm8(2) + /// + public static Vector128 CompareLessThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmple_epi8 (__m128i a, __m128i b) + /// VPCMPB k1 {k2}, xmm2, xmm3/m128, imm8(2) + /// + public static Vector128 CompareLessThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmple_epi16 (__m128i a, __m128i b) + /// VPCMPW k1 {k2}, xmm2, xmm3/m128, imm8(2) + /// + public static Vector128 CompareLessThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmple_epu32 (__m128i a, __m128i b) + /// VPCMPUD k1 {k2}, xmm2, xmm3/m128/m32bcst, imm8(2) + /// + public static Vector128 CompareLessThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmple_epu64 (__m128i a, __m128i b) + /// VPCMPUQ k1 {k2}, xmm2, xmm3/m128/m64bcst, imm8(2) + /// + public static Vector128 CompareLessThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmple_epu16 (__m128i a, __m128i b) + /// VPCMPUW k1 {k2}, xmm2, xmm3/m128, imm8(2) + /// + public static Vector128 CompareLessThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmple_epu8 (__m256i a, __m256i b) + /// VPCMPUB k1 {k2}, ymm2, ymm3/m256, imm8(2) + /// + public static Vector256 CompareLessThanOrEqual(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmple_epi32 (__m256i a, __m256i b) + /// VPCMPD k1 {k2}, ymm2, ymm3/m256/m32bcst, imm8(2) + /// + public static Vector256 CompareLessThanOrEqual(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmple_epi64 (__m256i a, __m256i b) + /// VPCMPQ k1 {k2}, ymm2, ymm3/m256/m64bcst, imm8(2) + /// + public static Vector256 CompareLessThanOrEqual(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmple_epi8 (__m256i a, __m256i b) + /// VPCMPB k1 {k2}, ymm2, ymm3/m256, imm8(2) + /// + public static Vector256 CompareLessThanOrEqual(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmple_epi16 (__m256i a, __m256i b) + /// VPCMPW k1 {k2}, ymm2, ymm3/m256, imm8(2) + /// + public static Vector256 CompareLessThanOrEqual(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmple_epu32 (__m256i a, __m256i b) + /// VPCMPUD k1 {k2}, ymm2, ymm3/m256/m32bcst, imm8(2) + /// + public static Vector256 CompareLessThanOrEqual(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmple_epu64 (__m256i a, __m256i b) + /// VPCMPUQ k1 {k2}, ymm2, ymm3/m256/m64bcst, imm8(2) + /// + public static Vector256 CompareLessThanOrEqual(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmple_epu16 (__m256i a, __m256i b) + /// VPCMPUW k1 {k2}, ymm2, ymm3/m256, imm8(2) + /// + public static Vector256 CompareLessThanOrEqual(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmpne_epu8 (__m128i a, __m128i b) + /// VPCMPUB k1 {k2}, xmm2, xmm3/m128, imm8(4) + /// + public static Vector128 CompareNotEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmpne_epi32 (__m128i a, __m128i b) + /// VPCMPD k1 {k2}, xmm2, xmm3/m128/m32bcst, imm8(4) + /// + public static Vector128 CompareNotEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmpne_epi64 (__m128i a, __m128i b) + /// VPCMPQ k1 {k2}, xmm2, xmm3/m128/m64bcst, imm8(4) + /// + public static Vector128 CompareNotEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmpne_epi8 (__m128i a, __m128i b) + /// VPCMPB k1 {k2}, xmm2, xmm3/m128, imm8(4) + /// + public static Vector128 CompareNotEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmpne_epi16 (__m128i a, __m128i b) + /// VPCMPW k1 {k2}, xmm2, xmm3/m128, imm8(4) + /// + public static Vector128 CompareNotEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmpne_epu32 (__m128i a, __m128i b) + /// VPCMPUD k1 {k2}, xmm2, xmm3/m128/m32bcst, imm8(4) + /// + public static Vector128 CompareNotEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmpne_epu64 (__m128i a, __m128i b) + /// VPCMPUQ k1 {k2}, xmm2, xmm3/m128/m64bcst, imm8(4) + /// + public static Vector128 CompareNotEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cmpne_epu16 (__m128i a, __m128i b) + /// VPCMPUW k1 {k2}, xmm2, xmm3/m128, imm8(4) + /// + public static Vector128 CompareNotEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmpne_epu8 (__m256i a, __m256i b) + /// VPCMPUB k1 {k2}, ymm2, ymm3/m256, imm8(4) + /// + public static Vector256 CompareNotEqual(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmpne_epi32 (__m256i a, __m256i b) + /// VPCMPD k1 {k2}, ymm2, ymm3/m256/m32bcst, imm8(4) + /// + public static Vector256 CompareNotEqual(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmpne_epi64 (__m256i a, __m256i b) + /// VPCMPQ k1 {k2}, ymm2, ymm3/m256/m64bcst, imm8(4) + /// + public static Vector256 CompareNotEqual(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmpne_epi8 (__m256i a, __m256i b) + /// VPCMPB k1 {k2}, ymm2, ymm3/m256, imm8(4) + /// + public static Vector256 CompareNotEqual(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmpne_epi16 (__m256i a, __m256i b) + /// VPCMPW k1 {k2}, ymm2, ymm3/m256, imm8(4) + /// + public static Vector256 CompareNotEqual(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmpne_epu32 (__m256i a, __m256i b) + /// VPCMPUD k1 {k2}, ymm2, ymm3/m256/m32bcst, imm8(4) + /// + public static Vector256 CompareNotEqual(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmpne_epu64 (__m256i a, __m256i b) + /// VPCMPUQ k1 {k2}, ymm2, ymm3/m256/m64bcst, imm8(4) + /// + public static Vector256 CompareNotEqual(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cmpne_epu16 (__m256i a, __m256i b) + /// VPCMPUW k1 {k2}, ymm2, ymm3/m256, imm8(4) + /// + public static Vector256 CompareNotEqual(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_cvtsi32_sd (__m128d a, int b) + /// VCVTUSI2SD xmm1, xmm2, r/m32 + /// + public static Vector128 ConvertScalarToVector128Double(Vector128 upper, uint value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_cvt_roundi32_ss (__m128 a, int b, int rounding) + /// VCVTSI2SS xmm1, xmm2, r32 {er} + /// + public static Vector128 ConvertScalarToVector128Single(Vector128 upper, int value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_cvt_roundi32_ss (__m128 a, int b, int rounding) + /// VCVTUSI2SS xmm1, xmm2, r32 {er} + /// + public static Vector128 ConvertScalarToVector128Single(Vector128 upper, uint value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_cvtsi32_ss (__m128 a, int b) + /// VCVTUSI2SS xmm1, xmm2, r/m32 + /// + public static Vector128 ConvertScalarToVector128Single(Vector128 upper, uint value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_cvt_roundsd_ss (__m128 a, __m128d b, int rounding) + /// VCVTSD2SS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 ConvertScalarToVector128Single(Vector128 upper, Vector128 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// int _mm_cvt_roundsd_i32 (__m128d a, int rounding) + /// VCVTSD2SI r32, xmm1 {er} + /// + public static int ConvertToInt32(Vector128 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// int _mm_cvt_roundss_i32 (__m128 a, int rounding) + /// VCVTSS2SIK r32, xmm1 {er} + /// + public static int ConvertToInt32(Vector128 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// unsigned int _mm_cvt_roundsd_u32 (__m128d a, int rounding) + /// VCVTSD2USI r32, xmm1 {er} + /// + public static uint ConvertToUInt32(Vector128 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// unsigned int _mm_cvtsd_u32 (__m128d a) + /// VCVTSD2USI r32, xmm1/m64{er} + /// + public static uint ConvertToUInt32(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// unsigned int _mm_cvt_roundss_u32 (__m128 a, int rounding) + /// VCVTSS2USI r32, xmm1 {er} + /// + public static uint ConvertToUInt32(Vector128 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// unsigned int _mm_cvtss_u32 (__m128 a) + /// VCVTSS2USI r32, xmm1/m32{er} + /// + public static uint ConvertToUInt32(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// unsigned int _mm_cvttsd_u32 (__m128d a) + /// VCVTTSD2USI r32, xmm1/m64{er} + /// + public static uint ConvertToUInt32WithTruncation(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// unsigned int _mm_cvttss_u32 (__m128 a) + /// VCVTTSS2USI r32, xmm1/m32{er} + /// + public static uint ConvertToUInt32WithTruncation(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtepi32_epi8 (__m128i a) + /// VPMOVDB xmm1/m32 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128Byte(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtepi64_epi8 (__m128i a) + /// VPMOVQB xmm1/m16 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128Byte(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtepi16_epi8 (__m128i a) + /// VPMOVWB xmm1/m64 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128Byte(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtepi32_epi8 (__m128i a) + /// VPMOVDB xmm1/m32 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128Byte(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtepi64_epi8 (__m128i a) + /// VPMOVQB xmm1/m16 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128Byte(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtepi16_epi8 (__m128i a) + /// VPMOVWB xmm1/m64 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128Byte(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtepi32_epi8 (__m256i a) + /// VPMOVDB xmm1/m64 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128Byte(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtepi64_epi8 (__m256i a) + /// VPMOVQB xmm1/m32 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128Byte(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtepi16_epi8 (__m256i a) + /// VPMOVWB xmm1/m128 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128Byte(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtepi32_epi8 (__m256i a) + /// VPMOVDB xmm1/m64 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128Byte(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtepi64_epi8 (__m256i a) + /// VPMOVQB xmm1/m32 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128Byte(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtepi16_epi8 (__m256i a) + /// VPMOVWB xmm1/m128 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128Byte(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtusepi32_epi8 (__m128i a) + /// VPMOVUSDB xmm1/m32 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128ByteWithSaturation(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtusepi64_epi8 (__m128i a) + /// VPMOVUSQB xmm1/m16 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128ByteWithSaturation(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtusepi16_epi8 (__m128i a) + /// VPMOVUWB xmm1/m64 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128ByteWithSaturation(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtusepi32_epi8 (__m256i a) + /// VPMOVUSDB xmm1/m64 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128ByteWithSaturation(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtusepi64_epi8 (__m256i a) + /// VPMOVUSQB xmm1/m32 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128ByteWithSaturation(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtusepi16_epi8 (__m256i a) + /// VPMOVUWB xmm1/m128 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128ByteWithSaturation(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_cvtepi64_pd (__m128i a) + /// VCVTQQ2PD xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 ConvertToVector128Double(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_cvtepu32_pd (__m128i a) + /// VCVTUDQ2PD xmm1 {k1}{z}, xmm2/m64/m32bcst + /// + public static Vector128 ConvertToVector128Double(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_cvtepu64_pd (__m128i a) + /// VCVTUQQ2PD xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 ConvertToVector128Double(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtepi32_epi16 (__m128i a) + /// VPMOVDW xmm1/m64 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128Int16(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtepi64_epi16 (__m128i a) + /// VPMOVQW xmm1/m32 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128Int16(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtepi32_epi16 (__m128i a) + /// VPMOVDW xmm1/m64 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128Int16(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtepi64_epi16 (__m128i a) + /// VPMOVQW xmm1/m32 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128Int16(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtepi32_epi16 (__m256i a) + /// VPMOVDW xmm1/m128 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128Int16(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtepi64_epi16 (__m256i a) + /// VPMOVQW xmm1/m64 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128Int16(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtepi32_epi16 (__m256i a) + /// VPMOVDW xmm1/m128 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128Int16(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtepi64_epi16 (__m256i a) + /// VPMOVQW xmm1/m64 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128Int16(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtsepi32_epi16 (__m128i a) + /// VPMOVSDW xmm1/m64 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128Int16WithSaturation(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtsepi64_epi16 (__m128i a) + /// VPMOVSQW xmm1/m32 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128Int16WithSaturation(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtsepi32_epi16 (__m256i a) + /// VPMOVSDW xmm1/m128 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128Int16WithSaturation(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtsepi64_epi16 (__m256i a) + /// VPMOVSQW xmm1/m64 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128Int16WithSaturation(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtepi64_epi32 (__m128i a) + /// VPMOVQD xmm1/m64 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128Int32(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtepi64_epi32 (__m128i a) + /// VPMOVQD xmm1/m64 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128Int32(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtepi64_epi32 (__m256i a) + /// VPMOVQD xmm1/m128 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128Int32(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtepi64_epi32 (__m256i a) + /// VPMOVQD xmm1/m128 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128Int32(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtsepi64_epi32 (__m128i a) + /// VPMOVSQD xmm1/m64 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128Int32WithSaturation(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtsepi64_epi32 (__m256i a) + /// VPMOVSQD xmm1/m128 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128Int32WithSaturation(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtpd_epi64 (__m128d a) + /// VCVTPD2QQ xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 ConvertToVector128Int64(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtps_epi64 (__m128 a) + /// VCVTPS2QQ xmm1 {k1}{z}, xmm2/m64/m32bcst + /// + public static Vector128 ConvertToVector128Int64(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvttpd_epi64 (__m128d a) + /// VCVTTPD2QQ xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 ConvertToVector128Int64WithTruncation(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvttps_epi64 (__m128 a) + /// VCVTTPS2QQ xmm1 {k1}{z}, xmm2/m64/m32bcst + /// + public static Vector128 ConvertToVector128Int64WithTruncation(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtepi32_epi8 (__m128i a) + /// VPMOVDB xmm1/m32 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByte(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtepi64_epi8 (__m128i a) + /// VPMOVQB xmm1/m16 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByte(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtepi16_epi8 (__m128i a) + /// VPMOVWB xmm1/m64 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByte(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtepi32_epi8 (__m128i a) + /// VPMOVDB xmm1/m32 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByte(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtepi64_epi8 (__m128i a) + /// VPMOVQB xmm1/m16 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByte(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtepi16_epi8 (__m128i a) + /// VPMOVWB xmm1/m64 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByte(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtepi32_epi8 (__m256i a) + /// VPMOVDB xmm1/m64 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByte(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtepi64_epi8 (__m256i a) + /// VPMOVQB xmm1/m32 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByte(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtepi16_epi8 (__m256i a) + /// VPMOVWB xmm1/m128 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByte(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtepi32_epi8 (__m256i a) + /// VPMOVDB xmm1/m64 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByte(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtepi64_epi8 (__m256i a) + /// VPMOVQB xmm1/m32 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByte(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtepi16_epi8 (__m256i a) + /// VPMOVWB xmm1/m128 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByte(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtsepi32_epi8 (__m128i a) + /// VPMOVSDB xmm1/m32 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByteWithSaturation(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtsepi64_epi8 (__m128i a) + /// VPMOVSQB xmm1/m16 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByteWithSaturation(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtsepi16_epi8 (__m128i a) + /// VPMOVSWB xmm1/m64 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByteWithSaturation(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtsepi32_epi8 (__m256i a) + /// VPMOVSDB xmm1/m64 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByteWithSaturation(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtsepi64_epi8 (__m256i a) + /// VPMOVSQB xmm1/m32 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByteWithSaturation(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtsepi16_epi8 (__m256i a) + /// VPMOVSWB xmm1/m128 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByteWithSaturation(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_cvtepi64_ps (__m128i a) + /// VCVTQQ2PS xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 ConvertToVector128Single(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_cvtepu32_ps (__m128i a) + /// VCVTUDQ2PS xmm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector128 ConvertToVector128Single(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_cvtepu64_ps (__m128i a) + /// VCVTUQQ2PS xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 ConvertToVector128Single(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm256_cvtepi64_ps (__m256i a) + /// VCVTQQ2PS xmm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector128 ConvertToVector128Single(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm256_cvtepu64_ps (__m256i a) + /// VCVTUQQ2PS xmm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector128 ConvertToVector128Single(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtepi32_epi16 (__m128i a) + /// VPMOVDW xmm1/m64 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128UInt16(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtepi64_epi16 (__m128i a) + /// VPMOVQW xmm1/m32 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128UInt16(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtepi32_epi16 (__m128i a) + /// VPMOVDW xmm1/m64 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128UInt16(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtepi64_epi16 (__m128i a) + /// VPMOVQW xmm1/m32 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128UInt16(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtepi32_epi16 (__m256i a) + /// VPMOVDW xmm1/m128 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128UInt16(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtepi64_epi16 (__m256i a) + /// VPMOVQW xmm1/m64 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128UInt16(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtepi32_epi16 (__m256i a) + /// VPMOVDW xmm1/m128 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128UInt16(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtepi64_epi16 (__m256i a) + /// VPMOVQW xmm1/m64 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128UInt16(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtusepi32_epi16 (__m128i a) + /// VPMOVUSDW xmm1/m64 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128UInt16WithSaturation(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtusepi64_epi16 (__m128i a) + /// VPMOVUSQW xmm1/m32 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128UInt16WithSaturation(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtusepi32_epi16 (__m256i a) + /// VPMOVUSDW xmm1/m128 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128UInt16WithSaturation(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtusepi64_epi16 (__m256i a) + /// VPMOVUSQW xmm1/m64 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128UInt16WithSaturation(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtpd_epu32 (__m128d a) + /// VCVTPD2UDQ xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 ConvertToVector128UInt32(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtps_epu32 (__m128 a) + /// VCVTPS2UDQ xmm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector128 ConvertToVector128UInt32(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtepi64_epi32 (__m128i a) + /// VPMOVQD xmm1/m128 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128UInt32(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtepi64_epi32 (__m128i a) + /// VPMOVQD xmm1/m128 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128UInt32(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtpd_epu32 (__m256d a) + /// VCVTPD2UDQ xmm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector128 ConvertToVector128UInt32(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtepi64_epi32 (__m256i a) + /// VPMOVQD xmm1/m128 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128UInt32(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtepi64_epi32 (__m256i a) + /// VPMOVQD xmm1/m128 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128UInt32(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtusepi64_epi32 (__m128i a) + /// VPMOVUSQD xmm1/m128 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128UInt32WithSaturation(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvtusepi64_epi32 (__m256i a) + /// VPMOVUSQD xmm1/m128 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128UInt32WithSaturation(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvttpd_epu32 (__m128d a) + /// VCVTTPD2UDQ xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 ConvertToVector128UInt32WithTruncation(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvttps_epu32 (__m128 a) + /// VCVTTPS2UDQ xmm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector128 ConvertToVector128UInt32WithTruncation(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm256_cvttpd_epu32 (__m256d a) + /// VCVTTPD2UDQ xmm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector128 ConvertToVector128UInt32WithTruncation(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtpd_epu64 (__m128d a) + /// VCVTPD2UQQ xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 ConvertToVector128UInt64(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvtps_epu64 (__m128 a) + /// VCVTPS2UQQ xmm1 {k1}{z}, xmm2/m64/m32bcst + /// + public static Vector128 ConvertToVector128UInt64(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvttpd_epu64 (__m128d a) + /// VCVTTPD2UQQ xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 ConvertToVector128UInt64WithTruncation(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_cvttps_epu64 (__m128 a) + /// VCVTTPS2UQQ xmm1 {k1}{z}, xmm2/m64/m32bcst + /// + public static Vector128 ConvertToVector128UInt64WithTruncation(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256d _mm512_cvtepu32_pd (__m128i a) + /// VCVTUDQ2PD ymm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector256 ConvertToVector256Double(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256d _mm256_cvtepi64_pd (__m256i a) + /// VCVTQQ2PD ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 ConvertToVector256Double(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256d _mm256_cvtepu64_pd (__m256i a) + /// VCVTUQQ2PD ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 ConvertToVector256Double(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cvtps_epi64 (__m128 a) + /// VCVTPS2QQ ymm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector256 ConvertToVector256Int64(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cvtpd_epi64 (__m256d a) + /// VCVTPD2QQ ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 ConvertToVector256Int64(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cvttps_epi64 (__m128 a) + /// VCVTTPS2QQ ymm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector256 ConvertToVector256Int64WithTruncation(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cvttpd_epi64 (__m256d a) + /// VCVTTPD2QQ ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 ConvertToVector256Int64WithTruncation(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256 _mm256_cvtepu32_ps (__m256i a) + /// VCVTUDQ2PS ymm1 {k1}{z}, ymm2/m256/m32bcst + /// + public static Vector256 ConvertToVector256Single(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cvtps_epu32 (__m256 a) + /// VCVTPS2UDQ ymm1 {k1}{z}, ymm2/m256/m32bcst + /// + public static Vector256 ConvertToVector256UInt32(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cvttps_epu32 (__m256 a) + /// VCVTTPS2UDQ ymm1 {k1}{z}, ymm2/m256/m32bcst + /// + public static Vector256 ConvertToVector256UInt32WithTruncation(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cvtps_epu64 (__m128 a) + /// VCVTPS2UQQ ymm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector256 ConvertToVector256UInt64(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cvtpd_epu64 (__m256d a) + /// VCVTPD2UQQ ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 ConvertToVector256UInt64(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cvttps_epu64 (__m128 a) + /// VCVTTPS2UQQ ymm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector256 ConvertToVector256UInt64WithTruncation(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_cvttpd_epu64 (__m256d a) + /// VCVTTPD2UQQ ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 ConvertToVector256UInt64WithTruncation(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_conflict_epi32 (__m128i a) + /// VPCONFLICTD xmm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector128 DetectConflicts(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_conflict_epi64 (__m128i a) + /// VPCONFLICTQ xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 DetectConflicts(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_conflict_epi32 (__m128i a) + /// VPCONFLICTD xmm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector128 DetectConflicts(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_conflict_epi64 (__m128i a) + /// VPCONFLICTQ xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 DetectConflicts(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_conflict_epi32 (__m256i a) + /// VPCONFLICTD ymm1 {k1}{z}, ymm2/m256/m32bcst + /// + public static Vector256 DetectConflicts(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_conflict_epi64 (__m256i a) + /// VPCONFLICTQ ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 DetectConflicts(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_conflict_epi32 (__m256i a) + /// VPCONFLICTD ymm1 {k1}{z}, ymm2/m256/m32bcst + /// + public static Vector256 DetectConflicts(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_conflict_epi64 (__m256i a) + /// VPCONFLICTQ ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 DetectConflicts(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_div_round_sd (__m128d a, __m128d b, int rounding) + /// VDIVSS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 DivideScalar(Vector128 left, Vector128 right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_div_round_ss (__m128 a, __m128 b, int rounding) + /// VDIVSD xmm1, xmm2, xmm3 {er} + /// + public static Vector128 DivideScalar(Vector128 left, Vector128 right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_fixupimm_pd(__m128d a, __m128d b, __m128i tbl, int imm); + /// VFIXUPIMMPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst, imm8 + /// + public static Vector128 Fixup(Vector128 left, Vector128 right, Vector128 table, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_fixupimm_ps(__m128 a, __m128 b, __m128i tbl, int imm); + /// VFIXUPIMMPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst, imm8 + /// + public static Vector128 Fixup(Vector128 left, Vector128 right, Vector128 table, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256d _mm256_fixupimm_pd(__m256d a, __m256d b, __m256i tbl, int imm); + /// VFIXUPIMMPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 + /// + public static Vector256 Fixup(Vector256 left, Vector256 right, Vector256 table, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256 _mm256_fixupimm_ps(__m256 a, __m256 b, __m256i tbl, int imm); + /// VFIXUPIMMPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 + /// + public static Vector256 Fixup(Vector256 left, Vector256 right, Vector256 table, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_fixupimm_sd(__m128d a, __m128d b, __m128i tbl, int imm); + /// VFIXUPIMMSD xmm1 {k1}{z}, xmm2, xmm3/m64{sae}, imm8 + /// + public static Vector128 FixupScalar(Vector128 left, Vector128 right, Vector128 table, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_fixupimm_ss(__m128 a, __m128 b, __m128i tbl, int imm); + /// VFIXUPIMMSS xmm1 {k1}{z}, xmm2, xmm3/m32{sae}, imm8 + /// + public static Vector128 FixupScalar(Vector128 left, Vector128 right, Vector128 table, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_fnmadd_round_sd (__m128d a, __m128d b, __m128d c, int r) + /// VFNMADDSD xmm1, xmm2, xmm3 {er} + /// + public static Vector128 FusedMultiplyAddNegatedScalar(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_fnmadd_round_ss (__m128 a, __m128 b, __m128 c, int r) + /// VFNMADDSS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 FusedMultiplyAddNegatedScalar(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_fmadd_round_sd (__m128d a, __m128d b, __m128d c, int r) + /// VFMADDSD xmm1, xmm2, xmm3 {er} + /// + public static Vector128 FusedMultiplyAddScalar(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_fmadd_round_ss (__m128 a, __m128 b, __m128 c, int r) + /// VFMADDSS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 FusedMultiplyAddScalar(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_fnmsub_round_sd (__m128d a, __m128d b, __m128d c, int r) + /// VFNMSUBSS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 FusedMultiplySubtractNegatedScalar(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_fnmsub_round_ss (__m128 a, __m128 b, __m128 c, int r) + /// VFNMSUBSS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 FusedMultiplySubtractNegatedScalar(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_fmsub_round_sd (__m128d a, __m128d b, __m128d c, int r) + /// VFMSUBSS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 FusedMultiplySubtractScalar(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_fmsub_round_ss (__m128 a, __m128 b, __m128 c, int r) + /// VFMSUBSS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 FusedMultiplySubtractScalar(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_getexp_pd (__m128d a) + /// VGETEXPPD xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 GetExponent(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_getexp_ps (__m128 a) + /// VGETEXPPS xmm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector128 GetExponent(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256d _mm256_getexp_pd (__m256d a) + /// VGETEXPPD ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 GetExponent(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256 _mm256_getexp_ps (__m256 a) + /// VGETEXPPS ymm1 {k1}{z}, ymm2/m256/m32bcst + /// + public static Vector256 GetExponent(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_getexp_sd (__m128d a, __m128d b) + /// VGETEXPSD xmm1 {k1}{z}, xmm2, xmm3/m64{sae} + /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. + /// + public static Vector128 GetExponentScalar(Vector128 upper, Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_getexp_sd (__m128d a) + /// VGETEXPSD xmm1 {k1}{z}, xmm2, xmm3/m64{sae} + /// + public static Vector128 GetExponentScalar(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_getexp_ss (__m128 a, __m128 b) + /// VGETEXPSS xmm1 {k1}{z}, xmm2, xmm3/m32{sae} + /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. + /// + public static Vector128 GetExponentScalar(Vector128 upper, Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_getexp_ss (__m128 a) + /// VGETEXPSS xmm1 {k1}{z}, xmm2, xmm3/m32{sae} + /// + public static Vector128 GetExponentScalar(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_getmant_pd (__m128d a) + /// VGETMANTPD xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 GetMantissa(Vector128 value, [ConstantExpected(Max = (byte)(0x0F))] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_getmant_ps (__m128 a) + /// VGETMANTPS xmm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector128 GetMantissa(Vector128 value, [ConstantExpected(Max = (byte)(0x0F))] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256d _mm256_getmant_pd (__m256d a) + /// VGETMANTPD ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 GetMantissa(Vector256 value, [ConstantExpected(Max = (byte)(0x0F))] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256 _mm256_getmant_ps (__m256 a) + /// VGETMANTPS ymm1 {k1}{z}, ymm2/m256/m32bcst + /// + public static Vector256 GetMantissa(Vector256 value, [ConstantExpected(Max = (byte)(0x0F))] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_getmant_sd (__m128d a, __m128d b) + /// VGETMANTSD xmm1 {k1}{z}, xmm2, xmm3/m64{sae} + /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. + /// + public static Vector128 GetMantissaScalar(Vector128 upper, Vector128 value, [ConstantExpected(Max = (byte)(0x0F))] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_getmant_sd (__m128d a) + /// VGETMANTSD xmm1 {k1}{z}, xmm2, xmm3/m64{sae} + /// + public static Vector128 GetMantissaScalar(Vector128 value, [ConstantExpected(Max = (byte)(0x0F))] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_getmant_ss (__m128 a, __m128 b) + /// VGETMANTSS xmm1 {k1}{z}, xmm2, xmm3/m32{sae} + /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. + /// + public static Vector128 GetMantissaScalar(Vector128 upper, Vector128 value, [ConstantExpected(Max = (byte)(0x0F))] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_getmant_ss (__m128 a) + /// VGETMANTSS xmm1 {k1}{z}, xmm2, xmm3/m32{sae} + /// + public static Vector128 GetMantissaScalar(Vector128 value, [ConstantExpected(Max = (byte)(0x0F))] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_lzcnt_epi32 (__m128i a) + /// VPLZCNTD xmm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector128 LeadingZeroCount(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_lzcnt_epi64 (__m128i a) + /// VPLZCNTQ xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 LeadingZeroCount(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_lzcnt_epi32 (__m128i a) + /// VPLZCNTD xmm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector128 LeadingZeroCount(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_lzcnt_epi64 (__m128i a) + /// VPLZCNTQ xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 LeadingZeroCount(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_lzcnt_epi32 (__m256i a) + /// VPLZCNTD ymm1 {k1}{z}, ymm2/m256/m32bcst + /// + public static Vector256 LeadingZeroCount(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_lzcnt_epi64 (__m256i a) + /// VPLZCNTQ ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 LeadingZeroCount(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_lzcnt_epi32 (__m256i a) + /// VPLZCNTD ymm1 {k1}{z}, ymm2/m256/m32bcst + /// + public static Vector256 LeadingZeroCount(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_lzcnt_epi64 (__m256i a) + /// VPLZCNTQ ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 LeadingZeroCount(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_max_epi64 (__m128i a, __m128i b) + /// VPMAXSQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 Max(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_max_epu64 (__m128i a, __m128i b) + /// VPMAXUQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 Max(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_max_epi64 (__m256i a, __m256i b) + /// VPMAXSQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 Max(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_max_epu64 (__m256i a, __m256i b) + /// VPMAXUQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 Max(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_min_epi64 (__m128i a, __m128i b) + /// VPMINSQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 Min(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_min_epu64 (__m128i a, __m128i b) + /// VPMINUQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 Min(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_min_epi64 (__m256i a, __m256i b) + /// VPMINSQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 Min(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_min_epu64 (__m256i a, __m256i b) + /// VPMINUQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 Min(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_fmadd_ps (__m128 a, __m128 b, __m128 c) + /// VFMADDPS xmm1, xmm2, xmm3/m128 + /// VFMADDPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 MultiplyAdd(Vector128 a, Vector128 b, Vector128 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_fmadd_pd (__m128d a, __m128d b, __m128d c) + /// VFMADDPD xmm1, xmm2, xmm3/m128 + /// VFMADDPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 MultiplyAdd(Vector128 a, Vector128 b, Vector128 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m256 _mm256_fmadd_ps (__m256 a, __m256 b, __m256 c) + /// VFMADDPS ymm1, ymm2, ymm3/m256 + /// VFMADDPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 MultiplyAdd(Vector256 a, Vector256 b, Vector256 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m256d _mm256_fmadd_pd (__m256d a, __m256d b, __m256d c) + /// VFMADDPD ymm1, ymm2, ymm3/m256 + /// VFMADDPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 MultiplyAdd(Vector256 a, Vector256 b, Vector256 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_fnmadd_ps (__m128 a, __m128 b, __m128 c) + /// VFNMADDPS xmm1, xmm2, xmm3/m128 + /// VFNMADDPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 MultiplyAddNegated(Vector128 a, Vector128 b, Vector128 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_fnmadd_pd (__m128d a, __m128d b, __m128d c) + /// VFNMADDPD xmm1, xmm2, xmm3/m128 + /// VFNMADDPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 MultiplyAddNegated(Vector128 a, Vector128 b, Vector128 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m256 _mm256_fnmadd_ps (__m256 a, __m256 b, __m256 c) + /// VFNMADDPS ymm1, ymm2, ymm3/m256 + /// VFNMADDPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 MultiplyAddNegated(Vector256 a, Vector256 b, Vector256 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m256d _mm256_fnmadd_pd (__m256d a, __m256d b, __m256d c) + /// VFNMADDPD ymm1, ymm2, ymm3/m256 + /// VFNMADDPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 MultiplyAddNegated(Vector256 a, Vector256 b, Vector256 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_fnmadd_ss (__m128 a, __m128 b, __m128 c) + /// VFNMADDSS xmm1, xmm2, xmm3/m32 + /// VFNMADDSS xmm1 {k1}{z}, xmm2, xmm3/m32{er} + /// + public static Vector128 MultiplyAddNegatedScalar(Vector128 a, Vector128 b, Vector128 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_fnmadd_sd (__m128d a, __m128d b, __m128d c) + /// VFNMADDSD xmm1, xmm2, xmm3/m64 + /// VFNMADDSD xmm1 {k1}{z}, xmm2, xmm3/m64{er} + /// + public static Vector128 MultiplyAddNegatedScalar(Vector128 a, Vector128 b, Vector128 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_fmadd_ss (__m128 a, __m128 b, __m128 c) + /// VFMADDSS xmm1, xmm2, xmm3/m32 + /// VFMADDSS xmm1 {k1}{z}, xmm2, xmm3/m32{er} + /// + public static Vector128 MultiplyAddScalar(Vector128 a, Vector128 b, Vector128 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_fmadd_sd (__m128d a, __m128d b, __m128d c) + /// VFMADDSD xmm1, xmm2, xmm3/m64 + /// VFMADDSD xmm1 {k1}{z}, xmm2, xmm3/m64{er} + /// + public static Vector128 MultiplyAddScalar(Vector128 a, Vector128 b, Vector128 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_fmaddsub_ps (__m128 a, __m128 b, __m128 c) + /// VFMADDSUBPS xmm1, xmm2, xmm3/m128 + /// VFMADDSUBPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 MultiplyAddSubtract(Vector128 a, Vector128 b, Vector128 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_fmaddsub_pd (__m128d a, __m128d b, __m128d c) + /// VFMADDSUBPD xmm1, xmm2, xmm3/m128 + /// VFMADDSUBPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 MultiplyAddSubtract(Vector128 a, Vector128 b, Vector128 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m256 _mm256_fmaddsub_ps (__m256 a, __m256 b, __m256 c) + /// VFMADDSUBPS ymm1, ymm2, ymm3/m256 + /// VFMADDSUBPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 MultiplyAddSubtract(Vector256 a, Vector256 b, Vector256 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m256d _mm256_fmaddsub_pd (__m256d a, __m256d b, __m256d c) + /// VFMADDSUBPD ymm1, ymm2, ymm3/m256 + /// VFMADDSUBPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 MultiplyAddSubtract(Vector256 a, Vector256 b, Vector256 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_mullo_epi64 (__m128i a, __m128i b) + /// VPMULLQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 MultiplyLow(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_mullo_epi64 (__m128i a, __m128i b) + /// VPMULLQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 MultiplyLow(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_mullo_epi64 (__m256i a, __m256i b) + /// VPMULLQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 MultiplyLow(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_mullo_epi64 (__m256i a, __m256i b) + /// VPMULLQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 MultiplyLow(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_mul_round_sd (__m128d a, __m128d b, int rounding) + /// VMULSD xmm1, xmm2, xmm3 {er} + /// + public static Vector128 MultiplyScalar(Vector128 left, Vector128 right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_mul_round_ss (__m128 a, __m128 b, int rounding) + /// VMULSS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 MultiplyScalar(Vector128 left, Vector128 right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_fmsub_ps (__m128 a, __m128 b, __m128 c) + /// VFMSUBPS xmm1, xmm2, xmm3/m128 + /// VFMSUBPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 MultiplySubtract(Vector128 a, Vector128 b, Vector128 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_fmsub_pd (__m128d a, __m128d b, __m128d c) + /// VFMSUBPD xmm1, xmm2, xmm3/m128 + /// VFMSUBPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 MultiplySubtract(Vector128 a, Vector128 b, Vector128 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m256 _mm256_fmsub_ps (__m256 a, __m256 b, __m256 c) + /// VFMSUBPS ymm1, ymm2, ymm3/m256 + /// VFMSUBPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 MultiplySubtract(Vector256 a, Vector256 b, Vector256 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m256d _mm256_fmsub_pd (__m256d a, __m256d b, __m256d c) + /// VFMSUBPD ymm1, ymm2, ymm3/m256 + /// VFMSUBPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 MultiplySubtract(Vector256 a, Vector256 b, Vector256 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_fmsubadd_ps (__m128 a, __m128 b, __m128 c) + /// VFMSUBADDPS xmm1, xmm2, xmm3/m128 + /// VFMSUBADDPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 MultiplySubtractAdd(Vector128 a, Vector128 b, Vector128 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_fmsubadd_pd (__m128d a, __m128d b, __m128d c) + /// VFMSUBADDPD xmm1, xmm2, xmm3/m128 + /// VFMSUBADDPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 MultiplySubtractAdd(Vector128 a, Vector128 b, Vector128 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m256 _mm256_fmsubadd_ps (__m256 a, __m256 b, __m256 c) + /// VFMSUBADDPS ymm1, ymm2, ymm3/m256 + /// VFMSUBADDPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 MultiplySubtractAdd(Vector256 a, Vector256 b, Vector256 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m256d _mm256_fmsubadd_pd (__m256d a, __m256d b, __m256d c) + /// VFMSUBADDPD ymm1, ymm2, ymm3/m256 + /// VFMSUBADDPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 MultiplySubtractAdd(Vector256 a, Vector256 b, Vector256 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_fnmsub_ps (__m128 a, __m128 b, __m128 c) + /// VFNMSUBPS xmm1, xmm2, xmm3/m128 + /// VFNMSUBPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 MultiplySubtractNegated(Vector128 a, Vector128 b, Vector128 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_fnmsub_pd (__m128d a, __m128d b, __m128d c) + /// VFNMSUBPD xmm1, xmm2, xmm3/m128 + /// VFNMSUBPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 MultiplySubtractNegated(Vector128 a, Vector128 b, Vector128 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m256 _mm256_fnmsub_ps (__m256 a, __m256 b, __m256 c) + /// VFNMSUBPS ymm1, ymm2, ymm3/m256 + /// VFNMSUBPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 MultiplySubtractNegated(Vector256 a, Vector256 b, Vector256 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m256d _mm256_fnmsub_pd (__m256d a, __m256d b, __m256d c) + /// VFNMSUBPD ymm1, ymm2, ymm3/m256 + /// VFNMSUBPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 MultiplySubtractNegated(Vector256 a, Vector256 b, Vector256 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_fnmsub_ss (__m128 a, __m128 b, __m128 c) + /// VFNMSUBSS xmm1, xmm2, xmm3/m32 + /// VFNMSUBSS xmm1 {k1}{z}, xmm2, xmm3/m32{er} + /// + public static Vector128 MultiplySubtractNegatedScalar(Vector128 a, Vector128 b, Vector128 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_fnmsub_sd (__m128d a, __m128d b, __m128d c) + /// VFNMSUBSD xmm1, xmm2, xmm3/m64 + /// VFNMSUBSD xmm1 {k1}{z}, xmm2, xmm3/m64{er} + /// + public static Vector128 MultiplySubtractNegatedScalar(Vector128 a, Vector128 b, Vector128 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_fmsub_sd (__m128d a, __m128d b, __m128d c) + /// VFMSUBSD xmm1, xmm2, xmm3/m64 + /// VFMSUBSD xmm1 {k1}{z}, xmm2, xmm3/m64{er} + /// + public static Vector128 MultiplySubtractScalar(Vector128 a, Vector128 b, Vector128 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_fmsub_ss (__m128 a, __m128 b, __m128 c) + /// VFMSUBSS xmm1, xmm2, xmm3/m32 + /// VFMSUBSS xmm1 {k1}{z}, xmm2, xmm3/m32{er} + /// + public static Vector128 MultiplySubtractScalar(Vector128 a, Vector128 b, Vector128 c) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_permutevar16x16_epi16 (__m256i a, __m256i b) + /// VPERMW ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 PermuteVar16x16(Vector256 left, Vector256 control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_permutevar16x16_epi16 (__m256i a, __m256i b) + /// VPERMW ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 PermuteVar16x16(Vector256 left, Vector256 control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_permutex2var_epi16 (__m256i a, __m256i idx, __m256i b) + /// VPERMI2W ymm1 {k1}{z}, ymm2, ymm3/m256 + /// VPERMT2W ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 PermuteVar16x16x2(Vector256 lower, Vector256 indices, Vector256 upper) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_permutex2var_epi16 (__m256i a, __m256i idx, __m256i b) + /// VPERMI2W ymm1 {k1}{z}, ymm2, ymm3/m256 + /// VPERMT2W ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 PermuteVar16x16x2(Vector256 lower, Vector256 indices, Vector256 upper) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_permutevar64x8_epi8 (__m128i a, __m128i b) + /// VPERMB xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 PermuteVar16x8(Vector128 left, Vector128 control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_permutevar64x8_epi8 (__m128i a, __m128i b) + /// VPERMB xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 PermuteVar16x8(Vector128 left, Vector128 control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_permutex2var_epi8 (__m128i a, __m128i idx, __m128i b) + /// VPERMI2B xmm1 {k1}{z}, xmm2, xmm3/m128 + /// VPERMT2B xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 PermuteVar16x8x2(Vector128 lower, Vector128 indices, Vector128 upper) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_permutex2var_epi8 (__m128i a, __m128i idx, __m128i b) + /// VPERMI2B xmm1 {k1}{z}, xmm2, xmm3/m128 + /// VPERMT2B xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 PermuteVar16x8x2(Vector128 lower, Vector128 indices, Vector128 upper) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_permutex2var_pd (__m128d a, __m128i idx, __m128i b) + /// VPERMI2PD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// VPERMT2PD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 PermuteVar2x64x2(Vector128 lower, Vector128 indices, Vector128 upper) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_permutex2var_epi64 (__m128i a, __m128i idx, __m128i b) + /// VPERMI2Q xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// VPERMT2Q xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 PermuteVar2x64x2(Vector128 lower, Vector128 indices, Vector128 upper) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_permutex2var_epi64 (__m128i a, __m128i idx, __m128i b) + /// VPERMI2Q xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// VPERMT2Q xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 PermuteVar2x64x2(Vector128 lower, Vector128 indices, Vector128 upper) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_permutevar64x8_epi8 (__m256i a, __m256i b) + /// VPERMB ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 PermuteVar32x8(Vector256 left, Vector256 control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_permutevar64x8_epi8 (__m256i a, __m256i b) + /// VPERMB ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 PermuteVar32x8(Vector256 left, Vector256 control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_permutex2var_epi8 (__m256i a, __m256i idx, __m256i b) + /// VPERMI2B ymm1 {k1}{z}, ymm2, ymm3/m256 + /// VPERMT2B ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 PermuteVar32x8x2(Vector256 lower, Vector256 indices, Vector256 upper) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_permutex2var_epi8 (__m256i a, __m256i idx, __m256i b) + /// VPERMI2B ymm1 {k1}{z}, ymm2, ymm3/m256 + /// VPERMT2B ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 PermuteVar32x8x2(Vector256 lower, Vector256 indices, Vector256 upper) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_permutex2var_ps (__m128 a, __m128i idx, __m128i b) + /// VPERMI2PS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// VPERMT2PS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 PermuteVar4x32x2(Vector128 lower, Vector128 indices, Vector128 upper) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_permutex2var_epi32 (__m128i a, __m128i idx, __m128i b) + /// VPERMI2D xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// VPERMT2D xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 PermuteVar4x32x2(Vector128 lower, Vector128 indices, Vector128 upper) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_permutex2var_epi32 (__m128i a, __m128i idx, __m128i b) + /// VPERMI2D xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// VPERMT2D xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 PermuteVar4x32x2(Vector128 lower, Vector128 indices, Vector128 upper) { throw new PlatformNotSupportedException(); } + + /// + /// __m256d _mm256_permute4x64_pd (__m256d a, __m256i b) + /// VPERMPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 PermuteVar4x64(Vector256 value, Vector256 control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_permute4x64_epi64 (__m256i a, __m256i b) + /// VPERMQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 PermuteVar4x64(Vector256 value, Vector256 control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_permute4x64_pd (__m256d a, __m256i b) + /// VPERMQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 PermuteVar4x64(Vector256 value, Vector256 control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256d _mm256_permutex2var_pd (__m256d a, __m256i idx, __m256i b) + /// VPERMI2PD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// VPERMT2PD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 PermuteVar4x64x2(Vector256 lower, Vector256 indices, Vector256 upper) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_permutex2var_epi64 (__m256i a, __m256i idx, __m256i b) + /// VPERMI2Q ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// VPERMT2Q ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 PermuteVar4x64x2(Vector256 lower, Vector256 indices, Vector256 upper) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_permutex2var_epi64 (__m256i a, __m256i idx, __m256i b) + /// VPERMI2Q ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// VPERMT2Q ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 PermuteVar4x64x2(Vector256 lower, Vector256 indices, Vector256 upper) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_permutevar8x16_epi16 (__m128i a, __m128i b) + /// VPERMW xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 PermuteVar8x16(Vector128 left, Vector128 control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_permutevar8x16_epi16 (__m128i a, __m128i b) + /// VPERMW xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 PermuteVar8x16(Vector128 left, Vector128 control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_permutex2var_epi16 (__m128i a, __m128i idx, __m128i b) + /// VPERMI2W xmm1 {k1}{z}, xmm2, xmm3/m128 + /// VPERMT2W xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 PermuteVar8x16x2(Vector128 lower, Vector128 indices, Vector128 upper) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_permutex2var_epi16 (__m128i a, __m128i idx, __m128i b) + /// VPERMI2W xmm1 {k1}{z}, xmm2, xmm3/m128 + /// VPERMT2W xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 PermuteVar8x16x2(Vector128 lower, Vector128 indices, Vector128 upper) { throw new PlatformNotSupportedException(); } + + /// + /// __m256 _mm256_permutex2var_ps (__m256 a, __m256i idx, __m256i b) + /// VPERMI2PS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// VPERMT2PS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 PermuteVar8x32x2(Vector256 lower, Vector256 indices, Vector256 upper) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_permutex2var_epi32 (__m256i a, __m256i idx, __m256i b) + /// VPERMI2D ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// VPERMT2D ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 PermuteVar8x32x2(Vector256 lower, Vector256 indices, Vector256 upper) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_permutex2var_epi32 (__m256i a, __m256i idx, __m256i b) + /// VPERMI2D ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// VPERMT2D ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 PermuteVar8x32x2(Vector256 lower, Vector256 indices, Vector256 upper) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_range_pd(__m128d a, __m128d b, int imm); + /// VRANGEPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst, imm8 + /// + public static Vector128 Range(Vector128 left, Vector128 right, [ConstantExpected(Max = (byte)(0x0F))] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_range_ps(__m128 a, __m128 b, int imm); + /// VRANGEPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst, imm8 + /// + public static Vector128 Range(Vector128 left, Vector128 right, [ConstantExpected(Max = (byte)(0x0F))] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256d _mm256_range_pd(__m256d a, __m256d b, int imm); + /// VRANGEPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 + /// + public static Vector256 Range(Vector256 left, Vector256 right, [ConstantExpected(Max = (byte)(0x0F))] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256 _mm256_range_ps(__m256 a, __m256 b, int imm); + /// VRANGEPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 + /// + public static Vector256 Range(Vector256 left, Vector256 right, [ConstantExpected(Max = (byte)(0x0F))] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_range_sd(__m128d a, __m128d b, int imm); + /// VRANGESD xmm1 {k1}{z}, xmm2, xmm3/m64{sae}, imm8 + /// + public static Vector128 RangeScalar(Vector128 left, Vector128 right, [ConstantExpected(Max = (byte)(0x0F))] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_range_ss(__m128 a, __m128 b, int imm); + /// VRANGESS xmm1 {k1}{z}, xmm2, xmm3/m32{sae}, imm8 + /// + public static Vector128 RangeScalar(Vector128 left, Vector128 right, [ConstantExpected(Max = (byte)(0x0F))] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_rcp14_pd (__m128d a, __m128d b) + /// VRCP14PD xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 Reciprocal14(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_rcp14_ps (__m128 a, __m128 b) + /// VRCP14PS xmm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector128 Reciprocal14(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256d _mm256_rcp14_pd (__m256d a, __m256d b) + /// VRCP14PD ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 Reciprocal14(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256 _mm256_rcp14_ps (__m256 a, __m256 b) + /// VRCP14PS ymm1 {k1}{z}, ymm2/m256/m32bcst + /// + public static Vector256 Reciprocal14(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_rcp14_sd (__m128d a, __m128d b) + /// VRCP14SD xmm1 {k1}{z}, xmm2, xmm3/m64 + /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. + /// + public static Vector128 Reciprocal14Scalar(Vector128 upper, Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_rcp14_sd (__m128d a) + /// VRCP14SD xmm1 {k1}{z}, xmm2, xmm3/m64 + /// + public static Vector128 Reciprocal14Scalar(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_rcp14_ss (__m128 a, __m128 b) + /// VRCP14SS xmm1 {k1}{z}, xmm2, xmm3/m32 + /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. + /// + public static Vector128 Reciprocal14Scalar(Vector128 upper, Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_rcp14_ss (__m128 a) + /// VRCP14SS xmm1 {k1}{z}, xmm2, xmm3/m32 + /// + public static Vector128 Reciprocal14Scalar(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_rsqrt14_pd (__m128d a, __m128d b) + /// VRSQRT14PD xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 ReciprocalSqrt14(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_rsqrt14_ps (__m128 a, __m128 b) + /// VRSQRT14PS xmm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector128 ReciprocalSqrt14(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256d _mm256_rsqrt14_pd (__m256d a, __m256d b) + /// VRSQRT14PD ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 ReciprocalSqrt14(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256 _mm256_rsqrt14_ps (__m256 a, __m256 b) + /// VRSQRT14PS ymm1 {k1}{z}, ymm2/m256/m32bcst + /// + public static Vector256 ReciprocalSqrt14(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_rsqrt14_sd (__m128d a, __m128d b) + /// VRSQRT14SD xmm1 {k1}{z}, xmm2, xmm3/m64 + /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. + /// + public static Vector128 ReciprocalSqrt14Scalar(Vector128 upper, Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_rsqrt14_sd (__m128d a) + /// VRSQRT14SD xmm1 {k1}{z}, xmm2, xmm3/m64 + /// + public static Vector128 ReciprocalSqrt14Scalar(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_rsqrt14_ss (__m128 a, __m128 b) + /// VRSQRT14SS xmm1 {k1}{z}, xmm2, xmm3/m32 + /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. + /// + public static Vector128 ReciprocalSqrt14Scalar(Vector128 upper, Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_rsqrt14_ss (__m128 a) + /// VRSQRT14SS xmm1 {k1}{z}, xmm2, xmm3/m32 + /// + public static Vector128 ReciprocalSqrt14Scalar(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_reduce_pd(__m128d a, int imm); + /// VREDUCEPD xmm1 {k1}{z}, xmm2/m128/m64bcst, imm8 + /// + public static Vector128 Reduce(Vector128 value, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_reduce_ps(__m128 a, int imm); + /// VREDUCEPS xmm1 {k1}{z}, xmm2/m128/m32bcst, imm8 + /// + public static Vector128 Reduce(Vector128 value, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256d _mm256_reduce_pd(__m256d a, int imm); + /// VREDUCEPD ymm1 {k1}{z}, ymm2/m256/m64bcst, imm8 + /// + public static Vector256 Reduce(Vector256 value, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256 _mm256_reduce_ps(__m256 a, int imm); + /// VREDUCEPS ymm1 {k1}{z}, ymm2/m256/m32bcst, imm8 + /// + public static Vector256 Reduce(Vector256 value, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_reduce_sd(__m128d a, __m128d b, int imm); + /// VREDUCESD xmm1 {k1}{z}, xmm2, xmm3/m64{sae}, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. + /// + public static Vector128 ReduceScalar(Vector128 upper, Vector128 value, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_reduce_sd(__m128d a, int imm); + /// VREDUCESD xmm1 {k1}{z}, xmm2, xmm3/m64{sae}, imm8 + /// + public static Vector128 ReduceScalar(Vector128 value, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_reduce_ss(__m128 a, __m128 b, int imm); + /// VREDUCESS xmm1 {k1}{z}, xmm2, xmm3/m32{sae}, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. + /// + public static Vector128 ReduceScalar(Vector128 upper, Vector128 value, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_reduce_ss(__m128 a, int imm); + /// VREDUCESS xmm1 {k1}{z}, xmm2, xmm3/m32{sae}, imm8 + /// + public static Vector128 ReduceScalar(Vector128 value, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_rol_epi32 (__m128i a, int imm8) + /// VPROLD xmm1 {k1}{z}, xmm2/m128/m32bcst, imm8 + /// + public static Vector128 RotateLeft(Vector128 value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_rol_epi64 (__m128i a, int imm8) + /// VPROLQ xmm1 {k1}{z}, xmm2/m128/m64bcst, imm8 + /// + public static Vector128 RotateLeft(Vector128 value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_rol_epi32 (__m128i a, int imm8) + /// VPROLD xmm1 {k1}{z}, xmm2/m128/m32bcst, imm8 + /// + public static Vector128 RotateLeft(Vector128 value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_rol_epi64 (__m128i a, int imm8) + /// VPROLQ xmm1 {k1}{z}, xmm2/m128/m64bcst, imm8 + /// + public static Vector128 RotateLeft(Vector128 value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_rol_epi32 (__m256i a, int imm8) + /// VPROLD ymm1 {k1}{z}, ymm2/m256/m32bcst, imm8 + /// + public static Vector256 RotateLeft(Vector256 value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_rol_epi64 (__m256i a, int imm8) + /// VPROLQ ymm1 {k1}{z}, ymm2/m256/m64bcst, imm8 + /// + public static Vector256 RotateLeft(Vector256 value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_rol_epi32 (__m256i a, int imm8) + /// VPROLD ymm1 {k1}{z}, ymm2/m256/m32bcst, imm8 + /// + public static Vector256 RotateLeft(Vector256 value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_rol_epi64 (__m256i a, int imm8) + /// VPROLQ ymm1 {k1}{z}, ymm2/m256/m64bcst, imm8 + /// + public static Vector256 RotateLeft(Vector256 value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_rolv_epi32 (__m128i a, __m128i b) + /// VPROLDV xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 RotateLeftVariable(Vector128 value, Vector128 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_rolv_epi64 (__m128i a, __m128i b) + /// VPROLQV xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 RotateLeftVariable(Vector128 value, Vector128 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_rolv_epi32 (__m128i a, __m128i b) + /// VPROLDV xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 RotateLeftVariable(Vector128 value, Vector128 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_rolv_epi64 (__m128i a, __m128i b) + /// VPROLQV xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 RotateLeftVariable(Vector128 value, Vector128 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_rolv_epi32 (__m256i a, __m256i b) + /// VPROLDV ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 RotateLeftVariable(Vector256 value, Vector256 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_rolv_epi64 (__m256i a, __m256i b) + /// VPROLQV ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 RotateLeftVariable(Vector256 value, Vector256 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_rolv_epi32 (__m256i a, __m256i b) + /// VPROLDV ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 RotateLeftVariable(Vector256 value, Vector256 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_rolv_epi64 (__m256i a, __m256i b) + /// VPROLQV ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 RotateLeftVariable(Vector256 value, Vector256 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_ror_epi32 (__m128i a, int imm8) + /// VPRORD xmm1 {k1}{z}, xmm2/m128/m32bcst, imm8 + /// + public static Vector128 RotateRight(Vector128 value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_ror_epi64 (__m128i a, int imm8) + /// VPRORQ xmm1 {k1}{z}, xmm2/m128/m64bcst, imm8 + /// + public static Vector128 RotateRight(Vector128 value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_ror_epi32 (__m128i a, int imm8) + /// VPRORD xmm1 {k1}{z}, xmm2/m128/m32bcst, imm8 + /// + public static Vector128 RotateRight(Vector128 value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_ror_epi64 (__m128i a, int imm8) + /// VPRORQ xmm1 {k1}{z}, xmm2/m128/m64bcst, imm8 + /// + public static Vector128 RotateRight(Vector128 value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_ror_epi32 (__m256i a, int imm8) + /// VPRORD ymm1 {k1}{z}, ymm2/m256/m32bcst, imm8 + /// + public static Vector256 RotateRight(Vector256 value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_ror_epi64 (__m256i a, int imm8) + /// VPRORQ ymm1 {k1}{z}, ymm2/m256/m64bcst, imm8 + /// + public static Vector256 RotateRight(Vector256 value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_ror_epi32 (__m256i a, int imm8) + /// VPRORD ymm1 {k1}{z}, ymm2/m256/m32bcst, imm8 + /// + public static Vector256 RotateRight(Vector256 value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_ror_epi64 (__m256i a, int imm8) + /// VPRORQ ymm1 {k1}{z}, ymm2/m256/m64bcst, imm8 + /// + public static Vector256 RotateRight(Vector256 value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_rorv_epi32 (__m128i a, __m128i b) + /// VPRORDV xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 RotateRightVariable(Vector128 value, Vector128 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_rorv_epi64 (__m128i a, __m128i b) + /// VPRORQV xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 RotateRightVariable(Vector128 value, Vector128 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_rorv_epi32 (__m128i a, __m128i b) + /// VPRORDV xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 RotateRightVariable(Vector128 value, Vector128 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_rorv_epi64 (__m128i a, __m128i b) + /// VPRORQV xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 RotateRightVariable(Vector128 value, Vector128 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_rorv_epi32 (__m256i a, __m256i b) + /// VPRORDV ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 RotateRightVariable(Vector256 value, Vector256 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_rorv_epi64 (__m256i a, __m256i b) + /// VPRORQV ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 RotateRightVariable(Vector256 value, Vector256 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_rorv_epi32 (__m256i a, __m256i b) + /// VPRORDV ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 RotateRightVariable(Vector256 value, Vector256 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_rorv_epi64 (__m256i a, __m256i b) + /// VPRORQV ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 RotateRightVariable(Vector256 value, Vector256 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_roundscale_pd (__m128d a, int imm) + /// VRNDSCALEPD xmm1 {k1}{z}, xmm2/m128/m64bcst, imm8 + /// + public static Vector128 RoundScale(Vector128 value, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_roundscale_ps (__m128 a, int imm) + /// VRNDSCALEPS xmm1 {k1}{z}, xmm2/m128/m32bcst, imm8 + /// + public static Vector128 RoundScale(Vector128 value, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256d _mm256_roundscale_pd (__m256d a, int imm) + /// VRNDSCALEPD ymm1 {k1}{z}, ymm2/m256/m64bcst, imm8 + /// + public static Vector256 RoundScale(Vector256 value, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256 _mm256_roundscale_ps (__m256 a, int imm) + /// VRNDSCALEPS ymm1 {k1}{z}, ymm2/m256/m32bcst, imm8 + /// + public static Vector256 RoundScale(Vector256 value, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_roundscale_sd (__m128d a, __m128d b, int imm) + /// VRNDSCALESD xmm1 {k1}{z}, xmm2, xmm3/m64{sae}, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. + /// + public static Vector128 RoundScaleScalar(Vector128 upper, Vector128 value, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_roundscale_sd (__m128d a, int imm) + /// VRNDSCALESD xmm1 {k1}{z}, xmm2, xmm3/m64{sae}, imm8 + /// + public static Vector128 RoundScaleScalar(Vector128 value, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_roundscale_ss (__m128 a, __m128 b, int imm) + /// VRNDSCALESS xmm1 {k1}{z}, xmm2, xmm3/m32{sae}, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. + /// + public static Vector128 RoundScaleScalar(Vector128 upper, Vector128 value, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_roundscale_ss (__m128 a, int imm) + /// VRNDSCALESS xmm1 {k1}{z}, xmm2, xmm3/m32{sae}, imm8 + /// + public static Vector128 RoundScaleScalar(Vector128 value, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_scalef_pd (__m128d a, int imm) + /// VSCALEFPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 Scale(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_scalef_ps (__m128 a, int imm) + /// VSCALEFPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 Scale(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256d _mm256_scalef_pd (__m256d a, int imm) + /// VSCALEFPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 Scale(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m256 _mm256_scalef_ps (__m256 a, int imm) + /// VSCALEFPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 Scale(Vector256 left, Vector256 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_scalef_round_sd (__m128d a, __m128d b) + /// VSCALEFSD xmm1, xmm2, xmm3 {er} + /// + public static Vector128 ScaleScalar(Vector128 left, Vector128 right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_scalef_sd (__m128d a, __m128d b) + /// VSCALEFSD xmm1 {k1}{z}, xmm2, xmm3/m64{er} + /// + public static Vector128 ScaleScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_scalef_round_ss (__m128 a, __m128 b) + /// VSCALEFSS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 ScaleScalar(Vector128 left, Vector128 right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_scalef_ss (__m128 a, __m128 b) + /// VSCALEFSS xmm1 {k1}{z}, xmm2, xmm3/m32{er} + /// + public static Vector128 ScaleScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_sllv_epi16 (__m128i a, __m128i count) + /// VPSLLVW xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 ShiftLeftLogicalVariable(Vector128 value, Vector128 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_sllv_epi16 (__m128i a, __m128i count) + /// VPSLLVW xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 ShiftLeftLogicalVariable(Vector128 value, Vector128 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_sllv_epi16 (__m256i a, __m256i count) + /// VPSLLVW ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 ShiftLeftLogicalVariable(Vector256 value, Vector256 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_sllv_epi16 (__m256i a, __m256i count) + /// VPSLLVW ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 ShiftLeftLogicalVariable(Vector256 value, Vector256 count) { throw new PlatformNotSupportedException(); } + + /// + /// __128i _mm_srai_epi64 (__m128i a, int imm8) + /// VPSRAQ xmm1 {k1}{z}, xmm2, imm8 + /// + public static Vector128 ShiftRightArithmetic(Vector128 value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_sra_epi64 (__m128i a, __m128i count) + /// VPSRAQ xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 ShiftRightArithmetic(Vector128 value, Vector128 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_srai_epi64 (__m256i a, int imm8) + /// VPSRAQ ymm1 {k1}{z}, ymm2, imm8 + /// + public static Vector256 ShiftRightArithmetic(Vector256 value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_sra_epi64 (__m256i a, __m128i count) + /// VPSRAQ ymm1 {k1}{z}, ymm2, xmm3/m128 + /// + public static Vector256 ShiftRightArithmetic(Vector256 value, Vector128 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_srav_epi64 (__m128i a, __m128i count) + /// VPSRAVQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 ShiftRightArithmeticVariable(Vector128 value, Vector128 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_srav_epi16 (__m128i a, __m128i count) + /// VPSRAVW xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 ShiftRightArithmeticVariable(Vector128 value, Vector128 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_srav_epi64 (__m256i a, __m256i count) + /// VPSRAVQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 ShiftRightArithmeticVariable(Vector256 value, Vector256 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_srav_epi16 (__m256i a, __m256i count) + /// VPSRAVW ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 ShiftRightArithmeticVariable(Vector256 value, Vector256 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_srlv_epi16 (__m128i a, __m128i count) + /// VPSRLVW xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 ShiftRightLogicalVariable(Vector128 value, Vector128 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_srlv_epi16 (__m128i a, __m128i count) + /// VPSRLVW xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 ShiftRightLogicalVariable(Vector128 value, Vector128 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_srlv_epi16 (__m256i a, __m256i count) + /// VPSRLVW ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 ShiftRightLogicalVariable(Vector256 value, Vector256 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_srlv_epi16 (__m256i a, __m256i count) + /// VPSRLVW ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 ShiftRightLogicalVariable(Vector256 value, Vector256 count) { throw new PlatformNotSupportedException(); } + + /// + /// __m256d _mm256_shuffle_f64x2 (__m256d a, __m256d b, const int imm8) + /// VSHUFF64x2 ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 + /// + public static Vector256 Shuffle2x128(Vector256 left, Vector256 right, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256 _mm256_shuffle_f32x4 (__m256 a, __m256 b, const int imm8) + /// VSHUFF32x4 ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 + /// + public static Vector256 Shuffle2x128(Vector256 left, Vector256 right, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_shuffle_i32x4 (__m256i a, __m256i b, const int imm8) + /// VSHUFI32x4 ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 + /// + public static Vector256 Shuffle2x128(Vector256 left, Vector256 right, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_shuffle_i64x2 (__m256i a, __m256i b, const int imm8) + /// VSHUFI64x2 ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 + /// + public static Vector256 Shuffle2x128(Vector256 left, Vector256 right, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_shuffle_i32x4 (__m256i a, __m256i b, const int imm8) + /// VSHUFI32x4 ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 + /// + public static Vector256 Shuffle2x128(Vector256 left, Vector256 right, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_shuffle_i64x2 (__m256i a, __m256i b, const int imm8) + /// VSHUFI64x2 ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 + /// + public static Vector256 Shuffle2x128(Vector256 left, Vector256 right, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_sqrt_round_sd (__m128d a, __m128d b, int rounding) + /// VSQRTSD xmm1, xmm2 xmm3 {er} + /// + public static Vector128 SqrtScalar(Vector128 upper, Vector128 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_sqrt_round_ss (__m128 a, __m128 b, int rounding) + /// VSQRTSS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 SqrtScalar(Vector128 upper, Vector128 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_sub_round_sd (__m128d a, __m128d b, int rounding) + /// VSUBSD xmm1, xmm2, xmm3 {er} + /// + public static Vector128 SubtractScalar(Vector128 left, Vector128 right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_sub_round_ss (__m128 a, __m128 b, int rounding) + /// VSUBSS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 SubtractScalar(Vector128 left, Vector128 right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_dbsad_epu8 (__m128i a, __m128i b, int imm8) + /// VDBPSADBW xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 SumAbsoluteDifferencesInBlock32(Vector128 left, Vector128 right, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_dbsad_epu8 (__m256i a, __m256i b, int imm8) + /// VDBPSADBW ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 SumAbsoluteDifferencesInBlock32(Vector256 left, Vector256 right, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_ternarylogic_si128 (__m128i a, __m128i b, __m128i c, byte imm) + /// VPTERNLOGD xmm1 {k1}{z}, xmm2, xmm3/m128, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other bitwise APIs. + /// + public static Vector128 TernaryLogic(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_ternarylogic_pd (__m128d a, __m128d b, __m128d c, int imm) + /// VPTERNLOGQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other bitwise APIs. + /// + public static Vector128 TernaryLogic(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_ternarylogic_ps (__m128 a, __m128 b, __m128 c, int imm) + /// VPTERNLOGD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other bitwise APIs. + /// + public static Vector128 TernaryLogic(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_ternarylogic_epi32 (__m128i a, __m128i b, __m128i c, int imm) + /// VPTERNLOGD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst, imm8 + /// + public static Vector128 TernaryLogic(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_ternarylogic_epi64 (__m128i a, __m128i b, __m128i c, int imm) + /// VPTERNLOGQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst, imm8 + /// + public static Vector128 TernaryLogic(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_ternarylogic_si128 (__m128i a, __m128i b, __m128i c, byte imm) + /// VPTERNLOGD xmm1 {k1}{z}, xmm2, xmm3/m128, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other bitwise APIs. + /// + public static Vector128 TernaryLogic(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_ternarylogic_si128 (__m128i a, __m128i b, __m128i c, short imm) + /// VPTERNLOGD xmm1 {k1}{z}, xmm2, xmm3/m128, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other bitwise APIs. + /// + public static Vector128 TernaryLogic(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_ternarylogic_epi32 (__m128i a, __m128i b, __m128i c, int imm) + /// VPTERNLOGD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst, imm8 + /// + public static Vector128 TernaryLogic(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_ternarylogic_epi64 (__m128i a, __m128i b, __m128i c, int imm) + /// VPTERNLOGQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst, imm8 + /// + public static Vector128 TernaryLogic(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm_ternarylogic_si128 (__m128i a, __m128i b, __m128i c, short imm) + /// VPTERNLOGD xmm1 {k1}{z}, xmm2, xmm3/m128, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other bitwise APIs. + /// + public static Vector128 TernaryLogic(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_ternarylogic_si256 (__m256i a, __m256i b, __m256i c, byte imm) + /// VPTERNLOGD ymm1 {k1}{z}, ymm2, ymm3/m256, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other bitwise APIs. + /// + public static Vector256 TernaryLogic(Vector256 a, Vector256 b, Vector256 c, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256d _mm256_ternarylogic_pd (__m256d a, __m256d b, __m256d c, int imm) + /// VPTERNLOGQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other bitwise APIs. + /// + public static Vector256 TernaryLogic(Vector256 a, Vector256 b, Vector256 c, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256 _mm256_ternarylogic_ps (__m256 a, __m256 b, __m256 c, int imm) + /// VPTERNLOGD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other bitwise APIs. + /// + public static Vector256 TernaryLogic(Vector256 a, Vector256 b, Vector256 c, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_ternarylogic_epi32 (__m256i a, __m256i b, __m256i c, int imm) + /// VPTERNLOGD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 + /// + public static Vector256 TernaryLogic(Vector256 a, Vector256 b, Vector256 c, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_ternarylogic_epi64 (__m256i a, __m256i b, __m256i c, int imm) + /// VPTERNLOGQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 + /// + public static Vector256 TernaryLogic(Vector256 a, Vector256 b, Vector256 c, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_ternarylogic_si256 (__m256i a, __m256i b, __m256i c, byte imm) + /// VPTERNLOGD ymm1 {k1}{z}, ymm2, ymm3/m256, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other bitwise APIs. + /// + public static Vector256 TernaryLogic(Vector256 a, Vector256 b, Vector256 c, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_ternarylogic_si256 (__m256i a, __m256i b, __m256i c, short imm) + /// VPTERNLOGD ymm1 {k1}{z}, ymm2, ymm3/m256, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other bitwise APIs. + /// + public static Vector256 TernaryLogic(Vector256 a, Vector256 b, Vector256 c, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_ternarylogic_epi32 (__m256i a, __m256i b, __m256i c, int imm) + /// VPTERNLOGD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 + /// + public static Vector256 TernaryLogic(Vector256 a, Vector256 b, Vector256 c, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_ternarylogic_epi64 (__m256i a, __m256i b, __m256i c, int imm) + /// VPTERNLOGQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 + /// + public static Vector256 TernaryLogic(Vector256 a, Vector256 b, Vector256 c, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm256_ternarylogic_si256 (__m256i a, __m256i b, __m256i c, short imm) + /// VPTERNLOGD ymm1 {k1}{z}, ymm2, ymm3/m256, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other bitwise APIs. + /// + public static Vector256 TernaryLogic(Vector256 a, Vector256 b, Vector256 c, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + public new abstract class X64 : Avx2.X64 + { + internal X64() { } + + public static new bool IsSupported { [Intrinsic] get { return false; } } + + /// + /// __m128 _mm_cvt_roundi64_ss (__m128 a, __int64 b, int rounding) + /// VCVTSI2SS xmm1, xmm2, r64 {er} + /// This intrinsic is only available on 64-bit processes + /// + public static Vector128 ConvertScalarToVector128Single(Vector128 upper, ulong value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_cvtsi64_ss (__m128 a, __int64 b) + /// VCVTUSI2SS xmm1, xmm2, r/m64 + /// This intrinsic is only available on 64-bit processes + /// + public static Vector128 ConvertScalarToVector128Single(Vector128 upper, long value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m128 _mm_cvt_roundu64_ss (__m128 a, unsigned __int64 b, int rounding) + /// VCVTUSI2SS xmm1, xmm2, r64 {er} + /// This intrinsic is only available on 64-bit processes + /// + public static Vector128 ConvertScalarToVector128Single(Vector128 upper, ulong value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_cvtsi64_sd (__m128d a, __int64 b) + /// VCVTUSI2SD xmm1, xmm2, r/m64 + /// This intrinsic is only available on 64-bit processes + /// + public static Vector128 ConvertScalarToVector128Double(Vector128 upper, ulong value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_cvt_roundsi64_sd (__m128d a, __int64 b, int rounding) + /// VCVTSI2SD xmm1, xmm2, r64 {er} + /// This intrinsic is only available on 64-bit processes + /// + public static Vector128 ConvertScalarToVector128Double(Vector128 upper, long value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm_cvt_roundu64_sd (__m128d a, unsigned __int64 b, int rounding) + /// VCVTUSI2SD xmm1, xmm2, r64 {er} + /// This intrinsic is only available on 64-bit processes + /// + public static Vector128 ConvertScalarToVector128Double(Vector128 upper, ulong value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __int64 _mm_cvt_roundss_i64 (__m128 a, int rounding) + /// VCVTSS2SI r64, xmm1 {er} + /// This intrinsic is only available on 64-bit processes + /// + public static long ConvertToInt64(Vector128 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __int64 _mm_cvt_roundsd_i64 (__m128d a, int rounding) + /// VCVTSD2SI r64, xmm1 {er} + /// This intrinsic is only available on 64-bit processes + /// + public static long ConvertToInt64(Vector128 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// unsigned __int64 _mm_cvtss_u64 (__m128 a) + /// VCVTSS2USI r64, xmm1/m32{er} + /// This intrinsic is only available on 64-bit processes + /// + public static ulong ConvertToUInt64(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// unsigned __int64 _mm_cvt_roundss_u64 (__m128 a, int rounding) + /// VCVTSS2USI r64, xmm1 {er} + /// This intrinsic is only available on 64-bit processes + /// + public static ulong ConvertToUInt64(Vector128 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// unsigned __int64 _mm_cvtsd_u64 (__m128d a) + /// VCVTSD2USI r64, xmm1/m64{er} + /// This intrinsic is only available on 64-bit processes + /// + public static ulong ConvertToUInt64(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// unsigned __int64 _mm_cvt_roundsd_u64 (__m128d a, int rounding) + /// VCVTSD2USI r64, xmm1 {er} + /// This intrinsic is only available on 64-bit processes + /// + public static ulong ConvertToUInt64(Vector128 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// unsigned __int64 _mm_cvttss_u64 (__m128 a) + /// VCVTTSS2USI r64, xmm1/m32{er} + /// This intrinsic is only available on 64-bit processes + /// + public static ulong ConvertToUInt64WithTruncation(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// unsigned __int64 _mm_cvttsd_u64 (__m128d a) + /// VCVTTSD2USI r64, xmm1/m64{er} + /// This intrinsic is only available on 64-bit processes + /// + public static ulong ConvertToUInt64WithTruncation(Vector128 value) { throw new PlatformNotSupportedException(); } + } + + public abstract class V512 : Avx512BW + { + internal V512() { } + + public static new bool IsSupported { [Intrinsic] get { return false; } } + + /// + /// __m512i _mm512_conflict_epi32 (__m512i a) + /// VPCONFLICTD zmm1 {k1}{z}, zmm2/m512/m32bcst + /// + public static Vector512 DetectConflicts(Vector512 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_conflict_epi32 (__m512i a) + /// VPCONFLICTD zmm1 {k1}{z}, zmm2/m512/m32bcst + /// + public static Vector512 DetectConflicts(Vector512 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_conflict_epi64 (__m512i a) + /// VPCONFLICTQ zmm1 {k1}{z}, zmm2/m512/m64bcst + /// + public static Vector512 DetectConflicts(Vector512 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_conflict_epi64 (__m512i a) + /// VPCONFLICTQ zmm1 {k1}{z}, zmm2/m512/m64bcst + /// + public static Vector512 DetectConflicts(Vector512 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_lzcnt_epi32 (__m512i a) + /// VPLZCNTD zmm1 {k1}{z}, zmm2/m512/m32bcst + /// + public static Vector512 LeadingZeroCount(Vector512 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_lzcnt_epi32 (__m512i a) + /// VPLZCNTD zmm1 {k1}{z}, zmm2/m512/m32bcst + /// + public static Vector512 LeadingZeroCount(Vector512 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_lzcnt_epi64 (__m512i a) + /// VPLZCNTQ zmm1 {k1}{z}, zmm2/m512/m64bcst + /// + public static Vector512 LeadingZeroCount(Vector512 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_lzcnt_epi64 (__m512i a) + /// VPLZCNTQ zmm1 {k1}{z}, zmm2/m512/m64bcst + /// + public static Vector512 LeadingZeroCount(Vector512 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m512 _mm512_and_ps (__m512 a, __m512 b) + /// VANDPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst + /// + public static Vector512 And(Vector512 left, Vector512 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m512d _mm512_and_pd (__m512d a, __m512d b) + /// VANDPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst + /// + public static Vector512 And(Vector512 left, Vector512 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m512 _mm512_andnot_ps (__m512 a, __m512 b) + /// VANDNPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst + /// + public static Vector512 AndNot(Vector512 left, Vector512 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m512d _mm512_andnot_pd (__m512d a, __m512d b) + /// VANDNPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst + /// + public static Vector512 AndNot(Vector512 left, Vector512 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_broadcast_i32x2 (__m128i a) + /// VBROADCASTI32x2 zmm1 {k1}{z}, xmm2/m64 + /// + public static Vector512 BroadcastPairScalarToVector512(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_broadcast_i32x2 (__m128i a) + /// VBROADCASTI32x2 zmm1 {k1}{z}, xmm2/m64 + /// + public static Vector512 BroadcastPairScalarToVector512(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m512 _mm512_broadcast_f32x2 (__m128 a) + /// VBROADCASTF32x2 zmm1 {k1}{z}, xmm2/m64 + /// + public static Vector512 BroadcastPairScalarToVector512(Vector128 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_broadcast_i64x2 (__m128i const * mem_addr) + /// VBROADCASTI64x2 zmm1 {k1}{z}, m128 + /// + public static unsafe Vector512 BroadcastVector128ToVector512(long* address) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_broadcast_i64x2 (__m128i const * mem_addr) + /// VBROADCASTI64x2 zmm1 {k1}{z}, m128 + /// + public static unsafe Vector512 BroadcastVector128ToVector512(ulong* address) { throw new PlatformNotSupportedException(); } + + /// + /// __m512d _mm512_broadcast_f64x2 (__m128d const * mem_addr) + /// VBROADCASTF64x2 zmm1 {k1}{z}, m128 + /// + public static unsafe Vector512 BroadcastVector128ToVector512(double* address) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_broadcast_i32x8 (__m256i const * mem_addr) + /// VBROADCASTI32x8 zmm1 {k1}{z}, m256 + /// + public static unsafe Vector512 BroadcastVector256ToVector512(int* address) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_broadcast_i32x8 (__m256i const * mem_addr) + /// VBROADCASTI32x8 zmm1 {k1}{z}, m256 + /// + public static unsafe Vector512 BroadcastVector256ToVector512(uint* address) { throw new PlatformNotSupportedException(); } + + /// + /// __m512 _mm512_broadcast_f32x8 (__m256 const * mem_addr) + /// VBROADCASTF32x8 zmm1 {k1}{z}, m256 + /// + public static unsafe Vector512 BroadcastVector256ToVector512(float* address) { throw new PlatformNotSupportedException(); } + + /// + /// __m512 _mm512_cvtepi64_ps (__m512i a) + /// VCVTQQ2PS ymm1 {k1}{z}, zmm2/m512/m64bcst + /// + public static Vector256 ConvertToVector256Single(Vector512 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m512 _mm512_cvtepu64_ps (__m512i a) + /// VCVTUQQ2PS ymm1 {k1}{z}, zmm2/m512/m64bcst + /// + public static Vector256 ConvertToVector256Single(Vector512 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m256 _mm512_cvt_roundepi64_ps (__m512i a, int r) + /// VCVTQQ2PS ymm1, zmm2 {er} + /// + public static Vector256 ConvertToVector256Single(Vector512 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m256 _mm512_cvt_roundepu64_ps (__m512i a, int r) + /// VCVTUQQ2PS ymm1, zmm2 {er} + /// + public static Vector256 ConvertToVector256Single(Vector512 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m512d _mm512_cvtepi64_pd (__m512i a) + /// VCVTQQ2PD zmm1 {k1}{z}, zmm2/m512/m64bcst + /// + public static Vector512 ConvertToVector512Double(Vector512 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m512d _mm512_cvtepu64_pd (__m512i a) + /// VCVTUQQ2PD zmm1 {k1}{z}, zmm2/m512/m64bcst + /// + public static Vector512 ConvertToVector512Double(Vector512 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m512d _mm512_cvt_roundepi64_pd (__m512i a, int r) + /// VCVTQQ2PD zmm1, zmm2 {er} + /// + public static Vector512 ConvertToVector512Double(Vector512 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m512d _mm512_cvt_roundepu64_pd (__m512i a, int r) + /// VCVTUQQ2PD zmm1, zmm2 {er} + /// + public static Vector512 ConvertToVector512Double(Vector512 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_cvtps_epi64 (__m512 a) + /// VCVTPS2QQ zmm1 {k1}{z}, ymm2/m256/m32bcst{er} + /// + public static Vector512 ConvertToVector512Int64(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_cvtpd_epi64 (__m512d a) + /// VCVTPD2QQ zmm1 {k1}{z}, zmm2/m512/m64bcst{er} + /// + public static Vector512 ConvertToVector512Int64(Vector512 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_cvt_roundps_epi64 (__m512 a, int r) + /// VCVTPS2QQ zmm1, ymm2 {er} + /// + public static Vector512 ConvertToVector512Int64(Vector256 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_cvt_roundpd_epi64 (__m512d a, int r) + /// VCVTPD2QQ zmm1, zmm2 {er} + /// + public static Vector512 ConvertToVector512Int64(Vector512 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_cvttps_epi64 (__m512 a) + /// VCVTTPS2QQ zmm1 {k1}{z}, ymm2/m256/m32bcst{er} + /// + public static Vector512 ConvertToVector512Int64WithTruncation(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_cvttpd_epi64 (__m512 a) + /// VCVTTPD2QQ zmm1 {k1}{z}, zmm2/m512/m64bcst{sae} + /// + public static Vector512 ConvertToVector512Int64WithTruncation(Vector512 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_cvtps_epu64 (__m512 a) + /// VCVTPS2UQQ zmm1 {k1}{z}, ymm2/m256/m32bcst{er} + /// + public static Vector512 ConvertToVector512UInt64(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_cvtpd_epu64 (__m512d a) + /// VCVTPD2UQQ zmm1 {k1}{z}, zmm2/m512/m64bcst{er} + /// + public static Vector512 ConvertToVector512UInt64(Vector512 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_cvt_roundps_epu64 (__m512 a, int r) + /// VCVTPS2UQQ zmm1 {k1}{z}, ymm2/m256/m32bcst{er} + /// + public static Vector512 ConvertToVector512UInt64(Vector256 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_cvt_roundpd_epu64 (__m512d a, int r) + /// VCVTPD2UQQ zmm1 {k1}{z}, zmm2/m512/m64bcst{er} + /// + public static Vector512 ConvertToVector512UInt64(Vector512 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_cvttps_epu64 (__m512 a) + /// VCVTTPS2UQQ zmm1 {k1}{z}, ymm2/m256/m32bcst{er} + /// + public static Vector512 ConvertToVector512UInt64WithTruncation(Vector256 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_cvttpd_epu64 (__m512d a) + /// VCVTTPD2UQQ zmm1 {k1}{z}, zmm2/m512/m64bcst{er} + /// + public static Vector512 ConvertToVector512UInt64WithTruncation(Vector512 value) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm512_extracti64x2_epi64 (__m512i a, const int imm8) + /// VEXTRACTI64x2 xmm1/m128 {k1}{z}, zmm2, imm8 + /// + public static new Vector128 ExtractVector128(Vector512 value, [ConstantExpected] byte index) { throw new PlatformNotSupportedException(); } + + /// + /// __m128i _mm512_extracti64x2_epi64 (__m512i a, const int imm8) + /// VEXTRACTI64x2 xmm1/m128 {k1}{z}, zmm2, imm8 + /// + public static new Vector128 ExtractVector128(Vector512 value, [ConstantExpected] byte index) { throw new PlatformNotSupportedException(); } + + /// + /// __m128d _mm512_extractf64x2_pd (__m512d a, const int imm8) + /// VEXTRACTF64x2 xmm1/m128 {k1}{z}, zmm2, imm8 + /// + public static new Vector128 ExtractVector128(Vector512 value, [ConstantExpected] byte index) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm512_extracti32x8_epi32 (__m512i a, const int imm8) + /// VEXTRACTI32x8 ymm1/m256 {k1}{z}, zmm2, imm8 + /// + public static new Vector256 ExtractVector256(Vector512 value, [ConstantExpected] byte index) { throw new PlatformNotSupportedException(); } + + /// + /// __m256i _mm512_extracti32x8_epi32 (__m512i a, const int imm8) + /// VEXTRACTI32x8 ymm1/m256 {k1}{z}, zmm2, imm8 + /// + public static new Vector256 ExtractVector256(Vector512 value, [ConstantExpected] byte index) { throw new PlatformNotSupportedException(); } + + /// + /// __m256 _mm512_extractf32x8_ps (__m512 a, const int imm8) + /// VEXTRACTF32x8 ymm1/m256 {k1}{z}, zmm2, imm8 + /// + public static new Vector256 ExtractVector256(Vector512 value, [ConstantExpected] byte index) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_inserti64x2_si512 (__m512i a, __m128i b, const int imm8) + /// VINSERTI64x2 zmm1 {k1}{z}, zmm2, xmm3/m128, imm8 + /// + public static new Vector512 InsertVector128(Vector512 value, Vector128 data, [ConstantExpected] byte index) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_inserti64x2_si512 (__m512i a, __m128i b, const int imm8) + /// VINSERTI64x2 zmm1 {k1}{z}, zmm2, xmm3/m128, imm8 + /// + public static new Vector512 InsertVector128(Vector512 value, Vector128 data, [ConstantExpected] byte index) { throw new PlatformNotSupportedException(); } + + /// + /// __m512d _mm512_insertf64x2_pd (__m512d a, __m128d b, int imm8) + /// VINSERTF64x2 zmm1 {k1}{z}, zmm2, xmm3/m128, imm8 + /// + public static new Vector512 InsertVector128(Vector512 value, Vector128 data, [ConstantExpected] byte index) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_inserti32x8_si512 (__m512i a, __m256i b, const int imm8) + /// VINSERTI32x8 zmm1 {k1}{z}, zmm2, xmm3/m256, imm8 + /// + public static new Vector512 InsertVector256(Vector512 value, Vector256 data, [ConstantExpected] byte index) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_inserti32x8_si512 (__m512i a, __m256i b, const int imm8) + /// VINSERTI32x8 zmm1 {k1}{z}, zmm2, xmm3/m256, imm8 + /// + public static new Vector512 InsertVector256(Vector512 value, Vector256 data, [ConstantExpected] byte index) { throw new PlatformNotSupportedException(); } + + /// + /// __m512 _mm512_insertf32x8_ps (__m512 a, __m256 b, int imm8) + /// VINSERTF32x8 zmm1 {k1}{z}, zmm2, xmm3/m256, imm8 + /// + public static new Vector512 InsertVector256(Vector512 value, Vector256 data, [ConstantExpected] byte index) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_mullo_epi64 (__m512i a, __m512i b) + /// VPMULLQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst + /// + public static Vector512 MultiplyLow(Vector512 left, Vector512 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_mullo_epi64 (__m512i a, __m512i b) + /// VPMULLQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst + /// + public static Vector512 MultiplyLow(Vector512 left, Vector512 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m512 _mm512_or_ps (__m512 a, __m512 b) + /// VORPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst + /// + public static Vector512 Or(Vector512 left, Vector512 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m512d _mm512_or_pd (__m512d a, __m512d b) + /// VORPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst + /// + public static Vector512 Or(Vector512 left, Vector512 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m512 _mm512_range_ps(__m512 a, __m512 b, int imm); + /// VRANGEPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{sae}, imm8 + /// + public static Vector512 Range(Vector512 left, Vector512 right, [ConstantExpected(Max = (byte)(0x0F))] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m512d _mm512_range_pd(__m512d a, __m512d b, int imm); + /// VRANGEPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{sae}, imm8 + /// + public static Vector512 Range(Vector512 left, Vector512 right, [ConstantExpected(Max = (byte)(0x0F))] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m512 _mm512_reduce_ps(__m512 a, int imm); + /// VREDUCEPS zmm1 {k1}{z}, zmm2/m512/m32bcst{sae}, imm8 + /// + public static Vector512 Reduce(Vector512 value, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m512d _mm512_reduce_pd(__m512d a, int imm); + /// VREDUCEPD zmm1 {k1}{z}, zmm2/m512/m64bcst{sae}, imm8 + /// + public static Vector512 Reduce(Vector512 value, [ConstantExpected] byte control) { throw new PlatformNotSupportedException(); } + + /// + /// __m512 _mm512_xor_ps (__m512 a, __m512 b) + /// VXORPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst + /// + public static Vector512 Xor(Vector512 left, Vector512 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m512d _mm512_xor_pd (__m512d a, __m512d b) + /// VXORPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst + /// + public static Vector512 Xor(Vector512 left, Vector512 right) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_permutevar64x8_epi8 (__m512i a, __m512i b) + /// VPERMB zmm1 {k1}{z}, zmm2, zmm3/m512 + /// + public static Vector512 PermuteVar64x8(Vector512 left, Vector512 control) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_permutevar64x8_epi8 (__m512i a, __m512i b) + /// VPERMB zmm1 {k1}{z}, zmm2, zmm3/m512 + /// + public static Vector512 PermuteVar64x8(Vector512 left, Vector512 control) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_permutex2var_epi8 (__m512i a, __m512i idx, __m512i b) + /// VPERMI2B zmm1 {k1}{z}, zmm2, zmm3/m512 + /// VPERMT2B zmm1 {k1}{z}, zmm2, zmm3/m512 + /// + public static Vector512 PermuteVar64x8x2(Vector512 lower, Vector512 indices, Vector512 upper) { throw new PlatformNotSupportedException(); } + + /// + /// __m512i _mm512_permutex2var_epi8 (__m512i a, __m512i idx, __m512i b) + /// VPERMI2B zmm1 {k1}{z}, zmm2, zmm3/m512 + /// VPERMT2B zmm1 {k1}{z}, zmm2, zmm3/m512 + /// + public static Vector512 PermuteVar64x8x2(Vector512 lower, Vector512 indices, Vector512 upper) { throw new PlatformNotSupportedException(); } + + [Intrinsic] + public new abstract class X64 : Avx512BW.X64 + { + internal X64() { } + + public static new bool IsSupported { [Intrinsic] get { return false; } } + } + } + } +} diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Avx10v1.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Avx10v1.cs new file mode 100644 index 0000000000000..6a59fdc19d258 --- /dev/null +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Avx10v1.cs @@ -0,0 +1,3375 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; + +namespace System.Runtime.Intrinsics.X86 +{ + /// This class provides access to X86 AVX10.1 hardware instructions via intrinsics + [Intrinsic] + [CLSCompliant(false)] + public abstract class Avx10v1 : Avx2 + { + internal Avx10v1() { } + + public static new bool IsSupported { get => IsSupported; } + + /// + /// __m128i _mm_abs_epi64 (__m128i a) + /// VPABSQ xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 Abs(Vector128 value) => Abs(value); + + /// + /// __m256i _mm256_abs_epi64 (__m128i a) + /// VPABSQ ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 Abs(Vector256 value) => Abs(value); + + /// + /// __m128d _mm_add_round_sd (__m128d a, __m128d b, int rounding) + /// VADDSD xmm1, xmm2, xmm3 {er} + /// + public static Vector128 AddScalar(Vector128 left, Vector128 right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => AddScalar(left, right, mode); + + /// + /// __m128 _mm_add_round_ss (__m128 a, __m128 b, int rounding) + /// VADDSS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 AddScalar(Vector128 left, Vector128 right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => AddScalar(left, right, mode); + + /// + /// __m128i _mm_alignr_epi32 (__m128i a, __m128i b, const int count) + /// VALIGND xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst, imm8 + /// + public static Vector128 AlignRight32(Vector128 left, Vector128 right, [ConstantExpected] byte mask) => AlignRight32(left, right, mask); + + /// + /// __m128i _mm_alignr_epi32 (__m128i a, __m128i b, const int count) + /// VALIGND xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst, imm8 + /// + public static Vector128 AlignRight32(Vector128 left, Vector128 right, [ConstantExpected] byte mask) => AlignRight32(left, right, mask); + + /// + /// __m256i _mm256_alignr_epi32 (__m256i a, __m256i b, const int count) + /// VALIGND ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 + /// + public static Vector256 AlignRight32(Vector256 left, Vector256 right, [ConstantExpected] byte mask) => AlignRight32(left, right, mask); + + /// + /// __m256i _mm256_alignr_epi32 (__m256i a, __m256i b, const int count) + /// VALIGND ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 + /// + public static Vector256 AlignRight32(Vector256 left, Vector256 right, [ConstantExpected] byte mask) => AlignRight32(left, right, mask); + + /// + /// __m128i _mm_alignr_epi64 (__m128i a, __m128i b, const int count) + /// VALIGNQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst, imm8 + /// + public static Vector128 AlignRight64(Vector128 left, Vector128 right, [ConstantExpected] byte mask) => AlignRight64(left, right, mask); + + /// + /// __m128i _mm_alignr_epi64 (__m128i a, __m128i b, const int count) + /// VALIGNQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst, imm8 + /// + public static Vector128 AlignRight64(Vector128 left, Vector128 right, [ConstantExpected] byte mask) => AlignRight64(left, right, mask); + + /// + /// __m256i _mm256_alignr_epi64 (__m256i a, __m256i b, const int count) + /// VALIGNQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 + /// + public static Vector256 AlignRight64(Vector256 left, Vector256 right, [ConstantExpected] byte mask) => AlignRight64(left, right, mask); + + /// + /// __m256i _mm256_alignr_epi64 (__m256i a, __m256i b, const int count) + /// VALIGNQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 + /// + public static Vector256 AlignRight64(Vector256 left, Vector256 right, [ConstantExpected] byte mask) => AlignRight64(left, right, mask); + + /// + /// __m128i _mm_broadcast_i32x2 (__m128i a) + /// VBROADCASTI32x2 xmm1 {k1}{z}, xmm2/m64 + /// + public static Vector128 BroadcastPairScalarToVector128(Vector128 value) => BroadcastPairScalarToVector128(value); + + /// + /// __m128i _mm_broadcast_i32x2 (__m128i a) + /// VBROADCASTI32x2 xmm1 {k1}{z}, xmm2/m64 + /// + public static Vector128 BroadcastPairScalarToVector128(Vector128 value) => BroadcastPairScalarToVector128(value); + + /// + /// __m256 _mm256_broadcast_f32x2 (__m128 a) + /// VBROADCASTF32x2 ymm1 {k1}{z}, xmm2/m64 + /// + public static Vector256 BroadcastPairScalarToVector256(Vector128 value) => BroadcastPairScalarToVector256(value); + + /// + /// __m256i _mm256_broadcast_i32x2 (__m128i a) + /// VBROADCASTI32x2 ymm1 {k1}{z}, xmm2/m64 + /// + public static Vector256 BroadcastPairScalarToVector256(Vector128 value) => BroadcastPairScalarToVector256(value); + + /// + /// __m256i _mm256_broadcast_i32x2 (__m128i a) + /// VBROADCASTI32x2 ymm1 {k1}{z}, xmm2/m64 + /// + public static Vector256 BroadcastPairScalarToVector256(Vector128 value) => BroadcastPairScalarToVector256(value); + + /// + /// __m128i _mm_cmpgt_epu8 (__m128i a, __m128i b) + /// VPCMPUB k1 {k2}, xmm2, xmm3/m128, imm8(6) + /// + public static Vector128 CompareGreaterThan(Vector128 left, Vector128 right) => CompareGreaterThan(left, right); + + /// + /// __m128i _mm_cmpgt_epu32 (__m128i a, __m128i b) + /// VPCMPUD k1 {k2}, xmm2, xmm3/m128/m32bcst, imm8(6) + /// + public static Vector128 CompareGreaterThan(Vector128 left, Vector128 right) => CompareGreaterThan(left, right); + + /// + /// __m128i _mm_cmpgt_epu64 (__m128i a, __m128i b) + /// VPCMPUQ k1 {k2}, xmm2, xmm3/m128/m64bcst, imm8(6) + /// + public static Vector128 CompareGreaterThan(Vector128 left, Vector128 right) => CompareGreaterThan(left, right); + + /// + /// __m128i _mm_cmpgt_epu16 (__m128i a, __m128i b) + /// VPCMPUW k1 {k2}, xmm2, xmm3/m128, imm8(6) + /// + public static Vector128 CompareGreaterThan(Vector128 left, Vector128 right) => CompareGreaterThan(left, right); + + /// + /// __m256i _mm256_cmpgt_epu8 (__m256i a, __m256i b) + /// VPCMPUB k1 {k2}, ymm2, ymm3/m256, imm8(6) + /// + public static Vector256 CompareGreaterThan(Vector256 left, Vector256 right) => CompareGreaterThan(left, right); + + /// + /// __m256i _mm256_cmpgt_epu32 (__m256i a, __m256i b) + /// VPCMPUD k1 {k2}, ymm2, ymm3/m256/m32bcst, imm8(6) + /// + public static Vector256 CompareGreaterThan(Vector256 left, Vector256 right) => CompareGreaterThan(left, right); + + /// + /// __m256i _mm256_cmpgt_epu64 (__m256i a, __m256i b) + /// VPCMPUQ k1 {k2}, ymm2, ymm3/m256/m64bcst, imm8(6) + /// + public static Vector256 CompareGreaterThan(Vector256 left, Vector256 right) => CompareGreaterThan(left, right); + + /// + /// __m256i _mm256_cmpgt_epu16 (__m256i a, __m256i b) + /// VPCMPUW k1 {k2}, ymm2, ymm3/m256, imm8(6) + /// + public static Vector256 CompareGreaterThan(Vector256 left, Vector256 right) => CompareGreaterThan(left, right); + + /// + /// __m128i _mm_cmpge_epu8 (__m128i a, __m128i b) + /// VPCMPUB k1 {k2}, xmm2, xmm3/m128, imm8(5) + /// + public static Vector128 CompareGreaterThanOrEqual(Vector128 left, Vector128 right) => CompareGreaterThanOrEqual(left, right); + + /// + /// __m128i _mm_cmpge_epi32 (__m128i a, __m128i b) + /// VPCMPD k1 {k2}, xmm2, xmm3/m128/m32bcst, imm8(5) + /// + public static Vector128 CompareGreaterThanOrEqual(Vector128 left, Vector128 right) => CompareGreaterThanOrEqual(left, right); + + /// + /// __m128i _mm_cmpge_epi64 (__m128i a, __m128i b) + /// VPCMPQ k1 {k2}, xmm2, xmm3/m128/m64bcst, imm8(5) + /// + public static Vector128 CompareGreaterThanOrEqual(Vector128 left, Vector128 right) => CompareGreaterThanOrEqual(left, right); + + /// + /// __m128i _mm_cmpge_epi8 (__m128i a, __m128i b) + /// VPCMPB k1 {k2}, xmm2, xmm3/m128, imm8(5) + /// + public static Vector128 CompareGreaterThanOrEqual(Vector128 left, Vector128 right) => CompareGreaterThanOrEqual(left, right); + + /// + /// __m128i _mm_cmpge_epi16 (__m128i a, __m128i b) + /// VPCMPW k1 {k2}, xmm2, xmm3/m128, imm8(5) + /// + public static Vector128 CompareGreaterThanOrEqual(Vector128 left, Vector128 right) => CompareGreaterThanOrEqual(left, right); + + /// + /// __m128i _mm_cmpge_epu32 (__m128i a, __m128i b) + /// VPCMPUD k1 {k2}, xmm2, xmm3/m128/m32bcst, imm8(5) + /// + public static Vector128 CompareGreaterThanOrEqual(Vector128 left, Vector128 right) => CompareGreaterThanOrEqual(left, right); + + /// + /// __m128i _mm_cmpge_epu64 (__m128i a, __m128i b) + /// VPCMPUQ k1 {k2}, xmm2, xmm3/m128/m64bcst, imm8(5) + /// + public static Vector128 CompareGreaterThanOrEqual(Vector128 left, Vector128 right) => CompareGreaterThanOrEqual(left, right); + + /// + /// __m128i _mm_cmpge_epu16 (__m128i a, __m128i b) + /// VPCMPUW k1 {k2}, xmm2, xmm3/m128, imm8(5) + /// + public static Vector128 CompareGreaterThanOrEqual(Vector128 left, Vector128 right) => CompareGreaterThanOrEqual(left, right); + + /// + /// __m256i _mm256_cmpge_epu8 (__m256i a, __m256i b) + /// VPCMPUB k1 {k2}, ymm2, ymm3/m256, imm8(5) + /// + public static Vector256 CompareGreaterThanOrEqual(Vector256 left, Vector256 right) => CompareGreaterThanOrEqual(left, right); + + /// + /// __m256i _mm256_cmpge_epi32 (__m256i a, __m256i b) + /// VPCMPD k1 {k2}, ymm2, ymm3/m256/m32bcst, imm8(5) + /// + public static Vector256 CompareGreaterThanOrEqual(Vector256 left, Vector256 right) => CompareGreaterThanOrEqual(left, right); + + /// + /// __m256i _mm256_cmpge_epi64 (__m256i a, __m256i b) + /// VPCMPQ k1 {k2}, ymm2, ymm3/m256/m64bcst, imm8(5) + /// + public static Vector256 CompareGreaterThanOrEqual(Vector256 left, Vector256 right) => CompareGreaterThanOrEqual(left, right); + + /// + /// __m256i _mm256_cmpge_epi8 (__m256i a, __m256i b) + /// VPCMPB k1 {k2}, ymm2, ymm3/m256, imm8(5) + /// + public static Vector256 CompareGreaterThanOrEqual(Vector256 left, Vector256 right) => CompareGreaterThanOrEqual(left, right); + + /// + /// __m256i _mm256_cmpge_epi16 (__m256i a, __m256i b) + /// VPCMPW k1 {k2}, ymm2, ymm3/m256, imm8(5) + /// + public static Vector256 CompareGreaterThanOrEqual(Vector256 left, Vector256 right) => CompareGreaterThanOrEqual(left, right); + + /// + /// __m256i _mm256_cmpge_epu32 (__m256i a, __m256i b) + /// VPCMPUD k1 {k2}, ymm2, ymm3/m256/m32bcst, imm8(5) + /// + public static Vector256 CompareGreaterThanOrEqual(Vector256 left, Vector256 right) => CompareGreaterThanOrEqual(left, right); + + /// + /// __m256i _mm256_cmpge_epu64 (__m256i a, __m256i b) + /// VPCMPUQ k1 {k2}, ymm2, ymm3/m256/m64bcst, imm8(5) + /// + public static Vector256 CompareGreaterThanOrEqual(Vector256 left, Vector256 right) => CompareGreaterThanOrEqual(left, right); + + /// + /// __m256i _mm256_cmpge_epu16 (__m256i a, __m256i b) + /// VPCMPUW k1 {k2}, ymm2, ymm3/m256, imm8(5) + /// + public static Vector256 CompareGreaterThanOrEqual(Vector256 left, Vector256 right) => CompareGreaterThanOrEqual(left, right); + + /// + /// __m128i _mm_cmplt_epi32 (__m128i a, __m128i b) + /// VPCMPD k1 {k2}, xmm2, xmm3/m128/m32bcst, imm8(1) + /// + public static new Vector128 CompareLessThan(Vector128 left, Vector128 right) => CompareLessThan(left, right); + + /// + /// __m128i _mm_cmplt_epi8 (__m128i a, __m128i b) + /// VPCMPB k1 {k2}, xmm2, xmm3/m128, imm8(1) + /// + public static new Vector128 CompareLessThan(Vector128 left, Vector128 right) => CompareLessThan(left, right); + + /// + /// __m128i _mm_cmplt_epi16 (__m128i a, __m128i b) + /// VPCMPW k1 {k2}, xmm2, xmm3/m128, imm8(1) + /// + public static new Vector128 CompareLessThan(Vector128 left, Vector128 right) => CompareLessThan(left, right); + + /// + /// __m128i _mm_cmplt_epu8 (__m128i a, __m128i b) + /// VPCMPUB k1 {k2}, xmm2, xmm3/m128, imm8(1) + /// + public static Vector128 CompareLessThan(Vector128 left, Vector128 right) => CompareLessThan(left, right); + + /// + /// __m128i _mm_cmplt_epi64 (__m128i a, __m128i b) + /// VPCMPQ k1 {k2}, xmm2, xmm3/m128/m64bcst, imm8(1) + /// + public static Vector128 CompareLessThan(Vector128 left, Vector128 right) => CompareLessThan(left, right); + + /// + /// __m128i _mm_cmplt_epu32 (__m128i a, __m128i b) + /// VPCMPUD k1 {k2}, xmm2, xmm3/m128/m32bcst, imm8(1) + /// + public static Vector128 CompareLessThan(Vector128 left, Vector128 right) => CompareLessThan(left, right); + + /// + /// __m128i _mm_cmplt_epu64 (__m128i a, __m128i b) + /// VPCMPUQ k1 {k2}, xmm2, xmm3/m128/m64bcst, imm8(1) + /// + public static Vector128 CompareLessThan(Vector128 left, Vector128 right) => CompareLessThan(left, right); + + /// + /// __m128i _mm_cmplt_epu16 (__m128i a, __m128i b) + /// VPCMPUW k1 {k2}, xmm2, xmm3/m128, imm8(1) + /// + public static Vector128 CompareLessThan(Vector128 left, Vector128 right) => CompareLessThan(left, right); + + /// + /// __m256i _mm256_cmplt_epu8 (__m256i a, __m256i b) + /// VPCMPUB k1 {k2}, ymm2, ymm3/m256, imm8(1) + /// + public static Vector256 CompareLessThan(Vector256 left, Vector256 right) => CompareLessThan(left, right); + + /// + /// __m256i _mm256_cmplt_epi32 (__m256i a, __m256i b) + /// VPCMPD k1 {k2}, ymm2, ymm3/m256/m32bcst, imm8(1) + /// + public static Vector256 CompareLessThan(Vector256 left, Vector256 right) => CompareLessThan(left, right); + + /// + /// __m256i _mm256_cmplt_epi64 (__m256i a, __m256i b) + /// VPCMPQ k1 {k2}, ymm2, ymm3/m256/m64bcst, imm8(1) + /// + public static Vector256 CompareLessThan(Vector256 left, Vector256 right) => CompareLessThan(left, right); + + /// + /// __m256i _mm256_cmplt_epi8 (__m256i a, __m256i b) + /// VPCMPB k1 {k2}, ymm2, ymm3/m256, imm8(1) + /// + public static Vector256 CompareLessThan(Vector256 left, Vector256 right) => CompareLessThan(left, right); + + /// + /// __m256i _mm256_cmplt_epi16 (__m256i a, __m256i b) + /// VPCMPW k1 {k2}, ymm2, ymm3/m256, imm8(1) + /// + public static Vector256 CompareLessThan(Vector256 left, Vector256 right) => CompareLessThan(left, right); + + /// + /// __m256i _mm256_cmplt_epu32 (__m256i a, __m256i b) + /// VPCMPUD k1 {k2}, ymm2, ymm3/m256/m32bcst, imm8(1) + /// + public static Vector256 CompareLessThan(Vector256 left, Vector256 right) => CompareLessThan(left, right); + + /// + /// __m256i _mm256_cmplt_epu64 (__m256i a, __m256i b) + /// VPCMPUQ k1 {k2}, ymm2, ymm3/m256/m64bcst, imm8(1) + /// + public static Vector256 CompareLessThan(Vector256 left, Vector256 right) => CompareLessThan(left, right); + + /// + /// __m256i _mm256_cmplt_epu16 (__m256i a, __m256i b) + /// VPCMPUW k1 {k2}, ymm2, ymm3/m256, imm8(1) + /// + public static Vector256 CompareLessThan(Vector256 left, Vector256 right) => CompareLessThan(left, right); + + /// + /// __m128i _mm_cmple_epu8 (__m128i a, __m128i b) + /// VPCMPUB k1 {k2}, xmm2, xmm3/m128, imm8(2) + /// + public static Vector128 CompareLessThanOrEqual(Vector128 left, Vector128 right) => CompareLessThanOrEqual(left, right); + + /// + /// __m128i _mm_cmple_epi32 (__m128i a, __m128i b) + /// VPCMPD k1 {k2}, xmm2, xmm3/m128/m32bcst, imm8(2) + /// + public static Vector128 CompareLessThanOrEqual(Vector128 left, Vector128 right) => CompareLessThanOrEqual(left, right); + + /// + /// __m128i _mm_cmple_epi64 (__m128i a, __m128i b) + /// VPCMPQ k1 {k2}, xmm2, xmm3/m128/m64bcst, imm8(2) + /// + public static Vector128 CompareLessThanOrEqual(Vector128 left, Vector128 right) => CompareLessThanOrEqual(left, right); + + /// + /// __m128i _mm_cmple_epi8 (__m128i a, __m128i b) + /// VPCMPB k1 {k2}, xmm2, xmm3/m128, imm8(2) + /// + public static Vector128 CompareLessThanOrEqual(Vector128 left, Vector128 right) => CompareLessThanOrEqual(left, right); + + /// + /// __m128i _mm_cmple_epi16 (__m128i a, __m128i b) + /// VPCMPW k1 {k2}, xmm2, xmm3/m128, imm8(2) + /// + public static Vector128 CompareLessThanOrEqual(Vector128 left, Vector128 right) => CompareLessThanOrEqual(left, right); + + /// + /// __m128i _mm_cmple_epu32 (__m128i a, __m128i b) + /// VPCMPUD k1 {k2}, xmm2, xmm3/m128/m32bcst, imm8(2) + /// + public static Vector128 CompareLessThanOrEqual(Vector128 left, Vector128 right) => CompareLessThanOrEqual(left, right); + + /// + /// __m128i _mm_cmple_epu64 (__m128i a, __m128i b) + /// VPCMPUQ k1 {k2}, xmm2, xmm3/m128/m64bcst, imm8(2) + /// + public static Vector128 CompareLessThanOrEqual(Vector128 left, Vector128 right) => CompareLessThanOrEqual(left, right); + + /// + /// __m128i _mm_cmple_epu16 (__m128i a, __m128i b) + /// VPCMPUW k1 {k2}, xmm2, xmm3/m128, imm8(2) + /// + public static Vector128 CompareLessThanOrEqual(Vector128 left, Vector128 right) => CompareLessThanOrEqual(left, right); + + /// + /// __m256i _mm256_cmple_epu8 (__m256i a, __m256i b) + /// VPCMPUB k1 {k2}, ymm2, ymm3/m256, imm8(2) + /// + public static Vector256 CompareLessThanOrEqual(Vector256 left, Vector256 right) => CompareLessThanOrEqual(left, right); + + /// + /// __m256i _mm256_cmple_epi32 (__m256i a, __m256i b) + /// VPCMPD k1 {k2}, ymm2, ymm3/m256/m32bcst, imm8(2) + /// + public static Vector256 CompareLessThanOrEqual(Vector256 left, Vector256 right) => CompareLessThanOrEqual(left, right); + + /// + /// __m256i _mm256_cmple_epi64 (__m256i a, __m256i b) + /// VPCMPQ k1 {k2}, ymm2, ymm3/m256/m64bcst, imm8(2) + /// + public static Vector256 CompareLessThanOrEqual(Vector256 left, Vector256 right) => CompareLessThanOrEqual(left, right); + + /// + /// __m256i _mm256_cmple_epi8 (__m256i a, __m256i b) + /// VPCMPB k1 {k2}, ymm2, ymm3/m256, imm8(2) + /// + public static Vector256 CompareLessThanOrEqual(Vector256 left, Vector256 right) => CompareLessThanOrEqual(left, right); + + /// + /// __m256i _mm256_cmple_epi16 (__m256i a, __m256i b) + /// VPCMPW k1 {k2}, ymm2, ymm3/m256, imm8(2) + /// + public static Vector256 CompareLessThanOrEqual(Vector256 left, Vector256 right) => CompareLessThanOrEqual(left, right); + + /// + /// __m256i _mm256_cmple_epu32 (__m256i a, __m256i b) + /// VPCMPUD k1 {k2}, ymm2, ymm3/m256/m32bcst, imm8(2) + /// + public static Vector256 CompareLessThanOrEqual(Vector256 left, Vector256 right) => CompareLessThanOrEqual(left, right); + + /// + /// __m256i _mm256_cmple_epu64 (__m256i a, __m256i b) + /// VPCMPUQ k1 {k2}, ymm2, ymm3/m256/m64bcst, imm8(2) + /// + public static Vector256 CompareLessThanOrEqual(Vector256 left, Vector256 right) => CompareLessThanOrEqual(left, right); + + /// + /// __m256i _mm256_cmple_epu16 (__m256i a, __m256i b) + /// VPCMPUW k1 {k2}, ymm2, ymm3/m256, imm8(2) + /// + public static Vector256 CompareLessThanOrEqual(Vector256 left, Vector256 right) => CompareLessThanOrEqual(left, right); + + /// + /// __m128i _mm_cmpne_epu8 (__m128i a, __m128i b) + /// VPCMPUB k1 {k2}, xmm2, xmm3/m128, imm8(4) + /// + public static Vector128 CompareNotEqual(Vector128 left, Vector128 right) => CompareNotEqual(left, right); + + /// + /// __m128i _mm_cmpne_epi32 (__m128i a, __m128i b) + /// VPCMPD k1 {k2}, xmm2, xmm3/m128/m32bcst, imm8(4) + /// + public static Vector128 CompareNotEqual(Vector128 left, Vector128 right) => CompareNotEqual(left, right); + + /// + /// __m128i _mm_cmpne_epi64 (__m128i a, __m128i b) + /// VPCMPQ k1 {k2}, xmm2, xmm3/m128/m64bcst, imm8(4) + /// + public static Vector128 CompareNotEqual(Vector128 left, Vector128 right) => CompareNotEqual(left, right); + + /// + /// __m128i _mm_cmpne_epi8 (__m128i a, __m128i b) + /// VPCMPB k1 {k2}, xmm2, xmm3/m128, imm8(4) + /// + public static Vector128 CompareNotEqual(Vector128 left, Vector128 right) => CompareNotEqual(left, right); + + /// + /// __m128i _mm_cmpne_epi16 (__m128i a, __m128i b) + /// VPCMPW k1 {k2}, xmm2, xmm3/m128, imm8(4) + /// + public static Vector128 CompareNotEqual(Vector128 left, Vector128 right) => CompareNotEqual(left, right); + + /// + /// __m128i _mm_cmpne_epu32 (__m128i a, __m128i b) + /// VPCMPUD k1 {k2}, xmm2, xmm3/m128/m32bcst, imm8(4) + /// + public static Vector128 CompareNotEqual(Vector128 left, Vector128 right) => CompareNotEqual(left, right); + + /// + /// __m128i _mm_cmpne_epu64 (__m128i a, __m128i b) + /// VPCMPUQ k1 {k2}, xmm2, xmm3/m128/m64bcst, imm8(4) + /// + public static Vector128 CompareNotEqual(Vector128 left, Vector128 right) => CompareNotEqual(left, right); + + /// + /// __m128i _mm_cmpne_epu16 (__m128i a, __m128i b) + /// VPCMPUW k1 {k2}, xmm2, xmm3/m128, imm8(4) + /// + public static Vector128 CompareNotEqual(Vector128 left, Vector128 right) => CompareNotEqual(left, right); + + /// + /// __m256i _mm256_cmpne_epu8 (__m256i a, __m256i b) + /// VPCMPUB k1 {k2}, ymm2, ymm3/m256, imm8(4) + /// + public static Vector256 CompareNotEqual(Vector256 left, Vector256 right) => CompareNotEqual(left, right); + + /// + /// __m256i _mm256_cmpne_epi32 (__m256i a, __m256i b) + /// VPCMPD k1 {k2}, ymm2, ymm3/m256/m32bcst, imm8(4) + /// + public static Vector256 CompareNotEqual(Vector256 left, Vector256 right) => CompareNotEqual(left, right); + + /// + /// __m256i _mm256_cmpne_epi64 (__m256i a, __m256i b) + /// VPCMPQ k1 {k2}, ymm2, ymm3/m256/m64bcst, imm8(4) + /// + public static Vector256 CompareNotEqual(Vector256 left, Vector256 right) => CompareNotEqual(left, right); + + /// + /// __m256i _mm256_cmpne_epi8 (__m256i a, __m256i b) + /// VPCMPB k1 {k2}, ymm2, ymm3/m256, imm8(4) + /// + public static Vector256 CompareNotEqual(Vector256 left, Vector256 right) => CompareNotEqual(left, right); + + /// + /// __m256i _mm256_cmpne_epi16 (__m256i a, __m256i b) + /// VPCMPW k1 {k2}, ymm2, ymm3/m256, imm8(4) + /// + public static Vector256 CompareNotEqual(Vector256 left, Vector256 right) => CompareNotEqual(left, right); + + /// + /// __m256i _mm256_cmpne_epu32 (__m256i a, __m256i b) + /// VPCMPUD k1 {k2}, ymm2, ymm3/m256/m32bcst, imm8(4) + /// + public static Vector256 CompareNotEqual(Vector256 left, Vector256 right) => CompareNotEqual(left, right); + + /// + /// __m256i _mm256_cmpne_epu64 (__m256i a, __m256i b) + /// VPCMPUQ k1 {k2}, ymm2, ymm3/m256/m64bcst, imm8(4) + /// + public static Vector256 CompareNotEqual(Vector256 left, Vector256 right) => CompareNotEqual(left, right); + + /// + /// __m256i _mm256_cmpne_epu16 (__m256i a, __m256i b) + /// VPCMPUW k1 {k2}, ymm2, ymm3/m256, imm8(4) + /// + public static Vector256 CompareNotEqual(Vector256 left, Vector256 right) => CompareNotEqual(left, right); + + /// + /// __m128d _mm_cvtsi32_sd (__m128d a, int b) + /// VCVTUSI2SD xmm1, xmm2, r/m32 + /// + public static Vector128 ConvertScalarToVector128Double(Vector128 upper, uint value) => ConvertScalarToVector128Double(upper, value); + + /// + /// __m128 _mm_cvt_roundi32_ss (__m128 a, int b, int rounding) + /// VCVTSI2SS xmm1, xmm2, r32 {er} + /// + public static Vector128 ConvertScalarToVector128Single(Vector128 upper, int value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertScalarToVector128Single(upper, value, mode); + + /// + /// __m128 _mm_cvt_roundi32_ss (__m128 a, int b, int rounding) + /// VCVTUSI2SS xmm1, xmm2, r32 {er} + /// + public static Vector128 ConvertScalarToVector128Single(Vector128 upper, uint value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertScalarToVector128Single(upper, value, mode); + + /// + /// __m128 _mm_cvtsi32_ss (__m128 a, int b) + /// VCVTUSI2SS xmm1, xmm2, r/m32 + /// + public static Vector128 ConvertScalarToVector128Single(Vector128 upper, uint value) => ConvertScalarToVector128Single(upper, value); + + /// + /// __m128 _mm_cvt_roundsd_ss (__m128 a, __m128d b, int rounding) + /// VCVTSD2SS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 ConvertScalarToVector128Single(Vector128 upper, Vector128 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertScalarToVector128Single(upper, value, mode); + + /// + /// int _mm_cvt_roundsd_i32 (__m128d a, int rounding) + /// VCVTSD2SI r32, xmm1 {er} + /// + public static int ConvertToInt32(Vector128 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToInt32(value, mode); + + /// + /// int _mm_cvt_roundss_i32 (__m128 a, int rounding) + /// VCVTSS2SIK r32, xmm1 {er} + /// + public static int ConvertToInt32(Vector128 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToInt32(value, mode); + + /// + /// unsigned int _mm_cvt_roundsd_u32 (__m128d a, int rounding) + /// VCVTSD2USI r32, xmm1 {er} + /// + public static uint ConvertToUInt32(Vector128 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToUInt32(value, mode); + + /// + /// unsigned int _mm_cvtsd_u32 (__m128d a) + /// VCVTSD2USI r32, xmm1/m64{er} + /// + public static uint ConvertToUInt32(Vector128 value) => ConvertToUInt32(value); + + /// + /// unsigned int _mm_cvt_roundss_u32 (__m128 a, int rounding) + /// VCVTSS2USI r32, xmm1 {er} + /// + public static uint ConvertToUInt32(Vector128 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToUInt32(value, mode); + + /// + /// unsigned int _mm_cvtss_u32 (__m128 a) + /// VCVTSS2USI r32, xmm1/m32{er} + /// + public static uint ConvertToUInt32(Vector128 value) => ConvertToUInt32(value); + + /// + /// unsigned int _mm_cvttsd_u32 (__m128d a) + /// VCVTTSD2USI r32, xmm1/m64{er} + /// + public static uint ConvertToUInt32WithTruncation(Vector128 value) => ConvertToUInt32WithTruncation(value); + + /// + /// unsigned int _mm_cvttss_u32 (__m128 a) + /// VCVTTSS2USI r32, xmm1/m32{er} + /// + public static uint ConvertToUInt32WithTruncation(Vector128 value) => ConvertToUInt32WithTruncation(value); + + /// + /// __m128i _mm_cvtepi32_epi8 (__m128i a) + /// VPMOVDB xmm1/m32 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128Byte(Vector128 value) => ConvertToVector128Byte(value); + + /// + /// __m128i _mm_cvtepi64_epi8 (__m128i a) + /// VPMOVQB xmm1/m16 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128Byte(Vector128 value) => ConvertToVector128Byte(value); + + /// + /// __m128i _mm_cvtepi16_epi8 (__m128i a) + /// VPMOVWB xmm1/m64 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128Byte(Vector128 value) => ConvertToVector128Byte(value); + + /// + /// __m128i _mm_cvtepi32_epi8 (__m128i a) + /// VPMOVDB xmm1/m32 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128Byte(Vector128 value) => ConvertToVector128Byte(value); + + /// + /// __m128i _mm_cvtepi64_epi8 (__m128i a) + /// VPMOVQB xmm1/m16 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128Byte(Vector128 value) => ConvertToVector128Byte(value); + + /// + /// __m128i _mm_cvtepi16_epi8 (__m128i a) + /// VPMOVWB xmm1/m64 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128Byte(Vector128 value) => ConvertToVector128Byte(value); + + /// + /// __m128i _mm256_cvtepi32_epi8 (__m256i a) + /// VPMOVDB xmm1/m64 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128Byte(Vector256 value) => ConvertToVector128Byte(value); + + /// + /// __m128i _mm256_cvtepi64_epi8 (__m256i a) + /// VPMOVQB xmm1/m32 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128Byte(Vector256 value) => ConvertToVector128Byte(value); + + /// + /// __m128i _mm256_cvtepi16_epi8 (__m256i a) + /// VPMOVWB xmm1/m128 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128Byte(Vector256 value) => ConvertToVector128Byte(value); + + /// + /// __m128i _mm256_cvtepi32_epi8 (__m256i a) + /// VPMOVDB xmm1/m64 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128Byte(Vector256 value) => ConvertToVector128Byte(value); + + /// + /// __m128i _mm256_cvtepi64_epi8 (__m256i a) + /// VPMOVQB xmm1/m32 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128Byte(Vector256 value) => ConvertToVector128Byte(value); + + /// + /// __m128i _mm256_cvtepi16_epi8 (__m256i a) + /// VPMOVWB xmm1/m128 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128Byte(Vector256 value) => ConvertToVector128Byte(value); + + /// + /// __m128i _mm_cvtusepi32_epi8 (__m128i a) + /// VPMOVUSDB xmm1/m32 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128ByteWithSaturation(Vector128 value) => ConvertToVector128ByteWithSaturation(value); + + /// + /// __m128i _mm_cvtusepi64_epi8 (__m128i a) + /// VPMOVUSQB xmm1/m16 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128ByteWithSaturation(Vector128 value) => ConvertToVector128ByteWithSaturation(value); + + /// + /// __m128i _mm_cvtusepi16_epi8 (__m128i a) + /// VPMOVUWB xmm1/m64 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128ByteWithSaturation(Vector128 value) => ConvertToVector128ByteWithSaturation(value); + + /// + /// __m128i _mm256_cvtusepi32_epi8 (__m256i a) + /// VPMOVUSDB xmm1/m64 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128ByteWithSaturation(Vector256 value) => ConvertToVector128ByteWithSaturation(value); + + /// + /// __m128i _mm256_cvtusepi64_epi8 (__m256i a) + /// VPMOVUSQB xmm1/m32 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128ByteWithSaturation(Vector256 value) => ConvertToVector128ByteWithSaturation(value); + + /// + /// __m128i _mm256_cvtusepi16_epi8 (__m256i a) + /// VPMOVUWB xmm1/m128 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128ByteWithSaturation(Vector256 value) => ConvertToVector128ByteWithSaturation(value); + + /// + /// __m128d _mm_cvtepi64_pd (__m128i a) + /// VCVTQQ2PD xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 ConvertToVector128Double(Vector128 value) => ConvertToVector128Double(value); + + /// + /// __m128d _mm_cvtepu32_pd (__m128i a) + /// VCVTUDQ2PD xmm1 {k1}{z}, xmm2/m64/m32bcst + /// + public static Vector128 ConvertToVector128Double(Vector128 value) => ConvertToVector128Double(value); + + /// + /// __m128d _mm_cvtepu64_pd (__m128i a) + /// VCVTUQQ2PD xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 ConvertToVector128Double(Vector128 value) => ConvertToVector128Double(value); + + /// + /// __m128i _mm_cvtepi32_epi16 (__m128i a) + /// VPMOVDW xmm1/m64 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128Int16(Vector128 value) => ConvertToVector128Int16(value); + + /// + /// __m128i _mm_cvtepi64_epi16 (__m128i a) + /// VPMOVQW xmm1/m32 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128Int16(Vector128 value) => ConvertToVector128Int16(value); + + /// + /// __m128i _mm_cvtepi32_epi16 (__m128i a) + /// VPMOVDW xmm1/m64 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128Int16(Vector128 value) => ConvertToVector128Int16(value); + + /// + /// __m128i _mm_cvtepi64_epi16 (__m128i a) + /// VPMOVQW xmm1/m32 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128Int16(Vector128 value) => ConvertToVector128Int16(value); + + /// + /// __m128i _mm256_cvtepi32_epi16 (__m256i a) + /// VPMOVDW xmm1/m128 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128Int16(Vector256 value) => ConvertToVector128Int16(value); + + /// + /// __m128i _mm256_cvtepi64_epi16 (__m256i a) + /// VPMOVQW xmm1/m64 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128Int16(Vector256 value) => ConvertToVector128Int16(value); + + /// + /// __m128i _mm256_cvtepi32_epi16 (__m256i a) + /// VPMOVDW xmm1/m128 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128Int16(Vector256 value) => ConvertToVector128Int16(value); + + /// + /// __m128i _mm256_cvtepi64_epi16 (__m256i a) + /// VPMOVQW xmm1/m64 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128Int16(Vector256 value) => ConvertToVector128Int16(value); + + /// + /// __m128i _mm_cvtsepi32_epi16 (__m128i a) + /// VPMOVSDW xmm1/m64 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128Int16WithSaturation(Vector128 value) => ConvertToVector128Int16WithSaturation(value); + + /// + /// __m128i _mm_cvtsepi64_epi16 (__m128i a) + /// VPMOVSQW xmm1/m32 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128Int16WithSaturation(Vector128 value) => ConvertToVector128Int16WithSaturation(value); + + /// + /// __m128i _mm256_cvtsepi32_epi16 (__m256i a) + /// VPMOVSDW xmm1/m128 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128Int16WithSaturation(Vector256 value) => ConvertToVector128Int16WithSaturation(value); + + /// + /// __m128i _mm256_cvtsepi64_epi16 (__m256i a) + /// VPMOVSQW xmm1/m64 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128Int16WithSaturation(Vector256 value) => ConvertToVector128Int16WithSaturation(value); + + /// + /// __m128i _mm_cvtepi64_epi32 (__m128i a) + /// VPMOVQD xmm1/m64 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128Int32(Vector128 value) => ConvertToVector128Int32(value); + + /// + /// __m128i _mm_cvtepi64_epi32 (__m128i a) + /// VPMOVQD xmm1/m64 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128Int32(Vector128 value) => ConvertToVector128Int32(value); + + /// + /// __m128i _mm256_cvtepi64_epi32 (__m256i a) + /// VPMOVQD xmm1/m128 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128Int32(Vector256 value) => ConvertToVector128Int32(value); + + /// + /// __m128i _mm256_cvtepi64_epi32 (__m256i a) + /// VPMOVQD xmm1/m128 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128Int32(Vector256 value) => ConvertToVector128Int32(value); + + /// + /// __m128i _mm_cvtsepi64_epi32 (__m128i a) + /// VPMOVSQD xmm1/m64 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128Int32WithSaturation(Vector128 value) => ConvertToVector128Int32WithSaturation(value); + + /// + /// __m128i _mm256_cvtsepi64_epi32 (__m256i a) + /// VPMOVSQD xmm1/m128 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128Int32WithSaturation(Vector256 value) => ConvertToVector128Int32WithSaturation(value); + + /// + /// __m128i _mm_cvtpd_epi64 (__m128d a) + /// VCVTPD2QQ xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 ConvertToVector128Int64(Vector128 value) => ConvertToVector128Int64(value); + + /// + /// __m128i _mm_cvtps_epi64 (__m128 a) + /// VCVTPS2QQ xmm1 {k1}{z}, xmm2/m64/m32bcst + /// + public static Vector128 ConvertToVector128Int64(Vector128 value) => ConvertToVector128Int64(value); + + /// + /// __m128i _mm_cvttpd_epi64 (__m128d a) + /// VCVTTPD2QQ xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 ConvertToVector128Int64WithTruncation(Vector128 value) => ConvertToVector128Int64WithTruncation(value); + + /// + /// __m128i _mm_cvttps_epi64 (__m128 a) + /// VCVTTPS2QQ xmm1 {k1}{z}, xmm2/m64/m32bcst + /// + public static Vector128 ConvertToVector128Int64WithTruncation(Vector128 value) => ConvertToVector128Int64WithTruncation(value); + + /// + /// __m128i _mm_cvtepi32_epi8 (__m128i a) + /// VPMOVDB xmm1/m32 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByte(Vector128 value) => ConvertToVector128SByte(value); + + /// + /// __m128i _mm_cvtepi64_epi8 (__m128i a) + /// VPMOVQB xmm1/m16 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByte(Vector128 value) => ConvertToVector128SByte(value); + + /// + /// __m128i _mm_cvtepi16_epi8 (__m128i a) + /// VPMOVWB xmm1/m64 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByte(Vector128 value) => ConvertToVector128SByte(value); + + /// + /// __m128i _mm_cvtepi32_epi8 (__m128i a) + /// VPMOVDB xmm1/m32 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByte(Vector128 value) => ConvertToVector128SByte(value); + + /// + /// __m128i _mm_cvtepi64_epi8 (__m128i a) + /// VPMOVQB xmm1/m16 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByte(Vector128 value) => ConvertToVector128SByte(value); + + /// + /// __m128i _mm_cvtepi16_epi8 (__m128i a) + /// VPMOVWB xmm1/m64 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByte(Vector128 value) => ConvertToVector128SByte(value); + + /// + /// __m128i _mm256_cvtepi32_epi8 (__m256i a) + /// VPMOVDB xmm1/m64 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByte(Vector256 value) => ConvertToVector128SByte(value); + + /// + /// __m128i _mm256_cvtepi64_epi8 (__m256i a) + /// VPMOVQB xmm1/m32 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByte(Vector256 value) => ConvertToVector128SByte(value); + + /// + /// __m128i _mm256_cvtepi16_epi8 (__m256i a) + /// VPMOVWB xmm1/m128 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByte(Vector256 value) => ConvertToVector128SByte(value); + + /// + /// __m128i _mm256_cvtepi32_epi8 (__m256i a) + /// VPMOVDB xmm1/m64 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByte(Vector256 value) => ConvertToVector128SByte(value); + + /// + /// __m128i _mm256_cvtepi64_epi8 (__m256i a) + /// VPMOVQB xmm1/m32 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByte(Vector256 value) => ConvertToVector128SByte(value); + + /// + /// __m128i _mm256_cvtepi16_epi8 (__m256i a) + /// VPMOVWB xmm1/m128 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByte(Vector256 value) => ConvertToVector128SByte(value); + + /// + /// __m128i _mm_cvtsepi32_epi8 (__m128i a) + /// VPMOVSDB xmm1/m32 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByteWithSaturation(Vector128 value) => ConvertToVector128SByteWithSaturation(value); + + /// + /// __m128i _mm_cvtsepi64_epi8 (__m128i a) + /// VPMOVSQB xmm1/m16 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByteWithSaturation(Vector128 value) => ConvertToVector128SByteWithSaturation(value); + + /// + /// __m128i _mm_cvtsepi16_epi8 (__m128i a) + /// VPMOVSWB xmm1/m64 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByteWithSaturation(Vector128 value) => ConvertToVector128SByteWithSaturation(value); + + /// + /// __m128i _mm256_cvtsepi32_epi8 (__m256i a) + /// VPMOVSDB xmm1/m64 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByteWithSaturation(Vector256 value) => ConvertToVector128SByteWithSaturation(value); + + /// + /// __m128i _mm256_cvtsepi64_epi8 (__m256i a) + /// VPMOVSQB xmm1/m32 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByteWithSaturation(Vector256 value) => ConvertToVector128SByteWithSaturation(value); + + /// + /// __m128i _mm256_cvtsepi16_epi8 (__m256i a) + /// VPMOVSWB xmm1/m128 {k1}{z}, zmm2 + /// + public static Vector128 ConvertToVector128SByteWithSaturation(Vector256 value) => ConvertToVector128SByteWithSaturation(value); + + /// + /// __m128 _mm_cvtepi64_ps (__m128i a) + /// VCVTQQ2PS xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 ConvertToVector128Single(Vector128 value) => ConvertToVector128Single(value); + + /// + /// __m128 _mm_cvtepu32_ps (__m128i a) + /// VCVTUDQ2PS xmm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector128 ConvertToVector128Single(Vector128 value) => ConvertToVector128Single(value); + + /// + /// __m128 _mm_cvtepu64_ps (__m128i a) + /// VCVTUQQ2PS xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 ConvertToVector128Single(Vector128 value) => ConvertToVector128Single(value); + + /// + /// __m128 _mm256_cvtepi64_ps (__m256i a) + /// VCVTQQ2PS xmm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector128 ConvertToVector128Single(Vector256 value) => ConvertToVector128Single(value); + + /// + /// __m128 _mm256_cvtepu64_ps (__m256i a) + /// VCVTUQQ2PS xmm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector128 ConvertToVector128Single(Vector256 value) => ConvertToVector128Single(value); + + /// + /// __m128i _mm_cvtepi32_epi16 (__m128i a) + /// VPMOVDW xmm1/m64 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128UInt16(Vector128 value) => ConvertToVector128UInt16(value); + + /// + /// __m128i _mm_cvtepi64_epi16 (__m128i a) + /// VPMOVQW xmm1/m32 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128UInt16(Vector128 value) => ConvertToVector128UInt16(value); + + /// + /// __m128i _mm_cvtepi32_epi16 (__m128i a) + /// VPMOVDW xmm1/m64 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128UInt16(Vector128 value) => ConvertToVector128UInt16(value); + + /// + /// __m128i _mm_cvtepi64_epi16 (__m128i a) + /// VPMOVQW xmm1/m32 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128UInt16(Vector128 value) => ConvertToVector128UInt16(value); + + /// + /// __m128i _mm256_cvtepi32_epi16 (__m256i a) + /// VPMOVDW xmm1/m128 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128UInt16(Vector256 value) => ConvertToVector128UInt16(value); + + /// + /// __m128i _mm256_cvtepi64_epi16 (__m256i a) + /// VPMOVQW xmm1/m64 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128UInt16(Vector256 value) => ConvertToVector128UInt16(value); + + /// + /// __m128i _mm256_cvtepi32_epi16 (__m256i a) + /// VPMOVDW xmm1/m128 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128UInt16(Vector256 value) => ConvertToVector128UInt16(value); + + /// + /// __m128i _mm256_cvtepi64_epi16 (__m256i a) + /// VPMOVQW xmm1/m64 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128UInt16(Vector256 value) => ConvertToVector128UInt16(value); + + /// + /// __m128i _mm_cvtusepi32_epi16 (__m128i a) + /// VPMOVUSDW xmm1/m64 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128UInt16WithSaturation(Vector128 value) => ConvertToVector128UInt16WithSaturation(value); + + /// + /// __m128i _mm_cvtusepi64_epi16 (__m128i a) + /// VPMOVUSQW xmm1/m32 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128UInt16WithSaturation(Vector128 value) => ConvertToVector128UInt16WithSaturation(value); + + /// + /// __m128i _mm256_cvtusepi32_epi16 (__m256i a) + /// VPMOVUSDW xmm1/m128 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128UInt16WithSaturation(Vector256 value) => ConvertToVector128UInt16WithSaturation(value); + + /// + /// __m128i _mm256_cvtusepi64_epi16 (__m256i a) + /// VPMOVUSQW xmm1/m64 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128UInt16WithSaturation(Vector256 value) => ConvertToVector128UInt16WithSaturation(value); + + /// + /// __m128i _mm_cvtpd_epu32 (__m128d a) + /// VCVTPD2UDQ xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 ConvertToVector128UInt32(Vector128 value) => ConvertToVector128UInt32(value); + + /// + /// __m128i _mm_cvtps_epu32 (__m128 a) + /// VCVTPS2UDQ xmm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector128 ConvertToVector128UInt32(Vector128 value) => ConvertToVector128UInt32(value); + + /// + /// __m128i _mm_cvtepi64_epi32 (__m128i a) + /// VPMOVQD xmm1/m128 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128UInt32(Vector128 value) => ConvertToVector128UInt32(value); + + /// + /// __m128i _mm_cvtepi64_epi32 (__m128i a) + /// VPMOVQD xmm1/m128 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128UInt32(Vector128 value) => ConvertToVector128UInt32(value); + + /// + /// __m128i _mm256_cvtpd_epu32 (__m256d a) + /// VCVTPD2UDQ xmm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector128 ConvertToVector128UInt32(Vector256 value) => ConvertToVector128UInt32(value); + + /// + /// __m128i _mm256_cvtepi64_epi32 (__m256i a) + /// VPMOVQD xmm1/m128 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128UInt32(Vector256 value) => ConvertToVector128UInt32(value); + + /// + /// __m128i _mm256_cvtepi64_epi32 (__m256i a) + /// VPMOVQD xmm1/m128 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128UInt32(Vector256 value) => ConvertToVector128UInt32(value); + + /// + /// __m128i _mm_cvtusepi64_epi32 (__m128i a) + /// VPMOVUSQD xmm1/m128 {k1}{z}, xmm2 + /// + public static Vector128 ConvertToVector128UInt32WithSaturation(Vector128 value) => ConvertToVector128UInt32WithSaturation(value); + + /// + /// __m128i _mm256_cvtusepi64_epi32 (__m256i a) + /// VPMOVUSQD xmm1/m128 {k1}{z}, ymm2 + /// + public static Vector128 ConvertToVector128UInt32WithSaturation(Vector256 value) => ConvertToVector128UInt32WithSaturation(value); + + /// + /// __m128i _mm_cvttpd_epu32 (__m128d a) + /// VCVTTPD2UDQ xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 ConvertToVector128UInt32WithTruncation(Vector128 value) => ConvertToVector128UInt32WithTruncation(value); + + /// + /// __m128i _mm_cvttps_epu32 (__m128 a) + /// VCVTTPS2UDQ xmm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector128 ConvertToVector128UInt32WithTruncation(Vector128 value) => ConvertToVector128UInt32WithTruncation(value); + + /// + /// __m128i _mm256_cvttpd_epu32 (__m256d a) + /// VCVTTPD2UDQ xmm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector128 ConvertToVector128UInt32WithTruncation(Vector256 value) => ConvertToVector128UInt32WithTruncation(value); + + /// + /// __m128i _mm_cvtpd_epu64 (__m128d a) + /// VCVTPD2UQQ xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 ConvertToVector128UInt64(Vector128 value) => ConvertToVector128UInt64(value); + + /// + /// __m128i _mm_cvtps_epu64 (__m128 a) + /// VCVTPS2UQQ xmm1 {k1}{z}, xmm2/m64/m32bcst + /// + public static Vector128 ConvertToVector128UInt64(Vector128 value) => ConvertToVector128UInt64(value); + + /// + /// __m128i _mm_cvttpd_epu64 (__m128d a) + /// VCVTTPD2UQQ xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 ConvertToVector128UInt64WithTruncation(Vector128 value) => ConvertToVector128UInt64WithTruncation(value); + + /// + /// __m128i _mm_cvttps_epu64 (__m128 a) + /// VCVTTPS2UQQ xmm1 {k1}{z}, xmm2/m64/m32bcst + /// + public static Vector128 ConvertToVector128UInt64WithTruncation(Vector128 value) => ConvertToVector128UInt64WithTruncation(value); + + /// + /// __m256d _mm512_cvtepu32_pd (__m128i a) + /// VCVTUDQ2PD ymm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector256 ConvertToVector256Double(Vector128 value) => ConvertToVector256Double(value); + + /// + /// __m256d _mm256_cvtepi64_pd (__m256i a) + /// VCVTQQ2PD ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 ConvertToVector256Double(Vector256 value) => ConvertToVector256Double(value); + + /// + /// __m256d _mm256_cvtepu64_pd (__m256i a) + /// VCVTUQQ2PD ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 ConvertToVector256Double(Vector256 value) => ConvertToVector256Double(value); + + /// + /// __m256i _mm256_cvtps_epi64 (__m128 a) + /// VCVTPS2QQ ymm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector256 ConvertToVector256Int64(Vector128 value) => ConvertToVector256Int64(value); + + /// + /// __m256i _mm256_cvtpd_epi64 (__m256d a) + /// VCVTPD2QQ ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 ConvertToVector256Int64(Vector256 value) => ConvertToVector256Int64(value); + + /// + /// __m256i _mm256_cvttps_epi64 (__m128 a) + /// VCVTTPS2QQ ymm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector256 ConvertToVector256Int64WithTruncation(Vector128 value) => ConvertToVector256Int64WithTruncation(value); + + /// + /// __m256i _mm256_cvttpd_epi64 (__m256d a) + /// VCVTTPD2QQ ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 ConvertToVector256Int64WithTruncation(Vector256 value) => ConvertToVector256Int64WithTruncation(value); + + /// + /// __m256 _mm256_cvtepu32_ps (__m256i a) + /// VCVTUDQ2PS ymm1 {k1}{z}, ymm2/m256/m32bcst + /// + public static Vector256 ConvertToVector256Single(Vector256 value) => ConvertToVector256Single(value); + + /// + /// __m256i _mm256_cvtps_epu32 (__m256 a) + /// VCVTPS2UDQ ymm1 {k1}{z}, ymm2/m256/m32bcst + /// + public static Vector256 ConvertToVector256UInt32(Vector256 value) => ConvertToVector256UInt32(value); + + /// + /// __m256i _mm256_cvttps_epu32 (__m256 a) + /// VCVTTPS2UDQ ymm1 {k1}{z}, ymm2/m256/m32bcst + /// + public static Vector256 ConvertToVector256UInt32WithTruncation(Vector256 value) => ConvertToVector256UInt32WithTruncation(value); + + /// + /// __m256i _mm256_cvtps_epu64 (__m128 a) + /// VCVTPS2UQQ ymm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector256 ConvertToVector256UInt64(Vector128 value) => ConvertToVector256UInt64(value); + + /// + /// __m256i _mm256_cvtpd_epu64 (__m256d a) + /// VCVTPD2UQQ ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 ConvertToVector256UInt64(Vector256 value) => ConvertToVector256UInt64(value); + + /// + /// __m256i _mm256_cvttps_epu64 (__m128 a) + /// VCVTTPS2UQQ ymm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector256 ConvertToVector256UInt64WithTruncation(Vector128 value) => ConvertToVector256UInt64WithTruncation(value); + + /// + /// __m256i _mm256_cvttpd_epu64 (__m256d a) + /// VCVTTPD2UQQ ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 ConvertToVector256UInt64WithTruncation(Vector256 value) => ConvertToVector256UInt64WithTruncation(value); + + /// + /// __m128i _mm_conflict_epi32 (__m128i a) + /// VPCONFLICTD xmm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector128 DetectConflicts(Vector128 value) => DetectConflicts(value); + + /// + /// __m128i _mm_conflict_epi64 (__m128i a) + /// VPCONFLICTQ xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 DetectConflicts(Vector128 value) => DetectConflicts(value); + + /// + /// __m128i _mm_conflict_epi32 (__m128i a) + /// VPCONFLICTD xmm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector128 DetectConflicts(Vector128 value) => DetectConflicts(value); + + /// + /// __m128i _mm_conflict_epi64 (__m128i a) + /// VPCONFLICTQ xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 DetectConflicts(Vector128 value) => DetectConflicts(value); + + /// + /// __m256i _mm256_conflict_epi32 (__m256i a) + /// VPCONFLICTD ymm1 {k1}{z}, ymm2/m256/m32bcst + /// + public static Vector256 DetectConflicts(Vector256 value) => DetectConflicts(value); + + /// + /// __m256i _mm256_conflict_epi64 (__m256i a) + /// VPCONFLICTQ ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 DetectConflicts(Vector256 value) => DetectConflicts(value); + + /// + /// __m256i _mm256_conflict_epi32 (__m256i a) + /// VPCONFLICTD ymm1 {k1}{z}, ymm2/m256/m32bcst + /// + public static Vector256 DetectConflicts(Vector256 value) => DetectConflicts(value); + + /// + /// __m256i _mm256_conflict_epi64 (__m256i a) + /// VPCONFLICTQ ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 DetectConflicts(Vector256 value) => DetectConflicts(value); + + /// + /// __m128d _mm_div_round_sd (__m128d a, __m128d b, int rounding) + /// VDIVSS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 DivideScalar(Vector128 left, Vector128 right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => DivideScalar(left, right, mode); + + /// + /// __m128 _mm_div_round_ss (__m128 a, __m128 b, int rounding) + /// VDIVSD xmm1, xmm2, xmm3 {er} + /// + public static Vector128 DivideScalar(Vector128 left, Vector128 right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => DivideScalar(left, right, mode); + + /// + /// __m128d _mm_fixupimm_pd(__m128d a, __m128d b, __m128i tbl, int imm); + /// VFIXUPIMMPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst, imm8 + /// + public static Vector128 Fixup(Vector128 left, Vector128 right, Vector128 table, [ConstantExpected] byte control) => Fixup(left, right, table, control); + + /// + /// __m128 _mm_fixupimm_ps(__m128 a, __m128 b, __m128i tbl, int imm); + /// VFIXUPIMMPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst, imm8 + /// + public static Vector128 Fixup(Vector128 left, Vector128 right, Vector128 table, [ConstantExpected] byte control) => Fixup(left, right, table, control); + + /// + /// __m256d _mm256_fixupimm_pd(__m256d a, __m256d b, __m256i tbl, int imm); + /// VFIXUPIMMPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 + /// + public static Vector256 Fixup(Vector256 left, Vector256 right, Vector256 table, [ConstantExpected] byte control) => Fixup(left, right, table, control); + + /// + /// __m256 _mm256_fixupimm_ps(__m256 a, __m256 b, __m256i tbl, int imm); + /// VFIXUPIMMPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 + /// + public static Vector256 Fixup(Vector256 left, Vector256 right, Vector256 table, [ConstantExpected] byte control) => Fixup(left, right, table, control); + + /// + /// __m128d _mm_fixupimm_sd(__m128d a, __m128d b, __m128i tbl, int imm); + /// VFIXUPIMMSD xmm1 {k1}{z}, xmm2, xmm3/m64{sae}, imm8 + /// + public static Vector128 FixupScalar(Vector128 left, Vector128 right, Vector128 table, [ConstantExpected] byte control) => FixupScalar(left, right, table, control); + + /// + /// __m128 _mm_fixupimm_ss(__m128 a, __m128 b, __m128i tbl, int imm); + /// VFIXUPIMMSS xmm1 {k1}{z}, xmm2, xmm3/m32{sae}, imm8 + /// + public static Vector128 FixupScalar(Vector128 left, Vector128 right, Vector128 table, [ConstantExpected] byte control) => FixupScalar(left, right, table, control); + + /// + /// __m128d _mm_fnmadd_round_sd (__m128d a, __m128d b, __m128d c, int r) + /// VFNMADDSD xmm1, xmm2, xmm3 {er} + /// + public static Vector128 FusedMultiplyAddNegatedScalar(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => FusedMultiplyAddNegatedScalar(a, b, c, mode); + + /// + /// __m128 _mm_fnmadd_round_ss (__m128 a, __m128 b, __m128 c, int r) + /// VFNMADDSS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 FusedMultiplyAddNegatedScalar(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => FusedMultiplyAddNegatedScalar(a, b, c, mode); + + /// + /// __m128d _mm_fmadd_round_sd (__m128d a, __m128d b, __m128d c, int r) + /// VFMADDSD xmm1, xmm2, xmm3 {er} + /// + public static Vector128 FusedMultiplyAddScalar(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => FusedMultiplyAddScalar(a, b, c, mode); + + /// + /// __m128 _mm_fmadd_round_ss (__m128 a, __m128 b, __m128 c, int r) + /// VFMADDSS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 FusedMultiplyAddScalar(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => FusedMultiplyAddScalar(a, b, c, mode); + + /// + /// __m128d _mm_fnmsub_round_sd (__m128d a, __m128d b, __m128d c, int r) + /// VFNMSUBSS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 FusedMultiplySubtractNegatedScalar(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => FusedMultiplySubtractNegatedScalar(a, b, c, mode); + + /// + /// __m128 _mm_fnmsub_round_ss (__m128 a, __m128 b, __m128 c, int r) + /// VFNMSUBSS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 FusedMultiplySubtractNegatedScalar(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => FusedMultiplySubtractNegatedScalar(a, b, c, mode); + + /// + /// __m128d _mm_fmsub_round_sd (__m128d a, __m128d b, __m128d c, int r) + /// VFMSUBSS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 FusedMultiplySubtractScalar(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => FusedMultiplySubtractScalar(a, b, c, mode); + + /// + /// __m128 _mm_fmsub_round_ss (__m128 a, __m128 b, __m128 c, int r) + /// VFMSUBSS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 FusedMultiplySubtractScalar(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => FusedMultiplySubtractScalar(a, b, c, mode); + + /// + /// __m128d _mm_getexp_pd (__m128d a) + /// VGETEXPPD xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 GetExponent(Vector128 value) => GetExponent(value); + + /// + /// __m128 _mm_getexp_ps (__m128 a) + /// VGETEXPPS xmm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector128 GetExponent(Vector128 value) => GetExponent(value); + + /// + /// __m256d _mm256_getexp_pd (__m256d a) + /// VGETEXPPD ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 GetExponent(Vector256 value) => GetExponent(value); + + /// + /// __m256 _mm256_getexp_ps (__m256 a) + /// VGETEXPPS ymm1 {k1}{z}, ymm2/m256/m32bcst + /// + public static Vector256 GetExponent(Vector256 value) => GetExponent(value); + + /// + /// __m128d _mm_getexp_sd (__m128d a, __m128d b) + /// VGETEXPSD xmm1 {k1}{z}, xmm2, xmm3/m64{sae} + /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. + /// + public static Vector128 GetExponentScalar(Vector128 upper, Vector128 value) => GetExponentScalar(upper, value); + + /// + /// __m128d _mm_getexp_sd (__m128d a) + /// VGETEXPSD xmm1 {k1}{z}, xmm2, xmm3/m64{sae} + /// + public static Vector128 GetExponentScalar(Vector128 value) => GetExponentScalar(value); + + /// + /// __m128 _mm_getexp_ss (__m128 a, __m128 b) + /// VGETEXPSS xmm1 {k1}{z}, xmm2, xmm3/m32{sae} + /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. + /// + public static Vector128 GetExponentScalar(Vector128 upper, Vector128 value) => GetExponentScalar(upper, value); + + /// + /// __m128 _mm_getexp_ss (__m128 a) + /// VGETEXPSS xmm1 {k1}{z}, xmm2, xmm3/m32{sae} + /// + public static Vector128 GetExponentScalar(Vector128 value) => GetExponentScalar(value); + + /// + /// __m128d _mm_getmant_pd (__m128d a) + /// VGETMANTPD xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 GetMantissa(Vector128 value, [ConstantExpected(Max = (byte)(0x0F))] byte control) => GetMantissa(value, control); + + /// + /// __m128 _mm_getmant_ps (__m128 a) + /// VGETMANTPS xmm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector128 GetMantissa(Vector128 value, [ConstantExpected(Max = (byte)(0x0F))] byte control) => GetMantissa(value, control); + + /// + /// __m256d _mm256_getmant_pd (__m256d a) + /// VGETMANTPD ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 GetMantissa(Vector256 value, [ConstantExpected(Max = (byte)(0x0F))] byte control) => GetMantissa(value, control); + + /// + /// __m256 _mm256_getmant_ps (__m256 a) + /// VGETMANTPS ymm1 {k1}{z}, ymm2/m256/m32bcst + /// + public static Vector256 GetMantissa(Vector256 value, [ConstantExpected(Max = (byte)(0x0F))] byte control) => GetMantissa(value, control); + + /// + /// __m128d _mm_getmant_sd (__m128d a, __m128d b) + /// VGETMANTSD xmm1 {k1}{z}, xmm2, xmm3/m64{sae} + /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. + /// + public static Vector128 GetMantissaScalar(Vector128 upper, Vector128 value, [ConstantExpected(Max = (byte)(0x0F))] byte control) => GetMantissaScalar(upper, value, control); + + /// + /// __m128d _mm_getmant_sd (__m128d a) + /// VGETMANTSD xmm1 {k1}{z}, xmm2, xmm3/m64{sae} + /// + public static Vector128 GetMantissaScalar(Vector128 value, [ConstantExpected(Max = (byte)(0x0F))] byte control) => GetMantissaScalar(value, control); + + /// + /// __m128 _mm_getmant_ss (__m128 a, __m128 b) + /// VGETMANTSS xmm1 {k1}{z}, xmm2, xmm3/m32{sae} + /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. + /// + public static Vector128 GetMantissaScalar(Vector128 upper, Vector128 value, [ConstantExpected(Max = (byte)(0x0F))] byte control) => GetMantissaScalar(upper, value, control); + + /// + /// __m128 _mm_getmant_ss (__m128 a) + /// VGETMANTSS xmm1 {k1}{z}, xmm2, xmm3/m32{sae} + /// + public static Vector128 GetMantissaScalar(Vector128 value, [ConstantExpected(Max = (byte)(0x0F))] byte control) => GetMantissaScalar(value, control); + + /// + /// __m128i _mm_lzcnt_epi32 (__m128i a) + /// VPLZCNTD xmm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector128 LeadingZeroCount(Vector128 value) => LeadingZeroCount(value); + + /// + /// __m128i _mm_lzcnt_epi64 (__m128i a) + /// VPLZCNTQ xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 LeadingZeroCount(Vector128 value) => LeadingZeroCount(value); + + /// + /// __m128i _mm_lzcnt_epi32 (__m128i a) + /// VPLZCNTD xmm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector128 LeadingZeroCount(Vector128 value) => LeadingZeroCount(value); + + /// + /// __m128i _mm_lzcnt_epi64 (__m128i a) + /// VPLZCNTQ xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 LeadingZeroCount(Vector128 value) => LeadingZeroCount(value); + + /// + /// __m256i _mm256_lzcnt_epi32 (__m256i a) + /// VPLZCNTD ymm1 {k1}{z}, ymm2/m256/m32bcst + /// + public static Vector256 LeadingZeroCount(Vector256 value) => LeadingZeroCount(value); + + /// + /// __m256i _mm256_lzcnt_epi64 (__m256i a) + /// VPLZCNTQ ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 LeadingZeroCount(Vector256 value) => LeadingZeroCount(value); + + /// + /// __m256i _mm256_lzcnt_epi32 (__m256i a) + /// VPLZCNTD ymm1 {k1}{z}, ymm2/m256/m32bcst + /// + public static Vector256 LeadingZeroCount(Vector256 value) => LeadingZeroCount(value); + + /// + /// __m256i _mm256_lzcnt_epi64 (__m256i a) + /// VPLZCNTQ ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 LeadingZeroCount(Vector256 value) => LeadingZeroCount(value); + + /// + /// __m128i _mm_max_epi64 (__m128i a, __m128i b) + /// VPMAXSQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 Max(Vector128 left, Vector128 right) => Max(left, right); + + /// + /// __m128i _mm_max_epu64 (__m128i a, __m128i b) + /// VPMAXUQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 Max(Vector128 left, Vector128 right) => Max(left, right); + + /// + /// __m256i _mm256_max_epi64 (__m256i a, __m256i b) + /// VPMAXSQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 Max(Vector256 left, Vector256 right) => Max(left, right); + + /// + /// __m256i _mm256_max_epu64 (__m256i a, __m256i b) + /// VPMAXUQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 Max(Vector256 left, Vector256 right) => Max(left, right); + + /// + /// __m128i _mm_min_epi64 (__m128i a, __m128i b) + /// VPMINSQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 Min(Vector128 left, Vector128 right) => Min(left, right); + + /// + /// __m128i _mm_min_epu64 (__m128i a, __m128i b) + /// VPMINUQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 Min(Vector128 left, Vector128 right) => Min(left, right); + + /// + /// __m256i _mm256_min_epi64 (__m256i a, __m256i b) + /// VPMINSQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 Min(Vector256 left, Vector256 right) => Min(left, right); + + /// + /// __m256i _mm256_min_epu64 (__m256i a, __m256i b) + /// VPMINUQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 Min(Vector256 left, Vector256 right) => Min(left, right); + + /// + /// __m128 _mm_fmadd_ps (__m128 a, __m128 b, __m128 c) + /// VFMADDPS xmm1, xmm2, xmm3/m128 + /// VFMADDPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 MultiplyAdd(Vector128 a, Vector128 b, Vector128 c) => MultiplyAdd(a, b, c); + + /// + /// __m128d _mm_fmadd_pd (__m128d a, __m128d b, __m128d c) + /// VFMADDPD xmm1, xmm2, xmm3/m128 + /// VFMADDPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 MultiplyAdd(Vector128 a, Vector128 b, Vector128 c) => MultiplyAdd(a, b, c); + + /// + /// __m256 _mm256_fmadd_ps (__m256 a, __m256 b, __m256 c) + /// VFMADDPS ymm1, ymm2, ymm3/m256 + /// VFMADDPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 MultiplyAdd(Vector256 a, Vector256 b, Vector256 c) => MultiplyAdd(a, b, c); + + /// + /// __m256d _mm256_fmadd_pd (__m256d a, __m256d b, __m256d c) + /// VFMADDPD ymm1, ymm2, ymm3/m256 + /// VFMADDPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 MultiplyAdd(Vector256 a, Vector256 b, Vector256 c) => MultiplyAdd(a, b, c); + + /// + /// __m128 _mm_fnmadd_ps (__m128 a, __m128 b, __m128 c) + /// VFNMADDPS xmm1, xmm2, xmm3/m128 + /// VFNMADDPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 MultiplyAddNegated(Vector128 a, Vector128 b, Vector128 c) => MultiplyAddNegated(a, b, c); + + /// + /// __m128d _mm_fnmadd_pd (__m128d a, __m128d b, __m128d c) + /// VFNMADDPD xmm1, xmm2, xmm3/m128 + /// VFNMADDPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 MultiplyAddNegated(Vector128 a, Vector128 b, Vector128 c) => MultiplyAddNegated(a, b, c); + + /// + /// __m256 _mm256_fnmadd_ps (__m256 a, __m256 b, __m256 c) + /// VFNMADDPS ymm1, ymm2, ymm3/m256 + /// VFNMADDPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 MultiplyAddNegated(Vector256 a, Vector256 b, Vector256 c) => MultiplyAddNegated(a, b, c); + + /// + /// __m256d _mm256_fnmadd_pd (__m256d a, __m256d b, __m256d c) + /// VFNMADDPD ymm1, ymm2, ymm3/m256 + /// VFNMADDPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 MultiplyAddNegated(Vector256 a, Vector256 b, Vector256 c) => MultiplyAddNegated(a, b, c); + + /// + /// __m128 _mm_fnmadd_ss (__m128 a, __m128 b, __m128 c) + /// VFNMADDSS xmm1, xmm2, xmm3/m32 + /// VFNMADDSS xmm1 {k1}{z}, xmm2, xmm3/m32{er} + /// + public static Vector128 MultiplyAddNegatedScalar(Vector128 a, Vector128 b, Vector128 c) => MultiplyAddNegatedScalar(a, b, c); + + /// + /// __m128d _mm_fnmadd_sd (__m128d a, __m128d b, __m128d c) + /// VFNMADDSD xmm1, xmm2, xmm3/m64 + /// VFNMADDSD xmm1 {k1}{z}, xmm2, xmm3/m64{er} + /// + public static Vector128 MultiplyAddNegatedScalar(Vector128 a, Vector128 b, Vector128 c) => MultiplyAddNegatedScalar(a, b, c); + + /// + /// __m128 _mm_fmadd_ss (__m128 a, __m128 b, __m128 c) + /// VFMADDSS xmm1, xmm2, xmm3/m32 + /// VFMADDSS xmm1 {k1}{z}, xmm2, xmm3/m32{er} + /// + public static Vector128 MultiplyAddScalar(Vector128 a, Vector128 b, Vector128 c) => MultiplyAddScalar(a, b, c); + + /// + /// __m128d _mm_fmadd_sd (__m128d a, __m128d b, __m128d c) + /// VFMADDSD xmm1, xmm2, xmm3/m64 + /// VFMADDSD xmm1 {k1}{z}, xmm2, xmm3/m64{er} + /// + public static Vector128 MultiplyAddScalar(Vector128 a, Vector128 b, Vector128 c) => MultiplyAddScalar(a, b, c); + + /// + /// __m128 _mm_fmaddsub_ps (__m128 a, __m128 b, __m128 c) + /// VFMADDSUBPS xmm1, xmm2, xmm3/m128 + /// VFMADDSUBPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 MultiplyAddSubtract(Vector128 a, Vector128 b, Vector128 c) => MultiplyAddSubtract(a, b, c); + + /// + /// __m128d _mm_fmaddsub_pd (__m128d a, __m128d b, __m128d c) + /// VFMADDSUBPD xmm1, xmm2, xmm3/m128 + /// VFMADDSUBPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 MultiplyAddSubtract(Vector128 a, Vector128 b, Vector128 c) => MultiplyAddSubtract(a, b, c); + + /// + /// __m256 _mm256_fmaddsub_ps (__m256 a, __m256 b, __m256 c) + /// VFMADDSUBPS ymm1, ymm2, ymm3/m256 + /// VFMADDSUBPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 MultiplyAddSubtract(Vector256 a, Vector256 b, Vector256 c) => MultiplyAddSubtract(a, b, c); + + /// + /// __m256d _mm256_fmaddsub_pd (__m256d a, __m256d b, __m256d c) + /// VFMADDSUBPD ymm1, ymm2, ymm3/m256 + /// VFMADDSUBPD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 MultiplyAddSubtract(Vector256 a, Vector256 b, Vector256 c) => MultiplyAddSubtract(a, b, c); + + /// + /// __m128i _mm_mullo_epi64 (__m128i a, __m128i b) + /// VPMULLQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 MultiplyLow(Vector128 left, Vector128 right) => MultiplyLow(left, right); + + /// + /// __m128i _mm_mullo_epi64 (__m128i a, __m128i b) + /// VPMULLQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 MultiplyLow(Vector128 left, Vector128 right) => MultiplyLow(left, right); + + /// + /// __m256i _mm256_mullo_epi64 (__m256i a, __m256i b) + /// VPMULLQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 MultiplyLow(Vector256 left, Vector256 right) => MultiplyLow(left, right); + + /// + /// __m256i _mm256_mullo_epi64 (__m256i a, __m256i b) + /// VPMULLQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 MultiplyLow(Vector256 left, Vector256 right) => MultiplyLow(left, right); + + /// + /// __m128d _mm_mul_round_sd (__m128d a, __m128d b, int rounding) + /// VMULSD xmm1, xmm2, xmm3 {er} + /// + public static Vector128 MultiplyScalar(Vector128 left, Vector128 right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => MultiplyScalar(left, right, mode); + + /// + /// __m128 _mm_mul_round_ss (__m128 a, __m128 b, int rounding) + /// VMULSS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 MultiplyScalar(Vector128 left, Vector128 right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => MultiplyScalar(left, right, mode); + + /// + /// __m128 _mm_fmsub_ps (__m128 a, __m128 b, __m128 c) + /// VFMSUBPS xmm1, xmm2, xmm3/m128 + /// VFMSUBPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 MultiplySubtract(Vector128 a, Vector128 b, Vector128 c) => MultiplySubtract(a, b, c); + + /// + /// __m128d _mm_fmsub_pd (__m128d a, __m128d b, __m128d c) + /// VFMSUBPD xmm1, xmm2, xmm3/m128 + /// VFMSUBPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 MultiplySubtract(Vector128 a, Vector128 b, Vector128 c) => MultiplySubtract(a, b, c); + + /// + /// __m256 _mm256_fmsub_ps (__m256 a, __m256 b, __m256 c) + /// VFMSUBPS ymm1, ymm2, ymm3/m256 + /// VFMSUBPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 MultiplySubtract(Vector256 a, Vector256 b, Vector256 c) => MultiplySubtract(a, b, c); + + /// + /// __m256d _mm256_fmsub_pd (__m256d a, __m256d b, __m256d c) + /// VFMSUBPD ymm1, ymm2, ymm3/m256 + /// VFMSUBPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 MultiplySubtract(Vector256 a, Vector256 b, Vector256 c) => MultiplySubtract(a, b, c); + + /// + /// __m128 _mm_fmsubadd_ps (__m128 a, __m128 b, __m128 c) + /// VFMSUBADDPS xmm1, xmm2, xmm3/m128 + /// VFMSUBADDPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 MultiplySubtractAdd(Vector128 a, Vector128 b, Vector128 c) => MultiplySubtractAdd(a, b, c); + + /// + /// __m128d _mm_fmsubadd_pd (__m128d a, __m128d b, __m128d c) + /// VFMSUBADDPD xmm1, xmm2, xmm3/m128 + /// VFMSUBADDPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 MultiplySubtractAdd(Vector128 a, Vector128 b, Vector128 c) => MultiplySubtractAdd(a, b, c); + + /// + /// __m256 _mm256_fmsubadd_ps (__m256 a, __m256 b, __m256 c) + /// VFMSUBADDPS ymm1, ymm2, ymm3/m256 + /// VFMSUBADDPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 MultiplySubtractAdd(Vector256 a, Vector256 b, Vector256 c) => MultiplySubtractAdd(a, b, c); + + /// + /// __m256d _mm256_fmsubadd_pd (__m256d a, __m256d b, __m256d c) + /// VFMSUBADDPD ymm1, ymm2, ymm3/m256 + /// VFMSUBADDPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 MultiplySubtractAdd(Vector256 a, Vector256 b, Vector256 c) => MultiplySubtractAdd(a, b, c); + + /// + /// __m128 _mm_fnmsub_ps (__m128 a, __m128 b, __m128 c) + /// VFNMSUBPS xmm1, xmm2, xmm3/m128 + /// VFNMSUBPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 MultiplySubtractNegated(Vector128 a, Vector128 b, Vector128 c) => MultiplySubtractNegated(a, b, c); + + /// + /// __m128d _mm_fnmsub_pd (__m128d a, __m128d b, __m128d c) + /// VFNMSUBPD xmm1, xmm2, xmm3/m128 + /// VFNMSUBPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 MultiplySubtractNegated(Vector128 a, Vector128 b, Vector128 c) => MultiplySubtractNegated(a, b, c); + + /// + /// __m256 _mm256_fnmsub_ps (__m256 a, __m256 b, __m256 c) + /// VFNMSUBPS ymm1, ymm2, ymm3/m256 + /// VFNMSUBPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 MultiplySubtractNegated(Vector256 a, Vector256 b, Vector256 c) => MultiplySubtractNegated(a, b, c); + + /// + /// __m256d _mm256_fnmsub_pd (__m256d a, __m256d b, __m256d c) + /// VFNMSUBPD ymm1, ymm2, ymm3/m256 + /// VFNMSUBPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 MultiplySubtractNegated(Vector256 a, Vector256 b, Vector256 c) => MultiplySubtractNegated(a, b, c); + + /// + /// __m128 _mm_fnmsub_ss (__m128 a, __m128 b, __m128 c) + /// VFNMSUBSS xmm1, xmm2, xmm3/m32 + /// VFNMSUBSS xmm1 {k1}{z}, xmm2, xmm3/m32{er} + /// + public static Vector128 MultiplySubtractNegatedScalar(Vector128 a, Vector128 b, Vector128 c) => MultiplySubtractNegatedScalar(a, b, c); + + /// + /// __m128d _mm_fnmsub_sd (__m128d a, __m128d b, __m128d c) + /// VFNMSUBSD xmm1, xmm2, xmm3/m64 + /// VFNMSUBSD xmm1 {k1}{z}, xmm2, xmm3/m64{er} + /// + public static Vector128 MultiplySubtractNegatedScalar(Vector128 a, Vector128 b, Vector128 c) => MultiplySubtractNegatedScalar(a, b, c); + + /// + /// __m128d _mm_fmsub_sd (__m128d a, __m128d b, __m128d c) + /// VFMSUBSD xmm1, xmm2, xmm3/m64 + /// VFMSUBSD xmm1 {k1}{z}, xmm2, xmm3/m64{er} + /// + public static Vector128 MultiplySubtractScalar(Vector128 a, Vector128 b, Vector128 c) => MultiplySubtractScalar(a, b, c); + + /// + /// __m128 _mm_fmsub_ss (__m128 a, __m128 b, __m128 c) + /// VFMSUBSS xmm1, xmm2, xmm3/m32 + /// VFMSUBSS xmm1 {k1}{z}, xmm2, xmm3/m32{er} + /// + public static Vector128 MultiplySubtractScalar(Vector128 a, Vector128 b, Vector128 c) => MultiplySubtractScalar(a, b, c); + + /// + /// __m256i _mm256_permutevar16x16_epi16 (__m256i a, __m256i b) + /// VPERMW ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 PermuteVar16x16(Vector256 left, Vector256 control) => PermuteVar16x16(left, control); + + /// + /// __m256i _mm256_permutevar16x16_epi16 (__m256i a, __m256i b) + /// VPERMW ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 PermuteVar16x16(Vector256 left, Vector256 control) => PermuteVar16x16(left, control); + + /// + /// __m256i _mm256_permutex2var_epi16 (__m256i a, __m256i idx, __m256i b) + /// VPERMI2W ymm1 {k1}{z}, ymm2, ymm3/m256 + /// VPERMT2W ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 PermuteVar16x16x2(Vector256 lower, Vector256 indices, Vector256 upper) => PermuteVar16x16x2(lower, indices, upper); + + /// + /// __m256i _mm256_permutex2var_epi16 (__m256i a, __m256i idx, __m256i b) + /// VPERMI2W ymm1 {k1}{z}, ymm2, ymm3/m256 + /// VPERMT2W ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 PermuteVar16x16x2(Vector256 lower, Vector256 indices, Vector256 upper) => PermuteVar16x16x2(lower, indices, upper); + + /// + /// __m128i _mm_permutevar64x8_epi8 (__m128i a, __m128i b) + /// VPERMB xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 PermuteVar16x8(Vector128 left, Vector128 control) => PermuteVar16x8(left, control); + + /// + /// __m128i _mm_permutevar64x8_epi8 (__m128i a, __m128i b) + /// VPERMB xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 PermuteVar16x8(Vector128 left, Vector128 control) => PermuteVar16x8(left, control); + + /// + /// __m128i _mm_permutex2var_epi8 (__m128i a, __m128i idx, __m128i b) + /// VPERMI2B xmm1 {k1}{z}, xmm2, xmm3/m128 + /// VPERMT2B xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 PermuteVar16x8x2(Vector128 lower, Vector128 indices, Vector128 upper) => PermuteVar16x8x2(lower, indices, upper); + + /// + /// __m128i _mm_permutex2var_epi8 (__m128i a, __m128i idx, __m128i b) + /// VPERMI2B xmm1 {k1}{z}, xmm2, xmm3/m128 + /// VPERMT2B xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 PermuteVar16x8x2(Vector128 lower, Vector128 indices, Vector128 upper) => PermuteVar16x8x2(lower, indices, upper); + + /// + /// __m128d _mm_permutex2var_pd (__m128d a, __m128i idx, __m128i b) + /// VPERMI2PD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// VPERMT2PD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 PermuteVar2x64x2(Vector128 lower, Vector128 indices, Vector128 upper) => PermuteVar2x64x2(lower, indices, upper); + + /// + /// __m128i _mm_permutex2var_epi64 (__m128i a, __m128i idx, __m128i b) + /// VPERMI2Q xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// VPERMT2Q xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 PermuteVar2x64x2(Vector128 lower, Vector128 indices, Vector128 upper) => PermuteVar2x64x2(lower, indices, upper); + + /// + /// __m128i _mm_permutex2var_epi64 (__m128i a, __m128i idx, __m128i b) + /// VPERMI2Q xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// VPERMT2Q xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 PermuteVar2x64x2(Vector128 lower, Vector128 indices, Vector128 upper) => PermuteVar2x64x2(lower, indices, upper); + + /// + /// __m256i _mm256_permutevar64x8_epi8 (__m256i a, __m256i b) + /// VPERMB ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 PermuteVar32x8(Vector256 left, Vector256 control) => PermuteVar32x8(left, control); + + /// + /// __m256i _mm256_permutevar64x8_epi8 (__m256i a, __m256i b) + /// VPERMB ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 PermuteVar32x8(Vector256 left, Vector256 control) => PermuteVar32x8(left, control); + + /// + /// __m256i _mm256_permutex2var_epi8 (__m256i a, __m256i idx, __m256i b) + /// VPERMI2B ymm1 {k1}{z}, ymm2, ymm3/m256 + /// VPERMT2B ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 PermuteVar32x8x2(Vector256 lower, Vector256 indices, Vector256 upper) => PermuteVar32x8x2(lower, indices, upper); + + /// + /// __m256i _mm256_permutex2var_epi8 (__m256i a, __m256i idx, __m256i b) + /// VPERMI2B ymm1 {k1}{z}, ymm2, ymm3/m256 + /// VPERMT2B ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 PermuteVar32x8x2(Vector256 lower, Vector256 indices, Vector256 upper) => PermuteVar32x8x2(lower, indices, upper); + + /// + /// __m128 _mm_permutex2var_ps (__m128 a, __m128i idx, __m128i b) + /// VPERMI2PS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// VPERMT2PS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 PermuteVar4x32x2(Vector128 lower, Vector128 indices, Vector128 upper) => PermuteVar4x32x2(lower, indices, upper); + + /// + /// __m128i _mm_permutex2var_epi32 (__m128i a, __m128i idx, __m128i b) + /// VPERMI2D xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// VPERMT2D xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 PermuteVar4x32x2(Vector128 lower, Vector128 indices, Vector128 upper) => PermuteVar4x32x2(lower, indices, upper); + + /// + /// __m128i _mm_permutex2var_epi32 (__m128i a, __m128i idx, __m128i b) + /// VPERMI2D xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// VPERMT2D xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 PermuteVar4x32x2(Vector128 lower, Vector128 indices, Vector128 upper) => PermuteVar4x32x2(lower, indices, upper); + + /// + /// __m256d _mm256_permute4x64_pd (__m256d a, __m256i b) + /// VPERMPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 PermuteVar4x64(Vector256 value, Vector256 control) => PermuteVar4x64(value, control); + + /// + /// __m256i _mm256_permute4x64_epi64 (__m256i a, __m256i b) + /// VPERMQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 PermuteVar4x64(Vector256 value, Vector256 control) => PermuteVar4x64(value, control); + + /// + /// __m256i _mm256_permute4x64_pd (__m256d a, __m256i b) + /// VPERMQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 PermuteVar4x64(Vector256 value, Vector256 control) => PermuteVar4x64(value, control); + + /// + /// __m256d _mm256_permutex2var_pd (__m256d a, __m256i idx, __m256i b) + /// VPERMI2PD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// VPERMT2PD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 PermuteVar4x64x2(Vector256 lower, Vector256 indices, Vector256 upper) => PermuteVar4x64x2(lower, indices, upper); + + /// + /// __m256i _mm256_permutex2var_epi64 (__m256i a, __m256i idx, __m256i b) + /// VPERMI2Q ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// VPERMT2Q ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 PermuteVar4x64x2(Vector256 lower, Vector256 indices, Vector256 upper) => PermuteVar4x64x2(lower, indices, upper); + + /// + /// __m256i _mm256_permutex2var_epi64 (__m256i a, __m256i idx, __m256i b) + /// VPERMI2Q ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// VPERMT2Q ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 PermuteVar4x64x2(Vector256 lower, Vector256 indices, Vector256 upper) => PermuteVar4x64x2(lower, indices, upper); + + /// + /// __m128i _mm_permutevar8x16_epi16 (__m128i a, __m128i b) + /// VPERMW xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 PermuteVar8x16(Vector128 left, Vector128 control) => PermuteVar8x16(left, control); + + /// + /// __m128i _mm_permutevar8x16_epi16 (__m128i a, __m128i b) + /// VPERMW xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 PermuteVar8x16(Vector128 left, Vector128 control) => PermuteVar8x16(left, control); + + /// + /// __m128i _mm_permutex2var_epi16 (__m128i a, __m128i idx, __m128i b) + /// VPERMI2W xmm1 {k1}{z}, xmm2, xmm3/m128 + /// VPERMT2W xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 PermuteVar8x16x2(Vector128 lower, Vector128 indices, Vector128 upper) => PermuteVar8x16x2(lower, indices, upper); + + /// + /// __m128i _mm_permutex2var_epi16 (__m128i a, __m128i idx, __m128i b) + /// VPERMI2W xmm1 {k1}{z}, xmm2, xmm3/m128 + /// VPERMT2W xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 PermuteVar8x16x2(Vector128 lower, Vector128 indices, Vector128 upper) => PermuteVar8x16x2(lower, indices, upper); + + /// + /// __m256 _mm256_permutex2var_ps (__m256 a, __m256i idx, __m256i b) + /// VPERMI2PS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// VPERMT2PS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 PermuteVar8x32x2(Vector256 lower, Vector256 indices, Vector256 upper) => PermuteVar8x32x2(lower, indices, upper); + + /// + /// __m256i _mm256_permutex2var_epi32 (__m256i a, __m256i idx, __m256i b) + /// VPERMI2D ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// VPERMT2D ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 PermuteVar8x32x2(Vector256 lower, Vector256 indices, Vector256 upper) => PermuteVar8x32x2(lower, indices, upper); + + /// + /// __m256i _mm256_permutex2var_epi32 (__m256i a, __m256i idx, __m256i b) + /// VPERMI2D ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// VPERMT2D ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 PermuteVar8x32x2(Vector256 lower, Vector256 indices, Vector256 upper) => PermuteVar8x32x2(lower, indices, upper); + + /// + /// __m128d _mm_range_pd(__m128d a, __m128d b, int imm); + /// VRANGEPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst, imm8 + /// + public static Vector128 Range(Vector128 left, Vector128 right, [ConstantExpected(Max = (byte)(0x0F))] byte control) => Range(left, right, control); + + /// + /// __m128 _mm_range_ps(__m128 a, __m128 b, int imm); + /// VRANGEPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst, imm8 + /// + public static Vector128 Range(Vector128 left, Vector128 right, [ConstantExpected(Max = (byte)(0x0F))] byte control) => Range(left, right, control); + + /// + /// __m256d _mm256_range_pd(__m256d a, __m256d b, int imm); + /// VRANGEPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 + /// + public static Vector256 Range(Vector256 left, Vector256 right, [ConstantExpected(Max = (byte)(0x0F))] byte control) => Range(left, right, control); + + /// + /// __m256 _mm256_range_ps(__m256 a, __m256 b, int imm); + /// VRANGEPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 + /// + public static Vector256 Range(Vector256 left, Vector256 right, [ConstantExpected(Max = (byte)(0x0F))] byte control) => Range(left, right, control); + + /// + /// __m128d _mm_range_sd(__m128d a, __m128d b, int imm); + /// VRANGESD xmm1 {k1}{z}, xmm2, xmm3/m64{sae}, imm8 + /// + public static Vector128 RangeScalar(Vector128 left, Vector128 right, [ConstantExpected(Max = (byte)(0x0F))] byte control) => RangeScalar(left, right, control); + + /// + /// __m128 _mm_range_ss(__m128 a, __m128 b, int imm); + /// VRANGESS xmm1 {k1}{z}, xmm2, xmm3/m32{sae}, imm8 + /// + public static Vector128 RangeScalar(Vector128 left, Vector128 right, [ConstantExpected(Max = (byte)(0x0F))] byte control) => RangeScalar(left, right, control); + + /// + /// __m128d _mm_rcp14_pd (__m128d a, __m128d b) + /// VRCP14PD xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 Reciprocal14(Vector128 value) => Reciprocal14(value); + + /// + /// __m128 _mm_rcp14_ps (__m128 a, __m128 b) + /// VRCP14PS xmm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector128 Reciprocal14(Vector128 value) => Reciprocal14(value); + + /// + /// __m256d _mm256_rcp14_pd (__m256d a, __m256d b) + /// VRCP14PD ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 Reciprocal14(Vector256 value) => Reciprocal14(value); + + /// + /// __m256 _mm256_rcp14_ps (__m256 a, __m256 b) + /// VRCP14PS ymm1 {k1}{z}, ymm2/m256/m32bcst + /// + public static Vector256 Reciprocal14(Vector256 value) => Reciprocal14(value); + + /// + /// __m128d _mm_rcp14_sd (__m128d a, __m128d b) + /// VRCP14SD xmm1 {k1}{z}, xmm2, xmm3/m64 + /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. + /// + public static Vector128 Reciprocal14Scalar(Vector128 upper, Vector128 value) => Reciprocal14Scalar(upper, value); + + /// + /// __m128d _mm_rcp14_sd (__m128d a) + /// VRCP14SD xmm1 {k1}{z}, xmm2, xmm3/m64 + /// + public static Vector128 Reciprocal14Scalar(Vector128 value) => Reciprocal14Scalar(value); + + /// + /// __m128 _mm_rcp14_ss (__m128 a, __m128 b) + /// VRCP14SS xmm1 {k1}{z}, xmm2, xmm3/m32 + /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. + /// + public static Vector128 Reciprocal14Scalar(Vector128 upper, Vector128 value) => Reciprocal14Scalar(upper, value); + + /// + /// __m128 _mm_rcp14_ss (__m128 a) + /// VRCP14SS xmm1 {k1}{z}, xmm2, xmm3/m32 + /// + public static Vector128 Reciprocal14Scalar(Vector128 value) => Reciprocal14Scalar(value); + + /// + /// __m128d _mm_rsqrt14_pd (__m128d a, __m128d b) + /// VRSQRT14PD xmm1 {k1}{z}, xmm2/m128/m64bcst + /// + public static Vector128 ReciprocalSqrt14(Vector128 value) => ReciprocalSqrt14(value); + + /// + /// __m128 _mm_rsqrt14_ps (__m128 a, __m128 b) + /// VRSQRT14PS xmm1 {k1}{z}, xmm2/m128/m32bcst + /// + public static Vector128 ReciprocalSqrt14(Vector128 value) => ReciprocalSqrt14(value); + + /// + /// __m256d _mm256_rsqrt14_pd (__m256d a, __m256d b) + /// VRSQRT14PD ymm1 {k1}{z}, ymm2/m256/m64bcst + /// + public static Vector256 ReciprocalSqrt14(Vector256 value) => ReciprocalSqrt14(value); + + /// + /// __m256 _mm256_rsqrt14_ps (__m256 a, __m256 b) + /// VRSQRT14PS ymm1 {k1}{z}, ymm2/m256/m32bcst + /// + public static Vector256 ReciprocalSqrt14(Vector256 value) => ReciprocalSqrt14(value); + + /// + /// __m128d _mm_rsqrt14_sd (__m128d a, __m128d b) + /// VRSQRT14SD xmm1 {k1}{z}, xmm2, xmm3/m64 + /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. + /// + public static Vector128 ReciprocalSqrt14Scalar(Vector128 upper, Vector128 value) => ReciprocalSqrt14Scalar(upper, value); + + /// + /// __m128d _mm_rsqrt14_sd (__m128d a) + /// VRSQRT14SD xmm1 {k1}{z}, xmm2, xmm3/m64 + /// + public static Vector128 ReciprocalSqrt14Scalar(Vector128 value) => ReciprocalSqrt14Scalar(value); + + /// + /// __m128 _mm_rsqrt14_ss (__m128 a, __m128 b) + /// VRSQRT14SS xmm1 {k1}{z}, xmm2, xmm3/m32 + /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. + /// + public static Vector128 ReciprocalSqrt14Scalar(Vector128 upper, Vector128 value) => ReciprocalSqrt14Scalar(upper, value); + + /// + /// __m128 _mm_rsqrt14_ss (__m128 a) + /// VRSQRT14SS xmm1 {k1}{z}, xmm2, xmm3/m32 + /// + public static Vector128 ReciprocalSqrt14Scalar(Vector128 value) => ReciprocalSqrt14Scalar(value); + + /// + /// __m128d _mm_reduce_pd(__m128d a, int imm); + /// VREDUCEPD xmm1 {k1}{z}, xmm2/m128/m64bcst, imm8 + /// + public static Vector128 Reduce(Vector128 value, [ConstantExpected] byte control) => Reduce(value, control); + + /// + /// __m128 _mm_reduce_ps(__m128 a, int imm); + /// VREDUCEPS xmm1 {k1}{z}, xmm2/m128/m32bcst, imm8 + /// + public static Vector128 Reduce(Vector128 value, [ConstantExpected] byte control) => Reduce(value, control); + + /// + /// __m256d _mm256_reduce_pd(__m256d a, int imm); + /// VREDUCEPD ymm1 {k1}{z}, ymm2/m256/m64bcst, imm8 + /// + public static Vector256 Reduce(Vector256 value, [ConstantExpected] byte control) => Reduce(value, control); + + /// + /// __m256 _mm256_reduce_ps(__m256 a, int imm); + /// VREDUCEPS ymm1 {k1}{z}, ymm2/m256/m32bcst, imm8 + /// + public static Vector256 Reduce(Vector256 value, [ConstantExpected] byte control) => Reduce(value, control); + + /// + /// __m128d _mm_reduce_sd(__m128d a, __m128d b, int imm); + /// VREDUCESD xmm1 {k1}{z}, xmm2, xmm3/m64{sae}, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. + /// + public static Vector128 ReduceScalar(Vector128 upper, Vector128 value, [ConstantExpected] byte control) => ReduceScalar(upper, value, control); + + /// + /// __m128d _mm_reduce_sd(__m128d a, int imm); + /// VREDUCESD xmm1 {k1}{z}, xmm2, xmm3/m64{sae}, imm8 + /// + public static Vector128 ReduceScalar(Vector128 value, [ConstantExpected] byte control) => ReduceScalar(value, control); + + /// + /// __m128 _mm_reduce_ss(__m128 a, __m128 b, int imm); + /// VREDUCESS xmm1 {k1}{z}, xmm2, xmm3/m32{sae}, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. + /// + public static Vector128 ReduceScalar(Vector128 upper, Vector128 value, [ConstantExpected] byte control) => ReduceScalar(upper, value, control); + + /// + /// __m128 _mm_reduce_ss(__m128 a, int imm); + /// VREDUCESS xmm1 {k1}{z}, xmm2, xmm3/m32{sae}, imm8 + /// + public static Vector128 ReduceScalar(Vector128 value, [ConstantExpected] byte control) => ReduceScalar(value, control); + + /// + /// __m128i _mm_rol_epi32 (__m128i a, int imm8) + /// VPROLD xmm1 {k1}{z}, xmm2/m128/m32bcst, imm8 + /// + public static Vector128 RotateLeft(Vector128 value, [ConstantExpected] byte count) => RotateLeft(value, count); + + /// + /// __m128i _mm_rol_epi64 (__m128i a, int imm8) + /// VPROLQ xmm1 {k1}{z}, xmm2/m128/m64bcst, imm8 + /// + public static Vector128 RotateLeft(Vector128 value, [ConstantExpected] byte count) => RotateLeft(value, count); + + /// + /// __m128i _mm_rol_epi32 (__m128i a, int imm8) + /// VPROLD xmm1 {k1}{z}, xmm2/m128/m32bcst, imm8 + /// + public static Vector128 RotateLeft(Vector128 value, [ConstantExpected] byte count) => RotateLeft(value, count); + + /// + /// __m128i _mm_rol_epi64 (__m128i a, int imm8) + /// VPROLQ xmm1 {k1}{z}, xmm2/m128/m64bcst, imm8 + /// + public static Vector128 RotateLeft(Vector128 value, [ConstantExpected] byte count) => RotateLeft(value, count); + + /// + /// __m256i _mm256_rol_epi32 (__m256i a, int imm8) + /// VPROLD ymm1 {k1}{z}, ymm2/m256/m32bcst, imm8 + /// + public static Vector256 RotateLeft(Vector256 value, [ConstantExpected] byte count) => RotateLeft(value, count); + + /// + /// __m256i _mm256_rol_epi64 (__m256i a, int imm8) + /// VPROLQ ymm1 {k1}{z}, ymm2/m256/m64bcst, imm8 + /// + public static Vector256 RotateLeft(Vector256 value, [ConstantExpected] byte count) => RotateLeft(value, count); + + /// + /// __m256i _mm256_rol_epi32 (__m256i a, int imm8) + /// VPROLD ymm1 {k1}{z}, ymm2/m256/m32bcst, imm8 + /// + public static Vector256 RotateLeft(Vector256 value, [ConstantExpected] byte count) => RotateLeft(value, count); + + /// + /// __m256i _mm256_rol_epi64 (__m256i a, int imm8) + /// VPROLQ ymm1 {k1}{z}, ymm2/m256/m64bcst, imm8 + /// + public static Vector256 RotateLeft(Vector256 value, [ConstantExpected] byte count) => RotateLeft(value, count); + + /// + /// __m128i _mm_rolv_epi32 (__m128i a, __m128i b) + /// VPROLDV xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 RotateLeftVariable(Vector128 value, Vector128 count) => RotateLeftVariable(value, count); + + /// + /// __m128i _mm_rolv_epi64 (__m128i a, __m128i b) + /// VPROLQV xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 RotateLeftVariable(Vector128 value, Vector128 count) => RotateLeftVariable(value, count); + + /// + /// __m128i _mm_rolv_epi32 (__m128i a, __m128i b) + /// VPROLDV xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 RotateLeftVariable(Vector128 value, Vector128 count) => RotateLeftVariable(value, count); + + /// + /// __m128i _mm_rolv_epi64 (__m128i a, __m128i b) + /// VPROLQV xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 RotateLeftVariable(Vector128 value, Vector128 count) => RotateLeftVariable(value, count); + + /// + /// __m256i _mm256_rolv_epi32 (__m256i a, __m256i b) + /// VPROLDV ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 RotateLeftVariable(Vector256 value, Vector256 count) => RotateLeftVariable(value, count); + + /// + /// __m256i _mm256_rolv_epi64 (__m256i a, __m256i b) + /// VPROLQV ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 RotateLeftVariable(Vector256 value, Vector256 count) => RotateLeftVariable(value, count); + + /// + /// __m256i _mm256_rolv_epi32 (__m256i a, __m256i b) + /// VPROLDV ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 RotateLeftVariable(Vector256 value, Vector256 count) => RotateLeftVariable(value, count); + + /// + /// __m256i _mm256_rolv_epi64 (__m256i a, __m256i b) + /// VPROLQV ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 RotateLeftVariable(Vector256 value, Vector256 count) => RotateLeftVariable(value, count); + + /// + /// __m128i _mm_ror_epi32 (__m128i a, int imm8) + /// VPRORD xmm1 {k1}{z}, xmm2/m128/m32bcst, imm8 + /// + public static Vector128 RotateRight(Vector128 value, [ConstantExpected] byte count) => RotateRight(value, count); + + /// + /// __m128i _mm_ror_epi64 (__m128i a, int imm8) + /// VPRORQ xmm1 {k1}{z}, xmm2/m128/m64bcst, imm8 + /// + public static Vector128 RotateRight(Vector128 value, [ConstantExpected] byte count) => RotateRight(value, count); + + /// + /// __m128i _mm_ror_epi32 (__m128i a, int imm8) + /// VPRORD xmm1 {k1}{z}, xmm2/m128/m32bcst, imm8 + /// + public static Vector128 RotateRight(Vector128 value, [ConstantExpected] byte count) => RotateRight(value, count); + + /// + /// __m128i _mm_ror_epi64 (__m128i a, int imm8) + /// VPRORQ xmm1 {k1}{z}, xmm2/m128/m64bcst, imm8 + /// + public static Vector128 RotateRight(Vector128 value, [ConstantExpected] byte count) => RotateRight(value, count); + + /// + /// __m256i _mm256_ror_epi32 (__m256i a, int imm8) + /// VPRORD ymm1 {k1}{z}, ymm2/m256/m32bcst, imm8 + /// + public static Vector256 RotateRight(Vector256 value, [ConstantExpected] byte count) => RotateRight(value, count); + + /// + /// __m256i _mm256_ror_epi64 (__m256i a, int imm8) + /// VPRORQ ymm1 {k1}{z}, ymm2/m256/m64bcst, imm8 + /// + public static Vector256 RotateRight(Vector256 value, [ConstantExpected] byte count) => RotateRight(value, count); + + /// + /// __m256i _mm256_ror_epi32 (__m256i a, int imm8) + /// VPRORD ymm1 {k1}{z}, ymm2/m256/m32bcst, imm8 + /// + public static Vector256 RotateRight(Vector256 value, [ConstantExpected] byte count) => RotateRight(value, count); + + /// + /// __m256i _mm256_ror_epi64 (__m256i a, int imm8) + /// VPRORQ ymm1 {k1}{z}, ymm2/m256/m64bcst, imm8 + /// + public static Vector256 RotateRight(Vector256 value, [ConstantExpected] byte count) => RotateRight(value, count); + + /// + /// __m128i _mm_rorv_epi32 (__m128i a, __m128i b) + /// VPRORDV xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 RotateRightVariable(Vector128 value, Vector128 count) => RotateRightVariable(value, count); + + /// + /// __m128i _mm_rorv_epi64 (__m128i a, __m128i b) + /// VPRORQV xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 RotateRightVariable(Vector128 value, Vector128 count) => RotateRightVariable(value, count); + + /// + /// __m128i _mm_rorv_epi32 (__m128i a, __m128i b) + /// VPRORDV xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 RotateRightVariable(Vector128 value, Vector128 count) => RotateRightVariable(value, count); + + /// + /// __m128i _mm_rorv_epi64 (__m128i a, __m128i b) + /// VPRORQV xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 RotateRightVariable(Vector128 value, Vector128 count) => RotateRightVariable(value, count); + + /// + /// __m256i _mm256_rorv_epi32 (__m256i a, __m256i b) + /// VPRORDV ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 RotateRightVariable(Vector256 value, Vector256 count) => RotateRightVariable(value, count); + + /// + /// __m256i _mm256_rorv_epi64 (__m256i a, __m256i b) + /// VPRORQV ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 RotateRightVariable(Vector256 value, Vector256 count) => RotateRightVariable(value, count); + + /// + /// __m256i _mm256_rorv_epi32 (__m256i a, __m256i b) + /// VPRORDV ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 RotateRightVariable(Vector256 value, Vector256 count) => RotateRightVariable(value, count); + + /// + /// __m256i _mm256_rorv_epi64 (__m256i a, __m256i b) + /// VPRORQV ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 RotateRightVariable(Vector256 value, Vector256 count) => RotateRightVariable(value, count); + + /// + /// __m128d _mm_roundscale_pd (__m128d a, int imm) + /// VRNDSCALEPD xmm1 {k1}{z}, xmm2/m128/m64bcst, imm8 + /// + public static Vector128 RoundScale(Vector128 value, [ConstantExpected] byte control) => RoundScale(value, control); + + /// + /// __m128 _mm_roundscale_ps (__m128 a, int imm) + /// VRNDSCALEPS xmm1 {k1}{z}, xmm2/m128/m32bcst, imm8 + /// + public static Vector128 RoundScale(Vector128 value, [ConstantExpected] byte control) => RoundScale(value, control); + + /// + /// __m256d _mm256_roundscale_pd (__m256d a, int imm) + /// VRNDSCALEPD ymm1 {k1}{z}, ymm2/m256/m64bcst, imm8 + /// + public static Vector256 RoundScale(Vector256 value, [ConstantExpected] byte control) => RoundScale(value, control); + + /// + /// __m256 _mm256_roundscale_ps (__m256 a, int imm) + /// VRNDSCALEPS ymm1 {k1}{z}, ymm2/m256/m32bcst, imm8 + /// + public static Vector256 RoundScale(Vector256 value, [ConstantExpected] byte control) => RoundScale(value, control); + + /// + /// __m128d _mm_roundscale_sd (__m128d a, __m128d b, int imm) + /// VRNDSCALESD xmm1 {k1}{z}, xmm2, xmm3/m64{sae}, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. + /// + public static Vector128 RoundScaleScalar(Vector128 upper, Vector128 value, [ConstantExpected] byte control) => RoundScaleScalar(upper, value, control); + + /// + /// __m128d _mm_roundscale_sd (__m128d a, int imm) + /// VRNDSCALESD xmm1 {k1}{z}, xmm2, xmm3/m64{sae}, imm8 + /// + public static Vector128 RoundScaleScalar(Vector128 value, [ConstantExpected] byte control) => RoundScaleScalar(value, control); + + /// + /// __m128 _mm_roundscale_ss (__m128 a, __m128 b, int imm) + /// VRNDSCALESS xmm1 {k1}{z}, xmm2, xmm3/m32{sae}, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. + /// + public static Vector128 RoundScaleScalar(Vector128 upper, Vector128 value, [ConstantExpected] byte control) => RoundScaleScalar(upper, value, control); + + /// + /// __m128 _mm_roundscale_ss (__m128 a, int imm) + /// VRNDSCALESS xmm1 {k1}{z}, xmm2, xmm3/m32{sae}, imm8 + /// + public static Vector128 RoundScaleScalar(Vector128 value, [ConstantExpected] byte control) => RoundScaleScalar(value, control); + + /// + /// __m128d _mm_scalef_pd (__m128d a, int imm) + /// VSCALEFPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 Scale(Vector128 left, Vector128 right) => Scale(left, right); + + /// + /// __m128 _mm_scalef_ps (__m128 a, int imm) + /// VSCALEFPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst + /// + public static Vector128 Scale(Vector128 left, Vector128 right) => Scale(left, right); + + /// + /// __m256d _mm256_scalef_pd (__m256d a, int imm) + /// VSCALEFPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 Scale(Vector256 left, Vector256 right) => Scale(left, right); + + /// + /// __m256 _mm256_scalef_ps (__m256 a, int imm) + /// VSCALEFPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst + /// + public static Vector256 Scale(Vector256 left, Vector256 right) => Scale(left, right); + + /// + /// __m128d _mm_scalef_round_sd (__m128d a, __m128d b) + /// VSCALEFSD xmm1, xmm2, xmm3 {er} + /// + public static Vector128 ScaleScalar(Vector128 left, Vector128 right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ScaleScalar(left, right, mode); + + /// + /// __m128d _mm_scalef_sd (__m128d a, __m128d b) + /// VSCALEFSD xmm1 {k1}{z}, xmm2, xmm3/m64{er} + /// + public static Vector128 ScaleScalar(Vector128 left, Vector128 right) => ScaleScalar(left, right); + + /// + /// __m128 _mm_scalef_round_ss (__m128 a, __m128 b) + /// VSCALEFSS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 ScaleScalar(Vector128 left, Vector128 right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ScaleScalar(left, right, mode); + + /// + /// __m128 _mm_scalef_ss (__m128 a, __m128 b) + /// VSCALEFSS xmm1 {k1}{z}, xmm2, xmm3/m32{er} + /// + public static Vector128 ScaleScalar(Vector128 left, Vector128 right) => ScaleScalar(left, right); + + /// + /// __m128i _mm_sllv_epi16 (__m128i a, __m128i count) + /// VPSLLVW xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 ShiftLeftLogicalVariable(Vector128 value, Vector128 count) => ShiftLeftLogicalVariable(value, count); + + /// + /// __m128i _mm_sllv_epi16 (__m128i a, __m128i count) + /// VPSLLVW xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 ShiftLeftLogicalVariable(Vector128 value, Vector128 count) => ShiftLeftLogicalVariable(value, count); + + /// + /// __m256i _mm256_sllv_epi16 (__m256i a, __m256i count) + /// VPSLLVW ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 ShiftLeftLogicalVariable(Vector256 value, Vector256 count) => ShiftLeftLogicalVariable(value, count); + + /// + /// __m256i _mm256_sllv_epi16 (__m256i a, __m256i count) + /// VPSLLVW ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 ShiftLeftLogicalVariable(Vector256 value, Vector256 count) => ShiftLeftLogicalVariable(value, count); + + /// + /// __128i _mm_srai_epi64 (__m128i a, int imm8) + /// VPSRAQ xmm1 {k1}{z}, xmm2, imm8 + /// + public static Vector128 ShiftRightArithmetic(Vector128 value, [ConstantExpected] byte count) => ShiftRightArithmetic(value, count); + + /// + /// __m128i _mm_sra_epi64 (__m128i a, __m128i count) + /// VPSRAQ xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 ShiftRightArithmetic(Vector128 value, Vector128 count) => ShiftRightArithmetic(value, count); + + /// + /// __m256i _mm256_srai_epi64 (__m256i a, int imm8) + /// VPSRAQ ymm1 {k1}{z}, ymm2, imm8 + /// + public static Vector256 ShiftRightArithmetic(Vector256 value, [ConstantExpected] byte count) => ShiftRightArithmetic(value, count); + + /// + /// __m256i _mm256_sra_epi64 (__m256i a, __m128i count) + /// VPSRAQ ymm1 {k1}{z}, ymm2, xmm3/m128 + /// + public static Vector256 ShiftRightArithmetic(Vector256 value, Vector128 count) => ShiftRightArithmetic(value, count); + + /// + /// __m128i _mm_srav_epi64 (__m128i a, __m128i count) + /// VPSRAVQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst + /// + public static Vector128 ShiftRightArithmeticVariable(Vector128 value, Vector128 count) => ShiftRightArithmeticVariable(value, count); + + /// + /// __m128i _mm_srav_epi16 (__m128i a, __m128i count) + /// VPSRAVW xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 ShiftRightArithmeticVariable(Vector128 value, Vector128 count) => ShiftRightArithmeticVariable(value, count); + + /// + /// __m256i _mm256_srav_epi64 (__m256i a, __m256i count) + /// VPSRAVQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst + /// + public static Vector256 ShiftRightArithmeticVariable(Vector256 value, Vector256 count) => ShiftRightArithmeticVariable(value, count); + + /// + /// __m256i _mm256_srav_epi16 (__m256i a, __m256i count) + /// VPSRAVW ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 ShiftRightArithmeticVariable(Vector256 value, Vector256 count) => ShiftRightArithmeticVariable(value, count); + + /// + /// __m128i _mm_srlv_epi16 (__m128i a, __m128i count) + /// VPSRLVW xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 ShiftRightLogicalVariable(Vector128 value, Vector128 count) => ShiftRightLogicalVariable(value, count); + + /// + /// __m128i _mm_srlv_epi16 (__m128i a, __m128i count) + /// VPSRLVW xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 ShiftRightLogicalVariable(Vector128 value, Vector128 count) => ShiftRightLogicalVariable(value, count); + + /// + /// __m256i _mm256_srlv_epi16 (__m256i a, __m256i count) + /// VPSRLVW ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 ShiftRightLogicalVariable(Vector256 value, Vector256 count) => ShiftRightLogicalVariable(value, count); + + /// + /// __m256i _mm256_srlv_epi16 (__m256i a, __m256i count) + /// VPSRLVW ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 ShiftRightLogicalVariable(Vector256 value, Vector256 count) => ShiftRightLogicalVariable(value, count); + + /// + /// __m256d _mm256_shuffle_f64x2 (__m256d a, __m256d b, const int imm8) + /// VSHUFF64x2 ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 + /// + public static Vector256 Shuffle2x128(Vector256 left, Vector256 right, [ConstantExpected] byte control) => Shuffle2x128(left, right, control); + + /// + /// __m256 _mm256_shuffle_f32x4 (__m256 a, __m256 b, const int imm8) + /// VSHUFF32x4 ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 + /// + public static Vector256 Shuffle2x128(Vector256 left, Vector256 right, [ConstantExpected] byte control) => Shuffle2x128(left, right, control); + + /// + /// __m256i _mm256_shuffle_i32x4 (__m256i a, __m256i b, const int imm8) + /// VSHUFI32x4 ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 + /// + public static Vector256 Shuffle2x128(Vector256 left, Vector256 right, [ConstantExpected] byte control) => Shuffle2x128(left, right, control); + + /// + /// __m256i _mm256_shuffle_i64x2 (__m256i a, __m256i b, const int imm8) + /// VSHUFI64x2 ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 + /// + public static Vector256 Shuffle2x128(Vector256 left, Vector256 right, [ConstantExpected] byte control) => Shuffle2x128(left, right, control); + + /// + /// __m256i _mm256_shuffle_i32x4 (__m256i a, __m256i b, const int imm8) + /// VSHUFI32x4 ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 + /// + public static Vector256 Shuffle2x128(Vector256 left, Vector256 right, [ConstantExpected] byte control) => Shuffle2x128(left, right, control); + + /// + /// __m256i _mm256_shuffle_i64x2 (__m256i a, __m256i b, const int imm8) + /// VSHUFI64x2 ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 + /// + public static Vector256 Shuffle2x128(Vector256 left, Vector256 right, [ConstantExpected] byte control) => Shuffle2x128(left, right, control); + + /// + /// __m128d _mm_sqrt_round_sd (__m128d a, __m128d b, int rounding) + /// VSQRTSD xmm1, xmm2 xmm3 {er} + /// + public static Vector128 SqrtScalar(Vector128 upper, Vector128 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => SqrtScalar(upper, value, mode); + + /// + /// __m128 _mm_sqrt_round_ss (__m128 a, __m128 b, int rounding) + /// VSQRTSS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 SqrtScalar(Vector128 upper, Vector128 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => SqrtScalar(upper, value, mode); + + /// + /// __m128d _mm_sub_round_sd (__m128d a, __m128d b, int rounding) + /// VSUBSD xmm1, xmm2, xmm3 {er} + /// + public static Vector128 SubtractScalar(Vector128 left, Vector128 right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => SubtractScalar(left, right, mode); + + /// + /// __m128 _mm_sub_round_ss (__m128 a, __m128 b, int rounding) + /// VSUBSS xmm1, xmm2, xmm3 {er} + /// + public static Vector128 SubtractScalar(Vector128 left, Vector128 right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => SubtractScalar(left, right, mode); + + /// + /// __m128i _mm_dbsad_epu8 (__m128i a, __m128i b, int imm8) + /// VDBPSADBW xmm1 {k1}{z}, xmm2, xmm3/m128 + /// + public static Vector128 SumAbsoluteDifferencesInBlock32(Vector128 left, Vector128 right, [ConstantExpected] byte control) => SumAbsoluteDifferencesInBlock32(left, right, control); + + /// + /// __m256i _mm256_dbsad_epu8 (__m256i a, __m256i b, int imm8) + /// VDBPSADBW ymm1 {k1}{z}, ymm2, ymm3/m256 + /// + public static Vector256 SumAbsoluteDifferencesInBlock32(Vector256 left, Vector256 right, [ConstantExpected] byte control) => SumAbsoluteDifferencesInBlock32(left, right, control); + + /// + /// __m128i _mm_ternarylogic_si128 (__m128i a, __m128i b, __m128i c, byte imm) + /// VPTERNLOGD xmm1 {k1}{z}, xmm2, xmm3/m128, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other bitwise APIs. + /// + public static Vector128 TernaryLogic(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); + + /// + /// __m128d _mm_ternarylogic_pd (__m128d a, __m128d b, __m128d c, int imm) + /// VPTERNLOGQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other bitwise APIs. + /// + public static Vector128 TernaryLogic(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); + + /// + /// __m128 _mm_ternarylogic_ps (__m128 a, __m128 b, __m128 c, int imm) + /// VPTERNLOGD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other bitwise APIs. + /// + public static Vector128 TernaryLogic(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); + + /// + /// __m128i _mm_ternarylogic_epi32 (__m128i a, __m128i b, __m128i c, int imm) + /// VPTERNLOGD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst, imm8 + /// + public static Vector128 TernaryLogic(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); + + /// + /// __m128i _mm_ternarylogic_epi64 (__m128i a, __m128i b, __m128i c, int imm) + /// VPTERNLOGQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst, imm8 + /// + public static Vector128 TernaryLogic(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); + + /// + /// __m128i _mm_ternarylogic_si128 (__m128i a, __m128i b, __m128i c, byte imm) + /// VPTERNLOGD xmm1 {k1}{z}, xmm2, xmm3/m128, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other bitwise APIs. + /// + public static Vector128 TernaryLogic(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); + + /// + /// __m128i _mm_ternarylogic_si128 (__m128i a, __m128i b, __m128i c, short imm) + /// VPTERNLOGD xmm1 {k1}{z}, xmm2, xmm3/m128, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other bitwise APIs. + /// + public static Vector128 TernaryLogic(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); + + /// + /// __m128i _mm_ternarylogic_epi32 (__m128i a, __m128i b, __m128i c, int imm) + /// VPTERNLOGD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst, imm8 + /// + public static Vector128 TernaryLogic(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); + + /// + /// __m128i _mm_ternarylogic_epi64 (__m128i a, __m128i b, __m128i c, int imm) + /// VPTERNLOGQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst, imm8 + /// + public static Vector128 TernaryLogic(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); + + /// + /// __m128i _mm_ternarylogic_si128 (__m128i a, __m128i b, __m128i c, short imm) + /// VPTERNLOGD xmm1 {k1}{z}, xmm2, xmm3/m128, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other bitwise APIs. + /// + public static Vector128 TernaryLogic(Vector128 a, Vector128 b, Vector128 c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); + + /// + /// __m256i _mm256_ternarylogic_si256 (__m256i a, __m256i b, __m256i c, byte imm) + /// VPTERNLOGD ymm1 {k1}{z}, ymm2, ymm3/m256, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other bitwise APIs. + /// + public static Vector256 TernaryLogic(Vector256 a, Vector256 b, Vector256 c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); + + /// + /// __m256d _mm256_ternarylogic_pd (__m256d a, __m256d b, __m256d c, int imm) + /// VPTERNLOGQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other bitwise APIs. + /// + public static Vector256 TernaryLogic(Vector256 a, Vector256 b, Vector256 c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); + + /// + /// __m256 _mm256_ternarylogic_ps (__m256 a, __m256 b, __m256 c, int imm) + /// VPTERNLOGD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other bitwise APIs. + /// + public static Vector256 TernaryLogic(Vector256 a, Vector256 b, Vector256 c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); + + /// + /// __m256i _mm256_ternarylogic_epi32 (__m256i a, __m256i b, __m256i c, int imm) + /// VPTERNLOGD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 + /// + public static Vector256 TernaryLogic(Vector256 a, Vector256 b, Vector256 c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); + + /// + /// __m256i _mm256_ternarylogic_epi64 (__m256i a, __m256i b, __m256i c, int imm) + /// VPTERNLOGQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 + /// + public static Vector256 TernaryLogic(Vector256 a, Vector256 b, Vector256 c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); + + /// + /// __m256i _mm256_ternarylogic_si256 (__m256i a, __m256i b, __m256i c, byte imm) + /// VPTERNLOGD ymm1 {k1}{z}, ymm2, ymm3/m256, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other bitwise APIs. + /// + public static Vector256 TernaryLogic(Vector256 a, Vector256 b, Vector256 c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); + + /// + /// __m256i _mm256_ternarylogic_si256 (__m256i a, __m256i b, __m256i c, short imm) + /// VPTERNLOGD ymm1 {k1}{z}, ymm2, ymm3/m256, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other bitwise APIs. + /// + public static Vector256 TernaryLogic(Vector256 a, Vector256 b, Vector256 c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); + + /// + /// __m256i _mm256_ternarylogic_epi32 (__m256i a, __m256i b, __m256i c, int imm) + /// VPTERNLOGD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 + /// + public static Vector256 TernaryLogic(Vector256 a, Vector256 b, Vector256 c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); + + /// + /// __m256i _mm256_ternarylogic_epi64 (__m256i a, __m256i b, __m256i c, int imm) + /// VPTERNLOGQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 + /// + public static Vector256 TernaryLogic(Vector256 a, Vector256 b, Vector256 c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); + + /// + /// __m256i _mm256_ternarylogic_si256 (__m256i a, __m256i b, __m256i c, short imm) + /// VPTERNLOGD ymm1 {k1}{z}, ymm2, ymm3/m256, imm8 + /// The above native signature does not exist. We provide this additional overload for consistency with the other bitwise APIs. + /// + public static Vector256 TernaryLogic(Vector256 a, Vector256 b, Vector256 c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); + + [Intrinsic] + public new abstract class X64 : Avx2.X64 + { + internal X64() { } + + public static new bool IsSupported { get => IsSupported; } + + /// + /// __m128 _mm_cvt_roundi64_ss (__m128 a, __int64 b, int rounding) + /// VCVTSI2SS xmm1, xmm2, r64 {er} + /// This intrinsic is only available on 64-bit processes + /// + public static Vector128 ConvertScalarToVector128Single(Vector128 upper, long value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertScalarToVector128Single(upper, value, mode); + /// + /// __m128 _mm_cvtsi64_ss (__m128 a, __int64 b) + /// VCVTUSI2SS xmm1, xmm2, r/m64 + /// This intrinsic is only available on 64-bit processes + /// + public static Vector128 ConvertScalarToVector128Single(Vector128 upper, ulong value) => ConvertScalarToVector128Single(upper, value); + /// + /// __m128 _mm_cvt_roundu64_ss (__m128 a, unsigned __int64 b, int rounding) + /// VCVTUSI2SS xmm1, xmm2, r64 {er} + /// This intrinsic is only available on 64-bit processes + /// + public static Vector128 ConvertScalarToVector128Single(Vector128 upper, ulong value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertScalarToVector128Single(upper, value, mode); + /// + /// __m128d _mm_cvt_roundsi64_sd (__m128d a, __int64 b, int rounding) + /// VCVTSI2SD xmm1, xmm2, r64 {er} + /// This intrinsic is only available on 64-bit processes + /// + public static Vector128 ConvertScalarToVector128Double(Vector128 upper, long value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertScalarToVector128Double(upper, value, mode); + /// + /// __m128d _mm_cvtsi64_sd (__m128d a, __int64 b) + /// VCVTUSI2SD xmm1, xmm2, r/m64 + /// This intrinsic is only available on 64-bit processes + /// + public static Vector128 ConvertScalarToVector128Double(Vector128 upper, ulong value) => ConvertScalarToVector128Double(upper, value); + /// + /// __m128d _mm_cvt_roundu64_sd (__m128d a, unsigned __int64 b, int rounding) + /// VCVTUSI2SD xmm1, xmm2, r64 {er} + /// This intrinsic is only available on 64-bit processes + /// + public static Vector128 ConvertScalarToVector128Double(Vector128 upper, ulong value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertScalarToVector128Double(upper, value, mode); + + /// + /// __int64 _mm_cvt_roundss_i64 (__m128 a, int rounding) + /// VCVTSS2SI r64, xmm1 {er} + /// This intrinsic is only available on 64-bit processes + /// + public static long ConvertToInt64(Vector128 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToInt64(value, mode); + /// + /// __int64 _mm_cvt_roundsd_i64 (__m128d a, int rounding) + /// VCVTSD2SI r64, xmm1 {er} + /// This intrinsic is only available on 64-bit processes + /// + public static long ConvertToInt64(Vector128 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToInt64(value, mode); + /// + /// unsigned __int64 _mm_cvtss_u64 (__m128 a) + /// VCVTSS2USI r64, xmm1/m32{er} + /// This intrinsic is only available on 64-bit processes + /// + public static ulong ConvertToUInt64(Vector128 value) => ConvertToUInt64(value); + /// + /// unsigned __int64 _mm_cvt_roundss_u64 (__m128 a, int rounding) + /// VCVTSS2USI r64, xmm1 {er} + /// This intrinsic is only available on 64-bit processes + /// + public static ulong ConvertToUInt64(Vector128 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToUInt64(value, mode); + /// + /// unsigned __int64 _mm_cvtsd_u64 (__m128d a) + /// VCVTSD2USI r64, xmm1/m64{er} + /// This intrinsic is only available on 64-bit processes + /// + public static ulong ConvertToUInt64(Vector128 value) => ConvertToUInt64(value); + /// + /// unsigned __int64 _mm_cvt_roundsd_u64 (__m128d a, int rounding) + /// VCVTSD2USI r64, xmm1 {er} + /// This intrinsic is only available on 64-bit processes + /// + public static ulong ConvertToUInt64(Vector128 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToUInt64(value, mode); + + /// + /// unsigned __int64 _mm_cvttss_u64 (__m128 a) + /// VCVTTSS2USI r64, xmm1/m32{er} + /// This intrinsic is only available on 64-bit processes + /// + public static ulong ConvertToUInt64WithTruncation(Vector128 value) => ConvertToUInt64WithTruncation(value); + /// + /// unsigned __int64 _mm_cvttsd_u64 (__m128d a) + /// VCVTTSD2USI r64, xmm1/m64{er} + /// This intrinsic is only available on 64-bit processes + /// + public static ulong ConvertToUInt64WithTruncation(Vector128 value) => ConvertToUInt64WithTruncation(value); + } + + [Intrinsic] + public abstract class V512 : Avx512BW + { + internal V512() { } + + public static new bool IsSupported { get => IsSupported; } + + /// + /// __m512i _mm512_conflict_epi32 (__m512i a) + /// VPCONFLICTD zmm1 {k1}{z}, zmm2/m512/m32bcst + /// + public static Vector512 DetectConflicts(Vector512 value) => DetectConflicts(value); + + /// + /// __m512i _mm512_conflict_epi32 (__m512i a) + /// VPCONFLICTD zmm1 {k1}{z}, zmm2/m512/m32bcst + /// + public static Vector512 DetectConflicts(Vector512 value) => DetectConflicts(value); + + /// + /// __m512i _mm512_conflict_epi64 (__m512i a) + /// VPCONFLICTQ zmm1 {k1}{z}, zmm2/m512/m64bcst + /// + public static Vector512 DetectConflicts(Vector512 value) => DetectConflicts(value); + + /// + /// __m512i _mm512_conflict_epi64 (__m512i a) + /// VPCONFLICTQ zmm1 {k1}{z}, zmm2/m512/m64bcst + /// + public static Vector512 DetectConflicts(Vector512 value) => DetectConflicts(value); + + /// + /// __m512i _mm512_lzcnt_epi32 (__m512i a) + /// VPLZCNTD zmm1 {k1}{z}, zmm2/m512/m32bcst + /// + public static Vector512 LeadingZeroCount(Vector512 value) => LeadingZeroCount(value); + + /// + /// __m512i _mm512_lzcnt_epi32 (__m512i a) + /// VPLZCNTD zmm1 {k1}{z}, zmm2/m512/m32bcst + /// + public static Vector512 LeadingZeroCount(Vector512 value) => LeadingZeroCount(value); + + /// + /// __m512i _mm512_lzcnt_epi64 (__m512i a) + /// VPLZCNTQ zmm1 {k1}{z}, zmm2/m512/m64bcst + /// + public static Vector512 LeadingZeroCount(Vector512 value) => LeadingZeroCount(value); + + /// + /// __m512i _mm512_lzcnt_epi64 (__m512i a) + /// VPLZCNTQ zmm1 {k1}{z}, zmm2/m512/m64bcst + /// + public static Vector512 LeadingZeroCount(Vector512 value) => LeadingZeroCount(value); + + /// + /// __m512 _mm512_and_ps (__m512 a, __m512 b) + /// VANDPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst + /// + public static Vector512 And(Vector512 left, Vector512 right) => And(left, right); + + /// + /// __m512d _mm512_and_pd (__m512d a, __m512d b) + /// VANDPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst + /// + public static Vector512 And(Vector512 left, Vector512 right) => And(left, right); + + /// + /// __m512 _mm512_andnot_ps (__m512 a, __m512 b) + /// VANDNPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst + /// + public static Vector512 AndNot(Vector512 left, Vector512 right) => AndNot(left, right); + + /// + /// __m512d _mm512_andnot_pd (__m512d a, __m512d b) + /// VANDNPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst + /// + public static Vector512 AndNot(Vector512 left, Vector512 right) => AndNot(left, right); + + /// + /// __m512i _mm512_broadcast_i32x2 (__m128i a) + /// VBROADCASTI32x2 zmm1 {k1}{z}, xmm2/m64 + /// + public static Vector512 BroadcastPairScalarToVector512(Vector128 value) => BroadcastPairScalarToVector512(value); + + /// + /// __m512i _mm512_broadcast_i32x2 (__m128i a) + /// VBROADCASTI32x2 zmm1 {k1}{z}, xmm2/m64 + /// + public static Vector512 BroadcastPairScalarToVector512(Vector128 value) => BroadcastPairScalarToVector512(value); + + /// + /// __m512 _mm512_broadcast_f32x2 (__m128 a) + /// VBROADCASTF32x2 zmm1 {k1}{z}, xmm2/m64 + /// + public static Vector512 BroadcastPairScalarToVector512(Vector128 value) => BroadcastPairScalarToVector512(value); + + /// + /// __m512i _mm512_broadcast_i64x2 (__m128i const * mem_addr) + /// VBROADCASTI64x2 zmm1 {k1}{z}, m128 + /// + public static unsafe Vector512 BroadcastVector128ToVector512(long* address) => BroadcastVector128ToVector512(address); + + /// + /// __m512i _mm512_broadcast_i64x2 (__m128i const * mem_addr) + /// VBROADCASTI64x2 zmm1 {k1}{z}, m128 + /// + public static unsafe Vector512 BroadcastVector128ToVector512(ulong* address) => BroadcastVector128ToVector512(address); + + /// + /// __m512d _mm512_broadcast_f64x2 (__m128d const * mem_addr) + /// VBROADCASTF64x2 zmm1 {k1}{z}, m128 + /// + public static unsafe Vector512 BroadcastVector128ToVector512(double* address) => BroadcastVector128ToVector512(address); + + /// + /// __m512i _mm512_broadcast_i32x8 (__m256i const * mem_addr) + /// VBROADCASTI32x8 zmm1 {k1}{z}, m256 + /// + public static unsafe Vector512 BroadcastVector256ToVector512(int* address) => BroadcastVector256ToVector512(address); + + /// + /// __m512i _mm512_broadcast_i32x8 (__m256i const * mem_addr) + /// VBROADCASTI32x8 zmm1 {k1}{z}, m256 + /// + public static unsafe Vector512 BroadcastVector256ToVector512(uint* address) => BroadcastVector256ToVector512(address); + + /// + /// __m512 _mm512_broadcast_f32x8 (__m256 const * mem_addr) + /// VBROADCASTF32x8 zmm1 {k1}{z}, m256 + /// + public static unsafe Vector512 BroadcastVector256ToVector512(float* address) => BroadcastVector256ToVector512(address); + + /// + /// __m512 _mm512_cvtepi64_ps (__m512i a) + /// VCVTQQ2PS ymm1 {k1}{z}, zmm2/m512/m64bcst + /// + public static Vector256 ConvertToVector256Single(Vector512 value) => ConvertToVector256Single(value); + + /// + /// __m512 _mm512_cvtepu64_ps (__m512i a) + /// VCVTUQQ2PS ymm1 {k1}{z}, zmm2/m512/m64bcst + /// + public static Vector256 ConvertToVector256Single(Vector512 value) => ConvertToVector256Single(value); + + /// + /// __m256 _mm512_cvt_roundepi64_ps (__m512i a, int r) + /// VCVTQQ2PS ymm1, zmm2 {er} + /// + public static Vector256 ConvertToVector256Single(Vector512 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector256Single(value, mode); + + /// + /// __m256 _mm512_cvt_roundepu64_ps (__m512i a, int r) + /// VCVTUQQ2PS ymm1, zmm2 {er} + /// + public static Vector256 ConvertToVector256Single(Vector512 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector256Single(value, mode); + + /// + /// __m512d _mm512_cvtepi64_pd (__m512i a) + /// VCVTQQ2PD zmm1 {k1}{z}, zmm2/m512/m64bcst + /// + public static Vector512 ConvertToVector512Double(Vector512 value) => ConvertToVector512Double(value); + + /// + /// __m512d _mm512_cvtepu64_pd (__m512i a) + /// VCVTUQQ2PD zmm1 {k1}{z}, zmm2/m512/m64bcst + /// + public static Vector512 ConvertToVector512Double(Vector512 value) => ConvertToVector512Double(value); + + /// + /// __m512d _mm512_cvt_roundepi64_pd (__m512i a, int r) + /// VCVTQQ2PD zmm1, zmm2 {er} + /// + public static Vector512 ConvertToVector512Double(Vector512 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector512Double(value, mode); + + /// + /// __m512d _mm512_cvt_roundepu64_pd (__m512i a, int r) + /// VCVTUQQ2PD zmm1, zmm2 {er} + /// + public static Vector512 ConvertToVector512Double(Vector512 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector512Double(value, mode); + + /// + /// __m512i _mm512_cvtps_epi64 (__m512 a) + /// VCVTPS2QQ zmm1 {k1}{z}, ymm2/m256/m32bcst{er} + /// + public static Vector512 ConvertToVector512Int64(Vector256 value) => ConvertToVector512Int64(value); + + /// + /// __m512i _mm512_cvtpd_epi64 (__m512d a) + /// VCVTPD2QQ zmm1 {k1}{z}, zmm2/m512/m64bcst{er} + /// + public static Vector512 ConvertToVector512Int64(Vector512 value) => ConvertToVector512Int64(value); + + /// + /// __m512i _mm512_cvt_roundps_epi64 (__m512 a, int r) + /// VCVTPS2QQ zmm1, ymm2 {er} + /// + public static Vector512 ConvertToVector512Int64(Vector256 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector512Int64(value, mode); + + /// + /// __m512i _mm512_cvt_roundpd_epi64 (__m512d a, int r) + /// VCVTPD2QQ zmm1, zmm2 {er} + /// + public static Vector512 ConvertToVector512Int64(Vector512 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector512Int64(value, mode); + + /// + /// __m512i _mm512_cvttps_epi64 (__m512 a) + /// VCVTTPS2QQ zmm1 {k1}{z}, ymm2/m256/m32bcst{er} + /// + public static Vector512 ConvertToVector512Int64WithTruncation(Vector256 value) => ConvertToVector512Int64WithTruncation(value); + + /// + /// __m512i _mm512_cvttpd_epi64 (__m512 a) + /// VCVTTPD2QQ zmm1 {k1}{z}, zmm2/m512/m64bcst{sae} + /// + public static Vector512 ConvertToVector512Int64WithTruncation(Vector512 value) => ConvertToVector512Int64WithTruncation(value); + + /// + /// __m512i _mm512_cvtps_epu64 (__m512 a) + /// VCVTPS2UQQ zmm1 {k1}{z}, ymm2/m256/m32bcst{er} + /// + public static Vector512 ConvertToVector512UInt64(Vector256 value) => ConvertToVector512UInt64(value); + + /// + /// __m512i _mm512_cvtpd_epu64 (__m512d a) + /// VCVTPD2UQQ zmm1 {k1}{z}, zmm2/m512/m64bcst{er} + /// + public static Vector512 ConvertToVector512UInt64(Vector512 value) => ConvertToVector512UInt64(value); + + /// + /// __m512i _mm512_cvt_roundps_epu64 (__m512 a, int r) + /// VCVTPS2UQQ zmm1 {k1}{z}, ymm2/m256/m32bcst{er} + /// + public static Vector512 ConvertToVector512UInt64(Vector256 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector512UInt64(value, mode); + + /// + /// __m512i _mm512_cvt_roundpd_epu64 (__m512d a, int r) + /// VCVTPD2UQQ zmm1 {k1}{z}, zmm2/m512/m64bcst{er} + /// + public static Vector512 ConvertToVector512UInt64(Vector512 value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector512UInt64(value, mode); + + /// + /// __m512i _mm512_cvttps_epu64 (__m512 a) + /// VCVTTPS2UQQ zmm1 {k1}{z}, ymm2/m256/m32bcst{er} + /// + public static Vector512 ConvertToVector512UInt64WithTruncation(Vector256 value) => ConvertToVector512UInt64WithTruncation(value); + + /// + /// __m512i _mm512_cvttpd_epu64 (__m512d a) + /// VCVTTPD2UQQ zmm1 {k1}{z}, zmm2/m512/m64bcst{er} + /// + public static Vector512 ConvertToVector512UInt64WithTruncation(Vector512 value) => ConvertToVector512UInt64WithTruncation(value); + + /// + /// __m128i _mm512_extracti64x2_epi64 (__m512i a, const int imm8) + /// VEXTRACTI64x2 xmm1/m128 {k1}{z}, zmm2, imm8 + /// + public static new Vector128 ExtractVector128(Vector512 value, [ConstantExpected] byte index) => ExtractVector128(value, index); + + /// + /// __m128i _mm512_extracti64x2_epi64 (__m512i a, const int imm8) + /// VEXTRACTI64x2 xmm1/m128 {k1}{z}, zmm2, imm8 + /// + public static new Vector128 ExtractVector128(Vector512 value, [ConstantExpected] byte index) => ExtractVector128(value, index); + + /// + /// __m128d _mm512_extractf64x2_pd (__m512d a, const int imm8) + /// VEXTRACTF64x2 xmm1/m128 {k1}{z}, zmm2, imm8 + /// + public static new Vector128 ExtractVector128(Vector512 value, [ConstantExpected] byte index) => ExtractVector128(value, index); + + /// + /// __m256i _mm512_extracti32x8_epi32 (__m512i a, const int imm8) + /// VEXTRACTI32x8 ymm1/m256 {k1}{z}, zmm2, imm8 + /// + public static new Vector256 ExtractVector256(Vector512 value, [ConstantExpected] byte index) => ExtractVector256(value, index); + + /// + /// __m256i _mm512_extracti32x8_epi32 (__m512i a, const int imm8) + /// VEXTRACTI32x8 ymm1/m256 {k1}{z}, zmm2, imm8 + /// + public static new Vector256 ExtractVector256(Vector512 value, [ConstantExpected] byte index) => ExtractVector256(value, index); + + /// + /// __m256 _mm512_extractf32x8_ps (__m512 a, const int imm8) + /// VEXTRACTF32x8 ymm1/m256 {k1}{z}, zmm2, imm8 + /// + public static new Vector256 ExtractVector256(Vector512 value, [ConstantExpected] byte index) => ExtractVector256(value, index); + + /// + /// __m512i _mm512_inserti64x2_si512 (__m512i a, __m128i b, const int imm8) + /// VINSERTI64x2 zmm1 {k1}{z}, zmm2, xmm3/m128, imm8 + /// + public static new Vector512 InsertVector128(Vector512 value, Vector128 data, [ConstantExpected] byte index) => InsertVector128(value, data, index); + + /// + /// __m512i _mm512_inserti64x2_si512 (__m512i a, __m128i b, const int imm8) + /// VINSERTI64x2 zmm1 {k1}{z}, zmm2, xmm3/m128, imm8 + /// + public static new Vector512 InsertVector128(Vector512 value, Vector128 data, [ConstantExpected] byte index) => InsertVector128(value, data, index); + + /// + /// __m512d _mm512_insertf64x2_pd (__m512d a, __m128d b, int imm8) + /// VINSERTF64x2 zmm1 {k1}{z}, zmm2, xmm3/m128, imm8 + /// + public static new Vector512 InsertVector128(Vector512 value, Vector128 data, [ConstantExpected] byte index) => InsertVector128(value, data, index); + + /// + /// __m512i _mm512_inserti32x8_si512 (__m512i a, __m256i b, const int imm8) + /// VINSERTI32x8 zmm1 {k1}{z}, zmm2, xmm3/m256, imm8 + /// + public static new Vector512 InsertVector256(Vector512 value, Vector256 data, [ConstantExpected] byte index) => InsertVector256(value, data, index); + + /// + /// __m512i _mm512_inserti32x8_si512 (__m512i a, __m256i b, const int imm8) + /// VINSERTI32x8 zmm1 {k1}{z}, zmm2, xmm3/m256, imm8 + /// + public static new Vector512 InsertVector256(Vector512 value, Vector256 data, [ConstantExpected] byte index) => InsertVector256(value, data, index); + + /// + /// __m512 _mm512_insertf32x8_ps (__m512 a, __m256 b, int imm8) + /// VINSERTF32x8 zmm1 {k1}{z}, zmm2, xmm3/m256, imm8 + /// + public static new Vector512 InsertVector256(Vector512 value, Vector256 data, [ConstantExpected] byte index) => InsertVector256(value, data, index); + + /// + /// __m512i _mm512_mullo_epi64 (__m512i a, __m512i b) + /// VPMULLQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst + /// + public static Vector512 MultiplyLow(Vector512 left, Vector512 right) => MultiplyLow(left, right); + + /// + /// __m512i _mm512_mullo_epi64 (__m512i a, __m512i b) + /// VPMULLQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst + /// + public static Vector512 MultiplyLow(Vector512 left, Vector512 right) => MultiplyLow(left, right); + + /// + /// __m512 _mm512_or_ps (__m512 a, __m512 b) + /// VORPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst + /// + public static Vector512 Or(Vector512 left, Vector512 right) => Or(left, right); + + /// + /// __m512d _mm512_or_pd (__m512d a, __m512d b) + /// VORPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst + /// + public static Vector512 Or(Vector512 left, Vector512 right) => Or(left, right); + + /// + /// __m512 _mm512_range_ps(__m512 a, __m512 b, int imm); + /// VRANGEPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{sae}, imm8 + /// + public static Vector512 Range(Vector512 left, Vector512 right, [ConstantExpected(Max = (byte)(0x0F))] byte control) => Range(left, right, control); + + /// + /// __m512d _mm512_range_pd(__m512d a, __m512d b, int imm); + /// VRANGEPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{sae}, imm8 + /// + public static Vector512 Range(Vector512 left, Vector512 right, [ConstantExpected(Max = (byte)(0x0F))] byte control) => Range(left, right, control); + + /// + /// __m512 _mm512_reduce_ps(__m512 a, int imm); + /// VREDUCEPS zmm1 {k1}{z}, zmm2/m512/m32bcst{sae}, imm8 + /// + public static Vector512 Reduce(Vector512 value, [ConstantExpected] byte control) => Reduce(value, control); + + /// + /// __m512d _mm512_reduce_pd(__m512d a, int imm); + /// VREDUCEPD zmm1 {k1}{z}, zmm2/m512/m64bcst{sae}, imm8 + /// + public static Vector512 Reduce(Vector512 value, [ConstantExpected] byte control) => Reduce(value, control); + + /// + /// __m512 _mm512_xor_ps (__m512 a, __m512 b) + /// VXORPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst + /// + public static Vector512 Xor(Vector512 left, Vector512 right) => Xor(left, right); + + /// + /// __m512d _mm512_xor_pd (__m512d a, __m512d b) + /// VXORPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst + /// + public static Vector512 Xor(Vector512 left, Vector512 right) => Xor(left, right); + + /// + /// __m512i _mm512_permutevar64x8_epi8 (__m512i a, __m512i b) + /// VPERMB zmm1 {k1}{z}, zmm2, zmm3/m512 + /// + public static Vector512 PermuteVar64x8(Vector512 left, Vector512 control) => PermuteVar64x8(left, control); + + /// + /// __m512i _mm512_permutevar64x8_epi8 (__m512i a, __m512i b) + /// VPERMB zmm1 {k1}{z}, zmm2, zmm3/m512 + /// + public static Vector512 PermuteVar64x8(Vector512 left, Vector512 control) => PermuteVar64x8(left, control); + + /// + /// __m512i _mm512_permutex2var_epi8 (__m512i a, __m512i idx, __m512i b) + /// VPERMI2B zmm1 {k1}{z}, zmm2, zmm3/m512 + /// VPERMT2B zmm1 {k1}{z}, zmm2, zmm3/m512 + /// + public static Vector512 PermuteVar64x8x2(Vector512 lower, Vector512 indices, Vector512 upper) => PermuteVar64x8x2(lower, indices, upper); + + /// + /// __m512i _mm512_permutex2var_epi8 (__m512i a, __m512i idx, __m512i b) + /// VPERMI2B zmm1 {k1}{z}, zmm2, zmm3/m512 + /// VPERMT2B zmm1 {k1}{z}, zmm2, zmm3/m512 + /// + public static Vector512 PermuteVar64x8x2(Vector512 lower, Vector512 indices, Vector512 upper) => PermuteVar64x8x2(lower, indices, upper); + + [Intrinsic] + public new abstract class X64 : Avx512BW.X64 + { + internal X64() { } + + public static new bool IsSupported { get => IsSupported; } + } + } + } +} diff --git a/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs b/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs index 7ed0b7d273a3f..b5d78df0f8b8d 100644 --- a/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs +++ b/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs @@ -5637,6 +5637,573 @@ internal X64() { } public static new bool IsSupported { get { throw null; } } } } + + [System.CLSCompliantAttribute(false)] + public abstract partial class Avx10v1 : System.Runtime.Intrinsics.X86.Avx2 + { + internal Avx10v1() { } + public static new bool IsSupported { get { throw null; } } + public static System.Runtime.Intrinsics.Vector128 Abs(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 Abs(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 AddScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector128 AddScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector128 AlignRight32(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte mask) { throw null; } + public static System.Runtime.Intrinsics.Vector128 AlignRight32(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte mask) { throw null; } + public static System.Runtime.Intrinsics.Vector256 AlignRight32(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte mask) { throw null; } + public static System.Runtime.Intrinsics.Vector256 AlignRight32(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte mask) { throw null; } + public static System.Runtime.Intrinsics.Vector128 AlignRight64(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte mask) { throw null; } + public static System.Runtime.Intrinsics.Vector128 AlignRight64(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte mask) { throw null; } + public static System.Runtime.Intrinsics.Vector256 AlignRight64(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte mask) { throw null; } + public static System.Runtime.Intrinsics.Vector256 AlignRight64(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte mask) { throw null; } + public static System.Runtime.Intrinsics.Vector128 BroadcastPairScalarToVector128(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 BroadcastPairScalarToVector128(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 BroadcastPairScalarToVector256(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 BroadcastPairScalarToVector256(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 BroadcastPairScalarToVector256(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareGreaterThan(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareGreaterThan(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareGreaterThan(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareGreaterThan(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static new System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static new System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static new System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareLessThan(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareLessThan(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareLessThan(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareLessThan(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareLessThan(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareLessThan(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareLessThan(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareLessThan(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareNotEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareNotEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareNotEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareNotEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareNotEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareNotEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareNotEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 CompareNotEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareNotEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareNotEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareNotEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareNotEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareNotEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareNotEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareNotEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 CompareNotEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128Double(System.Runtime.Intrinsics.Vector128 upper, uint value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128Single(System.Runtime.Intrinsics.Vector128 upper, uint value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128Single(System.Runtime.Intrinsics.Vector128 upper, uint value, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128Single(System.Runtime.Intrinsics.Vector128 upper, int value, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128Single(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static int ConvertToInt32(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static int ConvertToInt32(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static uint ConvertToUInt32(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static uint ConvertToUInt32(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static uint ConvertToUInt32(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static uint ConvertToUInt32(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static uint ConvertToUInt32WithTruncation(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static uint ConvertToUInt32WithTruncation(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Byte(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Byte(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Byte(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Byte(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Byte(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Byte(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Byte(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Byte(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Byte(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Byte(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Byte(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Byte(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128ByteWithSaturation(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128ByteWithSaturation(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128ByteWithSaturation(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128ByteWithSaturation(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128ByteWithSaturation(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128ByteWithSaturation(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Double(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Double(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Double(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16WithSaturation(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16WithSaturation(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16WithSaturation(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16WithSaturation(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32WithSaturation(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32WithSaturation(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64WithTruncation(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64WithTruncation(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128SByte(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128SByte(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128SByte(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128SByte(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128SByte(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128SByte(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128SByte(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128SByte(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128SByte(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128SByte(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128SByte(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128SByte(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128SByteWithSaturation(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128SByteWithSaturation(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128SByteWithSaturation(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128SByteWithSaturation(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128SByteWithSaturation(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128SByteWithSaturation(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Single(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Single(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Single(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Single(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Single(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt16(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt16(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt16(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt16(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt16(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt16(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt16(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt16(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt16WithSaturation(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt16WithSaturation(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt16WithSaturation(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt16WithSaturation(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt32(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt32(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt32(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt32(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt32(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt32(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt32(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt32WithSaturation(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt32WithSaturation(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt32WithTruncation(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt32WithTruncation(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt32WithTruncation(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt64(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt64(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt64WithTruncation(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128UInt64WithTruncation(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Double(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Double(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Double(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64WithTruncation(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64WithTruncation(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Single(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256UInt32(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256UInt32WithTruncation(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256UInt64(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256UInt64(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256UInt64WithTruncation(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256UInt64WithTruncation(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 DetectConflicts(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 DetectConflicts(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 DetectConflicts(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 DetectConflicts(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 DetectConflicts(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 DetectConflicts(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 DetectConflicts(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 DetectConflicts(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 DivideScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector128 DivideScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector128 Fixup(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Runtime.Intrinsics.Vector128 table, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 Fixup(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Runtime.Intrinsics.Vector128 table, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 Fixup(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Runtime.Intrinsics.Vector256 table, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 Fixup(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Runtime.Intrinsics.Vector256 table, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 FixupScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Runtime.Intrinsics.Vector128 table, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 FixupScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Runtime.Intrinsics.Vector128 table, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 FusedMultiplyAddNegatedScalar(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector128 FusedMultiplyAddNegatedScalar(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector128 FusedMultiplyAddScalar(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector128 FusedMultiplyAddScalar(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector128 FusedMultiplySubtractNegatedScalar(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector128 FusedMultiplySubtractNegatedScalar(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector128 FusedMultiplySubtractScalar(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector128 FusedMultiplySubtractScalar(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector128 GetExponent(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 GetExponent(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 GetExponent(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 GetExponent(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 GetExponentScalar(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 GetExponentScalar(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 GetExponentScalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 GetExponentScalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 GetMantissa(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(0x0F))] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 GetMantissa(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(0x0F))] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 GetMantissa(System.Runtime.Intrinsics.Vector256 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(0x0F))] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 GetMantissa(System.Runtime.Intrinsics.Vector256 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(0x0F))] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 GetMantissaScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(0x0F))] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 GetMantissaScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(0x0F))] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 GetMantissaScalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(0x0F))] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 GetMantissaScalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(0x0F))] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 LeadingZeroCount(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 LeadingZeroCount(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 LeadingZeroCount(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 LeadingZeroCount(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 LeadingZeroCount(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 LeadingZeroCount(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 LeadingZeroCount(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 LeadingZeroCount(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 Max(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 Max(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 Min(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 Min(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplyAdd(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) { throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplyAdd(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) { throw null; } + public static System.Runtime.Intrinsics.Vector256 MultiplyAdd(System.Runtime.Intrinsics.Vector256 a, System.Runtime.Intrinsics.Vector256 b, System.Runtime.Intrinsics.Vector256 c) { throw null; } + public static System.Runtime.Intrinsics.Vector256 MultiplyAdd(System.Runtime.Intrinsics.Vector256 a, System.Runtime.Intrinsics.Vector256 b, System.Runtime.Intrinsics.Vector256 c) { throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplyAddNegated(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) { throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplyAddNegated(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) { throw null; } + public static System.Runtime.Intrinsics.Vector256 MultiplyAddNegated(System.Runtime.Intrinsics.Vector256 a, System.Runtime.Intrinsics.Vector256 b, System.Runtime.Intrinsics.Vector256 c) { throw null; } + public static System.Runtime.Intrinsics.Vector256 MultiplyAddNegated(System.Runtime.Intrinsics.Vector256 a, System.Runtime.Intrinsics.Vector256 b, System.Runtime.Intrinsics.Vector256 c) { throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplyAddNegatedScalar(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) { throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplyAddNegatedScalar(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) { throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplyAddScalar(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) { throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplyAddScalar(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) { throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplyAddSubtract(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) { throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplyAddSubtract(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) { throw null; } + public static System.Runtime.Intrinsics.Vector256 MultiplyAddSubtract(System.Runtime.Intrinsics.Vector256 a, System.Runtime.Intrinsics.Vector256 b, System.Runtime.Intrinsics.Vector256 c) { throw null; } + public static System.Runtime.Intrinsics.Vector256 MultiplyAddSubtract(System.Runtime.Intrinsics.Vector256 a, System.Runtime.Intrinsics.Vector256 b, System.Runtime.Intrinsics.Vector256 c) { throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplyLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplyLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 MultiplyLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 MultiplyLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplyScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplyScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplySubtract(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) { throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplySubtract(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) { throw null; } + public static System.Runtime.Intrinsics.Vector256 MultiplySubtract(System.Runtime.Intrinsics.Vector256 a, System.Runtime.Intrinsics.Vector256 b, System.Runtime.Intrinsics.Vector256 c) { throw null; } + public static System.Runtime.Intrinsics.Vector256 MultiplySubtract(System.Runtime.Intrinsics.Vector256 a, System.Runtime.Intrinsics.Vector256 b, System.Runtime.Intrinsics.Vector256 c) { throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplySubtractAdd(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) { throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplySubtractAdd(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) { throw null; } + public static System.Runtime.Intrinsics.Vector256 MultiplySubtractAdd(System.Runtime.Intrinsics.Vector256 a, System.Runtime.Intrinsics.Vector256 b, System.Runtime.Intrinsics.Vector256 c) { throw null; } + public static System.Runtime.Intrinsics.Vector256 MultiplySubtractAdd(System.Runtime.Intrinsics.Vector256 a, System.Runtime.Intrinsics.Vector256 b, System.Runtime.Intrinsics.Vector256 c) { throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplySubtractNegated(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) { throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplySubtractNegated(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) { throw null; } + public static System.Runtime.Intrinsics.Vector256 MultiplySubtractNegated(System.Runtime.Intrinsics.Vector256 a, System.Runtime.Intrinsics.Vector256 b, System.Runtime.Intrinsics.Vector256 c) { throw null; } + public static System.Runtime.Intrinsics.Vector256 MultiplySubtractNegated(System.Runtime.Intrinsics.Vector256 a, System.Runtime.Intrinsics.Vector256 b, System.Runtime.Intrinsics.Vector256 c) { throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplySubtractNegatedScalar(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) { throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplySubtractNegatedScalar(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) { throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplySubtractScalar(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) { throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplySubtractScalar(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) { throw null; }public static System.Runtime.Intrinsics.Vector256 PermuteVar16x16(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 PermuteVar16x16(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 PermuteVar16x16x2(System.Runtime.Intrinsics.Vector256 lower, System.Runtime.Intrinsics.Vector256 indices, System.Runtime.Intrinsics.Vector256 upper) { throw null; } + public static System.Runtime.Intrinsics.Vector256 PermuteVar16x16x2(System.Runtime.Intrinsics.Vector256 lower, System.Runtime.Intrinsics.Vector256 indices, System.Runtime.Intrinsics.Vector256 upper) { throw null; } + public static System.Runtime.Intrinsics.Vector128 PermuteVar16x8(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 PermuteVar16x8(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 PermuteVar16x8x2(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 indices, System.Runtime.Intrinsics.Vector128 upper) { throw null; } + public static System.Runtime.Intrinsics.Vector128 PermuteVar16x8x2(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 indices, System.Runtime.Intrinsics.Vector128 upper) { throw null; } + public static System.Runtime.Intrinsics.Vector128 PermuteVar2x64x2(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 indices, System.Runtime.Intrinsics.Vector128 upper) { throw null; } + public static System.Runtime.Intrinsics.Vector128 PermuteVar2x64x2(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 indices, System.Runtime.Intrinsics.Vector128 upper) { throw null; } + public static System.Runtime.Intrinsics.Vector128 PermuteVar2x64x2(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 indices, System.Runtime.Intrinsics.Vector128 upper) { throw null; } + public static System.Runtime.Intrinsics.Vector256 PermuteVar32x8(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 PermuteVar32x8(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 PermuteVar32x8x2(System.Runtime.Intrinsics.Vector256 lower, System.Runtime.Intrinsics.Vector256 indices, System.Runtime.Intrinsics.Vector256 upper) { throw null; } + public static System.Runtime.Intrinsics.Vector256 PermuteVar32x8x2(System.Runtime.Intrinsics.Vector256 lower, System.Runtime.Intrinsics.Vector256 indices, System.Runtime.Intrinsics.Vector256 upper) { throw null; } + public static System.Runtime.Intrinsics.Vector128 PermuteVar4x32x2(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 indices, System.Runtime.Intrinsics.Vector128 upper) { throw null; } + public static System.Runtime.Intrinsics.Vector128 PermuteVar4x32x2(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 indices, System.Runtime.Intrinsics.Vector128 upper) { throw null; } + public static System.Runtime.Intrinsics.Vector128 PermuteVar4x32x2(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 indices, System.Runtime.Intrinsics.Vector128 upper) { throw null; } + public static System.Runtime.Intrinsics.Vector256 PermuteVar4x64(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 PermuteVar4x64(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 PermuteVar4x64(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 PermuteVar4x64x2(System.Runtime.Intrinsics.Vector256 lower, System.Runtime.Intrinsics.Vector256 indices, System.Runtime.Intrinsics.Vector256 upper) { throw null; } + public static System.Runtime.Intrinsics.Vector256 PermuteVar4x64x2(System.Runtime.Intrinsics.Vector256 lower, System.Runtime.Intrinsics.Vector256 indices, System.Runtime.Intrinsics.Vector256 upper) { throw null; } + public static System.Runtime.Intrinsics.Vector256 PermuteVar4x64x2(System.Runtime.Intrinsics.Vector256 lower, System.Runtime.Intrinsics.Vector256 indices, System.Runtime.Intrinsics.Vector256 upper) { throw null; } + public static System.Runtime.Intrinsics.Vector128 PermuteVar8x16(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 PermuteVar8x16(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 PermuteVar8x16x2(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 indices, System.Runtime.Intrinsics.Vector128 upper) { throw null; } + public static System.Runtime.Intrinsics.Vector128 PermuteVar8x16x2(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 indices, System.Runtime.Intrinsics.Vector128 upper) { throw null; } + public static System.Runtime.Intrinsics.Vector256 PermuteVar8x32x2(System.Runtime.Intrinsics.Vector256 lower, System.Runtime.Intrinsics.Vector256 indices, System.Runtime.Intrinsics.Vector256 upper) { throw null; } + public static System.Runtime.Intrinsics.Vector256 PermuteVar8x32x2(System.Runtime.Intrinsics.Vector256 lower, System.Runtime.Intrinsics.Vector256 indices, System.Runtime.Intrinsics.Vector256 upper) { throw null; } + public static System.Runtime.Intrinsics.Vector256 PermuteVar8x32x2(System.Runtime.Intrinsics.Vector256 lower, System.Runtime.Intrinsics.Vector256 indices, System.Runtime.Intrinsics.Vector256 upper) { throw null; } + public static System.Runtime.Intrinsics.Vector128 Range(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(0x0F))] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 Range(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(0x0F))] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 Range(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(0x0F))] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 Range(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(0x0F))] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 RangeScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(0x0F))] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 RangeScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(0x0F))] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 Reciprocal14(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 Reciprocal14(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 Reciprocal14(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 Reciprocal14(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 Reciprocal14Scalar(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 Reciprocal14Scalar(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 Reciprocal14Scalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 Reciprocal14Scalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ReciprocalSqrt14(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ReciprocalSqrt14(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ReciprocalSqrt14(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ReciprocalSqrt14(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ReciprocalSqrt14Scalar(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ReciprocalSqrt14Scalar(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ReciprocalSqrt14Scalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ReciprocalSqrt14Scalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 Reduce(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 Reduce(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 Reduce(System.Runtime.Intrinsics.Vector256 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 Reduce(System.Runtime.Intrinsics.Vector256 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ReduceScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ReduceScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ReduceScalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ReduceScalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 RotateLeft(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte count) { throw null; } + public static System.Runtime.Intrinsics.Vector128 RotateLeft(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte count) { throw null; } + public static System.Runtime.Intrinsics.Vector128 RotateLeft(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte count) { throw null; } + public static System.Runtime.Intrinsics.Vector128 RotateLeft(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte count) { throw null; } + public static System.Runtime.Intrinsics.Vector256 RotateLeft(System.Runtime.Intrinsics.Vector256 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte count) { throw null; } + public static System.Runtime.Intrinsics.Vector256 RotateLeft(System.Runtime.Intrinsics.Vector256 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte count) { throw null; } + public static System.Runtime.Intrinsics.Vector256 RotateLeft(System.Runtime.Intrinsics.Vector256 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte count) { throw null; } + public static System.Runtime.Intrinsics.Vector256 RotateLeft(System.Runtime.Intrinsics.Vector256 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte count) { throw null; } + public static System.Runtime.Intrinsics.Vector128 RotateLeftVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) { throw null; } + public static System.Runtime.Intrinsics.Vector128 RotateLeftVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) { throw null; } + public static System.Runtime.Intrinsics.Vector128 RotateLeftVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) { throw null; } + public static System.Runtime.Intrinsics.Vector128 RotateLeftVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) { throw null; } + public static System.Runtime.Intrinsics.Vector256 RotateLeftVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) { throw null; } + public static System.Runtime.Intrinsics.Vector256 RotateLeftVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) { throw null; } + public static System.Runtime.Intrinsics.Vector256 RotateLeftVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) { throw null; } + public static System.Runtime.Intrinsics.Vector256 RotateLeftVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) { throw null; } + public static System.Runtime.Intrinsics.Vector128 RotateRight(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte count) { throw null; } + public static System.Runtime.Intrinsics.Vector128 RotateRight(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte count) { throw null; } + public static System.Runtime.Intrinsics.Vector128 RotateRight(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte count) { throw null; } + public static System.Runtime.Intrinsics.Vector128 RotateRight(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte count) { throw null; } + public static System.Runtime.Intrinsics.Vector256 RotateRight(System.Runtime.Intrinsics.Vector256 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte count) { throw null; } + public static System.Runtime.Intrinsics.Vector256 RotateRight(System.Runtime.Intrinsics.Vector256 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte count) { throw null; } + public static System.Runtime.Intrinsics.Vector256 RotateRight(System.Runtime.Intrinsics.Vector256 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte count) { throw null; } + public static System.Runtime.Intrinsics.Vector256 RotateRight(System.Runtime.Intrinsics.Vector256 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte count) { throw null; } + public static System.Runtime.Intrinsics.Vector128 RotateRightVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) { throw null; } + public static System.Runtime.Intrinsics.Vector128 RotateRightVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) { throw null; } + public static System.Runtime.Intrinsics.Vector128 RotateRightVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) { throw null; } + public static System.Runtime.Intrinsics.Vector128 RotateRightVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) { throw null; } + public static System.Runtime.Intrinsics.Vector256 RotateRightVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) { throw null; } + public static System.Runtime.Intrinsics.Vector256 RotateRightVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) { throw null; } + public static System.Runtime.Intrinsics.Vector256 RotateRightVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) { throw null; } + public static System.Runtime.Intrinsics.Vector256 RotateRightVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) { throw null; } + public static System.Runtime.Intrinsics.Vector128 RoundScale(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 RoundScale(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 RoundScale(System.Runtime.Intrinsics.Vector256 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 RoundScale(System.Runtime.Intrinsics.Vector256 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 RoundScaleScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 RoundScaleScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 RoundScaleScalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 RoundScaleScalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 Scale(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 Scale(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 Scale(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector256 Scale(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ScaleScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ScaleScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ScaleScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ScaleScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogicalVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogicalVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte count) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte count) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ShiftRightArithmeticVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ShiftRightArithmeticVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogicalVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogicalVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) { throw null; } + public static System.Runtime.Intrinsics.Vector256 Shuffle2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 Shuffle2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 Shuffle2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 Shuffle2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 Shuffle2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 Shuffle2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 SqrtScalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector128 SqrtScalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector128 SubtractScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector128 SubtractScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector128 SumAbsoluteDifferencesInBlock32(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 SumAbsoluteDifferencesInBlock32(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 TernaryLogic(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 TernaryLogic(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 TernaryLogic(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 TernaryLogic(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 TernaryLogic(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 TernaryLogic(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 TernaryLogic(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 TernaryLogic(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 TernaryLogic(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector128 TernaryLogic(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 TernaryLogic(System.Runtime.Intrinsics.Vector256 a, System.Runtime.Intrinsics.Vector256 b, System.Runtime.Intrinsics.Vector256 c, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 TernaryLogic(System.Runtime.Intrinsics.Vector256 a, System.Runtime.Intrinsics.Vector256 b, System.Runtime.Intrinsics.Vector256 c, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 TernaryLogic(System.Runtime.Intrinsics.Vector256 a, System.Runtime.Intrinsics.Vector256 b, System.Runtime.Intrinsics.Vector256 c, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 TernaryLogic(System.Runtime.Intrinsics.Vector256 a, System.Runtime.Intrinsics.Vector256 b, System.Runtime.Intrinsics.Vector256 c, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 TernaryLogic(System.Runtime.Intrinsics.Vector256 a, System.Runtime.Intrinsics.Vector256 b, System.Runtime.Intrinsics.Vector256 c, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 TernaryLogic(System.Runtime.Intrinsics.Vector256 a, System.Runtime.Intrinsics.Vector256 b, System.Runtime.Intrinsics.Vector256 c, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 TernaryLogic(System.Runtime.Intrinsics.Vector256 a, System.Runtime.Intrinsics.Vector256 b, System.Runtime.Intrinsics.Vector256 c, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 TernaryLogic(System.Runtime.Intrinsics.Vector256 a, System.Runtime.Intrinsics.Vector256 b, System.Runtime.Intrinsics.Vector256 c, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 TernaryLogic(System.Runtime.Intrinsics.Vector256 a, System.Runtime.Intrinsics.Vector256 b, System.Runtime.Intrinsics.Vector256 c, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector256 TernaryLogic(System.Runtime.Intrinsics.Vector256 a, System.Runtime.Intrinsics.Vector256 b, System.Runtime.Intrinsics.Vector256 c, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + + public new abstract partial class X64 : System.Runtime.Intrinsics.X86.Avx2.X64 + { + internal X64() { } + public static new bool IsSupported { get { throw null; } } + public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128Double(System.Runtime.Intrinsics.Vector128 upper, ulong value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128Single(System.Runtime.Intrinsics.Vector128 upper, ulong value) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128Double(System.Runtime.Intrinsics.Vector128 upper, ulong value, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128Single(System.Runtime.Intrinsics.Vector128 upper, ulong value, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128Double(System.Runtime.Intrinsics.Vector128 upper, long value, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128Single(System.Runtime.Intrinsics.Vector128 upper, long value, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static long ConvertToInt64(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static long ConvertToInt64(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static ulong ConvertToUInt64(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static ulong ConvertToUInt64(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static ulong ConvertToUInt64(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static ulong ConvertToUInt64(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static ulong ConvertToUInt64WithTruncation(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static ulong ConvertToUInt64WithTruncation(System.Runtime.Intrinsics.Vector128 value) { throw null; } + } + public abstract partial class V512 : System.Runtime.Intrinsics.X86.Avx512BW + { + internal V512() { } + public new static bool IsSupported { get { throw null; } } + public static System.Runtime.Intrinsics.Vector512 DetectConflicts(System.Runtime.Intrinsics.Vector512 value) { throw null; } + public static System.Runtime.Intrinsics.Vector512 DetectConflicts(System.Runtime.Intrinsics.Vector512 value) { throw null; } + public static System.Runtime.Intrinsics.Vector512 DetectConflicts(System.Runtime.Intrinsics.Vector512 value) { throw null; } + public static System.Runtime.Intrinsics.Vector512 DetectConflicts(System.Runtime.Intrinsics.Vector512 value) { throw null; } + public static System.Runtime.Intrinsics.Vector512 LeadingZeroCount(System.Runtime.Intrinsics.Vector512 value) { throw null; } + public static System.Runtime.Intrinsics.Vector512 LeadingZeroCount(System.Runtime.Intrinsics.Vector512 value) { throw null; } + public static System.Runtime.Intrinsics.Vector512 LeadingZeroCount(System.Runtime.Intrinsics.Vector512 value) { throw null; } + public static System.Runtime.Intrinsics.Vector512 LeadingZeroCount(System.Runtime.Intrinsics.Vector512 value) { throw null; } + + public static System.Runtime.Intrinsics.Vector512 And(System.Runtime.Intrinsics.Vector512 left, System.Runtime.Intrinsics.Vector512 right) { throw null; } + public static System.Runtime.Intrinsics.Vector512 And(System.Runtime.Intrinsics.Vector512 left, System.Runtime.Intrinsics.Vector512 right) { throw null; } + public static System.Runtime.Intrinsics.Vector512 AndNot(System.Runtime.Intrinsics.Vector512 left, System.Runtime.Intrinsics.Vector512 right) { throw null; } + public static System.Runtime.Intrinsics.Vector512 AndNot(System.Runtime.Intrinsics.Vector512 left, System.Runtime.Intrinsics.Vector512 right) { throw null; } + public static System.Runtime.Intrinsics.Vector512 BroadcastPairScalarToVector512(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector512 BroadcastPairScalarToVector512(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static System.Runtime.Intrinsics.Vector512 BroadcastPairScalarToVector512(System.Runtime.Intrinsics.Vector128 value) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 BroadcastVector128ToVector512(long* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 BroadcastVector128ToVector512(ulong* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 BroadcastVector128ToVector512(double* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 BroadcastVector256ToVector512(int* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 BroadcastVector256ToVector512(uint* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 BroadcastVector256ToVector512(float* address) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Single(System.Runtime.Intrinsics.Vector512 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Single(System.Runtime.Intrinsics.Vector512 value) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Single(System.Runtime.Intrinsics.Vector512 value, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Single(System.Runtime.Intrinsics.Vector512 value, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector512 ConvertToVector512Double(System.Runtime.Intrinsics.Vector512 value) { throw null; } + public static System.Runtime.Intrinsics.Vector512 ConvertToVector512Double(System.Runtime.Intrinsics.Vector512 value) { throw null; } + public static System.Runtime.Intrinsics.Vector512 ConvertToVector512Double(System.Runtime.Intrinsics.Vector512 value, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector512 ConvertToVector512Double(System.Runtime.Intrinsics.Vector512 value, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector512 ConvertToVector512Int64(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector512 ConvertToVector512Int64(System.Runtime.Intrinsics.Vector512 value) { throw null; } + public static System.Runtime.Intrinsics.Vector512 ConvertToVector512Int64(System.Runtime.Intrinsics.Vector512 value, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector512 ConvertToVector512Int64(System.Runtime.Intrinsics.Vector256 value, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector512 ConvertToVector512Int64WithTruncation(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector512 ConvertToVector512Int64WithTruncation(System.Runtime.Intrinsics.Vector512 value) { throw null; } + public static System.Runtime.Intrinsics.Vector512 ConvertToVector512UInt64(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector512 ConvertToVector512UInt64(System.Runtime.Intrinsics.Vector512 value) { throw null; } + public static System.Runtime.Intrinsics.Vector512 ConvertToVector512UInt64(System.Runtime.Intrinsics.Vector512 value, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector512 ConvertToVector512UInt64(System.Runtime.Intrinsics.Vector256 value, [System.Diagnostics.CodeAnalysis.ConstantExpected(Max = System.Runtime.Intrinsics.X86.FloatRoundingMode.ToZero)] System.Runtime.Intrinsics.X86.FloatRoundingMode mode) { throw null; } + public static System.Runtime.Intrinsics.Vector512 ConvertToVector512UInt64WithTruncation(System.Runtime.Intrinsics.Vector256 value) { throw null; } + public static System.Runtime.Intrinsics.Vector512 ConvertToVector512UInt64WithTruncation(System.Runtime.Intrinsics.Vector512 value) { throw null; } + public static new System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector512 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } + public static new System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector512 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } + public static new System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector512 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } + public static new System.Runtime.Intrinsics.Vector256 ExtractVector256(System.Runtime.Intrinsics.Vector512 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } + public static new System.Runtime.Intrinsics.Vector256 ExtractVector256(System.Runtime.Intrinsics.Vector512 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } + public static new System.Runtime.Intrinsics.Vector256 ExtractVector256(System.Runtime.Intrinsics.Vector512 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } + public static new System.Runtime.Intrinsics.Vector512 InsertVector128(System.Runtime.Intrinsics.Vector512 value, System.Runtime.Intrinsics.Vector128 data, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } + public static new System.Runtime.Intrinsics.Vector512 InsertVector128(System.Runtime.Intrinsics.Vector512 value, System.Runtime.Intrinsics.Vector128 data, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } + public static new System.Runtime.Intrinsics.Vector512 InsertVector128(System.Runtime.Intrinsics.Vector512 value, System.Runtime.Intrinsics.Vector128 data, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } + public static new System.Runtime.Intrinsics.Vector512 InsertVector256(System.Runtime.Intrinsics.Vector512 value, System.Runtime.Intrinsics.Vector256 data, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } + public static new System.Runtime.Intrinsics.Vector512 InsertVector256(System.Runtime.Intrinsics.Vector512 value, System.Runtime.Intrinsics.Vector256 data, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } + public static new System.Runtime.Intrinsics.Vector512 InsertVector256(System.Runtime.Intrinsics.Vector512 value, System.Runtime.Intrinsics.Vector256 data, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } + public static System.Runtime.Intrinsics.Vector512 MultiplyLow(System.Runtime.Intrinsics.Vector512 left, System.Runtime.Intrinsics.Vector512 right) { throw null; } + public static System.Runtime.Intrinsics.Vector512 MultiplyLow(System.Runtime.Intrinsics.Vector512 left, System.Runtime.Intrinsics.Vector512 right) { throw null; } + public static System.Runtime.Intrinsics.Vector512 Or(System.Runtime.Intrinsics.Vector512 left, System.Runtime.Intrinsics.Vector512 right) { throw null; } + public static System.Runtime.Intrinsics.Vector512 Or(System.Runtime.Intrinsics.Vector512 left, System.Runtime.Intrinsics.Vector512 right) { throw null; } + public static System.Runtime.Intrinsics.Vector512 Range(System.Runtime.Intrinsics.Vector512 left, System.Runtime.Intrinsics.Vector512 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(0x0F))] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector512 Range(System.Runtime.Intrinsics.Vector512 left, System.Runtime.Intrinsics.Vector512 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(0x0F))] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector512 Reduce(System.Runtime.Intrinsics.Vector512 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector512 Reduce(System.Runtime.Intrinsics.Vector512 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } + public static System.Runtime.Intrinsics.Vector512 Xor(System.Runtime.Intrinsics.Vector512 left, System.Runtime.Intrinsics.Vector512 right) { throw null; } + public static System.Runtime.Intrinsics.Vector512 Xor(System.Runtime.Intrinsics.Vector512 left, System.Runtime.Intrinsics.Vector512 right) { throw null; } + + public static System.Runtime.Intrinsics.Vector512 PermuteVar64x8(System.Runtime.Intrinsics.Vector512 left, System.Runtime.Intrinsics.Vector512 control) { throw null; } + public static System.Runtime.Intrinsics.Vector512 PermuteVar64x8(System.Runtime.Intrinsics.Vector512 left, System.Runtime.Intrinsics.Vector512 control) { throw null; } + public static System.Runtime.Intrinsics.Vector512 PermuteVar64x8x2(System.Runtime.Intrinsics.Vector512 lower, System.Runtime.Intrinsics.Vector512 indices, System.Runtime.Intrinsics.Vector512 upper) { throw null; } + public static System.Runtime.Intrinsics.Vector512 PermuteVar64x8x2(System.Runtime.Intrinsics.Vector512 lower, System.Runtime.Intrinsics.Vector512 indices, System.Runtime.Intrinsics.Vector512 upper) { throw null; } + public new abstract partial class X64 : System.Runtime.Intrinsics.X86.Avx512BW.X64 + { + internal X64() { } + public static new bool IsSupported { get { throw null; } } + } + } + } + [System.CLSCompliantAttribute(false)] public abstract partial class Avx512BW : System.Runtime.Intrinsics.X86.Avx512F { diff --git a/src/mono/System.Private.CoreLib/src/ILLink/ILLink.Substitutions.Intrinsics.x86.xml b/src/mono/System.Private.CoreLib/src/ILLink/ILLink.Substitutions.Intrinsics.x86.xml index bd008db96ba1d..37307c726c5cf 100644 --- a/src/mono/System.Private.CoreLib/src/ILLink/ILLink.Substitutions.Intrinsics.x86.xml +++ b/src/mono/System.Private.CoreLib/src/ILLink/ILLink.Substitutions.Intrinsics.x86.xml @@ -39,6 +39,18 @@ + + + + + + + + + + + + diff --git a/src/mono/mono/mini/simd-intrinsics.c b/src/mono/mono/mini/simd-intrinsics.c index e003d1247892c..2fe59983f90d4 100644 --- a/src/mono/mono/mini/simd-intrinsics.c +++ b/src/mono/mono/mini/simd-intrinsics.c @@ -4471,6 +4471,7 @@ static const IntrinGroup supported_x86_intrinsics [] = { { "Aes", MONO_CPU_X86_AES, aes_methods, sizeof (aes_methods) }, { "Avx", MONO_CPU_X86_AVX, unsupported, sizeof (unsupported) }, { "Avx2", MONO_CPU_X86_AVX2, unsupported, sizeof (unsupported) }, + { "Avx10v1", MONO_CPU_X86_AVX2, unsupported, sizeof (unsupported) }, { "Avx512BW", MONO_CPU_X86_AVX2, unsupported, sizeof (unsupported) }, { "Avx512CD", MONO_CPU_X86_AVX2, unsupported, sizeof (unsupported) }, { "Avx512DQ", MONO_CPU_X86_AVX2, unsupported, sizeof (unsupported) }, diff --git a/src/native/minipal/cpufeatures.c b/src/native/minipal/cpufeatures.c index 1af0f86f18243..45271beed8637 100644 --- a/src/native/minipal/cpufeatures.c +++ b/src/native/minipal/cpufeatures.c @@ -225,6 +225,7 @@ int minipal_getcpufeatures(void) if ((cpuidInfo[CPUID_EBX] & (1 << 16)) != 0) // AVX512F { result |= XArchIntrinsicConstants_Avx512f; + result |= XArchIntrinsicConstants_Evex; bool isAVX512_VLSupported = false; if ((cpuidInfo[CPUID_EBX] & (1 << 31)) != 0) // AVX512VL @@ -286,11 +287,7 @@ int minipal_getcpufeatures(void) if ((cpuidInfo[CPUID_EBX] & (1 << 16)) != 0) { result |= XArchIntrinsicConstants_Avx10v1; - } - - if ((cpuidInfo[CPUID_EBX] & (1 << 17)) != 0) - { - result |= XArchIntrinsicConstants_Avx10v1_V256; + result |= XArchIntrinsicConstants_Evex; } if ((cpuidInfo[CPUID_EBX] & (1 << 18)) != 0) diff --git a/src/native/minipal/cpufeatures.h b/src/native/minipal/cpufeatures.h index 62aa1c75256a8..11f72a90b15b5 100644 --- a/src/native/minipal/cpufeatures.h +++ b/src/native/minipal/cpufeatures.h @@ -38,8 +38,8 @@ enum XArchIntrinsicConstants XArchIntrinsicConstants_Avx512Vbmi_vl = 0x1000000, XArchIntrinsicConstants_Serialize = 0x2000000, XArchIntrinsicConstants_Avx10v1 = 0x4000000, - XArchIntrinsicConstants_Avx10v1_V256 = 0x8000000, - XArchIntrinsicConstants_Avx10v1_V512 = 0x10000000, + XArchIntrinsicConstants_Avx10v1_V512 = 0x8000000, + XArchIntrinsicConstants_Evex = 0x10000000, }; #endif // HOST_X86 || HOST_AMD64 diff --git a/src/tests/Common/GenerateHWIntrinsicTests/GenerateHWIntrinsicTests_X86.cs b/src/tests/Common/GenerateHWIntrinsicTests/GenerateHWIntrinsicTests_X86.cs index ed85a8453a61c..ce63237720d1c 100644 --- a/src/tests/Common/GenerateHWIntrinsicTests/GenerateHWIntrinsicTests_X86.cs +++ b/src/tests/Common/GenerateHWIntrinsicTests/GenerateHWIntrinsicTests_X86.cs @@ -2523,6 +2523,1372 @@ ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx512Vbmi.VL", ["LoadIsa"] = "Avx", ["Method"] = "PermuteVar32x8x2", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "SByte", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "SByte", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp3"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != (((secondOp[0] & 63) <= 31) ? firstOp[secondOp[0] & 31] : thirdOp[secondOp[0] & 31]", ["ValidateRemainingResults"] = "result[i] != (((secondOp[i] & 63) <= 31) ? firstOp[secondOp[i] & 31] : thirdOp[secondOp[i] & 31])"}), }; +(string templateFileName, Dictionary templateData)[] Avx10v1_Avx512Vbmi_VL_Vector128Inputs = new [] +{ + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar16x8", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != left[(right[0] & 15)]", ["ValidateRemainingResults"] = "result[i] != left[(right[i] & 15)]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar16x8", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != left[(right[0] & 15)]", ["ValidateRemainingResults"] = "result[i] != left[(right[i] & 15)]"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar16x8x2", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Byte", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Byte", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["NextValueOp3"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != (((secondOp[0] & 31) <= 15) ? firstOp[secondOp[0] & 15] : thirdOp[secondOp[0] & 15])", ["ValidateRemainingResults"] = "result[i] != (((secondOp[i] & 31) <= 15) ? firstOp[secondOp[i] & 15] : thirdOp[secondOp[i] & 15])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar16x8x2", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "SByte", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "SByte", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp3"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != (((secondOp[0] & 31) <= 15) ? firstOp[secondOp[0] & 15] : thirdOp[secondOp[0] & 15])", ["ValidateRemainingResults"] = "result[i] != (((secondOp[i] & 31) <= 15) ? firstOp[secondOp[i] & 15] : thirdOp[secondOp[i] & 15])"}), +}; + +(string templateFileName, Dictionary templateData)[] Avx10v1_Avx512CD_VL_Vector128Inputs = new [] +{ + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "DetectConflicts", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.DetectConflicts(firstOp, 0)", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.DetectConflicts(firstOp, i)"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "DetectConflicts", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.DetectConflicts(firstOp, 0)", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.DetectConflicts(firstOp, i)"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "DetectConflicts", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.DetectConflicts(firstOp, 0)", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.DetectConflicts(firstOp, i)"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "DetectConflicts", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.DetectConflicts(firstOp, 0)", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.DetectConflicts(firstOp, i)"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "LeadingZeroCount", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != int.LeadingZeroCount(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != int.LeadingZeroCount(firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "LeadingZeroCount", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != long.LeadingZeroCount(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != long.LeadingZeroCount(firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "LeadingZeroCount", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != uint.LeadingZeroCount(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != uint.LeadingZeroCount(firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "LeadingZeroCount", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != ulong.LeadingZeroCount(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != ulong.LeadingZeroCount(firstOp[i])"}), +}; + +(string templateFileName, Dictionary templateData)[] Avx10v1_Avx512F_VL_Vector128Inputs = new [] +{ + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Abs", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (ulong)((firstOp[0] < 0) ? -firstOp[0] : firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (ulong)((firstOp[i] < 0) ? -firstOp[i] : firstOp[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "AlignRight32", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Imm"] = "1", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != right[1]", ["ValidateRemainingResults"] = "result[i] != ((i < 3) ? right[i + 1] : left[i - 3])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "AlignRight32", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Imm"] = "5", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != right[1]", ["ValidateRemainingResults"] = "result[i] != ((i < 3) ? right[i + 1] : left[i - 3])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "AlignRight32", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt32", ["Imm"] = "1", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != right[1]", ["ValidateRemainingResults"] = "result[i] != ((i < 3) ? right[i + 1] : left[i - 3])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "AlignRight32", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt32", ["Imm"] = "5", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != right[1]", ["ValidateRemainingResults"] = "result[i] != ((i < 3) ? right[i + 1] : left[i - 3])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "AlignRight64", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int64", ["Imm"] = "1", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != right[1]", ["ValidateRemainingResults"] = "result[i] != ((i < 1) ? right[i + 1] : left[i - 1])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "AlignRight64", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int64", ["Imm"] = "3", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != right[1]", ["ValidateRemainingResults"] = "result[i] != ((i < 1) ? right[i + 1] : left[i - 1])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "AlignRight64", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt64", ["Imm"] = "1", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != right[1]", ["ValidateRemainingResults"] = "result[i] != ((i < 1) ? right[i + 1] : left[i - 1])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "AlignRight64", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt64", ["Imm"] = "3", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != right[1]", ["ValidateRemainingResults"] = "result[i] != ((i < 1) ? right[i + 1] : left[i - 1])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareGreaterThan", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] > right[0]) ? unchecked((uint)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] > right[i]) ? unchecked((uint)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareGreaterThan", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] > right[0]) ? unchecked((ulong)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] > right[i]) ? unchecked((ulong)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] >= right[0]) ? unchecked((int)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] >= right[i]) ? unchecked((int)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] >= right[0]) ? unchecked((long)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] >= right[i]) ? unchecked((long)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] >= right[0]) ? unchecked((uint)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] >= right[i]) ? unchecked((uint)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] >= right[0]) ? unchecked((ulong)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] >= right[i]) ? unchecked((ulong)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] < right[0]) ? unchecked((int)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] < right[i]) ? unchecked((int)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] < right[0]) ? unchecked((long)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] < right[i]) ? unchecked((long)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] < right[0]) ? unchecked((uint)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] < right[i]) ? unchecked((uint)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] < right[0]) ? unchecked((ulong)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] < right[i]) ? unchecked((ulong)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] <= right[0]) ? unchecked((int)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] <= right[i]) ? unchecked((int)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] <= right[0]) ? unchecked((long)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] <= right[i]) ? unchecked((long)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] <= right[0]) ? unchecked((uint)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] <= right[i]) ? unchecked((uint)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] <= right[0]) ? unchecked((ulong)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] <= right[i]) ? unchecked((ulong)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] != right[0]) ? unchecked((int)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] != right[i]) ? unchecked((int)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] != right[0]) ? unchecked((long)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] != right[i]) ? unchecked((long)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] != right[0]) ? unchecked((uint)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] != right[i]) ? unchecked((uint)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] != right[0]) ? unchecked((ulong)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] != right[i]) ? unchecked((ulong)(-1)) : 0)"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Byte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (byte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 4) ? (byte)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Byte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (byte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 2) ? (byte)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Byte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != (byte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 4) ? (byte)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Byte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (byte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 2) ? (byte)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128ByteWithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != (byte)uint.Clamp(firstOp[0], byte.MinValue, byte.MaxValue)", ["ValidateRemainingResults"] = "result[i] != ((i < 4) ? (byte)uint.Clamp(firstOp[i], byte.MinValue, byte.MaxValue) : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128ByteWithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (byte)ulong.Clamp(firstOp[0], byte.MinValue, byte.MaxValue)", ["ValidateRemainingResults"] = "result[i] != ((i < 2) ? (byte)ulong.Clamp(firstOp[i], byte.MinValue, byte.MaxValue) : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Double", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(firstOp[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Int16", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (short)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 4) ? (short)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Int16", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (short)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 2) ? (short)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Int16", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != (short)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 4) ? (short)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Int16", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (short)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 2) ? (short)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Int16WithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (short)int.Clamp(firstOp[0], short.MinValue, short.MaxValue)", ["ValidateRemainingResults"] = "result[i] != ((i < 4) ? (short)int.Clamp(firstOp[i], short.MinValue, short.MaxValue) : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Int16WithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (short)long.Clamp(firstOp[0], short.MinValue, short.MaxValue)", ["ValidateRemainingResults"] = "result[i] != ((i < 2) ? (short)long.Clamp(firstOp[i], short.MinValue, short.MaxValue) : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Int32", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (int)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 2) ? (int)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Int32", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (int)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 2) ? (int)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Int32WithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (int)long.Clamp(firstOp[0], int.MinValue, int.MaxValue)", ["ValidateRemainingResults"] = "result[i] != ((i < 2) ? (int)long.Clamp(firstOp[i], int.MinValue, int.MaxValue) : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128SByte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (sbyte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 4) ? (sbyte)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128SByte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (sbyte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 2) ? (sbyte)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128SByte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != (sbyte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 4) ? (sbyte)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128SByte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (sbyte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 2) ? (sbyte)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128SByteWithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (sbyte)int.Clamp(firstOp[0], sbyte.MinValue, sbyte.MaxValue)", ["ValidateRemainingResults"] = "result[i] != ((i < 4) ? (sbyte)int.Clamp(firstOp[i], sbyte.MinValue, sbyte.MaxValue) : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128SByteWithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (sbyte)long.Clamp(firstOp[0], sbyte.MinValue, sbyte.MaxValue)", ["ValidateRemainingResults"] = "result[i] != ((i < 2) ? (sbyte)long.Clamp(firstOp[i], sbyte.MinValue, sbyte.MaxValue) : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Single", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(firstOp[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt16", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (ushort)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 4) ? (ushort)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt16", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (ushort)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 2) ? (ushort)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt16", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != (ushort)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 4) ? (ushort)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt16", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (ushort)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 2) ? (ushort)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt16WithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != (ushort)uint.Clamp(firstOp[0], ushort.MinValue, ushort.MaxValue)", ["ValidateRemainingResults"] = "result[i] != ((i < 4) ? (ushort)uint.Clamp(firstOp[i], ushort.MinValue, ushort.MaxValue) : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt16WithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (ushort)ulong.Clamp(firstOp[0], ushort.MinValue, ushort.MaxValue)", ["ValidateRemainingResults"] = "result[i] != ((i < 2) ? (ushort)ulong.Clamp(firstOp[i], ushort.MinValue, ushort.MaxValue) : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt32", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != (uint)double.Round(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (uint)double.Round((i == 1) ? firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt32", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (uint)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 2) ? (uint)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt32", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (uint)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 2) ? (uint)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt32", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != (uint)float.Round(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (uint)float.Round(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt32WithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (uint)ulong.Clamp(firstOp[0], uint.MinValue, uint.MaxValue)", ["ValidateRemainingResults"] = "result[i] != ((i < 2) ? (uint)ulong.Clamp(firstOp[i], uint.MinValue, uint.MaxValue) : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt32WithTruncation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != (uint)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 2) ? (uint)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt32WithTruncation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != (uint)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (uint)firstOp[i]"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Fixup", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int64", ["Imm"] = "0", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "Avx512Verify.ValidateFixup(result[0], op1[0], op2[0], op3[0])", ["ValidateRemainingResults"] = "Avx512Verify.ValidateFixup(result[i], op1[i], op2[i], op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Fixup", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", ["Imm"] = "0", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "Avx512Verify.ValidateFixup(result[0], op1[0], op2[0], op3[0])", ["ValidateRemainingResults"] = "Avx512Verify.ValidateFixup(result[i], op1[i], op2[i], op3[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "GetExponent", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.GetExponent(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.GetExponent(firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "GetExponent", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.GetExponent(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.GetExponent(firstOp[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "GetMantissa", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Imm"] = "0", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.GetMantissa(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.GetMantissa(firstOp[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "GetMantissa", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Imm"] = "0", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.GetMantissa(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.GetMantissa(firstOp[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Max", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != Math.Max(left[0], right[0])", ["ValidateRemainingResults"] = "result[i] != Math.Max(left[i], right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Max", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != Math.Max(left[0], right[0])", ["ValidateRemainingResults"] = "result[i] != Math.Max(left[i], right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Min", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != Math.Min(left[0], right[0])", ["ValidateRemainingResults"] = "result[i] != Math.Min(left[i], right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Min", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != Math.Min(left[0], right[0])", ["ValidateRemainingResults"] = "result[i] != Math.Min(left[i], right[i])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar2x64x2", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int64", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp3"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(((secondOp[0] & 3) <= 1) ? firstOp[secondOp[0] & 1] : thirdOp[secondOp[0] & 1])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(((secondOp[i] & 3) <= 1) ? firstOp[secondOp[i] & 1] : thirdOp[secondOp[i] & 1])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar2x64x2", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int64", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (((secondOp[0] & 3) <= 1) ? firstOp[secondOp[0] & 1] : thirdOp[secondOp[0] & 1])", ["ValidateRemainingResults"] = "result[i] != (((secondOp[i] & 3) <= 1) ? firstOp[secondOp[i] & 1] : thirdOp[secondOp[i] & 1])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar2x64x2", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt64", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp3"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (((secondOp[0] & 3) <= 1) ? firstOp[secondOp[0] & 1] : thirdOp[secondOp[0] & 1])", ["ValidateRemainingResults"] = "result[i] != (((secondOp[i] & 3) <= 1) ? firstOp[secondOp[i] & 1] : thirdOp[secondOp[i] & 1])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar4x32x2", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (((secondOp[0] & 7) <= 3) ? firstOp[secondOp[0] & 3] : thirdOp[secondOp[0] & 3])", ["ValidateRemainingResults"] = "result[i] != (((secondOp[i] & 7) <= 3) ? firstOp[secondOp[i] & 3] : thirdOp[secondOp[i] & 3])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar4x32x2", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != (((secondOp[0] & 7) <= 3) ? firstOp[secondOp[0] & 3] : thirdOp[secondOp[0] & 3])", ["ValidateRemainingResults"] = "result[i] != (((secondOp[i] & 7) <= 3) ? firstOp[secondOp[i] & 3] : thirdOp[secondOp[i] & 3])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar4x32x2", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(((secondOp[0] & 7) <= 3) ? firstOp[secondOp[0] & 3] : thirdOp[secondOp[0] & 3])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(((secondOp[i] & 7) <= 3) ? firstOp[secondOp[i] & 3] : thirdOp[secondOp[i] & 3])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Reciprocal14", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "Avx512Verify.ValidateReciprocal14(result[0], firstOp[0])", ["ValidateRemainingResults"] = "Avx512Verify.ValidateReciprocal14(result[i], firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Reciprocal14", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "Avx512Verify.ValidateReciprocal14(result[0], firstOp[0])", ["ValidateRemainingResults"] = "Avx512Verify.ValidateReciprocal14(result[i], firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ReciprocalSqrt14", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "Avx512Verify.ValidateReciprocalSqrt14(result[0], firstOp[0])", ["ValidateRemainingResults"] = "Avx512Verify.ValidateReciprocalSqrt14(result[i], firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ReciprocalSqrt14", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "Avx512Verify.ValidateReciprocalSqrt14(result[0], firstOp[0])", ["ValidateRemainingResults"] = "Avx512Verify.ValidateReciprocalSqrt14(result[i], firstOp[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateLeft", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Imm"] = "1", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "int.RotateLeft(firstOp[0], 1) != result[0]", ["ValidateRemainingResults"] = "int.RotateLeft(firstOp[i], 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateLeft", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Imm"] = "32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateLeft", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["Imm"] = "1", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "((firstOp[0] << 1) | (firstOp[0] >>> (64 - 1))) != result[0]", ["ValidateRemainingResults"] = "((firstOp[i] << 1) | (firstOp[i] >>> (64 - 1))) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateLeft", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["Imm"] = "64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateLeft", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["Imm"] = "1", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "uint.RotateLeft(firstOp[0], 1) != result[0]", ["ValidateRemainingResults"] = "uint.RotateLeft(firstOp[i], 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateLeft", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["Imm"] = "32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateLeft", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["Imm"] = "1", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "((firstOp[0] << 1) | (firstOp[0] >>> (64 - 1))) != result[0]", ["ValidateRemainingResults"] = "((firstOp[i] << 1) | (firstOp[i] >>> (64 - 1))) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateLeft", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["Imm"] = "64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateLeftVariable", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt32() & 31)", ["ValidateFirstResult"] = "int.RotateLeft(left[0], (int)(right[0])) != result[0]", ["ValidateRemainingResults"] = "int.RotateLeft(left[i], (int)(right[i])) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateLeftVariable", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt32() & 31)", ["ValidateFirstResult"] = "uint.RotateLeft(left[0], (int)(right[0])) != result[0]", ["ValidateRemainingResults"] = "uint.RotateLeft(left[i], (int)(right[i])) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateLeftVariable", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt64() & 63)", ["ValidateFirstResult"] = "long.RotateLeft(left[0], (int)(right[0])) != result[0]", ["ValidateRemainingResults"] = "long.RotateLeft(left[i], (int)(right[i])) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateLeftVariable", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt64() & 63)", ["ValidateFirstResult"] = "ulong.RotateLeft(left[0], (int)(right[0])) != result[0]", ["ValidateRemainingResults"] = "ulong.RotateLeft(left[i], (int)(right[i])) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateRight", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Imm"] = "1", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "int.RotateRight(firstOp[0], 1) != result[0]", ["ValidateRemainingResults"] = "int.RotateRight(firstOp[i], 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateRight", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Imm"] = "32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateRight", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["Imm"] = "1", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "((firstOp[0] >>> 1) | (firstOp[0] << (64 - 1))) != result[0]", ["ValidateRemainingResults"] = "((firstOp[i] >>> 1) | (firstOp[i] << (64 - 1))) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateRight", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["Imm"] = "64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateRight", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["Imm"] = "1", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "uint.RotateRight(firstOp[0], 1) != result[0]", ["ValidateRemainingResults"] = "uint.RotateRight(firstOp[i], 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateRight", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["Imm"] = "32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateRight", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["Imm"] = "1", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "((firstOp[0] >>> 1) | (firstOp[0] << (64 - 1))) != result[0]", ["ValidateRemainingResults"] = "((firstOp[i] >>> 1) | (firstOp[i] << (64 - 1))) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateRight", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["Imm"] = "64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateRightVariable", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt32() & 31)", ["ValidateFirstResult"] = "int.RotateRight(left[0], (int)(right[0])) != result[0]", ["ValidateRemainingResults"] = "int.RotateRight(left[i], (int)(right[i])) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateRightVariable", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt32() & 31)", ["ValidateFirstResult"] = "uint.RotateRight(left[0], (int)(right[0])) != result[0]", ["ValidateRemainingResults"] = "uint.RotateRight(left[i], (int)(right[i])) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateRightVariable", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt64() & 63)", ["ValidateFirstResult"] = "long.RotateRight(left[0], (int)(right[0])) != result[0]", ["ValidateRemainingResults"] = "long.RotateRight(left[i], (int)(right[i])) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateRightVariable", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt64() & 63)", ["ValidateFirstResult"] = "ulong.RotateRight(left[0], (int)(right[0])) != result[0]", ["ValidateRemainingResults"] = "ulong.RotateRight(left[i], (int)(right[i])) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Imm"] = "4", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(Math.Round(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(Math.Round(firstOp[i]))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Imm"] = "4", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(MathF.Round(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(MathF.Round(firstOp[i]))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Imm"] = "0", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(Math.Round(firstOp[0], MidpointRounding.AwayFromZero))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(Math.Round(firstOp[i], MidpointRounding.AwayFromZero))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Imm"] = "0", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(MathF.Round(firstOp[0], MidpointRounding.AwayFromZero))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(MathF.Round(firstOp[i], MidpointRounding.AwayFromZero))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Imm"] = "1", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(Math.Floor(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(Math.Floor(firstOp[i]))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Imm"] = "1", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(MathF.Floor(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(MathF.Floor(firstOp[i]))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Imm"] = "2", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(Math.Ceiling(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(Math.Ceiling(firstOp[i]))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Imm"] = "2", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(MathF.Ceiling(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(MathF.Ceiling(firstOp[i]))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Imm"] = "3", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits((firstOp[0] > 0) ? Math.Floor(firstOp[0]) : Math.Ceiling(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits((firstOp[i] > 0) ? Math.Floor(firstOp[i]) : Math.Ceiling(firstOp[i]))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Imm"] = "3", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits((firstOp[0] > 0) ? MathF.Floor(firstOp[0]) : MathF.Ceiling(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits((firstOp[i] > 0) ? MathF.Floor(firstOp[i]) : MathF.Ceiling(firstOp[i]))"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Scale", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "(double)(TestLibrary.Generator.GetByte())", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(double.ScaleB(left[0], (int)double.Floor(right[0])))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(double.ScaleB(left[i], (int)double.Floor(right[i])))"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Scale", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "(float)(TestLibrary.Generator.GetByte())", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(float.ScaleB(left[0], (int)float.Floor(right[0])))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(float.ScaleB(left[i], (int)float.Floor(right[i])))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ShiftRightArithmetic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["Imm"] = "1", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "(firstOp[0] >> 1) != result[0]", ["ValidateRemainingResults"] = "(firstOp[i] >> 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ShiftRightArithmetic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["Imm"] = "64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "(firstOp[0] >> 63) != result[0]", ["ValidateRemainingResults"] = "(firstOp[i] >> 63) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ShiftRightArithmeticVariable", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt64() & 63)", ["ValidateFirstResult"] = "(left[0] >> (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(left[i] >> (int)right[i]) != result[i]"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Byte", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Byte", ["Imm"] = "30", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["NextValueOp3"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ (op2[0] | op3[0]))", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ (op2[i] | op3[i]))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Double", ["Imm"] = "30", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp3"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != (BitConverter.DoubleToInt64Bits(op1[0]) ^ (BitConverter.DoubleToInt64Bits(op2[0]) | BitConverter.DoubleToInt64Bits(op3[0])))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != (BitConverter.DoubleToInt64Bits(op1[i]) ^ (BitConverter.DoubleToInt64Bits(op2[i]) | BitConverter.DoubleToInt64Bits(op3[i])))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int16", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int16", ["Imm"] = "30", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ (op2[0] | op3[0]))", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ (op2[i] | op3[i]))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", ["Imm"] = "30", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ (op2[0] | op3[0]))", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ (op2[i] | op3[i]))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* A */ ["Imm"] = "240", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != op1[0]", ["ValidateRemainingResults"] = "result[i] != op1[i]"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* B */ ["Imm"] = "204", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != op2[0]", ["ValidateRemainingResults"] = "result[i] != op2[i]"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* C */ ["Imm"] = "170", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != op3[0]", ["ValidateRemainingResults"] = "result[i] != op3[i]"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* True */ ["Imm"] = "255", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != -1", ["ValidateRemainingResults"] = "result[i] != -1"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* False */ ["Imm"] = "0", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != 0", ["ValidateRemainingResults"] = "result[i] != 0"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* ~A */ ["Imm"] = "15", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~op1[0]", ["ValidateRemainingResults"] = "result[i] != ~op1[i]"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* ~B */ ["Imm"] = "51", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~op2[0]", ["ValidateRemainingResults"] = "result[i] != ~op2[i]"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* ~C */ ["Imm"] = "85", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~op3[0]", ["ValidateRemainingResults"] = "result[i] != ~op3[i]"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* ~A & B */ ["Imm"] = "12", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op1[0] & op2[0])", ["ValidateRemainingResults"] = "result[i] != (~op1[i] & op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* ~A & C */ ["Imm"] = "10", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op1[0] & op3[0])", ["ValidateRemainingResults"] = "result[i] != (~op1[i] & op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* ~B & A */ ["Imm"] = "48", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op2[0] & op1[0])", ["ValidateRemainingResults"] = "result[i] != (~op2[i] & op1[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* ~B & C */ ["Imm"] = "34", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op2[0] & op3[0])", ["ValidateRemainingResults"] = "result[i] != (~op2[i] & op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* ~C & A */ ["Imm"] = "80", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op3[0] & op1[0])", ["ValidateRemainingResults"] = "result[i] != (~op3[i] & op1[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* ~C & B */ ["Imm"] = "68", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op3[0] & op2[0])", ["ValidateRemainingResults"] = "result[i] != (~op3[i] & op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* ~A | B */ ["Imm"] = "207", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op1[0] | op2[0])", ["ValidateRemainingResults"] = "result[i] != (~op1[i] | op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* ~A | C */ ["Imm"] = "175", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op1[0] | op3[0])", ["ValidateRemainingResults"] = "result[i] != (~op1[i] | op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* ~B | A */ ["Imm"] = "243", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op2[0] | op1[0])", ["ValidateRemainingResults"] = "result[i] != (~op2[i] | op1[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* ~B | C */ ["Imm"] = "187", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op2[0] | op3[0])", ["ValidateRemainingResults"] = "result[i] != (~op2[i] | op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* ~C | A */ ["Imm"] = "245", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op3[0] | op1[0])", ["ValidateRemainingResults"] = "result[i] != (~op3[i] | op1[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* ~C | B */ ["Imm"] = "221", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op3[0] | op2[0])", ["ValidateRemainingResults"] = "result[i] != (~op3[i] | op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* A & B */ ["Imm"] = "192", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op1[0] & op2[0])", ["ValidateRemainingResults"] = "result[i] != (op1[i] & op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* A & C */ ["Imm"] = "160", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op1[0] & op3[0])", ["ValidateRemainingResults"] = "result[i] != (op1[i] & op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* B & C */ ["Imm"] = "136", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op2[0] & op3[0])", ["ValidateRemainingResults"] = "result[i] != (op2[i] & op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* ~(A & B) */ ["Imm"] = "63", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op1[0] & op2[0])", ["ValidateRemainingResults"] = "result[i] != ~(op1[i] & op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* ~(A & C) */ ["Imm"] = "95", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op1[0] & op3[0])", ["ValidateRemainingResults"] = "result[i] != ~(op1[i] & op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* ~(B & C) */ ["Imm"] = "119", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op2[0] & op3[0])", ["ValidateRemainingResults"] = "result[i] != ~(op2[i] & op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* A | B */ ["Imm"] = "252", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op1[0] | op2[0])", ["ValidateRemainingResults"] = "result[i] != (op1[i] | op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* A | C */ ["Imm"] = "250", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op1[0] | op3[0])", ["ValidateRemainingResults"] = "result[i] != (op1[i] | op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* B | C */ ["Imm"] = "238", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op2[0] | op3[0])", ["ValidateRemainingResults"] = "result[i] != (op2[i] | op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* ~(A | B) */ ["Imm"] = "3", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op1[0] | op2[0])", ["ValidateRemainingResults"] = "result[i] != ~(op1[i] | op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* ~(A | C) */ ["Imm"] = "5", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op1[0] | op3[0])", ["ValidateRemainingResults"] = "result[i] != ~(op1[i] | op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* ~(B | C) */ ["Imm"] = "17", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op2[0] | op3[0])", ["ValidateRemainingResults"] = "result[i] != ~(op2[i] | op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* A ^ B */ ["Imm"] = "60", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ op2[0])", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* A ^ C */ ["Imm"] = "90", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ op3[0])", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* B ^ C */ ["Imm"] = "102", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op2[0] ^ op3[0])", ["ValidateRemainingResults"] = "result[i] != (op2[i] ^ op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* ~(A ^ B) */ ["Imm"] = "195", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op1[0] ^ op2[0])", ["ValidateRemainingResults"] = "result[i] != ~(op1[i] ^ op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* ~(A ^ C) */ ["Imm"] = "165", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op1[0] ^ op3[0])", ["ValidateRemainingResults"] = "result[i] != ~(op1[i] ^ op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", /* ~(B ^ C) */ ["Imm"] = "153", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op2[0] ^ op3[0])", ["ValidateRemainingResults"] = "result[i] != ~(op2[i] ^ op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int64", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int64", ["Imm"] = "30", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ (op2[0] | op3[0]))", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ (op2[i] | op3[i]))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "SByte", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "SByte", ["Imm"] = "30", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp3"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ (op2[0] | op3[0]))", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ (op2[i] | op3[i]))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Single", ["Imm"] = "30", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp3"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != (BitConverter.SingleToInt32Bits(op1[0]) ^ (BitConverter.SingleToInt32Bits(op2[0]) | BitConverter.SingleToInt32Bits(op3[0])))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != (BitConverter.SingleToInt32Bits(op1[i]) ^ (BitConverter.SingleToInt32Bits(op2[i]) | BitConverter.SingleToInt32Bits(op3[i])))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt16", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "UInt16", ["Imm"] = "30", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp3"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ (op2[0] | op3[0]))", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ (op2[i] | op3[i]))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt32", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "UInt32", ["Imm"] = "30", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ (op2[0] | op3[0]))", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ (op2[i] | op3[i]))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt64", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "UInt64", ["Imm"] = "30", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp3"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ (op2[0] | op3[0]))", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ (op2[i] | op3[i]))"}), +}; + +(string templateFileName, Dictionary templateData)[] Avx10v1_Avx512F_ScalarUpperInputs = new [] +{ + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "GetExponentScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.GetExponent(right[0])", ["ValidateRemainingResults"] = "result[i] != left[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "GetExponentScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.GetExponent(right[0])", ["ValidateRemainingResults"] = "result[i] != left[i]"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "GetMantissaScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Imm"] = "0", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.GetMantissa(right[0])", ["ValidateRemainingResults"] = "result[i] != left[i]"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "GetMantissaScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Imm"] = "0", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.GetMantissa(right[0])", ["ValidateRemainingResults"] = "result[i] != left[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Reciprocal14Scalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "Avx512Verify.ValidateReciprocal14(result[0], right[0])", ["ValidateRemainingResults"] = "result[i] != left[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Reciprocal14Scalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "Avx512Verify.ValidateReciprocal14(result[0], right[0])", ["ValidateRemainingResults"] = "result[i] != left[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ReciprocalSqrt14Scalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "Avx512Verify.ValidateReciprocalSqrt14(result[0], right[0])", ["ValidateRemainingResults"] = "result[i] != left[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ReciprocalSqrt14Scalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "Avx512Verify.ValidateReciprocalSqrt14(result[0], right[0])", ["ValidateRemainingResults"] = "result[i] != left[i]"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScaleScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Imm"] = "4", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(Math.Round(right[0]))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(left[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScaleScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Imm"] = "4", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(MathF.Round(right[0]))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(left[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScaleScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Imm"] = "0", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(Math.Round(right[0], MidpointRounding.AwayFromZero))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(left[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScaleScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Imm"] = "0", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(MathF.Round(right[0], MidpointRounding.AwayFromZero))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(left[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScaleScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Imm"] = "1", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(Math.Floor(right[0]))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(left[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScaleScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Imm"] = "1", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(MathF.Floor(right[0]))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(left[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScaleScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Imm"] = "2", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(Math.Ceiling(right[0]))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(left[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScaleScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Imm"] = "2", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(MathF.Ceiling(right[0]))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(left[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScaleScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Imm"] = "3", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits((right[0] > 0) ? Math.Floor(right[0]) : Math.Ceiling(right[0]))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(left[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScaleScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Imm"] = "3", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits((right[0] > 0) ? MathF.Floor(right[0]) : MathF.Ceiling(right[0]))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(left[i])"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "AddScalar", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "AddScalar", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "AddScalar", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "AddScalar", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "AddScalar", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "AddScalar", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "DivideScalar", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "DivideScalar", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "DivideScalar", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "DivideScalar", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "DivideScalar", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "DivideScalar", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "MultiplyScalar", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "MultiplyScalar", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "MultiplyScalar", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "MultiplyScalar", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "MultiplyScalar", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "MultiplyScalar", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "SubtractScalar", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "SubtractScalar", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "SubtractScalar", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "SubtractScalar", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "SubtractScalar", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "SubtractScalar", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "SqrtScalar", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "SqrtScalar", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "SqrtScalar", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "SqrtScalar", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "SqrtScalar", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "SqrtScalar", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ScaleScalar", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ScaleScalar", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ScaleScalar", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ScaleScalar", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ScaleScalar", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ScaleScalar", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertScalarToVector128Single", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "1.0", ["FixedInput2"] = "15.0"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertScalarToVector128Single", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "1.0", ["FixedInput2"] = "15.0"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertScalarToVector128Single", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "1.0", ["FixedInput2"] = "15.0"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "FusedMultiplyAddScalar", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "FusedMultiplyAddScalar", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "FusedMultiplyAddScalar", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "FusedMultiplyAddScalar", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "FusedMultiplyAddScalar", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "FusedMultiplyAddScalar", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "FusedMultiplyAddNegatedScalar", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "FusedMultiplyAddNegatedScalar", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "FusedMultiplyAddNegatedScalar", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "FusedMultiplyAddNegatedScalar", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "FusedMultiplyAddNegatedScalar", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "FusedMultiplyAddNegatedScalar", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "FusedMultiplySubtractScalar", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "FusedMultiplySubtractScalar", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "FusedMultiplySubtractScalar", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "FusedMultiplySubtractScalar", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "FusedMultiplySubtractScalar", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "FusedMultiplySubtractScalar", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "FusedMultiplySubtractNegatedScalar", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "FusedMultiplySubtractNegatedScalar", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "FusedMultiplySubtractNegatedScalar", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "16", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "FusedMultiplySubtractNegatedScalar", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "FusedMultiplySubtractNegatedScalar", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "FusedMultiplySubtractNegatedScalar", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "16", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), +}; + +(string templateFileName, Dictionary templateData)[] Avx10v1_Avx512BW_VL_Vector128Inputs = new [] +{ + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareGreaterThan", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] > right[0]) ? unchecked((byte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] > right[i]) ? unchecked((byte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareGreaterThan", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] > right[0]) ? unchecked((ushort)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] > right[i]) ? unchecked((ushort)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] >= right[0]) ? unchecked((byte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] >= right[i]) ? unchecked((byte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] >= right[0]) ? unchecked((short)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] >= right[i]) ? unchecked((short)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] >= right[0]) ? unchecked((sbyte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] >= right[i]) ? unchecked((sbyte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] >= right[0]) ? unchecked((ushort)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] >= right[i]) ? unchecked((ushort)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] < right[0]) ? unchecked((byte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] < right[i]) ? unchecked((byte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] < right[0]) ? unchecked((short)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] < right[i]) ? unchecked((short)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] < right[0]) ? unchecked((sbyte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] < right[i]) ? unchecked((sbyte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] < right[0]) ? unchecked((ushort)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] < right[i]) ? unchecked((ushort)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] <= right[0]) ? unchecked((byte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] <= right[i]) ? unchecked((byte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] <= right[0]) ? unchecked((short)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] <= right[i]) ? unchecked((short)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] <= right[0]) ? unchecked((sbyte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] <= right[i]) ? unchecked((sbyte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] <= right[0]) ? unchecked((ushort)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] <= right[i]) ? unchecked((ushort)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] != right[0]) ? unchecked((byte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] != right[i]) ? unchecked((byte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] != right[0]) ? unchecked((short)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] != right[i]) ? unchecked((short)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] != right[0]) ? unchecked((sbyte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] != right[i]) ? unchecked((sbyte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] != right[0]) ? unchecked((ushort)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] != right[i]) ? unchecked((ushort)(-1)) : 0)"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Byte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != (byte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 8) ? (byte)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Byte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != (byte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 8) ? (byte)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128ByteWithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != (byte)ushort.Clamp(firstOp[0], byte.MinValue, byte.MaxValue)", ["ValidateRemainingResults"] = "result[i] != ((i < 8) ? (byte)ushort.Clamp(firstOp[i], byte.MinValue, byte.MaxValue) : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128SByte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != (sbyte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 8) ? (sbyte)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128SByte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != (sbyte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 8) ? (sbyte)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128SByteWithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != (sbyte)short.Clamp(firstOp[0], sbyte.MinValue, sbyte.MaxValue)", ["ValidateRemainingResults"] = "result[i] != ((i < 8) ? (sbyte)short.Clamp(firstOp[i], sbyte.MinValue, sbyte.MaxValue) : result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar8x16", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != left[(right[0] & 7)]", ["ValidateRemainingResults"] = "result[i] != left[(right[i] & 7)]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar8x16", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != left[(right[0] & 7)]", ["ValidateRemainingResults"] = "result[i] != left[(right[i] & 7)]"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar8x16x2", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int16", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != (((secondOp[0] & 15) <= 7) ? firstOp[secondOp[0] & 7] : thirdOp[secondOp[0] & 7])", ["ValidateRemainingResults"] = "result[i] != (((secondOp[i] & 15) <= 7) ? firstOp[secondOp[i] & 7] : thirdOp[secondOp[i] & 7])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar8x16x2", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt16", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "UInt16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp3"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != (((secondOp[0] & 15) <= 7) ? firstOp[secondOp[0] & 7] : thirdOp[secondOp[0] & 7])", ["ValidateRemainingResults"] = "result[i] != (((secondOp[i] & 15) <= 7) ? firstOp[secondOp[i] & 7] : thirdOp[secondOp[i] & 7])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ShiftLeftLogicalVariable", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "(ushort)(TestLibrary.Generator.GetUInt16() & 15)", ["ValidateFirstResult"] = "(short)(left[0] << (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(short)(left[i] << (int)right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ShiftLeftLogicalVariable", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "(ushort)(TestLibrary.Generator.GetUInt16() & 15)", ["ValidateFirstResult"] = "(ushort)(left[0] << (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(ushort)(left[i] << (int)right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ShiftRightArithmeticVariable", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "(ushort)(TestLibrary.Generator.GetUInt16() & 15)", ["ValidateFirstResult"] = "(left[0] >> (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(left[i] >> (int)right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ShiftRightLogicalVariable", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "(ushort)(TestLibrary.Generator.GetUInt16() & 15)", ["ValidateFirstResult"] = "(left[0] >>> (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(left[i] >>> (int)right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ShiftRightLogicalVariable", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "(ushort)(TestLibrary.Generator.GetUInt16() & 15)", ["ValidateFirstResult"] = "(left[0] >>> (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(left[i] >>> (int)right[i]) != result[i]"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "SumAbsoluteDifferencesInBlock32", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Byte", ["Imm"] = "228", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.SumAbsoluteDifferencesInBlock32(left, right, 228, 0)", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.SumAbsoluteDifferencesInBlock32(left, right, 228, i)"}), +}; + +(string templateFileName, Dictionary templateData)[] Avx10v1_Avx512DQ_VL_Vector128Inputs = new [] +{ + ("BroadcastTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "BroadcastPairScalarToVector128", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "(result[i] != firstOp[i & 1])"}), + ("BroadcastTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "BroadcastPairScalarToVector128", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "(result[i] != firstOp[i & 1])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Double", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(firstOp[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Double", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "(TestLibrary.Generator.GetUInt64() & 0x7FFF_FFFF_FFFF_FFFFUL)", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(firstOp[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Int64", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != (long)double.Round(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (long)double.Round(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Int64", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != (long)float.Round(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (long)float.Round(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Int64WithTruncation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != (long)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (long)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Int64WithTruncation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != (long)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (long)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Single", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(firstOp[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits((i == 1) ? firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Single", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "(TestLibrary.Generator.GetUInt64() & 0x7FFF_FFFF_FFFF_FFFFUL)", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(firstOp[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits((i == 1) ? firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt64", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != (ulong)double.Round(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (ulong)double.Round(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt64", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != (ulong)float.Round(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (ulong)float.Round(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt64WithTruncation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != (ulong)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (ulong)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt64WithTruncation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != (ulong)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (ulong)firstOp[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "MultiplyLow", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (long)(((Int128)(left[0])) * right[0])", ["ValidateRemainingResults"] = "result[i] != (long)(((Int128)(left[i])) * right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "MultiplyLow", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (ulong)(((UInt128)(left[0])) * right[0])", ["ValidateRemainingResults"] = "result[i] != (ulong)(((UInt128)(left[i])) * right[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Range", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Imm"] = "0", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(double.MinNumber(left[0], right[0])) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(double.MinNumber(left[i], right[i])) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Range", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Imm"] = "0", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(float.MinNumber(left[0], right[0])) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(float.MinNumber(left[i], right[i])) != BitConverter.SingleToInt32Bits(result[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Range", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Imm"] = "1", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(double.MaxNumber(left[0], right[0])) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(double.MaxNumber(left[i], right[i])) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Range", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Imm"] = "1", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(float.MaxNumber(left[0], right[0])) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(float.MaxNumber(left[i], right[i])) != BitConverter.SingleToInt32Bits(result[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Reduce", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Imm"] = "0", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(Avx512Verify.Reduce(firstOp[0], 0)) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(Avx512Verify.Reduce(firstOp[i], 0)) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Reduce", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Imm"] = "0", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(Avx512Verify.Reduce(firstOp[0], 0)) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(Avx512Verify.Reduce(firstOp[i], 0)) != BitConverter.SingleToInt32Bits(result[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Reduce", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Imm"] = "16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(Avx512Verify.Reduce(firstOp[0], 1)) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(Avx512Verify.Reduce(firstOp[i], 1)) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Reduce", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Imm"] = "16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(Avx512Verify.Reduce(firstOp[0], 1)) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(Avx512Verify.Reduce(firstOp[i], 1)) != BitConverter.SingleToInt32Bits(result[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ReduceScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Imm"] = "0", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(Avx512Verify.Reduce(firstOp[0], 0)) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(firstOp[i]) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ReduceScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Imm"] = "0", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(Avx512Verify.Reduce(firstOp[0], 0)) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(firstOp[i]) != BitConverter.SingleToInt32Bits(result[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ReduceScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Imm"] = "16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(Avx512Verify.Reduce(firstOp[0], 1)) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(firstOp[i]) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ReduceScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Imm"] = "16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(Avx512Verify.Reduce(firstOp[0], 1)) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(firstOp[i]) != BitConverter.SingleToInt32Bits(result[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RangeScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Imm"] = "0", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(double.MinNumber(left[0], right[0])) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(left[i]) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RangeScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Imm"] = "0", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(float.MinNumber(left[0], right[0])) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(left[i]) != BitConverter.SingleToInt32Bits(result[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RangeScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Imm"] = "1", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(double.MaxNumber(left[0], right[0])) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(left[i]) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RangeScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Imm"] = "1", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(float.MaxNumber(left[0], right[0])) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(left[i]) != BitConverter.SingleToInt32Bits(result[i])"}), +}; + +(string templateFileName, Dictionary templateData)[] Avx10v1_Avx512Vbmi_VL_Vector256Inputs = new [] +{ + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar32x8", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != left[(right[0] & 31)]", ["ValidateRemainingResults"] = "result[i] != left[(right[i] & 31)]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar32x8", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != left[(right[0] & 31)]", ["ValidateRemainingResults"] = "result[i] != left[(right[i] & 31)]"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar32x8x2", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Byte", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Byte", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["NextValueOp3"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != (((secondOp[0] & 63) <= 31) ? firstOp[secondOp[0] & 31] : thirdOp[secondOp[0] & 31])", ["ValidateRemainingResults"] = "result[i] != (((secondOp[i] & 63) <= 31) ? firstOp[secondOp[i] & 31] : thirdOp[secondOp[i] & 31])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar32x8x2", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "SByte", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "SByte", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp3"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != (((secondOp[0] & 63) <= 31) ? firstOp[secondOp[0] & 31] : thirdOp[secondOp[0] & 31])", ["ValidateRemainingResults"] = "result[i] != (((secondOp[i] & 63) <= 31) ? firstOp[secondOp[i] & 31] : thirdOp[secondOp[i] & 31])"}), +}; + +(string templateFileName, Dictionary templateData)[] Avx10v1_Avx512CD_VL_Vector256Inputs = new [] +{ + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "DetectConflicts", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.DetectConflicts(firstOp, 0)", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.DetectConflicts(firstOp, i)"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "DetectConflicts", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.DetectConflicts(firstOp, 0)", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.DetectConflicts(firstOp, i)"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "DetectConflicts", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.DetectConflicts(firstOp, 0)", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.DetectConflicts(firstOp, i)"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "DetectConflicts", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.DetectConflicts(firstOp, 0)", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.DetectConflicts(firstOp, i)"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "LeadingZeroCount", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != int.LeadingZeroCount(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != int.LeadingZeroCount(firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "LeadingZeroCount", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != long.LeadingZeroCount(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != long.LeadingZeroCount(firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "LeadingZeroCount", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != uint.LeadingZeroCount(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != uint.LeadingZeroCount(firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "LeadingZeroCount", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != ulong.LeadingZeroCount(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != ulong.LeadingZeroCount(firstOp[i])"}), +}; + +(string templateFileName, Dictionary templateData)[] Avx10v1_Avx512F_VL_Vector256Inputs = new [] +{ + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Abs", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (ulong)((firstOp[0] < 0) ? -firstOp[0] : firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (ulong)((firstOp[i] < 0) ? -firstOp[i] : firstOp[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "AlignRight32", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Imm"] = "5", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != right[5]", ["ValidateRemainingResults"] = "result[i] != ((i < 3) ? right[i + 5] : left[i - 3])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "AlignRight32", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Imm"] = "11", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != right[3]", ["ValidateRemainingResults"] = "result[i] != ((i < 5) ? right[i + 3] : left[i - 5])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "AlignRight32", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt32", ["Imm"] = "5", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != right[5]", ["ValidateRemainingResults"] = "result[i] != ((i < 3) ? right[i + 5] : left[i - 3])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "AlignRight32", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt32", ["Imm"] = "11", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != right[3]", ["ValidateRemainingResults"] = "result[i] != ((i < 5) ? right[i + 3] : left[i - 5])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "AlignRight64", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int64", ["Imm"] = "1", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != right[1]", ["ValidateRemainingResults"] = "result[i] != ((i < 3) ? right[i + 1] : left[i - 3])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "AlignRight64", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int64", ["Imm"] = "5", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != right[1]", ["ValidateRemainingResults"] = "result[i] != ((i < 3) ? right[i + 1] : left[i - 3])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "AlignRight64", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt64", ["Imm"] = "1", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != right[1]", ["ValidateRemainingResults"] = "result[i] != ((i < 3) ? right[i + 1] : left[i - 3])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "AlignRight64", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt64", ["Imm"] = "5", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != right[1]", ["ValidateRemainingResults"] = "result[i] != ((i < 3) ? right[i + 1] : left[i - 3])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareGreaterThan", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] > right[0]) ? unchecked((uint)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] > right[i]) ? unchecked((uint)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareGreaterThan", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] > right[0]) ? unchecked((ulong)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] > right[i]) ? unchecked((ulong)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] >= right[0]) ? unchecked((int)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] >= right[i]) ? unchecked((int)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] >= right[0]) ? unchecked((long)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] >= right[i]) ? unchecked((long)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] >= right[0]) ? unchecked((uint)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] >= right[i]) ? unchecked((uint)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] >= right[0]) ? unchecked((ulong)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] >= right[i]) ? unchecked((ulong)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] < right[0]) ? unchecked((int)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] < right[i]) ? unchecked((int)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] < right[0]) ? unchecked((long)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] < right[i]) ? unchecked((long)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] < right[0]) ? unchecked((uint)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] < right[i]) ? unchecked((uint)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] < right[0]) ? unchecked((ulong)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] < right[i]) ? unchecked((ulong)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] <= right[0]) ? unchecked((int)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] <= right[i]) ? unchecked((int)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] <= right[0]) ? unchecked((long)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] <= right[i]) ? unchecked((long)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] <= right[0]) ? unchecked((uint)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] <= right[i]) ? unchecked((uint)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] <= right[0]) ? unchecked((ulong)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] <= right[i]) ? unchecked((ulong)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] != right[0]) ? unchecked((int)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] != right[i]) ? unchecked((int)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] != right[0]) ? unchecked((long)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] != right[i]) ? unchecked((long)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] != right[0]) ? unchecked((uint)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] != right[i]) ? unchecked((uint)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] != right[0]) ? unchecked((ulong)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] != right[i]) ? unchecked((ulong)(-1)) : 0)"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Byte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (byte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 8) ? (byte)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Byte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (byte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 4) ? (byte)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Byte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != (byte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 8) ? (byte)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Byte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (byte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 4) ? (byte)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128ByteWithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != (byte)uint.Clamp(firstOp[0], byte.MinValue, byte.MaxValue)", ["ValidateRemainingResults"] = "result[i] != ((i < 8) ? (byte)uint.Clamp(firstOp[i], byte.MinValue, byte.MaxValue) : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128ByteWithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (byte)ulong.Clamp(firstOp[0], byte.MinValue, byte.MaxValue)", ["ValidateRemainingResults"] = "result[i] != ((i < 4) ? (byte)ulong.Clamp(firstOp[i], byte.MinValue, byte.MaxValue) : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Int16", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (short)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (short)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Int16", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (short)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 4) ? (short)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Int16", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != (short)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (short)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Int16", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (short)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 4) ? (short)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Int16WithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (short)int.Clamp(firstOp[0], short.MinValue, short.MaxValue)", ["ValidateRemainingResults"] = "result[i] != (short)int.Clamp(firstOp[i], short.MinValue, short.MaxValue)"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Int16WithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (short)long.Clamp(firstOp[0], short.MinValue, short.MaxValue)", ["ValidateRemainingResults"] = "result[i] != ((i < 4) ? (short)long.Clamp(firstOp[i], short.MinValue, short.MaxValue) : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Int32", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (int)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (int)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Int32", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (int)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (int)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Int32WithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (int)long.Clamp(firstOp[0], int.MinValue, int.MaxValue)", ["ValidateRemainingResults"] = "result[i] != (int)long.Clamp(firstOp[i], int.MinValue, int.MaxValue)"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128SByte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (sbyte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 8) ? (sbyte)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128SByte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (sbyte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 4) ? (sbyte)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128SByte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != (sbyte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 8) ? (sbyte)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128SByte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (sbyte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 4) ? (sbyte)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128SByteWithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (sbyte)int.Clamp(firstOp[0], sbyte.MinValue, sbyte.MaxValue)", ["ValidateRemainingResults"] = "result[i] != ((i < 8) ? (sbyte)int.Clamp(firstOp[i], sbyte.MinValue, sbyte.MaxValue) : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128SByteWithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (sbyte)long.Clamp(firstOp[0], sbyte.MinValue, sbyte.MaxValue)", ["ValidateRemainingResults"] = "result[i] != ((i < 4) ? (sbyte)long.Clamp(firstOp[i], sbyte.MinValue, sbyte.MaxValue) : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt16", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (ushort)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (ushort)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt16", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (ushort)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 4) ? (ushort)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt16", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != (ushort)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (ushort)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt16", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (ushort)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 4) ? (ushort)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt16WithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != (ushort)uint.Clamp(firstOp[0], ushort.MinValue, ushort.MaxValue)", ["ValidateRemainingResults"] = "result[i] != (ushort)uint.Clamp(firstOp[i], ushort.MinValue, ushort.MaxValue)"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt16WithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (ushort)ulong.Clamp(firstOp[0], ushort.MinValue, ushort.MaxValue)", ["ValidateRemainingResults"] = "result[i] != ((i < 4) ? (ushort)ulong.Clamp(firstOp[i], ushort.MinValue, ushort.MaxValue) : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt32", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != (uint)double.Round(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (uint)double.Round(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt32", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (uint)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (uint)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt32", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (uint)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (uint)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt32WithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (uint)ulong.Clamp(firstOp[0], uint.MinValue, uint.MaxValue)", ["ValidateRemainingResults"] = "result[i] != (uint)ulong.Clamp(firstOp[i], uint.MinValue, uint.MaxValue)"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128UInt32WithTruncation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != (uint)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (uint)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector256Double", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(firstOp[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector256Single", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(firstOp[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector256UInt32", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != (uint)float.Round(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (uint)float.Round(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector256UInt32WithTruncation", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != (uint)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (uint)firstOp[i]"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Fixup", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int64", ["Imm"] = "0", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "Avx512Verify.ValidateFixup(result[0], op1[0], op2[0], op3[0])", ["ValidateRemainingResults"] = "Avx512Verify.ValidateFixup(result[i], op1[i], op2[i], op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Fixup", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", ["Imm"] = "0", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "Avx512Verify.ValidateFixup(result[0], op1[0], op2[0], op3[0])", ["ValidateRemainingResults"] = "Avx512Verify.ValidateFixup(result[i], op1[i], op2[i], op3[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "GetExponent", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.GetExponent(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.GetExponent(firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "GetExponent", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.GetExponent(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.GetExponent(firstOp[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "GetMantissa", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["Imm"] = "0", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.GetMantissa(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.GetMantissa(firstOp[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "GetMantissa", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["Imm"] = "0", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.GetMantissa(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.GetMantissa(firstOp[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Max", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != Math.Max(left[0], right[0])", ["ValidateRemainingResults"] = "result[i] != Math.Max(left[i], right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Max", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != Math.Max(left[0], right[0])", ["ValidateRemainingResults"] = "result[i] != Math.Max(left[i], right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Min", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != Math.Min(left[0], right[0])", ["ValidateRemainingResults"] = "result[i] != Math.Min(left[i], right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Min", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != Math.Min(left[0], right[0])", ["ValidateRemainingResults"] = "result[i] != Math.Min(left[i], right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar4x64", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != left[(right[0] & 3)]", ["ValidateRemainingResults"] = "result[i] != left[(right[i] & 3)]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar4x64", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != left[(right[0] & 3)]", ["ValidateRemainingResults"] = "result[i] != left[(right[i] & 3)]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar4x64", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(left[right[0] & 3])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(left[right[i] & 3])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar4x64x2", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int64", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp3"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(((secondOp[0] & 7) <= 3) ? firstOp[secondOp[0] & 3] : thirdOp[secondOp[0] & 3])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(((secondOp[i] & 7) <= 3) ? firstOp[secondOp[i] & 3] : thirdOp[secondOp[i] & 3])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar4x64x2", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int64", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (((secondOp[0] & 7) <= 3) ? firstOp[secondOp[0] & 3] : thirdOp[secondOp[0] & 3])", ["ValidateRemainingResults"] = "result[i] != (((secondOp[i] & 7) <= 3) ? firstOp[secondOp[i] & 3] : thirdOp[secondOp[i] & 3])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar4x64x2", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt64", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp3"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (((secondOp[0] & 7) <= 3) ? firstOp[secondOp[0] & 3] : thirdOp[secondOp[0] & 3])", ["ValidateRemainingResults"] = "result[i] != (((secondOp[i] & 7) <= 3) ? firstOp[secondOp[i] & 3] : thirdOp[secondOp[i] & 3])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar8x32x2", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (((secondOp[0] & 15) <= 7) ? firstOp[secondOp[0] & 7] : thirdOp[secondOp[0] & 7])", ["ValidateRemainingResults"] = "result[i] != (((secondOp[i] & 15) <= 7) ? firstOp[secondOp[i] & 7] : thirdOp[secondOp[i] & 7])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar8x32x2", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "UInt32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != (((secondOp[0] & 15) <= 7) ? firstOp[secondOp[0] & 7] : thirdOp[secondOp[0] & 7])", ["ValidateRemainingResults"] = "result[i] != (((secondOp[i] & 15) <= 7) ? firstOp[secondOp[i] & 7] : thirdOp[secondOp[i] & 7])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar8x32x2", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(((secondOp[0] & 15) <= 7) ? firstOp[secondOp[0] & 7] : thirdOp[secondOp[0] & 7])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(((secondOp[i] & 15) <= 7) ? firstOp[secondOp[i] & 7] : thirdOp[secondOp[i] & 7])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Reciprocal14", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "Avx512Verify.ValidateReciprocal14(result[0], firstOp[0])", ["ValidateRemainingResults"] = "Avx512Verify.ValidateReciprocal14(result[i], firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Reciprocal14", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "Avx512Verify.ValidateReciprocal14(result[0], firstOp[0])", ["ValidateRemainingResults"] = "Avx512Verify.ValidateReciprocal14(result[i], firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ReciprocalSqrt14", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "Avx512Verify.ValidateReciprocalSqrt14(result[0], firstOp[0])", ["ValidateRemainingResults"] = "Avx512Verify.ValidateReciprocalSqrt14(result[i], firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ReciprocalSqrt14", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "Avx512Verify.ValidateReciprocalSqrt14(result[0], firstOp[0])", ["ValidateRemainingResults"] = "Avx512Verify.ValidateReciprocalSqrt14(result[i], firstOp[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateLeft", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Imm"] = "1", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "int.RotateLeft(firstOp[0], 1) != result[0]", ["ValidateRemainingResults"] = "int.RotateLeft(firstOp[i], 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateLeft", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Imm"] = "32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateLeft", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["Imm"] = "1", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "((firstOp[0] << 1) | (firstOp[0] >>> (64 - 1))) != result[0]", ["ValidateRemainingResults"] = "((firstOp[i] << 1) | (firstOp[i] >>> (64 - 1))) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateLeft", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["Imm"] = "64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateLeft", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["Imm"] = "1", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "uint.RotateLeft(firstOp[0], 1) != result[0]", ["ValidateRemainingResults"] = "uint.RotateLeft(firstOp[i], 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateLeft", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["Imm"] = "32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateLeft", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["Imm"] = "1", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "((firstOp[0] << 1) | (firstOp[0] >>> (64 - 1))) != result[0]", ["ValidateRemainingResults"] = "((firstOp[i] << 1) | (firstOp[i] >>> (64 - 1))) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateLeft", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["Imm"] = "64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateLeftVariable", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt32() & 31)", ["ValidateFirstResult"] = "int.RotateLeft(left[0], (int)(right[0])) != result[0]", ["ValidateRemainingResults"] = "int.RotateLeft(left[i], (int)(right[i])) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateLeftVariable", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt32() & 31)", ["ValidateFirstResult"] = "uint.RotateLeft(left[0], (int)(right[0])) != result[0]", ["ValidateRemainingResults"] = "uint.RotateLeft(left[i], (int)(right[i])) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateLeftVariable", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt64() & 63)", ["ValidateFirstResult"] = "long.RotateLeft(left[0], (int)(right[0])) != result[0]", ["ValidateRemainingResults"] = "long.RotateLeft(left[i], (int)(right[i])) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateLeftVariable", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt64() & 63)", ["ValidateFirstResult"] = "ulong.RotateLeft(left[0], (int)(right[0])) != result[0]", ["ValidateRemainingResults"] = "ulong.RotateLeft(left[i], (int)(right[i])) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateRight", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Imm"] = "1", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "int.RotateRight(firstOp[0], 1) != result[0]", ["ValidateRemainingResults"] = "int.RotateRight(firstOp[i], 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateRight", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Imm"] = "32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateRight", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["Imm"] = "1", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "((firstOp[0] >>> 1) | (firstOp[0] << (64 - 1))) != result[0]", ["ValidateRemainingResults"] = "((firstOp[i] >>> 1) | (firstOp[i] << (64 - 1))) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateRight", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["Imm"] = "64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateRight", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["Imm"] = "1", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "uint.RotateRight(firstOp[0], 1) != result[0]", ["ValidateRemainingResults"] = "uint.RotateRight(firstOp[i], 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateRight", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["Imm"] = "32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateRight", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["Imm"] = "1", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "((firstOp[0] >>> 1) | (firstOp[0] << (64 - 1))) != result[0]", ["ValidateRemainingResults"] = "((firstOp[i] >>> 1) | (firstOp[i] << (64 - 1))) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateRight", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["Imm"] = "64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateRightVariable", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt32() & 31)", ["ValidateFirstResult"] = "int.RotateRight(left[0], (int)(right[0])) != result[0]", ["ValidateRemainingResults"] = "int.RotateRight(left[i], (int)(right[i])) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateRightVariable", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt32() & 31)", ["ValidateFirstResult"] = "uint.RotateRight(left[0], (int)(right[0])) != result[0]", ["ValidateRemainingResults"] = "uint.RotateRight(left[i], (int)(right[i])) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateRightVariable", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt64() & 63)", ["ValidateFirstResult"] = "long.RotateRight(left[0], (int)(right[0])) != result[0]", ["ValidateRemainingResults"] = "long.RotateRight(left[i], (int)(right[i])) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RotateRightVariable", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt64() & 63)", ["ValidateFirstResult"] = "ulong.RotateRight(left[0], (int)(right[0])) != result[0]", ["ValidateRemainingResults"] = "ulong.RotateRight(left[i], (int)(right[i])) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["Imm"] = "4", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(Math.Round(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(Math.Round(firstOp[i]))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["Imm"] = "4", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(MathF.Round(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(MathF.Round(firstOp[i]))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["Imm"] = "0", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(Math.Round(firstOp[0], MidpointRounding.AwayFromZero))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(Math.Round(firstOp[i], MidpointRounding.AwayFromZero))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["Imm"] = "0", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(MathF.Round(firstOp[0], MidpointRounding.AwayFromZero))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(MathF.Round(firstOp[i], MidpointRounding.AwayFromZero))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["Imm"] = "1", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(Math.Floor(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(Math.Floor(firstOp[i]))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["Imm"] = "1", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(MathF.Floor(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(MathF.Floor(firstOp[i]))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["Imm"] = "2", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(Math.Ceiling(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(Math.Ceiling(firstOp[i]))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["Imm"] = "2", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(MathF.Ceiling(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(MathF.Ceiling(firstOp[i]))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["Imm"] = "3", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits((firstOp[0] > 0) ? Math.Floor(firstOp[0]) : Math.Ceiling(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits((firstOp[i] > 0) ? Math.Floor(firstOp[i]) : Math.Ceiling(firstOp[i]))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["Imm"] = "3", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits((firstOp[0] > 0) ? MathF.Floor(firstOp[0]) : MathF.Ceiling(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits((firstOp[i] > 0) ? MathF.Floor(firstOp[i]) : MathF.Ceiling(firstOp[i]))"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Scale", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "(double)(TestLibrary.Generator.GetByte())", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(double.ScaleB(left[0], (int)double.Floor(right[0])))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(double.ScaleB(left[i], (int)double.Floor(right[i])))"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Scale", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "(float)(TestLibrary.Generator.GetByte())", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(float.ScaleB(left[0], (int)float.Floor(right[0])))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(float.ScaleB(left[i], (int)float.Floor(right[i])))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ShiftRightArithmetic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["Imm"] = "1", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "(firstOp[0] >> 1) != result[0]", ["ValidateRemainingResults"] = "(firstOp[i] >> 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ShiftRightArithmetic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["Imm"] = "64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "(firstOp[0] >> 63) != result[0]", ["ValidateRemainingResults"] = "(firstOp[i] >> 63) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ShiftRightArithmeticVariable", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt64() & 63)", ["ValidateFirstResult"] = "(left[0] >> (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(left[i] >> (int)right[i]) != result[i]"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Shuffle2x128", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Double", ["Imm"] = "1", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(Avx512Verify.Shuffle2x128(left, right, 1, 0))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(Avx512Verify.Shuffle2x128(left, right, 1, i))"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Shuffle2x128", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Imm"] = "1", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.Shuffle2x128(left, right, 1, 0)", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.Shuffle2x128(left, right, 1, i)"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Shuffle2x128", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int64", ["Imm"] = "1", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.Shuffle2x128(left, right, 1, 0)", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.Shuffle2x128(left, right, 1, i)"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Shuffle2x128", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Single", ["Imm"] = "1", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(Avx512Verify.Shuffle2x128(left, right, 1, 0))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(Avx512Verify.Shuffle2x128(left, right, 1, i))"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Shuffle2x128", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt32", ["Imm"] = "1", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.Shuffle2x128(left, right, 1, 0)", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.Shuffle2x128(left, right, 1, i)"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Shuffle2x128", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt64", ["Imm"] = "1", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.Shuffle2x128(left, right, 1, 0)", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.Shuffle2x128(left, right, 1, i)"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Byte", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Byte", ["Imm"] = "30", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["NextValueOp3"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ (op2[0] | op3[0]))", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ (op2[i] | op3[i]))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Double", ["Imm"] = "30", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp3"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != (BitConverter.DoubleToInt64Bits(op1[0]) ^ (BitConverter.DoubleToInt64Bits(op2[0]) | BitConverter.DoubleToInt64Bits(op3[0])))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != (BitConverter.DoubleToInt64Bits(op1[i]) ^ (BitConverter.DoubleToInt64Bits(op2[i]) | BitConverter.DoubleToInt64Bits(op3[i])))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int16", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int16", ["Imm"] = "30", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ (op2[0] | op3[0]))", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ (op2[i] | op3[i]))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", ["Imm"] = "30", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ (op2[0] | op3[0]))", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ (op2[i] | op3[i]))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* A */ ["Imm"] = "240", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != op1[0]", ["ValidateRemainingResults"] = "result[i] != op1[i]"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* B */ ["Imm"] = "204", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != op2[0]", ["ValidateRemainingResults"] = "result[i] != op2[i]"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* C */ ["Imm"] = "170", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != op3[0]", ["ValidateRemainingResults"] = "result[i] != op3[i]"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* True */ ["Imm"] = "255", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != -1", ["ValidateRemainingResults"] = "result[i] != -1"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* False */ ["Imm"] = "0", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != 0", ["ValidateRemainingResults"] = "result[i] != 0"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* ~A */ ["Imm"] = "15", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~op1[0]", ["ValidateRemainingResults"] = "result[i] != ~op1[i]"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* ~B */ ["Imm"] = "51", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~op2[0]", ["ValidateRemainingResults"] = "result[i] != ~op2[i]"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* ~C */ ["Imm"] = "85", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~op3[0]", ["ValidateRemainingResults"] = "result[i] != ~op3[i]"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* ~A & B */ ["Imm"] = "12", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op1[0] & op2[0])", ["ValidateRemainingResults"] = "result[i] != (~op1[i] & op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* ~A & C */ ["Imm"] = "10", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op1[0] & op3[0])", ["ValidateRemainingResults"] = "result[i] != (~op1[i] & op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* ~B & A */ ["Imm"] = "48", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op2[0] & op1[0])", ["ValidateRemainingResults"] = "result[i] != (~op2[i] & op1[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* ~B & C */ ["Imm"] = "34", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op2[0] & op3[0])", ["ValidateRemainingResults"] = "result[i] != (~op2[i] & op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* ~C & A */ ["Imm"] = "80", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op3[0] & op1[0])", ["ValidateRemainingResults"] = "result[i] != (~op3[i] & op1[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* ~C & B */ ["Imm"] = "68", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op3[0] & op2[0])", ["ValidateRemainingResults"] = "result[i] != (~op3[i] & op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* ~A | B */ ["Imm"] = "207", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op1[0] | op2[0])", ["ValidateRemainingResults"] = "result[i] != (~op1[i] | op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* ~A | C */ ["Imm"] = "175", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op1[0] | op3[0])", ["ValidateRemainingResults"] = "result[i] != (~op1[i] | op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* ~B | A */ ["Imm"] = "243", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op2[0] | op1[0])", ["ValidateRemainingResults"] = "result[i] != (~op2[i] | op1[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* ~B | C */ ["Imm"] = "187", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op2[0] | op3[0])", ["ValidateRemainingResults"] = "result[i] != (~op2[i] | op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* ~C | A */ ["Imm"] = "245", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op3[0] | op1[0])", ["ValidateRemainingResults"] = "result[i] != (~op3[i] | op1[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* ~C | B */ ["Imm"] = "221", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op3[0] | op2[0])", ["ValidateRemainingResults"] = "result[i] != (~op3[i] | op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* A & B */ ["Imm"] = "192", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op1[0] & op2[0])", ["ValidateRemainingResults"] = "result[i] != (op1[i] & op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* A & C */ ["Imm"] = "160", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op1[0] & op3[0])", ["ValidateRemainingResults"] = "result[i] != (op1[i] & op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* B & C */ ["Imm"] = "136", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op2[0] & op3[0])", ["ValidateRemainingResults"] = "result[i] != (op2[i] & op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* ~(A & B) */ ["Imm"] = "63", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op1[0] & op2[0])", ["ValidateRemainingResults"] = "result[i] != ~(op1[i] & op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* ~(A & C) */ ["Imm"] = "95", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op1[0] & op3[0])", ["ValidateRemainingResults"] = "result[i] != ~(op1[i] & op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* ~(B & C) */ ["Imm"] = "119", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op2[0] & op3[0])", ["ValidateRemainingResults"] = "result[i] != ~(op2[i] & op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* A | B */ ["Imm"] = "252", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op1[0] | op2[0])", ["ValidateRemainingResults"] = "result[i] != (op1[i] | op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* A | C */ ["Imm"] = "250", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op1[0] | op3[0])", ["ValidateRemainingResults"] = "result[i] != (op1[i] | op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* B | C */ ["Imm"] = "238", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op2[0] | op3[0])", ["ValidateRemainingResults"] = "result[i] != (op2[i] | op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* ~(A | B) */ ["Imm"] = "3", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op1[0] | op2[0])", ["ValidateRemainingResults"] = "result[i] != ~(op1[i] | op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* ~(A | C) */ ["Imm"] = "5", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op1[0] | op3[0])", ["ValidateRemainingResults"] = "result[i] != ~(op1[i] | op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* ~(B | C) */ ["Imm"] = "17", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op2[0] | op3[0])", ["ValidateRemainingResults"] = "result[i] != ~(op2[i] | op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* A ^ B */ ["Imm"] = "60", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ op2[0])", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* A ^ C */ ["Imm"] = "90", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ op3[0])", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* B ^ C */ ["Imm"] = "102", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op2[0] ^ op3[0])", ["ValidateRemainingResults"] = "result[i] != (op2[i] ^ op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* ~(A ^ B) */ ["Imm"] = "195", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op1[0] ^ op2[0])", ["ValidateRemainingResults"] = "result[i] != ~(op1[i] ^ op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* ~(A ^ C) */ ["Imm"] = "165", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op1[0] ^ op3[0])", ["ValidateRemainingResults"] = "result[i] != ~(op1[i] ^ op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int32", /* ~(B ^ C) */ ["Imm"] = "153", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op2[0] ^ op3[0])", ["ValidateRemainingResults"] = "result[i] != ~(op2[i] ^ op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int64", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int64", ["Imm"] = "30", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ (op2[0] | op3[0]))", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ (op2[i] | op3[i]))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "SByte", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "SByte", ["Imm"] = "30", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp3"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ (op2[0] | op3[0]))", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ (op2[i] | op3[i]))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Single", ["Imm"] = "30", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp3"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != (BitConverter.SingleToInt32Bits(op1[0]) ^ (BitConverter.SingleToInt32Bits(op2[0]) | BitConverter.SingleToInt32Bits(op3[0])))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != (BitConverter.SingleToInt32Bits(op1[i]) ^ (BitConverter.SingleToInt32Bits(op2[i]) | BitConverter.SingleToInt32Bits(op3[i])))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt16", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "UInt16", ["Imm"] = "30", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp3"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ (op2[0] | op3[0]))", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ (op2[i] | op3[i]))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt32", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "UInt32", ["Imm"] = "30", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ (op2[0] | op3[0]))", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ (op2[i] | op3[i]))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt64", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "UInt64", ["Imm"] = "30", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp3"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ (op2[0] | op3[0]))", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ (op2[i] | op3[i]))"}), +}; + +(string templateFileName, Dictionary templateData)[] Avx10v1_Avx512BW_VL_Vector256Inputs = new [] +{ + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareGreaterThan", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] > right[0]) ? unchecked((byte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] > right[i]) ? unchecked((byte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareGreaterThan", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] > right[0]) ? unchecked((ushort)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] > right[i]) ? unchecked((ushort)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] >= right[0]) ? unchecked((byte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] >= right[i]) ? unchecked((byte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] >= right[0]) ? unchecked((short)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] >= right[i]) ? unchecked((short)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] >= right[0]) ? unchecked((sbyte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] >= right[i]) ? unchecked((sbyte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] >= right[0]) ? unchecked((ushort)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] >= right[i]) ? unchecked((ushort)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] < right[0]) ? unchecked((byte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] < right[i]) ? unchecked((byte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] < right[0]) ? unchecked((short)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] < right[i]) ? unchecked((short)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] < right[0]) ? unchecked((sbyte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] < right[i]) ? unchecked((sbyte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] < right[0]) ? unchecked((ushort)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] < right[i]) ? unchecked((ushort)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] <= right[0]) ? unchecked((byte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] <= right[i]) ? unchecked((byte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] <= right[0]) ? unchecked((short)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] <= right[i]) ? unchecked((short)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] <= right[0]) ? unchecked((sbyte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] <= right[i]) ? unchecked((sbyte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] <= right[0]) ? unchecked((ushort)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] <= right[i]) ? unchecked((ushort)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] != right[0]) ? unchecked((byte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] != right[i]) ? unchecked((byte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] != right[0]) ? unchecked((short)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] != right[i]) ? unchecked((short)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] != right[0]) ? unchecked((sbyte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] != right[i]) ? unchecked((sbyte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] != right[0]) ? unchecked((ushort)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] != right[i]) ? unchecked((ushort)(-1)) : 0)"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Byte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != (byte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (byte)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Byte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != (byte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (byte)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128ByteWithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != (byte)ushort.Clamp(firstOp[0], byte.MinValue, byte.MaxValue)", ["ValidateRemainingResults"] = "result[i] != (byte)ushort.Clamp(firstOp[i], byte.MinValue, byte.MaxValue)"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128SByte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != (sbyte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (sbyte)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128SByte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != (sbyte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (sbyte)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128SByteWithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != (sbyte)short.Clamp(firstOp[0], sbyte.MinValue, sbyte.MaxValue)", ["ValidateRemainingResults"] = "result[i] != (sbyte)short.Clamp(firstOp[i], sbyte.MinValue, sbyte.MaxValue)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar16x16", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != left[(right[0] & 15)]", ["ValidateRemainingResults"] = "result[i] != left[(right[i] & 15)]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar16x16", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != left[(right[0] & 15)]", ["ValidateRemainingResults"] = "result[i] != left[(right[i] & 15)]"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar16x16x2", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int16", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "Int16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != (((secondOp[0] & 31) <= 15) ? firstOp[secondOp[0] & 15] : thirdOp[secondOp[0] & 15])", ["ValidateRemainingResults"] = "result[i] != (((secondOp[i] & 31) <= 15) ? firstOp[secondOp[i] & 15] : thirdOp[secondOp[i] & 15])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "PermuteVar16x16x2", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt16", ["Op3VectorType"] = "Vector256", ["Op3BaseType"] = "UInt16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp3"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != (((secondOp[0] & 31) <= 15) ? firstOp[secondOp[0] & 15] : thirdOp[secondOp[0] & 15])", ["ValidateRemainingResults"] = "result[i] != (((secondOp[i] & 31) <= 15) ? firstOp[secondOp[i] & 15] : thirdOp[secondOp[i] & 15])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ShiftLeftLogicalVariable", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "(ushort)(TestLibrary.Generator.GetUInt16() & 15)", ["ValidateFirstResult"] = "(short)(left[0] << (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(short)(left[i] << (int)right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ShiftLeftLogicalVariable", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "(ushort)(TestLibrary.Generator.GetUInt16() & 15)", ["ValidateFirstResult"] = "(ushort)(left[0] << (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(ushort)(left[i] << (int)right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ShiftRightArithmeticVariable", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "(ushort)(TestLibrary.Generator.GetUInt16() & 15)", ["ValidateFirstResult"] = "(left[0] >> (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(left[i] >> (int)right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ShiftRightLogicalVariable", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "(ushort)(TestLibrary.Generator.GetUInt16() & 15)", ["ValidateFirstResult"] = "(left[0] >>> (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(left[i] >>> (int)right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ShiftRightLogicalVariable", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "(ushort)(TestLibrary.Generator.GetUInt16() & 15)", ["ValidateFirstResult"] = "(left[0] >>> (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(left[i] >>> (int)right[i]) != result[i]"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "SumAbsoluteDifferencesInBlock32", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Byte", ["Imm"] = "228", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.SumAbsoluteDifferencesInBlock32(left, right, 228, 0)", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.SumAbsoluteDifferencesInBlock32(left, right, 228, i)"}), +}; + +(string templateFileName, Dictionary templateData)[] Avx10v1_Avx512DQ_VL_Vector256Inputs = new [] +{ + ("BroadcastTest.template", new Dictionary { ["Isa"] = "Avx512DQ.VL", ["LoadIsa"] = "Avx10v1", ["Method"] = "BroadcastPairScalarToVector256", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "(result[i] != firstOp[i & 1])"}), + ("BroadcastTest.template", new Dictionary { ["Isa"] = "Avx512DQ.VL", ["LoadIsa"] = "Avx10v1", ["Method"] = "BroadcastPairScalarToVector256", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "(result[i] != firstOp[i & 1])"}), + ("BroadcastTest.template", new Dictionary { ["Isa"] = "Avx512DQ.VL", ["LoadIsa"] = "Avx10v1", ["Method"] = "BroadcastPairScalarToVector256", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(firstOp[0]) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "(BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(firstOp[i & 1]))"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector256Double", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(firstOp[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector256Double", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "(TestLibrary.Generator.GetUInt64() & 0x7FFF_FFFF_FFFF_FFFFUL)", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(firstOp[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector256Int64", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != (long)double.Round(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (long)double.Round(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector256Int64", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != (long)float.Round(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (long)float.Round(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector256Int64WithTruncation", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != (long)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (long)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector256Int64WithTruncation", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != (long)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (long)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Single", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(firstOp[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector128Single", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "(TestLibrary.Generator.GetUInt64() & 0x7FFF_FFFF_FFFF_FFFFUL)", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(firstOp[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector256UInt64", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != (ulong)double.Round(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (ulong)double.Round(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector256UInt64", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != (ulong)float.Round(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (ulong)float.Round(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector256UInt64WithTruncation", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != (ulong)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (ulong)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "ConvertToVector256UInt64WithTruncation", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != (ulong)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (ulong)firstOp[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "MultiplyLow", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (long)(((Int128)(left[0])) * right[0])", ["ValidateRemainingResults"] = "result[i] != (long)(((Int128)(left[i])) * right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "MultiplyLow", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (ulong)(((UInt128)(left[0])) * right[0])", ["ValidateRemainingResults"] = "result[i] != (ulong)(((UInt128)(left[i])) * right[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Range", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Double", ["Imm"] = "0", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(double.MinNumber(left[0], right[0])) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(double.MinNumber(left[i], right[i])) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Range", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Single", ["Imm"] = "0", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(float.MinNumber(left[0], right[0])) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(float.MinNumber(left[i], right[i])) != BitConverter.SingleToInt32Bits(result[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Range", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Double", ["Imm"] = "1", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(double.MaxNumber(left[0], right[0])) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(double.MaxNumber(left[i], right[i])) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Range", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Single", ["Imm"] = "1", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(float.MaxNumber(left[0], right[0])) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(float.MaxNumber(left[i], right[i])) != BitConverter.SingleToInt32Bits(result[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Reduce", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["Imm"] = "0", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(Avx512Verify.Reduce(firstOp[0], 0)) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(Avx512Verify.Reduce(firstOp[i], 0)) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Reduce", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["Imm"] = "0", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(Avx512Verify.Reduce(firstOp[0], 0)) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(Avx512Verify.Reduce(firstOp[i], 0)) != BitConverter.SingleToInt32Bits(result[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Reduce", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["Imm"] = "16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(Avx512Verify.Reduce(firstOp[0], 1)) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(Avx512Verify.Reduce(firstOp[i], 1)) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1", ["LoadIsa"] = "Avx10v1", ["Method"] = "Reduce", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["Imm"] = "16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(Avx512Verify.Reduce(firstOp[0], 1)) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(Avx512Verify.Reduce(firstOp[i], 1)) != BitConverter.SingleToInt32Bits(result[i])"}), +}; + +(string templateFileName, Dictionary templateData)[] Avx10v1_V512_Avx512BWInputs = new [] +{ + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Abs", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != (byte)((firstOp[0] < 0) ? -firstOp[0] : firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (byte)((firstOp[i] < 0) ? -firstOp[i] : firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Abs", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != (ushort)((firstOp[0] < 0) ? -firstOp[0] : firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (ushort)((firstOp[i] < 0) ? -firstOp[i] : firstOp[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Add", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "(byte)(left[0] + right[0]) != result[0]", ["ValidateRemainingResults"] = "(byte)(left[i] + right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Add", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "(short)(left[0] + right[0]) != result[0]", ["ValidateRemainingResults"] = "(short)(left[i] + right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Add", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "(sbyte)(left[0] + right[0]) != result[0]", ["ValidateRemainingResults"] = "(sbyte)(left[i] + right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Add", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "(ushort)(left[0] + right[0]) != result[0]", ["ValidateRemainingResults"] = "(ushort)(left[i] + right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AddSaturate", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "SseVerify.AddSaturate(left[0], right[0], result[0])", ["ValidateRemainingResults"] = "SseVerify.AddSaturate(left[i], right[i], result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AddSaturate", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "SseVerify.AddSaturate(left[0], right[0], result[0])", ["ValidateRemainingResults"] = "SseVerify.AddSaturate(left[i], right[i], result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AddSaturate", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "SseVerify.AddSaturate(left[0], right[0], result[0])", ["ValidateRemainingResults"] = "SseVerify.AddSaturate(left[i], right[i], result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AddSaturate", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "SseVerify.AddSaturate(left[0], right[0], result[0])", ["ValidateRemainingResults"] = "SseVerify.AddSaturate(left[i], right[i], result[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AlignRight", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["Imm"] = "5", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != right[5]", ["ValidateRemainingResults"] = "(result[i] != ((i < 48) ? (((i & 15) < 11) ? right[i + 5] : left[i - 11]) : ((i < 59) ? right[i + 5] : left[i - 11])))"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AlignRight", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["Imm"] = "27", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != left[11]", ["ValidateRemainingResults"] = "(result[i] != ((i < 48) ? (((i & 15) < 5) ? left[i + 11] : 0) : ((i < 53) ? left[i + 11] : 0)))"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AlignRight", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["Imm"] = "228", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != 0", ["ValidateRemainingResults"] = "result[i] != 0"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AlignRight", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["Imm"] = "250", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != 0", ["ValidateRemainingResults"] = "result[i] != 0"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AlignRight", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["Imm"] = "5", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != right[5]", ["ValidateRemainingResults"] = "(result[i] != ((i < 48) ? (((i & 15) < 11) ? right[i + 5] : left[i - 11]) : ((i < 59) ? right[i + 5] : left[i - 11])))"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AlignRight", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["Imm"] = "27", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != left[11]", ["ValidateRemainingResults"] = "(result[i] != ((i < 48) ? (((i & 15) < 5) ? left[i + 11] : 0) : ((i < 53) ? left[i + 11] : 0)))"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AlignRight", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["Imm"] = "228", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != 0", ["ValidateRemainingResults"] = "result[i] != 0"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AlignRight", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["Imm"] = "250", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != 0", ["ValidateRemainingResults"] = "result[i] != 0"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Average", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "(byte)((left[0] + right[0] + 1) >> 1) != result[0]", ["ValidateRemainingResults"] = "(byte)((left[i] + right[i] + 1) >> 1) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Average", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "(ushort)((left[0] + right[0] + 1) >> 1) != result[0]", ["ValidateRemainingResults"] = "(ushort)((left[i] + right[i] + 1) >> 1) != result[i]"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "BlendVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["NextValueOp3"] = "(byte)(((i & 1) == 0) ? -1 : 0)", ["ValidateFirstResult"] = "result[0] != ((thirdOp[0] != 0) ? secondOp[0] : firstOp[0])", ["ValidateRemainingResults"] = "result[i] != ((thirdOp[i] != 0) ? secondOp[i] : firstOp[i])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "BlendVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp3"] = "(short)(((i & 1) == 0) ? -1 : 0)", ["ValidateFirstResult"] = "result[0] != ((thirdOp[0] != 0) ? secondOp[0] : firstOp[0])", ["ValidateRemainingResults"] = "result[i] != ((thirdOp[i] != 0) ? secondOp[i] : firstOp[i])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "BlendVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp3"] = "(sbyte)(((i & 1) == 0) ? -1 : 0)", ["ValidateFirstResult"] = "result[0] != ((thirdOp[0] != 0) ? secondOp[0] : firstOp[0])", ["ValidateRemainingResults"] = "result[i] != ((thirdOp[i] != 0) ? secondOp[i] : firstOp[i])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "BlendVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp3"] = "(ushort)(((i & 1) == 0) ? -1 : 0)", ["ValidateFirstResult"] = "result[0] != ((thirdOp[0] != 0) ? secondOp[0] : firstOp[0])", ["ValidateRemainingResults"] = "result[i] != ((thirdOp[i] != 0) ? secondOp[i] : firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "BroadcastScalarToVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "(firstOp[0] != result[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "BroadcastScalarToVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "(firstOp[0] != result[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "BroadcastScalarToVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "(firstOp[0] != result[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "BroadcastScalarToVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "(firstOp[0] != result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] == right[0]) ? unchecked((byte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] == right[i]) ? unchecked((byte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] == right[0]) ? unchecked((short)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] == right[i]) ? unchecked((short)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] == right[0]) ? unchecked((sbyte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] == right[i]) ? unchecked((sbyte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] == right[0]) ? unchecked((ushort)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] == right[i]) ? unchecked((ushort)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareGreaterThan", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] > right[0]) ? unchecked((byte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] > right[i]) ? unchecked((byte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareGreaterThan", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] > right[0]) ? unchecked((short)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] > right[i]) ? unchecked((short)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareGreaterThan", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] > right[0]) ? unchecked((sbyte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] > right[i]) ? unchecked((sbyte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareGreaterThan", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] > right[0]) ? unchecked((ushort)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] > right[i]) ? unchecked((ushort)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] >= right[0]) ? unchecked((byte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] >= right[i]) ? unchecked((byte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] >= right[0]) ? unchecked((short)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] >= right[i]) ? unchecked((short)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] >= right[0]) ? unchecked((sbyte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] >= right[i]) ? unchecked((sbyte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] >= right[0]) ? unchecked((ushort)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] >= right[i]) ? unchecked((ushort)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] < right[0]) ? unchecked((byte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] < right[i]) ? unchecked((byte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] < right[0]) ? unchecked((short)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] < right[i]) ? unchecked((short)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] < right[0]) ? unchecked((sbyte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] < right[i]) ? unchecked((sbyte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] < right[0]) ? unchecked((ushort)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] < right[i]) ? unchecked((ushort)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] <= right[0]) ? unchecked((byte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] <= right[i]) ? unchecked((byte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] <= right[0]) ? unchecked((short)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] <= right[i]) ? unchecked((short)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] <= right[0]) ? unchecked((sbyte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] <= right[i]) ? unchecked((sbyte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] <= right[0]) ? unchecked((ushort)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] <= right[i]) ? unchecked((ushort)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] != right[0]) ? unchecked((byte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] != right[i]) ? unchecked((byte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] != right[0]) ? unchecked((short)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] != right[i]) ? unchecked((short)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != ((left[0] != right[0]) ? unchecked((sbyte)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] != right[i]) ? unchecked((sbyte)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != ((left[0] != right[0]) ? unchecked((ushort)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] != right[i]) ? unchecked((ushort)(-1)) : 0)"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256Byte", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != (byte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (byte)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256Byte", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != (byte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (byte)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256ByteWithSaturation", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != (byte)ushort.Clamp(firstOp[0], byte.MinValue, byte.MaxValue)", ["ValidateRemainingResults"] = "result[i] != (byte)ushort.Clamp(firstOp[i], byte.MinValue, byte.MaxValue)"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256SByte", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != (sbyte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (sbyte)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256SByte", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != (sbyte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (sbyte)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256SByteWithSaturation", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != (sbyte)short.Clamp(firstOp[0], sbyte.MinValue, sbyte.MaxValue)", ["ValidateRemainingResults"] = "result[i] != (sbyte)short.Clamp(firstOp[i], sbyte.MinValue, sbyte.MaxValue)"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "LoadVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "LoadVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "LoadVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "LoadVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Max", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != Math.Max(left[0], right[0])", ["ValidateRemainingResults"] = "result[i] != Math.Max(left[i], right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Max", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != Math.Max(left[0], right[0])", ["ValidateRemainingResults"] = "result[i] != Math.Max(left[i], right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Max", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != Math.Max(left[0], right[0])", ["ValidateRemainingResults"] = "result[i] != Math.Max(left[i], right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Max", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != Math.Max(left[0], right[0])", ["ValidateRemainingResults"] = "result[i] != Math.Max(left[i], right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Min", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != Math.Min(left[0], right[0])", ["ValidateRemainingResults"] = "result[i] != Math.Min(left[i], right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Min", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != Math.Min(left[0], right[0])", ["ValidateRemainingResults"] = "result[i] != Math.Min(left[i], right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Min", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != Math.Min(left[0], right[0])", ["ValidateRemainingResults"] = "result[i] != Math.Min(left[i], right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Min", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != Math.Min(left[0], right[0])", ["ValidateRemainingResults"] = "result[i] != Math.Min(left[i], right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "MultiplyAddAdjacent", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != Math.Clamp(((right[1] * left[1]) + (right[0] * left[0])), short.MinValue, short.MaxValue)", ["ValidateRemainingResults"] = "result[i] != Math.Clamp(((right[(i * 2) + 1] * left[(i * 2) + 1]) + (right[i * 2] * left[i * 2])), short.MinValue, short.MaxValue)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "MultiplyAddAdjacent", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != Math.Clamp(((right[1] * left[1]) + (right[0] * left[0])), int.MinValue, int.MaxValue)", ["ValidateRemainingResults"] = "result[i] != Math.Clamp(((right[(i * 2) + 1] * left[(i * 2) + 1]) + (right[i * 2] * left[i * 2])), int.MinValue, int.MaxValue)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "MultiplyHigh", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != BitConverter.ToInt16(BitConverter.GetBytes((((int)(left[0])) * right[0]) >> 16), 0)", ["ValidateRemainingResults"] = "result[i] != BitConverter.ToInt16(BitConverter.GetBytes((((int)(left[i])) * right[i]) >> 16), 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "MultiplyHigh", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != BitConverter.ToUInt16(BitConverter.GetBytes((((uint)(left[0])) * right[0]) >> 16), 0)", ["ValidateRemainingResults"] = "result[i] != BitConverter.ToUInt16(BitConverter.GetBytes((((uint)(left[i])) * right[i]) >> 16), 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "MultiplyHighRoundScale", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != (short)((((left[0] * right[0]) >> 14) + 1) >> 1)", ["ValidateRemainingResults"] = "result[i] != (short)((((left[i] * right[i]) >> 14) + 1) >> 1)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "MultiplyLow", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != BitConverter.ToInt16(BitConverter.GetBytes(((int)(left[0])) * right[0]), 0)", ["ValidateRemainingResults"] = "result[i] != BitConverter.ToInt16(BitConverter.GetBytes(((int)(left[i])) * right[i]), 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "MultiplyLow", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != BitConverter.ToUInt16(BitConverter.GetBytes(((uint)(left[0])) * right[0]), 0)", ["ValidateRemainingResults"] = "result[i] != BitConverter.ToUInt16(BitConverter.GetBytes(((uint)(left[i])) * right[i]), 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PackSignedSaturate", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (short)Math.Clamp(left[0], short.MinValue, short.MaxValue)", ["ValidateRemainingResults"] = "result[i] != ((i & 7) < 4 ? (short)Math.Clamp(left[i - ((i / 8) * 4)], short.MinValue, short.MaxValue) : (short)Math.Clamp(right[i - 4 - ((i / 8) * 4)], short.MinValue, short.MaxValue))"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PackSignedSaturate", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != (sbyte)Math.Clamp(left[0], sbyte.MinValue, sbyte.MaxValue)", ["ValidateRemainingResults"] = "result[i] != ((i & 15) < 8 ? (sbyte)Math.Clamp(left[i- ((i / 16) * 8)], sbyte.MinValue, sbyte.MaxValue) : (sbyte)Math.Clamp(right[i - 8 - ((i / 16) * 8)], sbyte.MinValue, sbyte.MaxValue))"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PackUnsignedSaturate", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != (byte)Math.Clamp(left[0], byte.MinValue, byte.MaxValue)", ["ValidateRemainingResults"] = "result[i] != ((i & 15) < 8 ? (byte)Math.Clamp(left[i- ((i / 16) * 8)], byte.MinValue, byte.MaxValue) : (byte)Math.Clamp(right[i - 8 - ((i / 16) * 8)], byte.MinValue, byte.MaxValue))"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PackUnsignedSaturate", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (ushort)Math.Clamp(left[0], ushort.MinValue, ushort.MaxValue)", ["ValidateRemainingResults"] = "result[i] != ((i & 7) < 4 ? (ushort)Math.Clamp(left[i- ((i / 8) * 4)], ushort.MinValue, ushort.MaxValue) : (ushort)Math.Clamp(right[i - 4 - ((i / 8) * 4)], ushort.MinValue, ushort.MaxValue))"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PermuteVar32x16", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != left[(right[0] & 31)]", ["ValidateRemainingResults"] = "result[i] != left[(right[i] & 31)]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PermuteVar32x16", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != left[(right[0] & 31)]", ["ValidateRemainingResults"] = "result[i] != left[(right[i] & 31)]"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PermuteVar32x16x2", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != (((secondOp[0] & 63) <= 31) ? firstOp[secondOp[0] & 31] : thirdOp[secondOp[0] & 31])", ["ValidateRemainingResults"] = "result[i] != (((secondOp[i] & 63) <= 31) ? firstOp[secondOp[i] & 31] : thirdOp[secondOp[i] & 31])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PermuteVar32x16x2", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp3"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != (((secondOp[0] & 63) <= 31) ? firstOp[secondOp[0] & 31] : thirdOp[secondOp[0] & 31])", ["ValidateRemainingResults"] = "result[i] != (((secondOp[i] & 63) <= 31) ? firstOp[secondOp[i] & 31] : thirdOp[secondOp[i] & 31])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftLeftLogical", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "(short)(firstOp[0] << 1) != result[0]", ["ValidateRemainingResults"] = "(short)(firstOp[i] << 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftLeftLogical", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Imm"] = "16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "0 != result[0]", ["ValidateRemainingResults"] = "0 != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftLeftLogical", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "(ushort)(firstOp[0] << 1) != result[0]", ["ValidateRemainingResults"] = "(ushort)(firstOp[i] << 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftLeftLogical", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Imm"] = "16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "0 != result[0]", ["ValidateRemainingResults"] = "0 != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftLeftLogical128BitLane", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "(byte)8", ["ValidateFirstResult"] = "result[0] != 0", ["ValidateRemainingResults"] = "((i & 15) == 0 ? result[i] != 0 : result[i] != 8)"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftLeftLogical128BitLane", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "(sbyte)8", ["ValidateFirstResult"] = "result[0] != 0", ["ValidateRemainingResults"] = "((i & 15) == 0 ? result[i] != 0 : result[i] != 8)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftLeftLogicalVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "(ushort)(TestLibrary.Generator.GetUInt16() & 15)", ["ValidateFirstResult"] = "(short)(left[0] << (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(short)(left[i] << (int)right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftLeftLogicalVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "(ushort)(TestLibrary.Generator.GetUInt16() & 15)", ["ValidateFirstResult"] = "(ushort)(left[0] << (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(ushort)(left[i] << (int)right[i]) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightArithmetic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "(short)(firstOp[0] >> 1) != result[0]", ["ValidateRemainingResults"] = "(short)(firstOp[i] >> 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightArithmetic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Imm"] = "16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "(short)(firstOp[0] >> 15) != result[0]", ["ValidateRemainingResults"] = "(short)(firstOp[i] >> 15) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightArithmeticVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "(ushort)(TestLibrary.Generator.GetUInt16() & 15)", ["ValidateFirstResult"] = "(left[0] >> (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(left[i] >> (int)right[i]) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightLogical", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "(short)(firstOp[0] >> 1) != result[0]", ["ValidateRemainingResults"] = "(short)(firstOp[i] >> 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightLogical", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Imm"] = "16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "0 != result[0]", ["ValidateRemainingResults"] = "0 != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightLogical", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "(ushort)(firstOp[0] >> 1) != result[0]", ["ValidateRemainingResults"] = "(ushort)(firstOp[i] >> 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightLogical", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Imm"] = "16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "0 != result[0]", ["ValidateRemainingResults"] = "0 != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightLogical128BitLane", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "(byte)8", ["ValidateFirstResult"] = "result[0] != 8", ["ValidateRemainingResults"] = "((i & 15) == 15 ? result[i] != 0 : result[i] != 8)"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightLogical128BitLane", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "(sbyte)8", ["ValidateFirstResult"] = "result[0] != 8", ["ValidateRemainingResults"] = "((i & 15) == 15 ? result[i] != 0 : result[i] != 8)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightLogicalVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "(ushort)(TestLibrary.Generator.GetUInt16() & 15)", ["ValidateFirstResult"] = "(left[0] >>> (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(left[i] >>> (int)right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightLogicalVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "(ushort)(TestLibrary.Generator.GetUInt16() & 15)", ["ValidateFirstResult"] = "(left[0] >>> (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(left[i] >>> (int)right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Shuffle", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != ((right[0] > 127) ? 0 : left[right[0] & 0x0F])", ["ValidateRemainingResults"] = "result[i] != (right[i] > 127 ? 0 : left[(right[i] & 0x0F) + ((i / 16) * 16)])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Shuffle", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != ((right[0] < 0) ? 0 : left[right[0] & 0x0F])", ["ValidateRemainingResults"] = "result[i] != (right[i] < 0 ? 0 : left[(right[i] & 0x0F) + ((i / 16) * 16)])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShuffleHigh", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Imm"] = "228", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != firstOp[0]", ["ValidateRemainingResults"] = "result[i] != firstOp[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShuffleHigh", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Imm"] = "228", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != firstOp[0]", ["ValidateRemainingResults"] = "result[i] != firstOp[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShuffleLow", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Imm"] = "228", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != firstOp[0]", ["ValidateRemainingResults"] = "result[i] != firstOp[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShuffleLow", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Imm"] = "228", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != firstOp[0]", ["ValidateRemainingResults"] = "result[i] != firstOp[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Subtract", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "(byte)(left[0] - right[0]) != result[0]", ["ValidateRemainingResults"] = "(byte)(left[i] - right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Subtract", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "(short)(left[0] - right[0]) != result[0]", ["ValidateRemainingResults"] = "(short)(left[i] - right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Subtract", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "(sbyte)(left[0] - right[0]) != result[0]", ["ValidateRemainingResults"] = "(sbyte)(left[i] - right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Subtract", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "(ushort)(left[0] - right[0]) != result[0]", ["ValidateRemainingResults"] = "(ushort)(left[i] - right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "SubtractSaturate", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "SseVerify.SubtractSaturate(left[0], right[0], result[0])", ["ValidateRemainingResults"] = "SseVerify.SubtractSaturate(left[i], right[i], result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "SubtractSaturate", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "SseVerify.SubtractSaturate(left[0], right[0], result[0])", ["ValidateRemainingResults"] = "SseVerify.SubtractSaturate(left[i], right[i], result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "SubtractSaturate", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "SseVerify.SubtractSaturate(left[0], right[0], result[0])", ["ValidateRemainingResults"] = "SseVerify.SubtractSaturate(left[i], right[i], result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "SubtractSaturate", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "SseVerify.SubtractSaturate(left[0], right[0], result[0])", ["ValidateRemainingResults"] = "SseVerify.SubtractSaturate(left[i], right[i], result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "SumAbsoluteDifferences", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != SseVerify.SumAbsoluteDifferences(left, right, 0)", ["ValidateRemainingResults"] = "result[i] != SseVerify.SumAbsoluteDifferences(left, right, i)"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "SumAbsoluteDifferencesInBlock32", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["Imm"] = "228", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.SumAbsoluteDifferencesInBlock32(left, right, 228, 0)", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.SumAbsoluteDifferencesInBlock32(left, right, 228, i)"}), +}; + +(string templateFileName, Dictionary templateData)[] Avx10v1_V512_Avx512FInputs = new [] +{ + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Abs", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (uint)((firstOp[0] < 0) ? -firstOp[0] : firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (uint)((firstOp[i] < 0) ? -firstOp[i] : firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Abs", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (ulong)((firstOp[0] < 0) ? -firstOp[0] : firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (ulong)((firstOp[i] < 0) ? -firstOp[i] : firstOp[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Add", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(left[0] + right[0]) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(left[i] + right[i]) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Add", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "(int)(left[0] + right[0]) != result[0]", ["ValidateRemainingResults"] = "(int)(left[i] + right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Add", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "(long)(left[0] + right[0]) != result[0]", ["ValidateRemainingResults"] = "(long)(left[i] + right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Add", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(left[0] + right[0]) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(left[i] + right[i]) != BitConverter.SingleToInt32Bits(result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Add", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "(uint)(left[0] + right[0]) != result[0]", ["ValidateRemainingResults"] = "(uint)(left[i] + right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Add", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "(ulong)(left[0] + right[0]) != result[0]", ["ValidateRemainingResults"] = "(ulong)(left[i] + right[i]) != result[i]"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AlignRight32", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Imm"] = "5", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != right[5]", ["ValidateRemainingResults"] = "result[i] != ((i < 11) ? right[i + 5] : left[i - 11])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AlignRight32", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Imm"] = "27", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != right[11]", ["ValidateRemainingResults"] = "result[i] != ((i < 5) ? right[i + 11] : left[i - 5])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AlignRight32", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["Imm"] = "5", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != right[5]", ["ValidateRemainingResults"] = "result[i] != ((i < 11) ? right[i + 5] : left[i - 11])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AlignRight32", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["Imm"] = "27", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != right[11]", ["ValidateRemainingResults"] = "result[i] != ((i < 5) ? right[i + 11] : left[i - 5])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AlignRight64", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int64", ["Imm"] = "5", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != right[5]", ["ValidateRemainingResults"] = "result[i] != ((i < 3) ? right[i + 5] : left[i - 3])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AlignRight64", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int64", ["Imm"] = "11", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != right[3]", ["ValidateRemainingResults"] = "result[i] != ((i < 5) ? right[i + 3] : left[i - 5])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AlignRight64", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["Imm"] = "5", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != right[5]", ["ValidateRemainingResults"] = "result[i] != ((i < 3) ? right[i + 5] : left[i - 3])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AlignRight64", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["Imm"] = "11", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != right[3]", ["ValidateRemainingResults"] = "result[i] != ((i < 5) ? right[i + 3] : left[i - 5])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "And", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "(byte)(left[0] & right[0]) != result[0]", ["ValidateRemainingResults"] = "(byte)(left[i] & right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "And", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "(short)(left[0] & right[0]) != result[0]", ["ValidateRemainingResults"] = "(short)(left[i] & right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "And", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "(int)(left[0] & right[0]) != result[0]", ["ValidateRemainingResults"] = "(int)(left[i] & right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "And", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "(long)(left[0] & right[0]) != result[0]", ["ValidateRemainingResults"] = "(long)(left[i] & right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "And", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "(sbyte)(left[0] & right[0]) != result[0]", ["ValidateRemainingResults"] = "(sbyte)(left[i] & right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "And", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "(ushort)(left[0] & right[0]) != result[0]", ["ValidateRemainingResults"] = "(ushort)(left[i] & right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "And", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "(uint)(left[0] & right[0]) != result[0]", ["ValidateRemainingResults"] = "(uint)(left[i] & right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "And", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "(ulong)(left[0] & right[0]) != result[0]", ["ValidateRemainingResults"] = "(ulong)(left[i] & right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AndNot", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "(byte)(~left[0] & right[0]) != result[0]", ["ValidateRemainingResults"] = "(byte)(~left[i] & right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AndNot", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "(short)(~left[0] & right[0]) != result[0]", ["ValidateRemainingResults"] = "(short)(~left[i] & right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AndNot", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "(int)(~left[0] & right[0]) != result[0]", ["ValidateRemainingResults"] = "(int)(~left[i] & right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AndNot", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "(long)(~left[0] & right[0]) != result[0]", ["ValidateRemainingResults"] = "(long)(~left[i] & right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AndNot", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "(sbyte)(~left[0] & right[0]) != result[0]", ["ValidateRemainingResults"] = "(sbyte)(~left[i] & right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AndNot", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "(ushort)(~left[0] & right[0]) != result[0]", ["ValidateRemainingResults"] = "(ushort)(~left[i] & right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AndNot", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "(uint)(~left[0] & right[0]) != result[0]", ["ValidateRemainingResults"] = "(uint)(~left[i] & right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AndNot", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "(ulong)(~left[0] & right[0]) != result[0]", ["ValidateRemainingResults"] = "(ulong)(~left[i] & right[i]) != result[i]"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "BlendVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp3"] = "(double)(((i & 1) == 0) ? -0.0 : 0.0)", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(double.IsNegative(thirdOp[0]) ? secondOp[0] : firstOp[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(double.IsNegative(thirdOp[i]) ? secondOp[i] : firstOp[i])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "BlendVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "(int)(((i & 1) == 0) ? -1 : 0)", ["ValidateFirstResult"] = "result[0] != ((thirdOp[0] != 0) ? secondOp[0] : firstOp[0])", ["ValidateRemainingResults"] = "result[i] != ((thirdOp[i] != 0) ? secondOp[i] : firstOp[i])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "BlendVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int64", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp3"] = "(long)(((i & 1) == 0) ? -1 : 0)", ["ValidateFirstResult"] = "result[0] != ((thirdOp[0] != 0) ? secondOp[0] : firstOp[0])", ["ValidateRemainingResults"] = "result[i] != ((thirdOp[i] != 0) ? secondOp[i] : firstOp[i])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "BlendVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp3"] = "(float)(((i & 1) == 0) ? -0.0 : 0.0)", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(float.IsNegative(thirdOp[0]) ? secondOp[0] : firstOp[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(float.IsNegative(thirdOp[i]) ? secondOp[i] : firstOp[i])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "BlendVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp3"] = "(uint)(((i & 1) == 0) ? -1 : 0)", ["ValidateFirstResult"] = "result[0] != ((thirdOp[0] != 0) ? secondOp[0] : firstOp[0])", ["ValidateRemainingResults"] = "result[i] != ((thirdOp[i] != 0) ? secondOp[i] : firstOp[i])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "BlendVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp3"] = "(ulong)(((i & 1) == 0) ? -1: 0)", ["ValidateFirstResult"] = "result[0] != ((thirdOp[0] != 0) ? secondOp[0] : firstOp[0])", ["ValidateRemainingResults"] = "result[i] != ((thirdOp[i] != 0) ? secondOp[i] : firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "BroadcastScalarToVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "(firstOp[0] != result[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "BroadcastScalarToVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "(firstOp[0] != result[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "BroadcastScalarToVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "(firstOp[0] != result[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "BroadcastScalarToVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "(firstOp[0] != result[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "BroadcastScalarToVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(firstOp[0]) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "(BitConverter.SingleToInt32Bits(firstOp[0]) != BitConverter.SingleToInt32Bits(result[i]))"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "BroadcastScalarToVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(firstOp[0]) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "(BitConverter.DoubleToInt64Bits(firstOp[0]) != BitConverter.DoubleToInt64Bits(result[i]))"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "BroadcastVector128ToVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "result[i] != firstOp[i & 3]"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "BroadcastVector128ToVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "result[i] != firstOp[i & 3]"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "BroadcastVector128ToVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(firstOp[0]) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(firstOp[i & 3])"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "BroadcastVector256ToVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "result[i] != firstOp[i & 3]"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "BroadcastVector256ToVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "result[i] != firstOp[i & 3]"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "BroadcastVector256ToVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(firstOp[0]) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(firstOp[i & 3])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != ((left[0] == right[0]) ? -1 : 0)", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != ((left[i] == right[i]) ? -1 : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] == right[0]) ? unchecked((int)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] == right[i]) ? unchecked((int)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] == right[0]) ? unchecked((long)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] == right[i]) ? unchecked((long)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != ((left[0] == right[0]) ? -1 : 0)", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != ((left[i] == right[i]) ? -1 : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] == right[0]) ? unchecked((uint)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] == right[i]) ? unchecked((uint)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] == right[0]) ? unchecked((ulong)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] == right[i]) ? unchecked((ulong)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareGreaterThan", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != ((left[0] > right[0]) ? -1 : 0)", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != ((left[i] > right[i]) ? -1 : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareGreaterThan", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] > right[0]) ? unchecked((int)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] > right[i]) ? unchecked((int)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareGreaterThan", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] > right[0]) ? unchecked((long)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] > right[i]) ? unchecked((long)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareGreaterThan", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != ((left[0] > right[0]) ? -1 : 0)", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != ((left[i] > right[i]) ? -1 : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareGreaterThan", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] > right[0]) ? unchecked((uint)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] > right[i]) ? unchecked((uint)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareGreaterThan", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] > right[0]) ? unchecked((ulong)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] > right[i]) ? unchecked((ulong)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != ((left[0] >= right[0]) ? -1 : 0)", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != ((left[i] >= right[i]) ? -1 : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] >= right[0]) ? unchecked((int)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] >= right[i]) ? unchecked((int)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] >= right[0]) ? unchecked((long)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] >= right[i]) ? unchecked((long)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != ((left[0] >= right[0]) ? -1 : 0)", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != ((left[i] >= right[i]) ? -1 : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] >= right[0]) ? unchecked((uint)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] >= right[i]) ? unchecked((uint)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareGreaterThanOrEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] >= right[0]) ? unchecked((ulong)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] >= right[i]) ? unchecked((ulong)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != ((left[0] < right[0]) ? -1 : 0)", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != ((left[i] < right[i]) ? -1 : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] < right[0]) ? unchecked((int)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] < right[i]) ? unchecked((int)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] < right[0]) ? unchecked((long)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] < right[i]) ? unchecked((long)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != ((left[0] < right[0]) ? -1 : 0)", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != ((left[i] < right[i]) ? -1 : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] < right[0]) ? unchecked((uint)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] < right[i]) ? unchecked((uint)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareLessThan", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] < right[0]) ? unchecked((ulong)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] < right[i]) ? unchecked((ulong)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != ((left[0] <= right[0]) ? -1 : 0)", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != ((left[i] <= right[i]) ? -1 : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] <= right[0]) ? unchecked((int)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] <= right[i]) ? unchecked((int)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] <= right[0]) ? unchecked((long)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] <= right[i]) ? unchecked((long)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != ((left[0] <= right[0]) ? -1 : 0)", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != ((left[i] <= right[i]) ? -1 : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] <= right[0]) ? unchecked((uint)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] <= right[i]) ? unchecked((uint)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareLessThanOrEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] <= right[0]) ? unchecked((ulong)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] <= right[i]) ? unchecked((ulong)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != ((left[0] != right[0]) ? -1 : 0)", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != ((left[i] != right[i]) ? -1 : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] != right[0]) ? unchecked((int)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] != right[i]) ? unchecked((int)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] != right[0]) ? unchecked((long)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] != right[i]) ? unchecked((long)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != ((left[0] != right[0]) ? -1 : 0)", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != ((left[i] != right[i]) ? -1 : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != ((left[0] != right[0]) ? unchecked((uint)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] != right[i]) ? unchecked((uint)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareNotEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != ((left[0] != right[0]) ? unchecked((ulong)(-1)) : 0)", ["ValidateRemainingResults"] = "result[i] != ((left[i] != right[i]) ? unchecked((ulong)(-1)) : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareNotGreaterThan", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != (!(left[0] > right[0]) ? -1 : 0)", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != (!(left[i] > right[i]) ? -1 : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareNotGreaterThan", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != (!(left[0] > right[0]) ? -1 : 0)", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != (!(left[i] > right[i]) ? -1 : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareNotGreaterThanOrEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != (!(left[0] >= right[0]) ? -1 : 0)", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != (!(left[i] >= right[i]) ? -1 : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareNotGreaterThanOrEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != (!(left[0] >= right[0]) ? -1 : 0)", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != (!(left[i] >= right[i]) ? -1 : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareNotLessThan", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != (!(left[0] < right[0]) ? -1 : 0)", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != (!(left[i] < right[i]) ? -1 : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareNotLessThan", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != (!(left[0] < right[0]) ? -1 : 0)", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != (!(left[i] < right[i]) ? -1 : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareNotLessThanOrEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != (!(left[0] <= right[0]) ? -1 : 0)", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != (!(left[i] <= right[i]) ? -1 : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareNotLessThanOrEqual", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != (!(left[0] <= right[0]) ? -1 : 0)", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != (!(left[i] <= right[i]) ? -1 : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareOrdered", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != ((!double.IsNaN(left[0]) && !double.IsNaN(right[0])) ? -1 : 0)", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != ((!double.IsNaN(left[i]) && !double.IsNaN(right[i])) ? -1 : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareOrdered", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != ((!float.IsNaN(left[0]) && !float.IsNaN(right[0])) ? -1 : 0)", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != ((!float.IsNaN(left[i]) && !float.IsNaN(right[i])) ? -1 : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareUnordered", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != ((double.IsNaN(left[0]) || double.IsNaN(right[0])) ? -1 : 0)", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != ((double.IsNaN(left[i]) || double.IsNaN(right[i])) ? -1 : 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "CompareUnordered", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != ((float.IsNaN(left[0]) || float.IsNaN(right[0])) ? -1 : 0)", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != ((float.IsNaN(left[i]) || float.IsNaN(right[i])) ? -1 : 0)"}), + ("SimpleBinOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertScalarToVector128Double", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != right"}), + ("SimpleBinOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertScalarToVector128Single", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != right"}), + ("SimdScalarUnOpConvTest.template",new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToUInt32", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "(uint)double.Round(firstOp[0]) != result"}), + ("SimdScalarUnOpConvTest.template",new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToUInt32", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "(uint)float.Round(firstOp[0]) != result"}), + ("SimdScalarUnOpConvTest.template",new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToUInt32WithTruncation", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "(uint)firstOp[0] != result"}), + ("SimdScalarUnOpConvTest.template",new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToUInt32WithTruncation", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "(uint)firstOp[0] != result"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector128Byte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (byte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (byte)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector128Byte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (byte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 8) ? (byte)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector128Byte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != (byte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (byte)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector128Byte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (byte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 8) ? (byte)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector128ByteWithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != (byte)uint.Clamp(firstOp[0], byte.MinValue, byte.MaxValue)", ["ValidateRemainingResults"] = "result[i] != (byte)uint.Clamp(firstOp[i], byte.MinValue, byte.MaxValue)"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector128ByteWithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (byte)ulong.Clamp(firstOp[0], byte.MinValue, byte.MaxValue)", ["ValidateRemainingResults"] = "result[i] != ((i < 8) ? (byte)ulong.Clamp(firstOp[i], byte.MinValue, byte.MaxValue) : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector128Int16", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (short)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (short)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector128Int16", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (short)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (short)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector128Int16WithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (short)long.Clamp(firstOp[0], short.MinValue, short.MaxValue)", ["ValidateRemainingResults"] = "result[i] != (short)long.Clamp(firstOp[i], short.MinValue, short.MaxValue)"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector128SByte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (sbyte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (sbyte)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector128SByte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (sbyte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 8) ? (sbyte)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector128SByte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != (sbyte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (sbyte)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector128SByte", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (sbyte)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != ((i < 8) ? (sbyte)firstOp[i] : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector128SByteWithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (sbyte)int.Clamp(firstOp[0], sbyte.MinValue, sbyte.MaxValue)", ["ValidateRemainingResults"] = "result[i] != (sbyte)int.Clamp(firstOp[i], sbyte.MinValue, sbyte.MaxValue)"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector128SByteWithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (sbyte)long.Clamp(firstOp[0], sbyte.MinValue, sbyte.MaxValue)", ["ValidateRemainingResults"] = "result[i] != ((i < 8) ? (sbyte)long.Clamp(firstOp[i], sbyte.MinValue, sbyte.MaxValue) : result[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector128UInt16", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (ushort)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (ushort)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector128UInt16", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (ushort)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (ushort)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector128UInt16WithSaturation", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (ushort)ulong.Clamp(firstOp[0], ushort.MinValue, ushort.MaxValue)", ["ValidateRemainingResults"] = "result[i] != (ushort)ulong.Clamp(firstOp[i], ushort.MinValue, ushort.MaxValue)"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256Int16", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (short)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (short)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256Int16", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != (short)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (short)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256Int16WithSaturation", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (short)int.Clamp(firstOp[0], short.MinValue, short.MaxValue)", ["ValidateRemainingResults"] = "result[i] != (short)int.Clamp(firstOp[i], short.MinValue, short.MaxValue)"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256Int32", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != (int)double.Round(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (int)double.Round(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256Int32", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (int)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (int)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256Int32", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (int)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (int)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256Int32WithSaturation", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (int)long.Clamp(firstOp[0], int.MinValue, int.MaxValue)", ["ValidateRemainingResults"] = "result[i] != (int)long.Clamp(firstOp[i], int.MinValue, int.MaxValue)"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256Int32WithTruncation", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != (int)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (int)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256Single", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != (float)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (float)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256UInt16", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (ushort)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (ushort)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256UInt16", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != (ushort)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (ushort)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256UInt16WithSaturation", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != (ushort)uint.Clamp(firstOp[0], ushort.MinValue, ushort.MaxValue)", ["ValidateRemainingResults"] = "result[i] != (ushort)uint.Clamp(firstOp[i], ushort.MinValue, ushort.MaxValue)"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256UInt32", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != (uint)double.Round(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (uint)double.Round(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256UInt32", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (uint)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (uint)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256UInt32", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (uint)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (uint)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256UInt32WithSaturation", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (uint)ulong.Clamp(firstOp[0], uint.MinValue, uint.MaxValue)", ["ValidateRemainingResults"] = "result[i] != (uint)ulong.Clamp(firstOp[i], uint.MinValue, uint.MaxValue)"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256UInt32WithTruncation", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != (uint)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (uint)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Double", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(firstOp[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Int32", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != (int)float.Round(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (int)float.Round(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Int32WithTruncation", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != (int)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (int)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Single", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(firstOp[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Single", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(firstOp[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512UInt32", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != (uint)float.Round(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (uint)float.Round(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512UInt32WithTruncation", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != (uint)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (uint)firstOp[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Divide", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(left[0] / right[0]) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(left[i] / right[i]) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Divide", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(left[0] / right[0]) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(left[i] / right[i]) != BitConverter.SingleToInt32Bits(result[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "DuplicateEvenIndexed", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(firstOp[0]) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "((i & 1) == 0) ? (BitConverter.DoubleToInt64Bits(firstOp[i]) != BitConverter.DoubleToInt64Bits(result[i])) : (BitConverter.DoubleToInt64Bits(firstOp[i - 1]) != BitConverter.DoubleToInt64Bits(result[i]))"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "DuplicateEvenIndexed", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(firstOp[0]) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "((i & 1) == 0) ? (BitConverter.SingleToInt32Bits(firstOp[i]) != BitConverter.SingleToInt32Bits(result[i])) : (BitConverter.SingleToInt32Bits(firstOp[i - 1]) != BitConverter.SingleToInt32Bits(result[i]))"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "DuplicateOddIndexed", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(firstOp[1]) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "((i & 1) == 0) ? (BitConverter.SingleToInt32Bits(firstOp[i + 1]) != BitConverter.SingleToInt32Bits(result[i])) : (BitConverter.SingleToInt32Bits(firstOp[i]) != BitConverter.SingleToInt32Bits(result[i]))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector128", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(firstOp[4])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(firstOp[i+4])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector128", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(firstOp[2])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(firstOp[i+2])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector128", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != firstOp[16]", ["ValidateRemainingResults"] = "result[i] != firstOp[i+16]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector128", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != firstOp[16]", ["ValidateRemainingResults"] = "result[i] != firstOp[i+16]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector128", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != firstOp[8]", ["ValidateRemainingResults"] = "result[i] != firstOp[i+8]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector128", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != firstOp[8]", ["ValidateRemainingResults"] = "result[i] != firstOp[i+8]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector128", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != firstOp[4]", ["ValidateRemainingResults"] = "result[i] != firstOp[i+4]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector128", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != firstOp[4]", ["ValidateRemainingResults"] = "result[i] != firstOp[i+4]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector128", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != firstOp[2]", ["ValidateRemainingResults"] = "result[i] != firstOp[i+2]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector128", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != firstOp[2]", ["ValidateRemainingResults"] = "result[i] != firstOp[i+2]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector256", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(firstOp[8])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(firstOp[i+8])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector256", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(firstOp[4])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(firstOp[i+4])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector256", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != firstOp[32]", ["ValidateRemainingResults"] = "result[i] != firstOp[i+32]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector256", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != firstOp[32]", ["ValidateRemainingResults"] = "result[i] != firstOp[i+32]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector256", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != firstOp[16]", ["ValidateRemainingResults"] = "result[i] != firstOp[i+16]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector256", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != firstOp[16]", ["ValidateRemainingResults"] = "result[i] != firstOp[i+16]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector256", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != firstOp[8]", ["ValidateRemainingResults"] = "result[i] != firstOp[i+8]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector256", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != firstOp[8]", ["ValidateRemainingResults"] = "result[i] != firstOp[i+8]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector256", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != firstOp[4]", ["ValidateRemainingResults"] = "result[i] != firstOp[i+4]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector256", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != firstOp[4]", ["ValidateRemainingResults"] = "result[i] != firstOp[i+4]"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Fixup", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int64", ["Imm"] = "0", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "Avx512Verify.ValidateFixup(result[0], op1[0], op2[0], op3[0])", ["ValidateRemainingResults"] = "Avx512Verify.ValidateFixup(result[i], op1[i], op2[i], op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Fixup", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", ["Imm"] = "0", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "Avx512Verify.ValidateFixup(result[0], op1[0], op2[0], op3[0])", ["ValidateRemainingResults"] = "Avx512Verify.ValidateFixup(result[i], op1[i], op2[i], op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FixupScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int64", ["Imm"] = "0", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "Avx512Verify.ValidateFixup(result[0], op1[0], op2[0], op3[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FixupScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Int32", ["Imm"] = "0", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "Avx512Verify.ValidateFixup(result[0], op1[0], op2[0], op3[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(op2[i])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplyAdd", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp3"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(double.FusedMultiplyAdd(firstOp[0], secondOp[0], thirdOp[0])) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(double.FusedMultiplyAdd(firstOp[i], secondOp[i], thirdOp[i])) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplyAdd", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp3"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(float.FusedMultiplyAdd(firstOp[0], secondOp[0], thirdOp[0])) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(float.FusedMultiplyAdd(firstOp[i], secondOp[i], thirdOp[i])) != BitConverter.SingleToInt32Bits(result[i])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplyAddNegated", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp3"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(double.FusedMultiplyAdd(-firstOp[0], secondOp[0], thirdOp[0])) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(double.FusedMultiplyAdd(-firstOp[i], secondOp[i], thirdOp[i])) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplyAddNegated", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp3"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(float.FusedMultiplyAdd(-firstOp[0], secondOp[0], thirdOp[0])) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(float.FusedMultiplyAdd(-firstOp[i], secondOp[i], thirdOp[i])) != BitConverter.SingleToInt32Bits(result[i])"}), + ("AlternatingTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplyAddSubtract", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp3"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(double.FusedMultiplyAdd(firstOp[i], secondOp[i], -thirdOp[i])) != BitConverter.DoubleToInt64Bits(result[i])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(double.FusedMultiplyAdd(firstOp[i + 1], secondOp[i + 1], thirdOp[i + 1])) != BitConverter.DoubleToInt64Bits(result[i + 1])"}), + ("AlternatingTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplyAddSubtract", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp3"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(float.FusedMultiplyAdd(firstOp[i], secondOp[i], -thirdOp[i])) != BitConverter.SingleToInt32Bits(result[i])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(float.FusedMultiplyAdd(firstOp[i + 1], secondOp[i + 1], thirdOp[i + 1])) != BitConverter.SingleToInt32Bits(result[i + 1])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplySubtract", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp3"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(double.FusedMultiplyAdd(firstOp[0], secondOp[0], -thirdOp[0])) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(double.FusedMultiplyAdd(firstOp[i], secondOp[i], -thirdOp[i])) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplySubtract", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp3"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(float.FusedMultiplyAdd(firstOp[0], secondOp[0], -thirdOp[0])) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(float.FusedMultiplyAdd(firstOp[i], secondOp[i], -thirdOp[i])) != BitConverter.SingleToInt32Bits(result[i])"}), + ("AlternatingTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplySubtractAdd", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp3"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(double.FusedMultiplyAdd(firstOp[i], secondOp[i], thirdOp[i])) != BitConverter.DoubleToInt64Bits(result[i])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(double.FusedMultiplyAdd(firstOp[i + 1], secondOp[i + 1], -thirdOp[i + 1])) != BitConverter.DoubleToInt64Bits(result[i + 1])"}), + ("AlternatingTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplySubtractAdd", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp3"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(float.FusedMultiplyAdd(firstOp[i], secondOp[i], thirdOp[i])) != BitConverter.SingleToInt32Bits(result[i])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(float.FusedMultiplyAdd(firstOp[i + 1], secondOp[i + 1], -thirdOp[i + 1])) != BitConverter.SingleToInt32Bits(result[i + 1])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplySubtractNegated", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp3"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(double.FusedMultiplyAdd(-firstOp[0], secondOp[0], -thirdOp[0])) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(double.FusedMultiplyAdd(-firstOp[i], secondOp[i], -thirdOp[i])) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplySubtractNegated", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp3"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(float.FusedMultiplyAdd(-firstOp[0], secondOp[0], -thirdOp[0])) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(float.FusedMultiplyAdd(-firstOp[i], secondOp[i], -thirdOp[i])) != BitConverter.SingleToInt32Bits(result[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "GetExponent", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.GetExponent(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.GetExponent(firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "GetExponent", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.GetExponent(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.GetExponent(firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "GetExponentScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.GetExponent(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != firstOp[i]"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "GetExponentScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.GetExponent(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != firstOp[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "GetMantissa", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Imm"] = "0", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.GetMantissa(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.GetMantissa(firstOp[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "GetMantissa", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Imm"] = "0", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.GetMantissa(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.GetMantissa(firstOp[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "GetMantissaScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Imm"] = "0", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.GetMantissa(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != firstOp[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "GetMantissaScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Imm"] = "0", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.GetMantissa(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != firstOp[i]"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector128", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Byte", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != left[0]", ["ValidateRemainingResults"] = "result[i] != (((i < 16) || (i > 31)) ? left[i] : right[i-16])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector128", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "SByte", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != left[0]", ["ValidateRemainingResults"] = "result[i] != (((i < 16) || (i > 31)) ? left[i] : right[i-16])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector128", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int16", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != left[0]", ["ValidateRemainingResults"] = "result[i] != (((i < 8) || (i > 15)) ? left[i] : right[i-8])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector128", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt16", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != left[0]", ["ValidateRemainingResults"] = "result[i] != (((i < 8) || (i > 15)) ? left[i] : right[i-8])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector128", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int32", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != left[0]", ["ValidateRemainingResults"] = "result[i] != (((i < 4) || (i > 7)) ? left[i] : right[i-4])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector128", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt32", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != left[0]", ["ValidateRemainingResults"] = "result[i] != (((i < 4) || (i > 7)) ? left[i] : right[i-4])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector128", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int64", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != left[0]", ["ValidateRemainingResults"] = "result[i] != (((i < 2) || (i > 3)) ? left[i] : right[i-2])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector128", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt64", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != left[0]", ["ValidateRemainingResults"] = "result[i] != (((i < 2) || (i > 3)) ? left[i] : right[i-2])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector128", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(left[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != (((i < 4) || (i > 7)) ? BitConverter.SingleToInt32Bits(left[i]) : BitConverter.SingleToInt32Bits(right[i-4]))"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector128", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(left[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != (((i < 2) || (i > 3)) ? BitConverter.DoubleToInt64Bits(left[i]) : BitConverter.DoubleToInt64Bits(right[i-2]))"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector256", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Byte", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != left[0]", ["ValidateRemainingResults"] = "result[i] != (i < 32 ? left[i] : right[i-32])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector256", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "SByte", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != left[0]", ["ValidateRemainingResults"] = "result[i] != (i < 32 ? left[i] : right[i-32])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector256", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int16", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != left[0]", ["ValidateRemainingResults"] = "result[i] != (i < 16 ? left[i] : right[i-16])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector256", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt16", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != left[0]", ["ValidateRemainingResults"] = "result[i] != (i < 16 ? left[i] : right[i-16])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector256", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != left[0]", ["ValidateRemainingResults"] = "result[i] != (i < 8 ? left[i] : right[i-8])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector256", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt32", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != left[0]", ["ValidateRemainingResults"] = "result[i] != (i < 8 ? left[i] : right[i-8])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector256", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int64", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != left[0]", ["ValidateRemainingResults"] = "result[i] != (i < 4 ? left[i] : right[i-4])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector256", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt64", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != left[0]", ["ValidateRemainingResults"] = "result[i] != (i < 4 ? left[i] : right[i-4])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector256", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Single", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(left[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != (i < 8 ? BitConverter.SingleToInt32Bits(left[i]) : BitConverter.SingleToInt32Bits(right[i-8]))"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector256", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Double", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(left[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != (i < 4 ? BitConverter.DoubleToInt64Bits(left[i]) : BitConverter.DoubleToInt64Bits(right[i-4]))"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "LoadVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(firstOp[0]) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(firstOp[i]) != BitConverter.SingleToInt32Bits(result[i])"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "LoadVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(firstOp[0]) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(firstOp[i]) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "LoadVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "LoadVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "LoadVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "LoadVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "LoadVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "LoadVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "LoadVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "LoadVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Max", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(Math.Max(left[0], right[0])) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(Math.Max(left[i], right[i])) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Max", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != Math.Max(left[0], right[0])", ["ValidateRemainingResults"] = "result[i] != Math.Max(left[i], right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Max", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != Math.Max(left[0], right[0])", ["ValidateRemainingResults"] = "result[i] != Math.Max(left[i], right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Max", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(MathF.Max(left[0], right[0])) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(MathF.Max(left[i], right[i])) != BitConverter.SingleToInt32Bits(result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Max", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != Math.Max(left[0], right[0])", ["ValidateRemainingResults"] = "result[i] != Math.Max(left[i], right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Max", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != Math.Max(left[0], right[0])", ["ValidateRemainingResults"] = "result[i] != Math.Max(left[i], right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Min", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(Math.Min(left[0], right[0])) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(Math.Min(left[i], right[i])) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Min", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != Math.Min(left[0], right[0])", ["ValidateRemainingResults"] = "result[i] != Math.Min(left[i], right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Min", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != Math.Min(left[0], right[0])", ["ValidateRemainingResults"] = "result[i] != Math.Min(left[i], right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Min", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(MathF.Min(left[0], right[0])) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(MathF.Min(left[i], right[i])) != BitConverter.SingleToInt32Bits(result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Min", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != Math.Min(left[0], right[0])", ["ValidateRemainingResults"] = "result[i] != Math.Min(left[i], right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Min", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != Math.Min(left[0], right[0])", ["ValidateRemainingResults"] = "result[i] != Math.Min(left[i], right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Multiply", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(left[0] * right[0]) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(left[i] * right[i]) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Multiply", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(left[0] * right[0]) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(left[i] * right[i]) != BitConverter.SingleToInt32Bits(result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "MultiplyLow", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != BitConverter.ToInt32(BitConverter.GetBytes(((long)(left[0])) * right[0]), 0)", ["ValidateRemainingResults"] = "result[i] != BitConverter.ToInt32(BitConverter.GetBytes(((long)(left[i])) * right[i]), 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "MultiplyLow", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != BitConverter.ToUInt32(BitConverter.GetBytes(((ulong)(left[0])) * right[0]), 0)", ["ValidateRemainingResults"] = "result[i] != BitConverter.ToUInt32(BitConverter.GetBytes(((ulong)(left[i])) * right[i]), 0)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Or", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "(byte)(left[0] | right[0]) != result[0]", ["ValidateRemainingResults"] = "(byte)(left[i] | right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Or", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "(short)(left[0] | right[0]) != result[0]", ["ValidateRemainingResults"] = "(short)(left[i] | right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Or", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "(int)(left[0] | right[0]) != result[0]", ["ValidateRemainingResults"] = "(int)(left[i] | right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Or", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "(long)(left[0] | right[0]) != result[0]", ["ValidateRemainingResults"] = "(long)(left[i] | right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Or", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "(sbyte)(left[0] | right[0]) != result[0]", ["ValidateRemainingResults"] = "(sbyte)(left[i] | right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Or", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "(ushort)(left[0] | right[0]) != result[0]", ["ValidateRemainingResults"] = "(ushort)(left[i] | right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Or", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "(uint)(left[0] | right[0]) != result[0]", ["ValidateRemainingResults"] = "(uint)(left[i] | right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Or", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "(ulong)(left[0] | right[0]) != result[0]", ["ValidateRemainingResults"] = "(ulong)(left[i] | right[i]) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Permute2x64", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Imm"] = "85", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(firstOp[1])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(firstOp[((i / 2) * 2) + ((i & 1) == 0 ? 1 : 0)])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Permute4x32", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(firstOp[1])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(firstOp[((i / 4) * 4) + ((i & 3) == 0 ? 1 : 0)])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Permute4x64", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(firstOp[1])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(firstOp[((i / 4) * 4) + ((i & 3) == 0 ? 1 : 0)])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Permute4x64", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[1] != firstOp[0]", ["ValidateRemainingResults"] = "result[i] != firstOp[((i / 4) * 4) + ((i & 3) == 0 ? 1 : 0)]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Permute4x64", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[1] != firstOp[0]", ["ValidateRemainingResults"] = "result[i] != firstOp[((i / 4) * 4) + ((i & 3) == 0 ? 1 : 0)]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PermuteVar2x64", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(left[(right[0] >> 1) & 1])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(left[((i / 2) * 2) + ((right[i] >> 1) & 1)])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PermuteVar4x32", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(left[right[0] & 3])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(left[((i / 4) * 4) + (right[i] & 3)])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PermuteVar8x64", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != left[(right[0] & 7)]", ["ValidateRemainingResults"] = "result[i] != left[(right[i] & 7)]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PermuteVar8x64", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != left[(right[0] & 7)]", ["ValidateRemainingResults"] = "result[i] != left[(right[i] & 7)]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PermuteVar8x64", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(left[right[0] & 7])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(left[right[i] & 7])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PermuteVar8x64x2", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int64", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp3"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(((secondOp[0] & 15) <= 7) ? firstOp[secondOp[0] & 7] : thirdOp[secondOp[0] & 7])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(((secondOp[i] & 15) <= 7) ? firstOp[secondOp[i] & 7] : thirdOp[secondOp[i] & 7])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PermuteVar8x64x2", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int64", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (((secondOp[0] & 15) <= 7) ? firstOp[secondOp[0] & 7] : thirdOp[secondOp[0] & 7])", ["ValidateRemainingResults"] = "result[i] != (((secondOp[i] & 15) <= 7) ? firstOp[secondOp[i] & 7] : thirdOp[secondOp[i] & 7])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PermuteVar8x64x2", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp3"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (((secondOp[0] & 15) <= 7) ? firstOp[secondOp[0] & 7] : thirdOp[secondOp[0] & 7])", ["ValidateRemainingResults"] = "result[i] != (((secondOp[i] & 15) <= 7) ? firstOp[secondOp[i] & 7] : thirdOp[secondOp[i] & 7])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PermuteVar16x32", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != left[(right[0] & 15)]", ["ValidateRemainingResults"] = "result[i] != left[(right[i] & 15)]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PermuteVar16x32", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != left[(right[0] & 15)]", ["ValidateRemainingResults"] = "result[i] != left[(right[i] & 15)]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PermuteVar16x32", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(left[right[0] & 15])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(left[right[i] & 15])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PermuteVar16x32x2", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (((secondOp[0] & 31) <= 15) ? firstOp[secondOp[0] & 15] : thirdOp[secondOp[0] & 15])", ["ValidateRemainingResults"] = "result[i] != (((secondOp[i] & 31) <= 15) ? firstOp[secondOp[i] & 15] : thirdOp[secondOp[i] & 15])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PermuteVar16x32x2", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != (((secondOp[0] & 31) <= 15) ? firstOp[secondOp[0] & 15] : thirdOp[secondOp[0] & 15])", ["ValidateRemainingResults"] = "result[i] != (((secondOp[i] & 31) <= 15) ? firstOp[secondOp[i] & 15] : thirdOp[secondOp[i] & 15])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PermuteVar16x32x2", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(((secondOp[0] & 31) <= 15) ? firstOp[secondOp[0] & 15] : thirdOp[secondOp[0] & 15])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(((secondOp[i] & 31) <= 15) ? firstOp[secondOp[i] & 15] : thirdOp[secondOp[i] & 15])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Reciprocal14", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "Avx512Verify.ValidateReciprocal14(result[0], firstOp[0])", ["ValidateRemainingResults"] = "Avx512Verify.ValidateReciprocal14(result[i], firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Reciprocal14", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "Avx512Verify.ValidateReciprocal14(result[0], firstOp[0])", ["ValidateRemainingResults"] = "Avx512Verify.ValidateReciprocal14(result[i], firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Reciprocal14Scalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "Avx512Verify.ValidateReciprocal14(result[0], firstOp[0])", ["ValidateRemainingResults"] = "result[i] != firstOp[i]"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Reciprocal14Scalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "Avx512Verify.ValidateReciprocal14(result[0], firstOp[0])", ["ValidateRemainingResults"] = "result[i] != firstOp[i]"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ReciprocalSqrt14", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "Avx512Verify.ValidateReciprocalSqrt14(result[0], firstOp[0])", ["ValidateRemainingResults"] = "Avx512Verify.ValidateReciprocalSqrt14(result[i], firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ReciprocalSqrt14", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "Avx512Verify.ValidateReciprocalSqrt14(result[0], firstOp[0])", ["ValidateRemainingResults"] = "Avx512Verify.ValidateReciprocalSqrt14(result[i], firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ReciprocalSqrt14Scalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "Avx512Verify.ValidateReciprocalSqrt14(result[0], firstOp[0])", ["ValidateRemainingResults"] = "result[i] != firstOp[i]"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ReciprocalSqrt14Scalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "Avx512Verify.ValidateReciprocalSqrt14(result[0], firstOp[0])", ["ValidateRemainingResults"] = "result[i] != firstOp[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RotateLeft", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "int.RotateLeft(firstOp[0], 1) != result[0]", ["ValidateRemainingResults"] = "int.RotateLeft(firstOp[i], 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RotateLeft", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Imm"] = "32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RotateLeft", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "((firstOp[0] << 1) | (firstOp[0] >>> (64 - 1))) != result[0]", ["ValidateRemainingResults"] = "((firstOp[i] << 1) | (firstOp[i] >>> (64 - 1))) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RotateLeft", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Imm"] = "64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RotateLeft", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "uint.RotateLeft(firstOp[0], 1) != result[0]", ["ValidateRemainingResults"] = "uint.RotateLeft(firstOp[i], 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RotateLeft", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Imm"] = "32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RotateLeft", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "((firstOp[0] << 1) | (firstOp[0] >>> (64 - 1))) != result[0]", ["ValidateRemainingResults"] = "((firstOp[i] << 1) | (firstOp[i] >>> (64 - 1))) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RotateLeft", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Imm"] = "64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RotateLeftVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt32() & 31)", ["ValidateFirstResult"] = "int.RotateLeft(left[0], (int)(right[0])) != result[0]", ["ValidateRemainingResults"] = "int.RotateLeft(left[i], (int)(right[i])) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RotateLeftVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt32() & 31)", ["ValidateFirstResult"] = "uint.RotateLeft(left[0], (int)(right[0])) != result[0]", ["ValidateRemainingResults"] = "uint.RotateLeft(left[i], (int)(right[i])) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RotateLeftVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt64() & 63)", ["ValidateFirstResult"] = "long.RotateLeft(left[0], (int)(right[0])) != result[0]", ["ValidateRemainingResults"] = "long.RotateLeft(left[i], (int)(right[i])) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RotateLeftVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt64() & 63)", ["ValidateFirstResult"] = "ulong.RotateLeft(left[0], (int)(right[0])) != result[0]", ["ValidateRemainingResults"] = "ulong.RotateLeft(left[i], (int)(right[i])) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RotateRight", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "int.RotateRight(firstOp[0], 1) != result[0]", ["ValidateRemainingResults"] = "int.RotateRight(firstOp[i], 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RotateRight", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Imm"] = "32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RotateRight", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "((firstOp[0] >>> 1) | (firstOp[0] << (64 - 1))) != result[0]", ["ValidateRemainingResults"] = "((firstOp[i] >>> 1) | (firstOp[i] << (64 - 1))) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RotateRight", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Imm"] = "64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RotateRight", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "uint.RotateRight(firstOp[0], 1) != result[0]", ["ValidateRemainingResults"] = "uint.RotateRight(firstOp[i], 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RotateRight", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Imm"] = "32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RotateRight", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "((firstOp[0] >>> 1) | (firstOp[0] << (64 - 1))) != result[0]", ["ValidateRemainingResults"] = "((firstOp[i] >>> 1) | (firstOp[i] << (64 - 1))) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RotateRight", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Imm"] = "64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "firstOp[i] != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RotateRightVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt32() & 31)", ["ValidateFirstResult"] = "int.RotateRight(left[0], (int)(right[0])) != result[0]", ["ValidateRemainingResults"] = "int.RotateRight(left[i], (int)(right[i])) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RotateRightVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt32() & 31)", ["ValidateFirstResult"] = "uint.RotateRight(left[0], (int)(right[0])) != result[0]", ["ValidateRemainingResults"] = "uint.RotateRight(left[i], (int)(right[i])) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RotateRightVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt64() & 63)", ["ValidateFirstResult"] = "long.RotateRight(left[0], (int)(right[0])) != result[0]", ["ValidateRemainingResults"] = "long.RotateRight(left[i], (int)(right[i])) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RotateRightVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt64() & 63)", ["ValidateFirstResult"] = "ulong.RotateRight(left[0], (int)(right[0])) != result[0]", ["ValidateRemainingResults"] = "ulong.RotateRight(left[i], (int)(right[i])) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Imm"] = "4", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(Math.Round(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(Math.Round(firstOp[i]))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Imm"] = "4", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(MathF.Round(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(MathF.Round(firstOp[i]))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Imm"] = "0", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(Math.Round(firstOp[0], MidpointRounding.AwayFromZero))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(Math.Round(firstOp[i], MidpointRounding.AwayFromZero))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Imm"] = "0", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(MathF.Round(firstOp[0], MidpointRounding.AwayFromZero))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(MathF.Round(firstOp[i], MidpointRounding.AwayFromZero))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(Math.Floor(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(Math.Floor(firstOp[i]))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(MathF.Floor(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(MathF.Floor(firstOp[i]))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Imm"] = "2", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(Math.Ceiling(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(Math.Ceiling(firstOp[i]))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Imm"] = "2", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(MathF.Ceiling(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(MathF.Ceiling(firstOp[i]))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Imm"] = "3", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits((firstOp[0] > 0) ? Math.Floor(firstOp[0]) : Math.Ceiling(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits((firstOp[i] > 0) ? Math.Floor(firstOp[i]) : Math.Ceiling(firstOp[i]))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RoundScale", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Imm"] = "3", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits((firstOp[0] > 0) ? MathF.Floor(firstOp[0]) : MathF.Ceiling(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits((firstOp[i] > 0) ? MathF.Floor(firstOp[i]) : MathF.Ceiling(firstOp[i]))"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RoundScaleScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Imm"] = "4", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(Math.Round(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(firstOp[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RoundScaleScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Imm"] = "4", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(MathF.Round(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(firstOp[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RoundScaleScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Imm"] = "0", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(Math.Round(firstOp[0], MidpointRounding.AwayFromZero))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(firstOp[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RoundScaleScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Imm"] = "0", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(MathF.Round(firstOp[0], MidpointRounding.AwayFromZero))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(firstOp[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RoundScaleScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Imm"] = "1", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(Math.Floor(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(firstOp[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RoundScaleScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Imm"] = "1", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(MathF.Floor(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(firstOp[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RoundScaleScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Imm"] = "2", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(Math.Ceiling(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(firstOp[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RoundScaleScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Imm"] = "2", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(MathF.Ceiling(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(firstOp[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RoundScaleScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Imm"] = "3", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits((firstOp[0] > 0) ? Math.Floor(firstOp[0]) : Math.Ceiling(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(firstOp[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "RoundScaleScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Imm"] = "3", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits((firstOp[0] > 0) ? MathF.Floor(firstOp[0]) : MathF.Ceiling(firstOp[0]))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(firstOp[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Scale", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "(double)(TestLibrary.Generator.GetByte())", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(double.ScaleB(left[0], (int)double.Floor(right[0])))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(double.ScaleB(left[i], (int)double.Floor(right[i])))"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Scale", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "(float)(TestLibrary.Generator.GetByte())", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(float.ScaleB(left[0], (int)float.Floor(right[0])))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(float.ScaleB(left[i], (int)float.Floor(right[i])))"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ScaleScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "(double)(TestLibrary.Generator.GetByte())", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(double.ScaleB(left[0], (int)double.Floor(right[0])))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(left[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ScaleScalar", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "(float)(TestLibrary.Generator.GetByte())", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(float.ScaleB(left[0], (int)float.Floor(right[0])))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(left[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftLeftLogical", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "(int)(firstOp[0] << 1) != result[0]", ["ValidateRemainingResults"] = "(int)(firstOp[i] << 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftLeftLogical", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Imm"] = "32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "0 != result[0]", ["ValidateRemainingResults"] = "0 != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftLeftLogical", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "(long)(firstOp[0] << 1) != result[0]", ["ValidateRemainingResults"] = "(long)(firstOp[i] << 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftLeftLogical", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Imm"] = "64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "0 != result[0]", ["ValidateRemainingResults"] = "0 != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftLeftLogical", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "(uint)(firstOp[0] << 1) != result[0]", ["ValidateRemainingResults"] = "(uint)(firstOp[i] << 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftLeftLogical", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Imm"] = "32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "0 != result[0]", ["ValidateRemainingResults"] = "0!= result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftLeftLogical", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "(ulong)(firstOp[0] << 1) != result[0]", ["ValidateRemainingResults"] = "(ulong)(firstOp[i] << 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftLeftLogical", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Imm"] = "64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "0 != result[0]", ["ValidateRemainingResults"] = "0 != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftLeftLogicalVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt32() & 31)", ["ValidateFirstResult"] = "(left[0] << (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(left[i] << (int)right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftLeftLogicalVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt32() & 31)", ["ValidateFirstResult"] = "(left[0] << (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(left[i] << (int)right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftLeftLogicalVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt64() & 63)", ["ValidateFirstResult"] = "(left[0] << (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(left[i] << (int)right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftLeftLogicalVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt64() & 63)", ["ValidateFirstResult"] = "(left[0] << (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(left[i] << (int)right[i]) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightArithmetic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "(int)(firstOp[0] >> 1) != result[0]", ["ValidateRemainingResults"] = "(int)(firstOp[i] >> 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightArithmetic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Imm"] = "32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "(int)(firstOp[0] >> 31) != result[0]", ["ValidateRemainingResults"] = "(int)(firstOp[i] >> 31) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightArithmetic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "(long)(firstOp[0] >> 1) != result[0]", ["ValidateRemainingResults"] = "(long)(firstOp[i] >> 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightArithmetic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Imm"] = "64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "(long)(firstOp[0] >> 63) != result[0]", ["ValidateRemainingResults"] = "(long)(firstOp[i] >> 63) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightArithmeticVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt32() & 31)", ["ValidateFirstResult"] = "(left[0] >> (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(left[i] >> (int)right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightArithmeticVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt64() & 63)", ["ValidateFirstResult"] = "(left[0] >> (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(left[i] >> (int)right[i]) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightLogical", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "(int)(firstOp[0] >> 1) != result[0]", ["ValidateRemainingResults"] = "(int)(firstOp[i] >> 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightLogical", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Imm"] = "32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "0 != result[0]", ["ValidateRemainingResults"] = "0 != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightLogical", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "(long)(firstOp[0] >> 1) != result[0]", ["ValidateRemainingResults"] = "(long)(firstOp[i] >> 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightLogical", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Imm"] = "64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "0 != result[0]", ["ValidateRemainingResults"] = "0 != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightLogical", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "(uint)(firstOp[0] >> 1) != result[0]", ["ValidateRemainingResults"] = "(uint)(firstOp[i] >> 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightLogical", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Imm"] = "32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "0 != result[0]", ["ValidateRemainingResults"] = "0!= result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightLogical", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "(ulong)(firstOp[0] >> 1) != result[0]", ["ValidateRemainingResults"] = "(ulong)(firstOp[i] >> 1) != result[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightLogical", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Imm"] = "64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "0 != result[0]", ["ValidateRemainingResults"] = "0 != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightLogicalVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt32() & 31)", ["ValidateFirstResult"] = "(left[0] >>> (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(left[i] >>> (int)right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightLogicalVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt32() & 31)", ["ValidateFirstResult"] = "(left[0] >>> (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(left[i] >>> (int)right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightLogicalVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt64() & 63)", ["ValidateFirstResult"] = "(left[0] >>> (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(left[i] >>> (int)right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ShiftRightLogicalVariable", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "(TestLibrary.Generator.GetUInt64() & 63)", ["ValidateFirstResult"] = "(left[0] >>> (int)right[0]) != result[0]", ["ValidateRemainingResults"] = "(left[i] >>> (int)right[i]) != result[i]"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Shuffle", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Imm"] = "17", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(left[1])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[7]) != BitConverter.SingleToInt32Bits(right[4])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Shuffle", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Imm"] = "85", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(left[1])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[3]) != BitConverter.DoubleToInt64Bits(right[2])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Shuffle", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != firstOp[1]", ["ValidateRemainingResults"] = "result[i] != firstOp[((i / 4) * 4) + ((i & 3) != 0 ? 0 : 1)]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Shuffle", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != firstOp[1]", ["ValidateRemainingResults"] = "result[i] != firstOp[((i / 4) * 4) + ((i & 3) != 0 ? 0 : 1)]"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Shuffle4x128", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Imm"] = "2", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(Avx512Verify.Shuffle4x128(left, right, 2, 0))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(Avx512Verify.Shuffle4x128(left, right, 2, i))"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Shuffle4x128", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Imm"] = "2", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.Shuffle4x128(left, right, 2, 0)", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.Shuffle4x128(left, right, 2, i)"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Shuffle4x128", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int64", ["Imm"] = "2", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.Shuffle4x128(left, right, 2, 0)", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.Shuffle4x128(left, right, 2, i)"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Shuffle4x128", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Imm"] = "2", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(Avx512Verify.Shuffle4x128(left, right, 2, 0))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(Avx512Verify.Shuffle4x128(left, right, 2, i))"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Shuffle4x128", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["Imm"] = "2", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.Shuffle4x128(left, right, 2, 0)", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.Shuffle4x128(left, right, 2, i)"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Shuffle4x128", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["Imm"] = "2", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.Shuffle4x128(left, right, 2, 0)", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.Shuffle4x128(left, right, 2, i)"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Subtract", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(left[0] - right[0]) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(left[i] - right[i]) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Subtract", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "(int)(left[0] - right[0]) != result[0]", ["ValidateRemainingResults"] = "(int)(left[i] - right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Subtract", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "(long)(left[0] - right[0]) != result[0]", ["ValidateRemainingResults"] = "(long)(left[i] - right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Subtract", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(left[0] - right[0]) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(left[i] - right[i]) != BitConverter.SingleToInt32Bits(result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Subtract", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "(uint)(left[0] - right[0]) != result[0]", ["ValidateRemainingResults"] = "(uint)(left[i] - right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Subtract", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "(ulong)(left[0] - right[0]) != result[0]", ["ValidateRemainingResults"] = "(ulong)(left[i] - right[i]) != result[i]"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Byte", ["Imm"] = "30", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["NextValueOp3"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ (op2[0] | op3[0]))", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ (op2[i] | op3[i]))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["Imm"] = "30", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp3"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != (BitConverter.DoubleToInt64Bits(op1[0]) ^ (BitConverter.DoubleToInt64Bits(op2[0]) | BitConverter.DoubleToInt64Bits(op3[0])))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != (BitConverter.DoubleToInt64Bits(op1[i]) ^ (BitConverter.DoubleToInt64Bits(op2[i]) | BitConverter.DoubleToInt64Bits(op3[i])))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int16", ["Imm"] = "30", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ (op2[0] | op3[0]))", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ (op2[i] | op3[i]))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", ["Imm"] = "30", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ (op2[0] | op3[0]))", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ (op2[i] | op3[i]))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* A */ ["Imm"] = "240", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != op1[0]", ["ValidateRemainingResults"] = "result[i] != op1[i]"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* B */ ["Imm"] = "204", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != op2[0]", ["ValidateRemainingResults"] = "result[i] != op2[i]"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* C */ ["Imm"] = "170", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != op3[0]", ["ValidateRemainingResults"] = "result[i] != op3[i]"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* True */ ["Imm"] = "255", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != -1", ["ValidateRemainingResults"] = "result[i] != -1"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* False */ ["Imm"] = "0", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != 0", ["ValidateRemainingResults"] = "result[i] != 0"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* ~A */ ["Imm"] = "15", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~op1[0]", ["ValidateRemainingResults"] = "result[i] != ~op1[i]"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* ~B */ ["Imm"] = "51", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~op2[0]", ["ValidateRemainingResults"] = "result[i] != ~op2[i]"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* ~C */ ["Imm"] = "85", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~op3[0]", ["ValidateRemainingResults"] = "result[i] != ~op3[i]"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* ~A & B */ ["Imm"] = "12", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op1[0] & op2[0])", ["ValidateRemainingResults"] = "result[i] != (~op1[i] & op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* ~A & C */ ["Imm"] = "10", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op1[0] & op3[0])", ["ValidateRemainingResults"] = "result[i] != (~op1[i] & op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* ~B & A */ ["Imm"] = "48", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op2[0] & op1[0])", ["ValidateRemainingResults"] = "result[i] != (~op2[i] & op1[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* ~B & C */ ["Imm"] = "34", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op2[0] & op3[0])", ["ValidateRemainingResults"] = "result[i] != (~op2[i] & op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* ~C & A */ ["Imm"] = "80", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op3[0] & op1[0])", ["ValidateRemainingResults"] = "result[i] != (~op3[i] & op1[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* ~C & B */ ["Imm"] = "68", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op3[0] & op2[0])", ["ValidateRemainingResults"] = "result[i] != (~op3[i] & op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* ~A | B */ ["Imm"] = "207", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op1[0] | op2[0])", ["ValidateRemainingResults"] = "result[i] != (~op1[i] | op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* ~A | C */ ["Imm"] = "175", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op1[0] | op3[0])", ["ValidateRemainingResults"] = "result[i] != (~op1[i] | op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* ~B | A */ ["Imm"] = "243", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op2[0] | op1[0])", ["ValidateRemainingResults"] = "result[i] != (~op2[i] | op1[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* ~B | C */ ["Imm"] = "187", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op2[0] | op3[0])", ["ValidateRemainingResults"] = "result[i] != (~op2[i] | op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* ~C | A */ ["Imm"] = "245", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op3[0] | op1[0])", ["ValidateRemainingResults"] = "result[i] != (~op3[i] | op1[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* ~C | B */ ["Imm"] = "221", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (~op3[0] | op2[0])", ["ValidateRemainingResults"] = "result[i] != (~op3[i] | op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* A & B */ ["Imm"] = "192", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op1[0] & op2[0])", ["ValidateRemainingResults"] = "result[i] != (op1[i] & op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* A & C */ ["Imm"] = "160", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op1[0] & op3[0])", ["ValidateRemainingResults"] = "result[i] != (op1[i] & op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* B & C */ ["Imm"] = "136", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op2[0] & op3[0])", ["ValidateRemainingResults"] = "result[i] != (op2[i] & op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* ~(A & B) */ ["Imm"] = "63", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op1[0] & op2[0])", ["ValidateRemainingResults"] = "result[i] != ~(op1[i] & op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* ~(A & C) */ ["Imm"] = "95", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op1[0] & op3[0])", ["ValidateRemainingResults"] = "result[i] != ~(op1[i] & op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* ~(B & C) */ ["Imm"] = "119", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op2[0] & op3[0])", ["ValidateRemainingResults"] = "result[i] != ~(op2[i] & op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* A | B */ ["Imm"] = "252", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op1[0] | op2[0])", ["ValidateRemainingResults"] = "result[i] != (op1[i] | op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* A | C */ ["Imm"] = "250", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op1[0] | op3[0])", ["ValidateRemainingResults"] = "result[i] != (op1[i] | op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* B | C */ ["Imm"] = "238", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op2[0] | op3[0])", ["ValidateRemainingResults"] = "result[i] != (op2[i] | op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* ~(A | B) */ ["Imm"] = "3", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op1[0] | op2[0])", ["ValidateRemainingResults"] = "result[i] != ~(op1[i] | op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* ~(A | C) */ ["Imm"] = "5", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op1[0] | op3[0])", ["ValidateRemainingResults"] = "result[i] != ~(op1[i] | op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* ~(B | C) */ ["Imm"] = "17", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op2[0] | op3[0])", ["ValidateRemainingResults"] = "result[i] != ~(op2[i] | op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* A ^ B */ ["Imm"] = "60", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ op2[0])", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* A ^ C */ ["Imm"] = "90", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ op3[0])", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* B ^ C */ ["Imm"] = "102", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != (op2[0] ^ op3[0])", ["ValidateRemainingResults"] = "result[i] != (op2[i] ^ op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* ~(A ^ B) */ ["Imm"] = "195", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op1[0] ^ op2[0])", ["ValidateRemainingResults"] = "result[i] != ~(op1[i] ^ op2[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* ~(A ^ C) */ ["Imm"] = "165", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op1[0] ^ op3[0])", ["ValidateRemainingResults"] = "result[i] != ~(op1[i] ^ op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int32", /* ~(B ^ C) */ ["Imm"] = "153", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != ~(op2[0] ^ op3[0])", ["ValidateRemainingResults"] = "result[i] != ~(op2[i] ^ op3[i])"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int64", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Int64", ["Imm"] = "30", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ (op2[0] | op3[0]))", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ (op2[i] | op3[i]))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "SByte", ["Imm"] = "30", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp3"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ (op2[0] | op3[0]))", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ (op2[i] | op3[i]))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["Imm"] = "30", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp3"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != (BitConverter.SingleToInt32Bits(op1[0]) ^ (BitConverter.SingleToInt32Bits(op2[0]) | BitConverter.SingleToInt32Bits(op3[0])))", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != (BitConverter.SingleToInt32Bits(op1[i]) ^ (BitConverter.SingleToInt32Bits(op2[i]) | BitConverter.SingleToInt32Bits(op3[i])))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "UInt16", ["Imm"] = "30", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp3"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ (op2[0] | op3[0]))", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ (op2[i] | op3[i]))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "UInt32", ["Imm"] = "30", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp3"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ (op2[0] | op3[0]))", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ (op2[i] | op3[i]))"}), + ("ImmTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "TernaryLogic", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "UInt64", ["Imm"] = "30", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp3"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (op1[0] ^ (op2[0] | op3[0]))", ["ValidateRemainingResults"] = "result[i] != (op1[i] ^ (op2[i] | op3[i]))"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Xor", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "(byte)(left[0] ^ right[0]) != result[0]", ["ValidateRemainingResults"] = "(byte)(left[i] ^ right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Xor", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateFirstResult"] = "(short)(left[0] ^ right[0]) != result[0]", ["ValidateRemainingResults"] = "(short)(left[i] ^ right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Xor", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "(int)(left[0] ^ right[0]) != result[0]", ["ValidateRemainingResults"] = "(int)(left[i] ^ right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Xor", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "(long)(left[0] ^ right[0]) != result[0]", ["ValidateRemainingResults"] = "(long)(left[i] ^ right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Xor", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "(sbyte)(left[0] ^ right[0]) != result[0]", ["ValidateRemainingResults"] = "(sbyte)(left[i] ^ right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Xor", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateFirstResult"] = "(ushort)(left[0] ^ right[0]) != result[0]", ["ValidateRemainingResults"] = "(ushort)(left[i] ^ right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Xor", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "(uint)(left[0] ^ right[0]) != result[0]", ["ValidateRemainingResults"] = "(uint)(left[i] ^ right[i]) != result[i]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Xor", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "(ulong)(left[0] ^ right[0]) != result[0]", ["ValidateRemainingResults"] = "(ulong)(left[i] ^ right[i]) != result[i]"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Add", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Add", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Add", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Add", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Add", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Add", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Subtract", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Subtract", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Subtract", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Subtract", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Subtract", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Subtract", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Multiply", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Multiply", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Multiply", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Multiply", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Multiply", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Multiply", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Divide", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Divide", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Divide", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Divide", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Divide", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Divide", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Scale", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Scale", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Scale", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Scale", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Scale", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleBinOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Scale", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Sqrt", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "BitConverter.DoubleToUInt64Bits", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Sqrt", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "BitConverter.DoubleToUInt64Bits", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Sqrt", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "BitConverter.DoubleToUInt64Bits", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Sqrt", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "BitConverter.SingleToUInt32Bits", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Sqrt", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "BitConverter.SingleToUInt32Bits", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Sqrt", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "BitConverter.SingleToUInt32Bits", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256Int32", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "(ulong)", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256Int32", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "(ulong)", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256Int32", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "(ulong)", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Single", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["CastingMethod"] = "BitConverter.SingleToUInt32Bits", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Single", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["CastingMethod"] = "BitConverter.SingleToUInt32Bits", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Single", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["CastingMethod"] = "BitConverter.SingleToUInt32Bits", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256Single", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "BitConverter.SingleToUInt32Bits", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256Single", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "BitConverter.SingleToUInt32Bits", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256Single", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "BitConverter.SingleToUInt32Bits", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Int32", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "(ulong)", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Int32", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "(ulong)", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Int32", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "(ulong)", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512UInt32", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "(ulong)", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512UInt32", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "(ulong)", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512UInt32", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "(ulong)", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256UInt32", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "(ulong)", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256UInt32", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "(ulong)", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256UInt32", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "(ulong)", ["FixedInput"] = "29.37"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplyAdd", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplyAdd", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplyAdd", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplyAdd", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplyAdd", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplyAdd", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplyAddNegated", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplyAddNegated", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplyAddNegated", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplyAddNegated", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplyAddNegated", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplyAddNegated", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplyAddSubtract", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplyAddSubtract", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplyAddSubtract", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplyAddSubtract", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplyAddSubtract", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplyAddSubtract", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplySubtract", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplySubtract", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplySubtract", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplySubtract", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplySubtract", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplySubtract", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplySubtractAdd", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplySubtractAdd", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplySubtractAdd", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplySubtractAdd", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplySubtractAdd", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplySubtractAdd", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplySubtractNegated", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplySubtractNegated", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplySubtractNegated", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "DoubleToUInt64Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplySubtractNegated", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplySubtractNegated", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), + ("SimpleTernOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "FusedMultiplySubtractNegated", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "SingleToUInt32Bits", ["FixedInput1"] = "0.05", ["FixedInput2"] = "0.45", ["FixedInput3"] = "0.75"}), +}; + +(string templateFileName, Dictionary templateData)[] Avx10v1_V512_Avx512DQInputs = new [] +{ + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "And", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "(BitConverter.DoubleToInt64Bits(left[0]) & BitConverter.DoubleToInt64Bits(right[0])) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "(BitConverter.DoubleToInt64Bits(left[i]) & BitConverter.DoubleToInt64Bits(right[i])) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "And", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "(BitConverter.SingleToInt32Bits(left[0]) & BitConverter.SingleToInt32Bits(right[0])) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "(BitConverter.SingleToInt32Bits(left[i]) & BitConverter.SingleToInt32Bits(right[i])) != BitConverter.SingleToInt32Bits(result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AndNot", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "((~BitConverter.DoubleToInt64Bits(left[0])) & BitConverter.DoubleToInt64Bits(right[0])) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "((~BitConverter.DoubleToInt64Bits(left[i])) & BitConverter.DoubleToInt64Bits(right[i])) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "AndNot", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "((~BitConverter.SingleToInt32Bits(left[0])) & BitConverter.SingleToInt32Bits(right[0])) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "((~BitConverter.SingleToInt32Bits(left[i])) & BitConverter.SingleToInt32Bits(right[i])) != BitConverter.SingleToInt32Bits(result[i])"}), + ("BroadcastTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "BroadcastPairScalarToVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "(result[i] != firstOp[i & 1])"}), + ("BroadcastTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "BroadcastPairScalarToVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "(result[i] != firstOp[i & 1])"}), + ("BroadcastTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "BroadcastPairScalarToVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(firstOp[0]) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "(BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(firstOp[i & 1]))"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "BroadcastVector128ToVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "result[i] != firstOp[i & 1]"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "BroadcastVector128ToVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "result[i] != firstOp[i & 1]"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "BroadcastVector128ToVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(firstOp[0]) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(firstOp[i & 1])"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "BroadcastVector256ToVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "result[i] != firstOp[i & 7]"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "BroadcastVector256ToVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "firstOp[0] != result[0]", ["ValidateRemainingResults"] = "result[i] != firstOp[i & 7]"}), + ("LoadUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["Method"] = "BroadcastVector256ToVector512", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(firstOp[0]) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(firstOp[i & 7])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256Single", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(firstOp[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256Single", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "(TestLibrary.Generator.GetUInt64() & 0x7FFF_FFFF_FFFF_FFFFUL)", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(firstOp[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Double", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(firstOp[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Double", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "(TestLibrary.Generator.GetUInt64() & 0x7FFF_FFFF_FFFF_FFFFUL)", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(firstOp[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Int64", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != (long)double.Round(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (long)double.Round(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Int64", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != (long)float.Round(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (long)float.Round(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Int64WithTruncation", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != (long)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (long)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Int64WithTruncation", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != (long)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (long)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512UInt64", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != (ulong)double.Round(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (ulong)double.Round(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512UInt64", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != (ulong)float.Round(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != (ulong)float.Round(firstOp[i])"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512UInt64WithTruncation", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "result[0] != (ulong)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (ulong)firstOp[i]"}), + ("SimpleUnOpConvTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512UInt64WithTruncation", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "result[0] != (ulong)firstOp[0]", ["ValidateRemainingResults"] = "result[i] != (ulong)firstOp[i]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector128", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(firstOp[2])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(firstOp[i+2])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector128", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != firstOp[2]", ["ValidateRemainingResults"] = "result[i] != firstOp[i+2]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector128", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != firstOp[2]", ["ValidateRemainingResults"] = "result[i] != firstOp[i+2]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector256", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(firstOp[8])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != BitConverter.SingleToInt32Bits(firstOp[i+8])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector256", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != firstOp[8]", ["ValidateRemainingResults"] = "result[i] != firstOp[i+8]"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ExtractVector256", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != firstOp[8]", ["ValidateRemainingResults"] = "result[i] != firstOp[i+8]"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector128", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Int64", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != left[0]", ["ValidateRemainingResults"] = "result[i] != (((i < 2) || (i > 3)) ? left[i] : right[i-2])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector128", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "UInt64", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != left[0]", ["ValidateRemainingResults"] = "result[i] != (((i < 2) || (i > 3)) ? left[i] : right[i-2])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector128", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(result[0]) != BitConverter.DoubleToInt64Bits(left[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(result[i]) != BitConverter.DoubleToInt64Bits(((i < 2) || (i > 3)) ? left[i] : right[i-2])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector256", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Int32", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != left[0]", ["ValidateRemainingResults"] = "result[i] != (i < 8 ? left[i] : right[i-8])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector256", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "UInt32", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != left[0]", ["ValidateRemainingResults"] = "result[i] != (i < 8 ? left[i] : right[i-8])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "InsertVector256", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector256", ["Op2BaseType"] = "Single", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(result[0]) != BitConverter.SingleToInt32Bits(left[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(result[i]) != (i < 8 ? BitConverter.SingleToInt32Bits(left[i]) : BitConverter.SingleToInt32Bits(right[i-8]))"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "MultiplyLow", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != (long)(((Int128)(left[0])) * right[0])", ["ValidateRemainingResults"] = "result[i] != (long)(((Int128)(left[i])) * right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "MultiplyLow", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != (ulong)(((UInt128)(left[0])) * right[0])", ["ValidateRemainingResults"] = "result[i] != (ulong)(((UInt128)(left[i])) * right[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Or", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "(BitConverter.DoubleToInt64Bits(left[0]) | BitConverter.DoubleToInt64Bits(right[0])) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "(BitConverter.DoubleToInt64Bits(left[i]) | BitConverter.DoubleToInt64Bits(right[i])) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Or", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "(BitConverter.SingleToInt32Bits(left[0]) | BitConverter.SingleToInt32Bits(right[0])) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "(BitConverter.SingleToInt32Bits(left[i]) | BitConverter.SingleToInt32Bits(right[i])) != BitConverter.SingleToInt32Bits(result[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Range", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Imm"] = "0", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(double.MinNumber(left[0], right[0])) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(double.MinNumber(left[i], right[i])) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Range", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Imm"] = "0", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(float.MinNumber(left[0], right[0])) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(float.MinNumber(left[i], right[i])) != BitConverter.SingleToInt32Bits(result[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Range", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(double.MaxNumber(left[0], right[0])) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(double.MaxNumber(left[i], right[i])) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("ImmBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Range", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["Imm"] = "1", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(float.MaxNumber(left[0], right[0])) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(float.MaxNumber(left[i], right[i])) != BitConverter.SingleToInt32Bits(result[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Reduce", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Imm"] = "0", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(Avx512Verify.Reduce(firstOp[0], 0)) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(Avx512Verify.Reduce(firstOp[i], 0)) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Reduce", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Imm"] = "0", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(Avx512Verify.Reduce(firstOp[0], 0)) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(Avx512Verify.Reduce(firstOp[i], 0)) != BitConverter.SingleToInt32Bits(result[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Reduce", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Imm"] = "16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(Avx512Verify.Reduce(firstOp[0], 1)) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(Avx512Verify.Reduce(firstOp[i], 1)) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("ImmUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Reduce", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Imm"] = "16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "BitConverter.SingleToInt32Bits(Avx512Verify.Reduce(firstOp[0], 1)) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "BitConverter.SingleToInt32Bits(Avx512Verify.Reduce(firstOp[i], 1)) != BitConverter.SingleToInt32Bits(result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Xor", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "(BitConverter.DoubleToInt64Bits(left[0]) ^ BitConverter.DoubleToInt64Bits(right[0])) != BitConverter.DoubleToInt64Bits(result[0])", ["ValidateRemainingResults"] = "(BitConverter.DoubleToInt64Bits(left[i]) ^ BitConverter.DoubleToInt64Bits(right[i])) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "Xor", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateFirstResult"] = "(BitConverter.SingleToInt32Bits(left[0]) ^ BitConverter.SingleToInt32Bits(right[0])) != BitConverter.SingleToInt32Bits(result[0])", ["ValidateRemainingResults"] = "(BitConverter.SingleToInt32Bits(left[i]) ^ BitConverter.SingleToInt32Bits(right[i])) != BitConverter.SingleToInt32Bits(result[i])"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256Single", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["CastingMethod"] = "BitConverter.SingleToUInt32Bits", ["FixedInput"] = "10"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256Single", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["CastingMethod"] = "BitConverter.SingleToUInt32Bits", ["FixedInput"] = "10"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256Single", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["CastingMethod"] = "BitConverter.SingleToUInt32Bits", ["FixedInput"] = "10"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256Single", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["CastingMethod"] = "BitConverter.SingleToUInt32Bits", ["FixedInput"] = "10"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256Single", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["CastingMethod"] = "BitConverter.SingleToUInt32Bits", ["FixedInput"] = "10"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector256Single", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector256", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["CastingMethod"] = "BitConverter.SingleToUInt32Bits", ["FixedInput"] = "10"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Double", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["CastingMethod"] = "BitConverter.DoubleToUInt64Bits", ["FixedInput"] = "10"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Double", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["CastingMethod"] = "BitConverter.DoubleToUInt64Bits", ["FixedInput"] = "10"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Double", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["CastingMethod"] = "BitConverter.DoubleToUInt64Bits", ["FixedInput"] = "10"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Double", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["CastingMethod"] = "BitConverter.DoubleToUInt64Bits", ["FixedInput"] = "10"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Double", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["CastingMethod"] = "BitConverter.DoubleToUInt64Bits", ["FixedInput"] = "10"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Double", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["CastingMethod"] = "BitConverter.DoubleToUInt64Bits", ["FixedInput"] = "10"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Int64", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "(ulong)", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Int64", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "(ulong)", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Int64", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "(ulong)", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Int64", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "(ulong)", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Int64", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "(ulong)", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512Int64", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "(ulong)", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512UInt64", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "(ulong)", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512UInt64", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "(ulong)", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512UInt64", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["CastingMethod"] = "(ulong)", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512UInt64", ["RoundingMode"] = "ToNegativeInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "(ulong)", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512UInt64", ["RoundingMode"] = "ToPositiveInfinity", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "(ulong)", ["FixedInput"] = "29.37"}), + ("SimpleUnaryOpEmbRounding.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "ConvertToVector512UInt64", ["RoundingMode"] = "ToZero", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector256", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["CastingMethod"] = "(ulong)", ["FixedInput"] = "29.37"}), +}; + +(string templateFileName, Dictionary templateData)[] Avx10v1_V512_Avx512VbmiInputs = new [] +{ + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PermuteVar64x8", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != left[(right[0] & 63)]", ["ValidateRemainingResults"] = "result[i] != left[(right[i] & 63)]"}), + ("SimpleBinOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PermuteVar64x8", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != left[(right[0] & 63)]", ["ValidateRemainingResults"] = "result[i] != left[(right[i] & 63)]"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PermuteVar64x8x2", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "Byte", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["NextValueOp3"] = "TestLibrary.Generator.GetByte()", ["ValidateFirstResult"] = "result[0] != (((secondOp[0] & 127) <= 63) ? firstOp[secondOp[0] & 63] : thirdOp[secondOp[0] & 63])", ["ValidateRemainingResults"] = "result[i] != (((secondOp[i] & 127) <= 63) ? firstOp[secondOp[i] & 63] : thirdOp[secondOp[i] & 63])"}), + ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "PermuteVar64x8x2", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector512", ["Op2BaseType"] = "SByte", ["Op3VectorType"] = "Vector512", ["Op3BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp3"] = "TestLibrary.Generator.GetSByte()", ["ValidateFirstResult"] = "result[0] != (((secondOp[0] & 127) <= 63) ? firstOp[secondOp[0] & 63] : thirdOp[secondOp[0] & 63])", ["ValidateRemainingResults"] = "result[i] != (((secondOp[i] & 127) <= 63) ? firstOp[secondOp[i] & 63] : thirdOp[secondOp[i] & 63])"}), +}; + +(string templateFileName, Dictionary templateData)[] Avx10v1_V512_Avx512CDInputs = new [] +{ + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "DetectConflicts", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.DetectConflicts(firstOp, 0)", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.DetectConflicts(firstOp, i)"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "DetectConflicts", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.DetectConflicts(firstOp, 0)", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.DetectConflicts(firstOp, i)"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "DetectConflicts", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.DetectConflicts(firstOp, 0)", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.DetectConflicts(firstOp, i)"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "DetectConflicts", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != Avx512Verify.DetectConflicts(firstOp, 0)", ["ValidateRemainingResults"] = "result[i] != Avx512Verify.DetectConflicts(firstOp, i)"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "LeadingZeroCount", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["ValidateFirstResult"] = "result[0] != int.LeadingZeroCount(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != int.LeadingZeroCount(firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "LeadingZeroCount", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["ValidateFirstResult"] = "result[0] != long.LeadingZeroCount(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != long.LeadingZeroCount(firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "LeadingZeroCount", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateFirstResult"] = "result[0] != uint.LeadingZeroCount(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != uint.LeadingZeroCount(firstOp[i])"}), + ("SimpleUnOpTest.template", new Dictionary { ["Isa"] = "Avx10v1.V512", ["LoadIsa"] = "Avx10v1.V512", ["Method"] = "LeadingZeroCount", ["RetVectorType"] = "Vector512", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector512", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateFirstResult"] = "result[0] != ulong.LeadingZeroCount(firstOp[0])", ["ValidateRemainingResults"] = "result[i] != ulong.LeadingZeroCount(firstOp[i])"}), +}; + (string templateFileName, Dictionary templateData)[] Fma_Vector128Inputs = new [] { ("SimpleTernOpTest.template", new Dictionary { ["Isa"] = "Fma", ["LoadIsa"] = "Sse2", ["Method"] = "MultiplyAdd", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["Op3VectorType"] = "Vector128", ["Op3BaseType"] = "Double", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp3"] = "TestLibrary.Generator.GetDouble()", ["ValidateFirstResult"] = "BitConverter.DoubleToInt64Bits(Math.Round(double.FusedMultiplyAdd(firstOp[0], secondOp[0], thirdOp[0]), 9)) != BitConverter.DoubleToInt64Bits(Math.Round(result[0], 9))", ["ValidateRemainingResults"] = "BitConverter.DoubleToInt64Bits(Math.Round(double.FusedMultiplyAdd(firstOp[i], secondOp[i], thirdOp[i]), 9)) != BitConverter.DoubleToInt64Bits(Math.Round(result[i], 9))"}), @@ -2757,6 +4123,22 @@ bool isImmTemplate(string name) string outputDirectory = args[2]; string testListFileName = args[3]; +ProcessInputs("Avx10v1_Avx512F_VL_Vector128", Avx10v1_Avx512F_VL_Vector128Inputs); +ProcessInputs("Avx10v1_Avx512BW_VL_Vector128", Avx10v1_Avx512BW_VL_Vector128Inputs); +ProcessInputs("Avx10v1_Avx512DQ_VL_Vector128", Avx10v1_Avx512DQ_VL_Vector128Inputs); +ProcessInputs("Avx10v1_Avx512F_ScalarUpper", Avx10v1_Avx512F_ScalarUpperInputs); +// ProcessInputs("Avx10v1_Avx512CD_VL_Vector128", Avx10v1_Avx512CD_VL_Vector128Inputs); +ProcessInputs("Avx10v1_Avx512Vbmi_VL_Vector128", Avx10v1_Avx512Vbmi_VL_Vector128Inputs); +ProcessInputs("Avx10v1_Avx512F_VL_Vector256", Avx10v1_Avx512F_VL_Vector256Inputs); +ProcessInputs("Avx10v1_Avx512BW_VL_Vector256", Avx10v1_Avx512BW_VL_Vector256Inputs); +ProcessInputs("Avx10v1_Avx512DQ_VL_Vector256", Avx10v1_Avx512DQ_VL_Vector256Inputs); +// ProcessInputs("Avx10v1_Avx512CD_VL_Vector256", Avx10v1_Avx512CD_VL_Vector256Inputs); +ProcessInputs("Avx10v1_Avx512Vbmi_VL_Vector256", Avx10v1_Avx512Vbmi_VL_Vector256Inputs); +ProcessInputs("Avx10v1_V512_Avx512BW", Avx10v1_V512_Avx512BWInputs); +ProcessInputs("Avx10v1_V512_Avx512F", Avx10v1_V512_Avx512FInputs); +ProcessInputs("Avx10v1_V512_Avx512Vbmi", Avx10v1_V512_Avx512VbmiInputs); +ProcessInputs("Avx10v1_V512_Avx512DQ", Avx10v1_V512_Avx512DQInputs); +// ProcessInputs("Avx10v1_V512_Avx512CD", Avx10v1_V512_Avx512CDInputs); ProcessInputs("Sse1", Sse1Inputs); ProcessInputs("Sse1.X64", Sse1X64Inputs); ProcessInputs("Sse2", Sse2Inputs); diff --git a/src/tests/JIT/HardwareIntrinsics/HardwareIntrinsics_X86_Avx10v1_r.csproj b/src/tests/JIT/HardwareIntrinsics/HardwareIntrinsics_X86_Avx10v1_r.csproj new file mode 100644 index 0000000000000..205a19db5f912 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/HardwareIntrinsics_X86_Avx10v1_r.csproj @@ -0,0 +1,20 @@ + + + 2 + + true + true + + + + true + true + true + + + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/HardwareIntrinsics_X86_Avx10v1_ro.csproj b/src/tests/JIT/HardwareIntrinsics/HardwareIntrinsics_X86_Avx10v1_ro.csproj new file mode 100644 index 0000000000000..665736b9bff30 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/HardwareIntrinsics_X86_Avx10v1_ro.csproj @@ -0,0 +1,20 @@ + + + 2 + + true + true + + + + true + true + true + + + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86/Shared/SimpleUnaryOpEmbRounding.template b/src/tests/JIT/HardwareIntrinsics/X86/Shared/SimpleUnaryOpEmbRounding.template index 3464db01af8d2..be35aafde3fb8 100644 --- a/src/tests/JIT/HardwareIntrinsics/X86/Shared/SimpleUnaryOpEmbRounding.template +++ b/src/tests/JIT/HardwareIntrinsics/X86/Shared/SimpleUnaryOpEmbRounding.template @@ -336,6 +336,30 @@ namespace JIT.HardwareIntrinsics.X86 {("Avx512DQ", "Single", "UInt64", "ConvertToVector512UInt64", "ToNegativeInfinity"), new ulong[] {0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d}}, {("Avx512DQ", "Single", "UInt64", "ConvertToVector512UInt64", "ToPositiveInfinity"), new ulong[] {0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e}}, {("Avx512DQ", "Single", "UInt64", "ConvertToVector512UInt64", "ToZero"), new ulong[] {0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d}}, + {("Avx10v1.V512", "Int64", "Single", "ConvertToVector256Single", "ToNegativeInfinity"), new ulong[] {0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x41200000}}, + {("Avx10v1.V512", "Int64", "Single", "ConvertToVector256Single", "ToPositiveInfinity"), new ulong[] {0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x41200000}}, + {("Avx10v1.V512", "Int64", "Single", "ConvertToVector256Single", "ToZero"), new ulong[] {0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x41200000}}, + {("Avx10v1.V512", "UInt64", "Single", "ConvertToVector256Single", "ToNegativeInfinity"), new ulong[] {0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x41200000}}, + {("Avx10v1.V512", "UInt64", "Single", "ConvertToVector256Single", "ToPositiveInfinity"), new ulong[] {0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x41200000}}, + {("Avx10v1.V512", "UInt64", "Single", "ConvertToVector256Single", "ToZero"), new ulong[] {0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x41200000}}, + {("Avx10v1.V512", "Int64", "Double", "ConvertToVector512Double", "ToNegativeInfinity"), new ulong[] {0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000}}, + {("Avx10v1.V512", "Int64", "Double", "ConvertToVector512Double", "ToPositiveInfinity"), new ulong[] {0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000}}, + {("Avx10v1.V512", "Int64", "Double", "ConvertToVector512Double", "ToZero"), new ulong[] {0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000}}, + {("Avx10v1.V512", "UInt64", "Double", "ConvertToVector512Double", "ToNegativeInfinity"), new ulong[] {0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000}}, + {("Avx10v1.V512", "UInt64", "Double", "ConvertToVector512Double", "ToPositiveInfinity"), new ulong[] {0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000}}, + {("Avx10v1.V512", "UInt64", "Double", "ConvertToVector512Double", "ToZero"), new ulong[] {0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000, 0x4024000000000000}}, + {("Avx10v1.V512", "Double", "Int64", "ConvertToVector512Int64", "ToNegativeInfinity"), new ulong[] {0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d}}, + {("Avx10v1.V512", "Double", "Int64", "ConvertToVector512Int64", "ToPositiveInfinity"), new ulong[] {0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e}}, + {("Avx10v1.V512", "Double", "Int64", "ConvertToVector512Int64", "ToZero"), new ulong[] {0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d}}, + {("Avx10v1.V512", "Single", "Int64", "ConvertToVector512Int64", "ToNegativeInfinity"), new ulong[] {0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d}}, + {("Avx10v1.V512", "Single", "Int64", "ConvertToVector512Int64", "ToPositiveInfinity"), new ulong[] {0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e}}, + {("Avx10v1.V512", "Single", "Int64", "ConvertToVector512Int64", "ToZero"), new ulong[] {0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d}}, + {("Avx10v1.V512", "Double", "UInt64", "ConvertToVector512UInt64", "ToNegativeInfinity"), new ulong[] {0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d}}, + {("Avx10v1.V512", "Double", "UInt64", "ConvertToVector512UInt64", "ToPositiveInfinity"), new ulong[] {0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e}}, + {("Avx10v1.V512", "Double", "UInt64", "ConvertToVector512UInt64", "ToZero"), new ulong[] {0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d}}, + {("Avx10v1.V512", "Single", "UInt64", "ConvertToVector512UInt64", "ToNegativeInfinity"), new ulong[] {0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d}}, + {("Avx10v1.V512", "Single", "UInt64", "ConvertToVector512UInt64", "ToPositiveInfinity"), new ulong[] {0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e}}, + {("Avx10v1.V512", "Single", "UInt64", "ConvertToVector512UInt64", "ToZero"), new ulong[] {0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d}}, }; } } diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/Avx10v1AbsTest.cs b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/Avx10v1AbsTest.cs new file mode 100644 index 0000000000000..9dadd6afaecb5 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/Avx10v1AbsTest.cs @@ -0,0 +1,79 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Runtime.Intrinsics.X86; +using System.Runtime.Intrinsics; +using Xunit; + +/* How to run this test? + +1. Compile the runtime repo using --> PS D:\Git_repos\runtime> .\build.cmd -subset clr -rc debug +2. Run the following command to setup the test repo --> PS D:\Git_repos\runtime\src\tests> .\build.cmd x64 Debug generatelayoutonly +3. Compile the JIT/HardwareIntrinsics test suite using --> PS D:\Git_repos\runtime\src\tests> .\build.cmd x64 Debug tree JIT/HardwareIntrinsics +4. Use the following variables to run / debug the Avx10 test + { + "name": "(Windows) Launch", + "type": "cppvsdbg", + "request": "launch", + "program": "${workspaceFolder}/artifacts/tests/coreclr/windows.x64.Debug/Tests/Core_Root/corerun.exe", + "args": [ + "D:/Git_repos/runtime/artifacts/tests/coreclr/windows.x64.Debug/JIT/HardwareIntrinsics/HardwareIntrinsics_X86_Avx10_r/HardwareIntrinsics_X86_Avx10_r.dll" + ], + "stopAtEntry": false, + "cwd": "${fileDirname}", + "environment": [ + {"name": "DOTNET_TieredCompilation", "value": "0"}, + {"name": "DOTNET_JitForceEvexEncoding", "value": "1"}, + {"name": "DOTNET_JitStressEvexEncoding", "value": "1"}, + {"name": "DOTNET_ENABLEINCOMPLETEISACLASS", "value": "1"}, + {"name": "DOTNET_JitDisasm", "value": "getAbs128"}, + {"name": "DOTNET_ReadyToRun", "value": "0"}, + ], + "console": "integratedTerminal", + "symbolSearchPath": "C:/Users/kmodi/Documents/Git_repos/runtime/artifacts/tests/coreclr/windows.x64.Debug/Tests/Core_Root/PDB" + } + +5. You can capture the disasm for getAbs128 if running with env variables above. + +*/ +namespace IntelHardwareIntrinsicTest._Avx10v1_Avx512BW_VL_Vector128 +{ + public partial class Program + { + const float EPS = Single.Epsilon * 5; + + [MethodImplAttribute(MethodImplOptions.NoInlining)] + public static Vector128 getAbs128(Vector128 val) + { + return Avx10v1.Abs(val); + } + + [MethodImplAttribute(MethodImplOptions.NoInlining)] + public static Vector256 getAbs256(Vector256 val) + { + return Avx10v1.Abs(val); + } + + [Fact] + public static unsafe void Avx10v1AbsTest () + { + Console.WriteLine("Test exexuted"); + if (Avx10v1.IsSupported) + { + Console.WriteLine("Avx10v1 supported"); + Vector128 val = Vector128.Create(-5); + Vector128 absVal = getAbs128(val); + } + if (Avx10v1.IsSupported) + { + Console.WriteLine("Avx10v1_V256 supported"); + Vector256 val = Vector256.Create(-5); + Vector256 absVal = getAbs256(val); + } + } + } +} diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/Avx10v1_Avx512BW_VL_Vector128_handwritten_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/Avx10v1_Avx512BW_VL_Vector128_handwritten_r.csproj new file mode 100644 index 0000000000000..7448bc11f4eb4 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/Avx10v1_Avx512BW_VL_Vector128_handwritten_r.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_Avx512BW_VL_Vector128_handwritten_r + true + + + Embedded + + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/Avx10v1_Avx512BW_VL_Vector128_handwritten_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/Avx10v1_Avx512BW_VL_Vector128_handwritten_ro.csproj new file mode 100644 index 0000000000000..0374921b4aab4 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/Avx10v1_Avx512BW_VL_Vector128_handwritten_ro.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_Avx512BW_VL_Vector128_handwritten_ro + true + + + Embedded + True + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/Avx10v1_Avx512BW_VL_Vector128_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/Avx10v1_Avx512BW_VL_Vector128_r.csproj new file mode 100644 index 0000000000000..e80036a316bde --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/Avx10v1_Avx512BW_VL_Vector128_r.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_Avx512BW_VL_Vector128_r + true + + + Embedded + + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/Avx10v1_Avx512BW_VL_Vector128_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/Avx10v1_Avx512BW_VL_Vector128_ro.csproj new file mode 100644 index 0000000000000..7a4396a7d3844 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/Avx10v1_Avx512BW_VL_Vector128_ro.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_Avx512BW_VL_Vector128_ro + true + + + Embedded + True + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/HardwareIntrinsics_X86_Avx10_r.tempLog.xml b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/HardwareIntrinsics_X86_Avx10_r.tempLog.xml new file mode 100644 index 0000000000000..16e9aa91facf5 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/HardwareIntrinsics_X86_Avx10_r.tempLog.xml @@ -0,0 +1,10 @@ + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/HardwareIntrinsics_X86_Avx10_r.testResults.xml b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/HardwareIntrinsics_X86_Avx10_r.testResults.xml new file mode 100644 index 0000000000000..1f4da7d219087 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/HardwareIntrinsics_X86_Avx10_r.testResults.xml @@ -0,0 +1,31 @@ + + + + + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/HardwareIntrinsics_X86_Avx10_r.testStats.csv b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/HardwareIntrinsics_X86_Avx10_r.testStats.csv new file mode 100644 index 0000000000000..289835a445cb2 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/HardwareIntrinsics_X86_Avx10_r.testStats.csv @@ -0,0 +1,2 @@ +1,0,0,0 +1,1,0,0 diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/Program.Avx10v1_Avx512BW_VL_Vector128.cs b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/Program.Avx10v1_Avx512BW_VL_Vector128.cs new file mode 100644 index 0000000000000..a87d969931f07 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector128/Program.Avx10v1_Avx512BW_VL_Vector128.cs @@ -0,0 +1,16 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Generic; + +namespace JIT.HardwareIntrinsics.X86._Avx10v1_Avx512BW_VL_Vector128 +{ + public static partial class Program + { + static Program() + { + + } + } +} diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector256/Avx10v1_Avx512BW_VL_Vector256_handwritten_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector256/Avx10v1_Avx512BW_VL_Vector256_handwritten_r.csproj new file mode 100644 index 0000000000000..6f892430c31b1 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector256/Avx10v1_Avx512BW_VL_Vector256_handwritten_r.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_Avx512BW_VL_Vector256_handwritten_r + true + + + Embedded + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector256/Avx10v1_Avx512BW_VL_Vector256_handwritten_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector256/Avx10v1_Avx512BW_VL_Vector256_handwritten_ro.csproj new file mode 100644 index 0000000000000..95d9df15689b2 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector256/Avx10v1_Avx512BW_VL_Vector256_handwritten_ro.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_Avx512BW_VL_Vector256_handwritten_ro + true + + + Embedded + True + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector256/Avx10v1_Avx512BW_VL_Vector256_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector256/Avx10v1_Avx512BW_VL_Vector256_r.csproj new file mode 100644 index 0000000000000..7bb8222242094 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector256/Avx10v1_Avx512BW_VL_Vector256_r.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_Avx512BW_VL_Vector256_r + true + + + Embedded + + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector256/Avx10v1_Avx512BW_VL_Vector256_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector256/Avx10v1_Avx512BW_VL_Vector256_ro.csproj new file mode 100644 index 0000000000000..461b577a4fa29 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector256/Avx10v1_Avx512BW_VL_Vector256_ro.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_Avx512BW_VL_Vector256_ro + true + + + Embedded + True + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector256/Program.Avx10v1_Avx512BW_VL_Vector256.cs b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector256/Program.Avx10v1_Avx512BW_VL_Vector256.cs new file mode 100644 index 0000000000000..a2297fd28963b --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512BW_VL_Vector256/Program.Avx10v1_Avx512BW_VL_Vector256.cs @@ -0,0 +1,16 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Generic; + +namespace JIT.HardwareIntrinsics.X86._Avx10v1_Avx512BW_VL_Vector256 +{ + public static partial class Program + { + static Program() + { + + } + } +} diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector128/Avx10v1_Avx512CD_VL_Vector128_handwritten_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector128/Avx10v1_Avx512CD_VL_Vector128_handwritten_r.csproj new file mode 100644 index 0000000000000..6658a52b8749f --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector128/Avx10v1_Avx512CD_VL_Vector128_handwritten_r.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_Avx512CD_VL_Vector128_handwritten_r + true + + + Embedded + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector128/Avx10v1_Avx512CD_VL_Vector128_handwritten_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector128/Avx10v1_Avx512CD_VL_Vector128_handwritten_ro.csproj new file mode 100644 index 0000000000000..b1074cbb9869b --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector128/Avx10v1_Avx512CD_VL_Vector128_handwritten_ro.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_Avx512CD_VL_Vector128_handwritten_ro + true + + + Embedded + True + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector128/Avx10v1_Avx512CD_VL_Vector128_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector128/Avx10v1_Avx512CD_VL_Vector128_r.csproj new file mode 100644 index 0000000000000..1b2b4691e5ef3 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector128/Avx10v1_Avx512CD_VL_Vector128_r.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_Avx512CD_VL_Vector128_r + true + + + Embedded + + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector128/Avx10v1_Avx512CD_VL_Vector128_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector128/Avx10v1_Avx512CD_VL_Vector128_ro.csproj new file mode 100644 index 0000000000000..b51c49104e13a --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector128/Avx10v1_Avx512CD_VL_Vector128_ro.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_Avx512CD_VL_Vector128_ro + true + + + Embedded + True + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector128/Program.Avx10v1_Avx512CD_VL_Vector128.cs b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector128/Program.Avx10v1_Avx512CD_VL_Vector128.cs new file mode 100644 index 0000000000000..cabcbb1e76e43 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector128/Program.Avx10v1_Avx512CD_VL_Vector128.cs @@ -0,0 +1,16 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Generic; + +namespace JIT.HardwareIntrinsics.X86._Avx10v1_Avx512CD_VL_Vector128 +{ + public static partial class Program + { + static Program() + { + + } + } +} diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector256/Avx10v1_Avx512CD_VL_Vector256_handwritten_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector256/Avx10v1_Avx512CD_VL_Vector256_handwritten_r.csproj new file mode 100644 index 0000000000000..eaa368521dde1 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector256/Avx10v1_Avx512CD_VL_Vector256_handwritten_r.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_Avx512CD_VL_Vector256_handwritten_r + true + + + Embedded + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector256/Avx10v1_Avx512CD_VL_Vector256_handwritten_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector256/Avx10v1_Avx512CD_VL_Vector256_handwritten_ro.csproj new file mode 100644 index 0000000000000..4281952af4653 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector256/Avx10v1_Avx512CD_VL_Vector256_handwritten_ro.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_Avx512CD_VL_Vector256_handwritten_ro + true + + + Embedded + True + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector256/Avx10v1_Avx512CD_VL_Vector256_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector256/Avx10v1_Avx512CD_VL_Vector256_r.csproj new file mode 100644 index 0000000000000..d175dc4b848ed --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector256/Avx10v1_Avx512CD_VL_Vector256_r.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_Avx512CD_VL_Vector256_r + true + + + Embedded + + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector256/Avx10v1_Avx512CD_VL_Vector256_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector256/Avx10v1_Avx512CD_VL_Vector256_ro.csproj new file mode 100644 index 0000000000000..b3d9f9f6e8c94 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector256/Avx10v1_Avx512CD_VL_Vector256_ro.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_Avx512CD_VL_Vector256_ro + true + + + Embedded + True + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector256/Program.Avx10v1_Avx512CD_VL_Vector256.cs b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector256/Program.Avx10v1_Avx512CD_VL_Vector256.cs new file mode 100644 index 0000000000000..a19aa308fed53 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512CD_VL_Vector256/Program.Avx10v1_Avx512CD_VL_Vector256.cs @@ -0,0 +1,16 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Generic; + +namespace JIT.HardwareIntrinsics.X86._Avx10v1_Avx512CD_VL_Vector256 +{ + public static partial class Program + { + static Program() + { + + } + } +} diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector128/Avx10v1_Avx512DQ_VL_Vector128_handwritten_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector128/Avx10v1_Avx512DQ_VL_Vector128_handwritten_r.csproj new file mode 100644 index 0000000000000..be37d37d269a8 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector128/Avx10v1_Avx512DQ_VL_Vector128_handwritten_r.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_Avx512DQ_VL_Vector128_handwritten_r + true + + + Embedded + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector128/Avx10v1_Avx512DQ_VL_Vector128_handwritten_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector128/Avx10v1_Avx512DQ_VL_Vector128_handwritten_ro.csproj new file mode 100644 index 0000000000000..2e80148fac46e --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector128/Avx10v1_Avx512DQ_VL_Vector128_handwritten_ro.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_Avx512DQ_VL_Vector128_handwritten_ro + true + + + Embedded + True + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector128/Avx10v1_Avx512DQ_VL_Vector128_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector128/Avx10v1_Avx512DQ_VL_Vector128_r.csproj new file mode 100644 index 0000000000000..f706e85f38e89 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector128/Avx10v1_Avx512DQ_VL_Vector128_r.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_Avx512DQ_VL_Vector128_r + true + + + Embedded + + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector128/Avx10v1_Avx512DQ_VL_Vector128_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector128/Avx10v1_Avx512DQ_VL_Vector128_ro.csproj new file mode 100644 index 0000000000000..b8e97ceb10efc --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector128/Avx10v1_Avx512DQ_VL_Vector128_ro.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_Avx512DQ_VL_Vector128_ro + true + + + Embedded + True + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector128/Program.Avx10v1_Avx512DQ_VL_Vector128.cs b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector128/Program.Avx10v1_Avx512DQ_VL_Vector128.cs new file mode 100644 index 0000000000000..7d664e0112bf1 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector128/Program.Avx10v1_Avx512DQ_VL_Vector128.cs @@ -0,0 +1,16 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Generic; + +namespace JIT.HardwareIntrinsics.X86._Avx10v1_Avx512DQ_VL_Vector128 +{ + public static partial class Program + { + static Program() + { + + } + } +} diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector256/Avx10v1_Avx512DQ_VL_Vector256_handwritten_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector256/Avx10v1_Avx512DQ_VL_Vector256_handwritten_r.csproj new file mode 100644 index 0000000000000..21c473c61ec40 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector256/Avx10v1_Avx512DQ_VL_Vector256_handwritten_r.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_Avx512DQ_VL_Vector256_handwritten_r + true + + + Embedded + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector256/Avx10v1_Avx512DQ_VL_Vector256_handwritten_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector256/Avx10v1_Avx512DQ_VL_Vector256_handwritten_ro.csproj new file mode 100644 index 0000000000000..8eff30be3654c --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector256/Avx10v1_Avx512DQ_VL_Vector256_handwritten_ro.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_Avx512DQ_VL_Vector256_handwritten_ro + true + + + Embedded + True + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector256/Avx10v1_Avx512DQ_VL_Vector256_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector256/Avx10v1_Avx512DQ_VL_Vector256_r.csproj new file mode 100644 index 0000000000000..ff1576e0f7805 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector256/Avx10v1_Avx512DQ_VL_Vector256_r.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_Avx512DQ_VL_Vector256_r + true + + + Embedded + + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector256/Avx10v1_Avx512DQ_VL_Vector256_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector256/Avx10v1_Avx512DQ_VL_Vector256_ro.csproj new file mode 100644 index 0000000000000..87168b69843dd --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector256/Avx10v1_Avx512DQ_VL_Vector256_ro.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_Avx512DQ_VL_Vector256_ro + true + + + Embedded + True + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector256/Program.Avx10v1_Avx512DQ_VL_Vector256.cs b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector256/Program.Avx10v1_Avx512DQ_VL_Vector256.cs new file mode 100644 index 0000000000000..67f1b21f429f0 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512DQ_VL_Vector256/Program.Avx10v1_Avx512DQ_VL_Vector256.cs @@ -0,0 +1,16 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Generic; + +namespace JIT.HardwareIntrinsics.X86._Avx10v1_Avx512DQ_VL_Vector256 +{ + public static partial class Program + { + static Program() + { + + } + } +} diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_ScalarUpper/Avx10v1_Avx512F_ScalarUpper_handwritten_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_ScalarUpper/Avx10v1_Avx512F_ScalarUpper_handwritten_r.csproj new file mode 100644 index 0000000000000..d63bec8167ae6 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_ScalarUpper/Avx10v1_Avx512F_ScalarUpper_handwritten_r.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_Avx512F_ScalarUpper_handwritten_r + true + + + Embedded + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_ScalarUpper/Avx10v1_Avx512F_ScalarUpper_handwritten_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_ScalarUpper/Avx10v1_Avx512F_ScalarUpper_handwritten_ro.csproj new file mode 100644 index 0000000000000..f1177bd2176c5 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_ScalarUpper/Avx10v1_Avx512F_ScalarUpper_handwritten_ro.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_Avx512F_ScalarUpper_handwritten_ro + true + + + Embedded + True + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_ScalarUpper/Avx10v1_Avx512F_ScalarUpper_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_ScalarUpper/Avx10v1_Avx512F_ScalarUpper_r.csproj new file mode 100644 index 0000000000000..b3a1713e7b112 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_ScalarUpper/Avx10v1_Avx512F_ScalarUpper_r.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_Avx512F_ScalarUpper_r + true + + + Embedded + + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_ScalarUpper/Avx10v1_Avx512F_ScalarUpper_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_ScalarUpper/Avx10v1_Avx512F_ScalarUpper_ro.csproj new file mode 100644 index 0000000000000..fe1cf5341fec9 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_ScalarUpper/Avx10v1_Avx512F_ScalarUpper_ro.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_Avx512F_ScalarUpper_ro + true + + + Embedded + True + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_ScalarUpper/Program.Avx10v1_Avx512F_ScalarUpper.cs b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_ScalarUpper/Program.Avx10v1_Avx512F_ScalarUpper.cs new file mode 100644 index 0000000000000..415711782e630 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_ScalarUpper/Program.Avx10v1_Avx512F_ScalarUpper.cs @@ -0,0 +1,16 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Generic; + +namespace JIT.HardwareIntrinsics.X86._Avx10v1_Avx512F_ScalarUpper +{ + public static partial class Program + { + static Program() + { + + } + } +} diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector128/Avx10v1_Avx512F_VL_Vector128_handwritten_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector128/Avx10v1_Avx512F_VL_Vector128_handwritten_r.csproj new file mode 100644 index 0000000000000..e1d683c132b85 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector128/Avx10v1_Avx512F_VL_Vector128_handwritten_r.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_Avx512F_VL_Vector128_handwritten_r + true + + + Embedded + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector128/Avx10v1_Avx512F_VL_Vector128_handwritten_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector128/Avx10v1_Avx512F_VL_Vector128_handwritten_ro.csproj new file mode 100644 index 0000000000000..92da37bcc95d8 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector128/Avx10v1_Avx512F_VL_Vector128_handwritten_ro.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_Avx512F_VL_Vector128_handwritten_ro + true + + + Embedded + True + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector128/Avx10v1_Avx512F_VL_Vector128_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector128/Avx10v1_Avx512F_VL_Vector128_r.csproj new file mode 100644 index 0000000000000..46f1e34255ca9 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector128/Avx10v1_Avx512F_VL_Vector128_r.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_Avx512F_VL_Vector128_r + true + + + Embedded + + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector128/Avx10v1_Avx512F_VL_Vector128_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector128/Avx10v1_Avx512F_VL_Vector128_ro.csproj new file mode 100644 index 0000000000000..f862d881a6ac4 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector128/Avx10v1_Avx512F_VL_Vector128_ro.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_Avx512F_VL_Vector128_ro + true + + + Embedded + True + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector128/Program.Avx10v1_Avx512F_VL_Vector128.cs b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector128/Program.Avx10v1_Avx512F_VL_Vector128.cs new file mode 100644 index 0000000000000..e401ef02cf19e --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector128/Program.Avx10v1_Avx512F_VL_Vector128.cs @@ -0,0 +1,16 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Generic; + +namespace JIT.HardwareIntrinsics.X86._Avx10v1_Avx512F_VL_Vector128 +{ + public static partial class Program + { + static Program() + { + + } + } +} diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector256/Avx10v1_Avx512F_VL_Vector256_handwritten_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector256/Avx10v1_Avx512F_VL_Vector256_handwritten_r.csproj new file mode 100644 index 0000000000000..e78a0b522ada7 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector256/Avx10v1_Avx512F_VL_Vector256_handwritten_r.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_Avx512F_VL_Vector256_handwritten_r + true + + + Embedded + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector256/Avx10v1_Avx512F_VL_Vector256_handwritten_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector256/Avx10v1_Avx512F_VL_Vector256_handwritten_ro.csproj new file mode 100644 index 0000000000000..8ee4c5d67260a --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector256/Avx10v1_Avx512F_VL_Vector256_handwritten_ro.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_Avx512F_VL_Vector256_handwritten_ro + true + + + Embedded + True + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector256/Avx10v1_Avx512F_VL_Vector256_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector256/Avx10v1_Avx512F_VL_Vector256_r.csproj new file mode 100644 index 0000000000000..be3f8b7ea98b2 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector256/Avx10v1_Avx512F_VL_Vector256_r.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_Avx512F_VL_Vector256_r + true + + + Embedded + + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector256/Avx10v1_Avx512F_VL_Vector256_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector256/Avx10v1_Avx512F_VL_Vector256_ro.csproj new file mode 100644 index 0000000000000..d52f051f1dc37 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector256/Avx10v1_Avx512F_VL_Vector256_ro.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_Avx512F_VL_Vector256_ro + true + + + Embedded + True + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector256/Program.Avx10v1_Avx512F_VL_Vector256.cs b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector256/Program.Avx10v1_Avx512F_VL_Vector256.cs new file mode 100644 index 0000000000000..d75fa455af314 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512F_VL_Vector256/Program.Avx10v1_Avx512F_VL_Vector256.cs @@ -0,0 +1,16 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Generic; + +namespace JIT.HardwareIntrinsics.X86._Avx10v1_Avx512F_VL_Vector256 +{ + public static partial class Program + { + static Program() + { + + } + } +} diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector128/Avx10v1_Avx512Vbmi_VL_Vector128_handwritten_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector128/Avx10v1_Avx512Vbmi_VL_Vector128_handwritten_r.csproj new file mode 100644 index 0000000000000..5c9959fa85509 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector128/Avx10v1_Avx512Vbmi_VL_Vector128_handwritten_r.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_Avx512Vbmi_VL_Vector128_handwritten_r + true + + + Embedded + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector128/Avx10v1_Avx512Vbmi_VL_Vector128_handwritten_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector128/Avx10v1_Avx512Vbmi_VL_Vector128_handwritten_ro.csproj new file mode 100644 index 0000000000000..6f1f9f55344bc --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector128/Avx10v1_Avx512Vbmi_VL_Vector128_handwritten_ro.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_Avx512Vbmi_VL_Vector128_handwritten_ro + true + + + Embedded + True + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector128/Avx10v1_Avx512Vbmi_VL_Vector128_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector128/Avx10v1_Avx512Vbmi_VL_Vector128_r.csproj new file mode 100644 index 0000000000000..1bd36e038c146 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector128/Avx10v1_Avx512Vbmi_VL_Vector128_r.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_Avx512Vbmi_VL_Vector128_r + true + + + Embedded + + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector128/Avx10v1_Avx512Vbmi_VL_Vector128_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector128/Avx10v1_Avx512Vbmi_VL_Vector128_ro.csproj new file mode 100644 index 0000000000000..f55358d7b05d9 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector128/Avx10v1_Avx512Vbmi_VL_Vector128_ro.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_Avx512Vbmi_VL_Vector128_ro + true + + + Embedded + True + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector128/Program.Avx10v1_Avx512Vbmi_VL_Vector128.cs b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector128/Program.Avx10v1_Avx512Vbmi_VL_Vector128.cs new file mode 100644 index 0000000000000..ff872e25589fc --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector128/Program.Avx10v1_Avx512Vbmi_VL_Vector128.cs @@ -0,0 +1,16 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Generic; + +namespace JIT.HardwareIntrinsics.X86._Avx10v1_Avx512Vbmi_VL_Vector128 +{ + public static partial class Program + { + static Program() + { + + } + } +} diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector256/Avx10v1_Avx512Vbmi_VL_Vector256_handwritten_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector256/Avx10v1_Avx512Vbmi_VL_Vector256_handwritten_r.csproj new file mode 100644 index 0000000000000..cd561d529a5b2 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector256/Avx10v1_Avx512Vbmi_VL_Vector256_handwritten_r.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_Avx512Vbmi_VL_Vector256_handwritten_r + true + + + Embedded + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector256/Avx10v1_Avx512Vbmi_VL_Vector256_handwritten_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector256/Avx10v1_Avx512Vbmi_VL_Vector256_handwritten_ro.csproj new file mode 100644 index 0000000000000..0bcbec01de339 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector256/Avx10v1_Avx512Vbmi_VL_Vector256_handwritten_ro.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_Avx512Vbmi_VL_Vector256_handwritten_ro + true + + + Embedded + True + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector256/Avx10v1_Avx512Vbmi_VL_Vector256_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector256/Avx10v1_Avx512Vbmi_VL_Vector256_r.csproj new file mode 100644 index 0000000000000..a37b056f6ced7 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector256/Avx10v1_Avx512Vbmi_VL_Vector256_r.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_Avx512Vbmi_VL_Vector256_r + true + + + Embedded + + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector256/Avx10v1_Avx512Vbmi_VL_Vector256_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector256/Avx10v1_Avx512Vbmi_VL_Vector256_ro.csproj new file mode 100644 index 0000000000000..2d89993bbde11 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector256/Avx10v1_Avx512Vbmi_VL_Vector256_ro.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_Avx512Vbmi_VL_Vector256_ro + true + + + Embedded + True + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector256/Program.Avx10v1_Avx512Vbmi_VL_Vector256.cs b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector256/Program.Avx10v1_Avx512Vbmi_VL_Vector256.cs new file mode 100644 index 0000000000000..03caea3c675d1 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_Avx512Vbmi_VL_Vector256/Program.Avx10v1_Avx512Vbmi_VL_Vector256.cs @@ -0,0 +1,16 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Generic; + +namespace JIT.HardwareIntrinsics.X86._Avx10v1_Avx512Vbmi_VL_Vector256 +{ + public static partial class Program + { + static Program() + { + + } + } +} diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512CD/Avx10v1_V512_Avx512CD_handwritten_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512CD/Avx10v1_V512_Avx512CD_handwritten_r.csproj new file mode 100644 index 0000000000000..08c1c01a382e2 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512CD/Avx10v1_V512_Avx512CD_handwritten_r.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_V512_Avx512CD_handwritten_r + true + + + Embedded + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512CD/Avx10v1_V512_Avx512CD_handwritten_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512CD/Avx10v1_V512_Avx512CD_handwritten_ro.csproj new file mode 100644 index 0000000000000..aa88a462d9c8e --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512CD/Avx10v1_V512_Avx512CD_handwritten_ro.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_V512_Avx512CD_handwritten_ro + true + + + Embedded + True + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512CD/Avx10v1_V512_Avx512CD_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512CD/Avx10v1_V512_Avx512CD_r.csproj new file mode 100644 index 0000000000000..f816005387de7 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512CD/Avx10v1_V512_Avx512CD_r.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_V512_Avx512CD_r + true + + + Embedded + + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512CD/Avx10v1_V512_Avx512CD_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512CD/Avx10v1_V512_Avx512CD_ro.csproj new file mode 100644 index 0000000000000..aae2825e5c449 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512CD/Avx10v1_V512_Avx512CD_ro.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_V512_Avx512CD_ro + true + + + Embedded + True + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512CD/Program.Avx10v1_V512_Avx512CD.cs b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512CD/Program.Avx10v1_V512_Avx512CD.cs new file mode 100644 index 0000000000000..f8a0458cdbd34 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512CD/Program.Avx10v1_V512_Avx512CD.cs @@ -0,0 +1,16 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Generic; + +namespace JIT.HardwareIntrinsics.X86._Avx10v1_V512_Avx512CD +{ + public static partial class Program + { + static Program() + { + + } + } +} diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512DQ/Avx10v1_V512_Avx512DQ_handwritten_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512DQ/Avx10v1_V512_Avx512DQ_handwritten_r.csproj new file mode 100644 index 0000000000000..c1c545a5c14b9 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512DQ/Avx10v1_V512_Avx512DQ_handwritten_r.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_V512_Avx512DQ_handwritten_r + true + + + Embedded + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512DQ/Avx10v1_V512_Avx512DQ_handwritten_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512DQ/Avx10v1_V512_Avx512DQ_handwritten_ro.csproj new file mode 100644 index 0000000000000..9c6889058eadf --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512DQ/Avx10v1_V512_Avx512DQ_handwritten_ro.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_V512_Avx512DQ_handwritten_ro + true + + + Embedded + True + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512DQ/Avx10v1_V512_Avx512DQ_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512DQ/Avx10v1_V512_Avx512DQ_r.csproj new file mode 100644 index 0000000000000..ac49df57d5346 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512DQ/Avx10v1_V512_Avx512DQ_r.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_V512_Avx512DQ_r + true + + + Embedded + + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512DQ/Avx10v1_V512_Avx512DQ_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512DQ/Avx10v1_V512_Avx512DQ_ro.csproj new file mode 100644 index 0000000000000..272bafe229472 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512DQ/Avx10v1_V512_Avx512DQ_ro.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_V512_Avx512DQ_ro + true + + + Embedded + True + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512DQ/Program.Avx10v1_V512_Avx512DQ.cs b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512DQ/Program.Avx10v1_V512_Avx512DQ.cs new file mode 100644 index 0000000000000..64fdc1f38cd2e --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512DQ/Program.Avx10v1_V512_Avx512DQ.cs @@ -0,0 +1,16 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Generic; + +namespace JIT.HardwareIntrinsics.X86._Avx10v1_V512_Avx512DQ +{ + public static partial class Program + { + static Program() + { + + } + } +} diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512Vbmi/Avx10v1_V512_Avx512Vbmi_handwritten_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512Vbmi/Avx10v1_V512_Avx512Vbmi_handwritten_r.csproj new file mode 100644 index 0000000000000..66a533544a9b4 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512Vbmi/Avx10v1_V512_Avx512Vbmi_handwritten_r.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_V512_Avx512Vbmi_handwritten_r + true + + + Embedded + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512Vbmi/Avx10v1_V512_Avx512Vbmi_handwritten_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512Vbmi/Avx10v1_V512_Avx512Vbmi_handwritten_ro.csproj new file mode 100644 index 0000000000000..75b969b6fe20a --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512Vbmi/Avx10v1_V512_Avx512Vbmi_handwritten_ro.csproj @@ -0,0 +1,13 @@ + + + X86_Avx10v1_V512_Avx512Vbmi_handwritten_ro + true + + + Embedded + True + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512Vbmi/Avx10v1_V512_Avx512Vbmi_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512Vbmi/Avx10v1_V512_Avx512Vbmi_r.csproj new file mode 100644 index 0000000000000..3c685c155c041 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512Vbmi/Avx10v1_V512_Avx512Vbmi_r.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_V512_Avx512Vbmi_r + true + + + Embedded + + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512Vbmi/Avx10v1_V512_Avx512Vbmi_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512Vbmi/Avx10v1_V512_Avx512Vbmi_ro.csproj new file mode 100644 index 0000000000000..7c4fa1f6ad88a --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512Vbmi/Avx10v1_V512_Avx512Vbmi_ro.csproj @@ -0,0 +1,14 @@ + + + X86_Avx10v1_V512_Avx512Vbmi_ro + true + + + Embedded + True + + + + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512Vbmi/Program.Avx10v1_V512_Avx512Vbmi.cs b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512Vbmi/Program.Avx10v1_V512_Avx512Vbmi.cs new file mode 100644 index 0000000000000..86629d1fb6b19 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Avx10v1_V512_Avx512Vbmi/Program.Avx10v1_V512_Avx512Vbmi.cs @@ -0,0 +1,16 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Generic; + +namespace JIT.HardwareIntrinsics.X86._Avx10v1_V512_Avx512Vbmi +{ + public static partial class Program + { + static Program() + { + + } + } +} diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Directory.Build.props b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Directory.Build.props new file mode 100644 index 0000000000000..e3e1bac79c32c --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Directory.Build.props @@ -0,0 +1,10 @@ + + + + + + + true + + + diff --git a/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Directory.Build.targets b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Directory.Build.targets new file mode 100644 index 0000000000000..5b046968c0461 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/X86_Avx10v1/Directory.Build.targets @@ -0,0 +1,32 @@ + + + + + + + $(IntermediateOutputPath)$(MSBuildProjectName)/gen/ + $(GeneratedHWIntrinsicTestDirectory)GeneratedHWIntrinsicTestList.txt + + + + + + + + + + + + + + + + +