From be6c9f647d98ad469abeb256f84275a41bce724f Mon Sep 17 00:00:00 2001 From: Tanner Gooding Date: Wed, 24 Jan 2024 15:28:23 -0800 Subject: [PATCH] Updating Vector to support opt-in 512-bit widths (#97460) * Updating Vector to support opt-in 512-bit widths * Apply formatting patch --- src/coreclr/jit/compiler.h | 21 +- src/coreclr/jit/fgbasic.cpp | 54 +- src/coreclr/jit/gentree.cpp | 73 +-- src/coreclr/jit/hwintrinsicarm64.cpp | 9 +- src/coreclr/jit/importercalls.cpp | 8 +- src/coreclr/jit/simdashwintrinsic.cpp | 565 ++++++------------- src/coreclr/jit/simdashwintrinsic.h | 4 +- src/coreclr/jit/simdashwintrinsiclistarm64.h | 186 +++--- src/coreclr/jit/simdashwintrinsiclistxarch.h | 292 +++------- src/coreclr/vm/codeman.cpp | 8 +- src/coreclr/vm/methodtablebuilder.cpp | 3 +- src/tests/Common/testenvironment.proj | 3 + 12 files changed, 438 insertions(+), 788 deletions(-) diff --git a/src/coreclr/jit/compiler.h b/src/coreclr/jit/compiler.h index ac3e8045a0584..0f0f169b780b1 100644 --- a/src/coreclr/jit/compiler.h +++ b/src/coreclr/jit/compiler.h @@ -3232,12 +3232,14 @@ class Compiler GenTree* op4, CorInfoType simdBaseJitType, unsigned simdSize); - GenTree* gtNewSimdToScalarNode(var_types type, - GenTree* op1, - CorInfoType simdBaseJitType, - unsigned simdSize); #endif // TARGET_XARCH + + GenTree* gtNewSimdToScalarNode(var_types type, + GenTree* op1, + CorInfoType simdBaseJitType, + unsigned simdSize); + GenTree* gtNewSimdUnOpNode(genTreeOps op, var_types type, GenTree* op1, @@ -8832,10 +8834,13 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX CLANG_FORMAT_COMMENT_ANCHOR; #if defined(TARGET_XARCH) - // TODO-XArch: Add support for 512-bit Vector - assert(!compIsaSupportedDebugOnly(InstructionSet_VectorT512)); - - if (compExactlyDependsOn(InstructionSet_VectorT256)) + if (compExactlyDependsOn(InstructionSet_VectorT512)) + { + assert(!compIsaSupportedDebugOnly(InstructionSet_VectorT256)); + assert(!compIsaSupportedDebugOnly(InstructionSet_VectorT128)); + return ZMM_REGSIZE_BYTES; + } + else if (compExactlyDependsOn(InstructionSet_VectorT256)) { assert(!compIsaSupportedDebugOnly(InstructionSet_VectorT128)); return YMM_REGSIZE_BYTES; diff --git a/src/coreclr/jit/fgbasic.cpp b/src/coreclr/jit/fgbasic.cpp index 879a7fa83edb1..0a253bf68bf00 100644 --- a/src/coreclr/jit/fgbasic.cpp +++ b/src/coreclr/jit/fgbasic.cpp @@ -1373,7 +1373,7 @@ void Compiler::fgFindJumpTargets(const BYTE* codeAddr, IL_OFFSET codeSize, Fixed case NI_Vector128_Create: case NI_Vector128_CreateScalar: case NI_Vector128_CreateScalarUnsafe: - case NI_VectorT128_CreateBroadcast: + case NI_VectorT_CreateBroadcast: #if defined(TARGET_XARCH) case NI_BMI1_TrailingZeroCount: case NI_BMI1_X64_TrailingZeroCount: @@ -1387,7 +1387,6 @@ void Compiler::fgFindJumpTargets(const BYTE* codeAddr, IL_OFFSET codeSize, Fixed case NI_Vector512_CreateScalar: case NI_Vector256_CreateScalarUnsafe: case NI_Vector512_CreateScalarUnsafe: - case NI_VectorT256_CreateBroadcast: case NI_X86Base_BitScanForward: case NI_X86Base_X64_BitScanForward: case NI_X86Base_BitScanReverse: @@ -1629,20 +1628,20 @@ void Compiler::fgFindJumpTargets(const BYTE* codeAddr, IL_OFFSET codeSize, Fixed case NI_Vector128_AsUInt64: case NI_Vector128_AsVector4: case NI_Vector128_op_UnaryPlus: - case NI_VectorT128_As: - case NI_VectorT128_AsVectorByte: - case NI_VectorT128_AsVectorDouble: - case NI_VectorT128_AsVectorInt16: - case NI_VectorT128_AsVectorInt32: - case NI_VectorT128_AsVectorInt64: - case NI_VectorT128_AsVectorNInt: - case NI_VectorT128_AsVectorNUInt: - case NI_VectorT128_AsVectorSByte: - case NI_VectorT128_AsVectorSingle: - case NI_VectorT128_AsVectorUInt16: - case NI_VectorT128_AsVectorUInt32: - case NI_VectorT128_AsVectorUInt64: - case NI_VectorT128_op_UnaryPlus: + case NI_VectorT_As: + case NI_VectorT_AsVectorByte: + case NI_VectorT_AsVectorDouble: + case NI_VectorT_AsVectorInt16: + case NI_VectorT_AsVectorInt32: + case NI_VectorT_AsVectorInt64: + case NI_VectorT_AsVectorNInt: + case NI_VectorT_AsVectorNUInt: + case NI_VectorT_AsVectorSByte: + case NI_VectorT_AsVectorSingle: + case NI_VectorT_AsVectorUInt16: + case NI_VectorT_AsVectorUInt32: + case NI_VectorT_AsVectorUInt64: + case NI_VectorT_op_UnaryPlus: #if defined(TARGET_XARCH) case NI_Vector256_As: case NI_Vector256_AsByte: @@ -1658,20 +1657,6 @@ void Compiler::fgFindJumpTargets(const BYTE* codeAddr, IL_OFFSET codeSize, Fixed case NI_Vector256_AsUInt32: case NI_Vector256_AsUInt64: case NI_Vector256_op_UnaryPlus: - case NI_VectorT256_As: - case NI_VectorT256_AsVectorByte: - case NI_VectorT256_AsVectorDouble: - case NI_VectorT256_AsVectorInt16: - case NI_VectorT256_AsVectorInt32: - case NI_VectorT256_AsVectorInt64: - case NI_VectorT256_AsVectorNInt: - case NI_VectorT256_AsVectorNUInt: - case NI_VectorT256_AsVectorSByte: - case NI_VectorT256_AsVectorSingle: - case NI_VectorT256_AsVectorUInt16: - case NI_VectorT256_AsVectorUInt32: - case NI_VectorT256_AsVectorUInt64: - case NI_VectorT256_op_UnaryPlus: case NI_Vector512_As: case NI_Vector512_AsByte: case NI_Vector512_AsDouble: @@ -1716,9 +1701,9 @@ void Compiler::fgFindJumpTargets(const BYTE* codeAddr, IL_OFFSET codeSize, Fixed case NI_Vector128_get_AllBitsSet: case NI_Vector128_get_One: case NI_Vector128_get_Zero: - case NI_VectorT128_get_AllBitsSet: - case NI_VectorT128_get_One: - case NI_VectorT128_get_Zero: + case NI_VectorT_get_AllBitsSet: + case NI_VectorT_get_One: + case NI_VectorT_get_Zero: #if defined(TARGET_XARCH) case NI_Vector256_get_AllBitsSet: case NI_Vector256_get_One: @@ -1726,9 +1711,6 @@ void Compiler::fgFindJumpTargets(const BYTE* codeAddr, IL_OFFSET codeSize, Fixed case NI_Vector512_get_AllBitsSet: case NI_Vector512_get_One: case NI_Vector512_get_Zero: - case NI_VectorT256_get_AllBitsSet: - case NI_VectorT256_get_One: - case NI_VectorT256_get_Zero: #endif // TARGET_XARCH #endif // FEATURE_HW_INTRINSICS { diff --git a/src/coreclr/jit/gentree.cpp b/src/coreclr/jit/gentree.cpp index d4e464a38c722..1d314a39d27ae 100644 --- a/src/coreclr/jit/gentree.cpp +++ b/src/coreclr/jit/gentree.cpp @@ -22617,18 +22617,7 @@ GenTree* Compiler::gtNewSimdGetElementNode( if (useToScalar) { - intrinsicId = NI_Vector128_ToScalar; - - if (simdSize == 64) - { - intrinsicId = NI_Vector512_ToScalar; - } - else if (simdSize == 32) - { - intrinsicId = NI_Vector256_ToScalar; - } - - return gtNewSimdHWIntrinsicNode(type, op1, intrinsicId, simdBaseJitType, simdSize); + return gtNewSimdToScalarNode(type, op1, simdBaseJitType, simdSize); } switch (simdBaseType) @@ -22671,14 +22660,7 @@ GenTree* Compiler::gtNewSimdGetElementNode( #elif defined(TARGET_ARM64) if (op2->IsIntegralConst(0)) { - intrinsicId = NI_Vector128_ToScalar; - - if (simdSize == 8) - { - intrinsicId = NI_Vector64_ToScalar; - } - - return gtNewSimdHWIntrinsicNode(type, op1, intrinsicId, simdBaseJitType, simdSize); + return gtNewSimdToScalarNode(type, op1, simdBaseJitType, simdSize); } if (simdSize == 8) @@ -24575,7 +24557,7 @@ GenTree* Compiler::gtNewSimdSumNode(var_types type, GenTree* op1, CorInfoType si case TYP_USHORT: { tmp = gtNewSimdHWIntrinsicNode(simdType, op1, NI_AdvSimd_Arm64_AddAcross, simdBaseJitType, simdSize); - return gtNewSimdHWIntrinsicNode(type, tmp, NI_Vector64_ToScalar, simdBaseJitType, 8); + return gtNewSimdToScalarNode(type, tmp, simdBaseJitType, 8); } case TYP_INT: @@ -24590,7 +24572,7 @@ GenTree* Compiler::gtNewSimdSumNode(var_types type, GenTree* op1, CorInfoType si { tmp = gtNewSimdHWIntrinsicNode(TYP_SIMD16, op1, NI_AdvSimd_Arm64_AddAcross, simdBaseJitType, 16); } - return gtNewSimdHWIntrinsicNode(type, tmp, NI_Vector64_ToScalar, simdBaseJitType, 8); + return gtNewSimdToScalarNode(type, tmp, simdBaseJitType, 8); } case TYP_FLOAT: @@ -24612,7 +24594,7 @@ GenTree* Compiler::gtNewSimdSumNode(var_types type, GenTree* op1, CorInfoType si simdSize); } } - return gtNewSimdHWIntrinsicNode(type, op1, NI_Vector128_ToScalar, simdBaseJitType, simdSize); + return gtNewSimdToScalarNode(type, op1, simdBaseJitType, simdSize); } case TYP_DOUBLE: @@ -24624,7 +24606,7 @@ GenTree* Compiler::gtNewSimdSumNode(var_types type, GenTree* op1, CorInfoType si op1 = gtNewSimdHWIntrinsicNode(TYP_SIMD8, op1, NI_AdvSimd_Arm64_AddPairwiseScalar, simdBaseJitType, simdSize); } - return gtNewSimdHWIntrinsicNode(type, op1, NI_Vector64_ToScalar, simdBaseJitType, 8); + return gtNewSimdToScalarNode(type, op1, simdBaseJitType, 8); } default: { @@ -24696,7 +24678,6 @@ GenTree* Compiler::gtNewSimdTernaryLogicNode(var_types type, } #endif // TARGET_XARCH -#if defined(TARGET_XARCH) //---------------------------------------------------------------------------------------------- // Compiler::gtNewSimdToScalarNode: Creates a new simd ToScalar node. // @@ -24711,9 +24692,19 @@ GenTree* Compiler::gtNewSimdTernaryLogicNode(var_types type, // GenTree* Compiler::gtNewSimdToScalarNode(var_types type, GenTree* op1, CorInfoType simdBaseJitType, unsigned simdSize) { + assert(IsBaselineSimdIsaSupportedDebugOnly()); + assert(varTypeIsArithmetic(type)); + + assert(op1 != nullptr); + assert(varTypeIsSIMD(op1)); -#if defined(TARGET_X86) var_types simdBaseType = JitType2PreciseVarType(simdBaseJitType); + assert(varTypeIsArithmetic(simdBaseType)); + + NamedIntrinsic intrinsic = NI_Illegal; + +#ifdef TARGET_XARCH +#if defined(TARGET_X86) if (varTypeIsLong(simdBaseType)) { // We need SSE41 to handle long, use software fallback @@ -24724,23 +24715,37 @@ GenTree* Compiler::gtNewSimdToScalarNode(var_types type, GenTree* op1, CorInfoTy return gtNewSimdGetElementNode(type, op1, op2, simdBaseJitType, simdSize); } #endif // TARGET_X86 - // Ensure MOVD/MOVQ support exists - assert(compIsaSupportedDebugOnly(InstructionSet_SSE2)); - NamedIntrinsic intrinsic = NI_Vector128_ToScalar; - if (simdSize == 32) + if (simdSize == 64) + { + assert(IsBaselineVector512IsaSupportedDebugOnly()); + intrinsic = NI_Vector512_ToScalar; + } + else if (simdSize == 32) { assert(compIsaSupportedDebugOnly(InstructionSet_AVX)); intrinsic = NI_Vector256_ToScalar; } - else if (simdSize == 64) + else { - assert(IsBaselineVector512IsaSupportedDebugOnly()); - intrinsic = NI_Vector512_ToScalar; + intrinsic = NI_Vector128_ToScalar; } +#elif defined(TARGET_ARM64) + if (simdSize == 8) + { + intrinsic = NI_Vector64_ToScalar; + } + else + { + intrinsic = NI_Vector128_ToScalar; + } +#else +#error Unsupported platform +#endif // !TARGET_XARCH && !TARGET_ARM64 + + assert(intrinsic != NI_Illegal); return gtNewSimdHWIntrinsicNode(type, op1, intrinsic, simdBaseJitType, simdSize); } -#endif // TARGET_XARCH GenTree* Compiler::gtNewSimdUnOpNode( genTreeOps op, var_types type, GenTree* op1, CorInfoType simdBaseJitType, unsigned simdSize) diff --git a/src/coreclr/jit/hwintrinsicarm64.cpp b/src/coreclr/jit/hwintrinsicarm64.cpp index 97a23f8ef2c35..a0f58c0b08f9c 100644 --- a/src/coreclr/jit/hwintrinsicarm64.cpp +++ b/src/coreclr/jit/hwintrinsicarm64.cpp @@ -1073,8 +1073,7 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, op1 = gtNewSimdGetLowerNode(TYP_SIMD8, op1, simdBaseJitType, simdSize); op1 = gtNewSimdHWIntrinsicNode(TYP_SIMD8, op1, NI_AdvSimd_Arm64_AddAcross, simdBaseJitType, 8); - op1 = gtNewSimdHWIntrinsicNode(genActualType(simdBaseType), op1, NI_Vector64_ToScalar, simdBaseJitType, - 8); + op1 = gtNewSimdToScalarNode(genActualType(simdBaseType), op1, simdBaseJitType, 8); op1 = gtNewCastNode(TYP_INT, op1, /* isUnsigned */ true, TYP_INT); GenTree* zero = gtNewZeroConNode(TYP_SIMD16); @@ -1082,8 +1081,7 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, op2 = gtNewSimdGetUpperNode(TYP_SIMD8, op2, simdBaseJitType, simdSize); op2 = gtNewSimdHWIntrinsicNode(TYP_SIMD8, op2, NI_AdvSimd_Arm64_AddAcross, simdBaseJitType, 8); - op2 = gtNewSimdHWIntrinsicNode(genActualType(simdBaseType), op2, NI_Vector64_ToScalar, simdBaseJitType, - 8); + op2 = gtNewSimdToScalarNode(genActualType(simdBaseType), op2, simdBaseJitType, 8); op2 = gtNewCastNode(TYP_INT, op2, /* isUnsigned */ true, TYP_INT); op2 = gtNewOperNode(GT_LSH, TYP_INT, op2, gtNewIconNode(8)); @@ -1112,8 +1110,7 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, simdSize); } - retNode = gtNewSimdHWIntrinsicNode(genActualType(simdBaseType), op1, NI_Vector64_ToScalar, - simdBaseJitType, 8); + retNode = gtNewSimdToScalarNode(genActualType(simdBaseType), op1, simdBaseJitType, 8); if ((simdBaseType != TYP_INT) && (simdBaseType != TYP_UINT)) { diff --git a/src/coreclr/jit/importercalls.cpp b/src/coreclr/jit/importercalls.cpp index 1c0ab43914723..50de29d2c51d9 100644 --- a/src/coreclr/jit/importercalls.cpp +++ b/src/coreclr/jit/importercalls.cpp @@ -3542,7 +3542,7 @@ GenTree* Compiler::impIntrinsic(GenTree* newobjThis, GenTree* res = gtNewSimdHWIntrinsicNode(TYP_SIMD16, op1, op2, op3, NI_FMA_MultiplyAddScalar, callJitType, 16); - retNode = gtNewSimdHWIntrinsicNode(callType, res, NI_Vector128_ToScalar, callJitType, 16); + retNode = gtNewSimdToScalarNode(callType, res, callJitType, 16); break; } #elif defined(TARGET_ARM64) @@ -3566,7 +3566,7 @@ GenTree* Compiler::impIntrinsic(GenTree* newobjThis, retNode = gtNewSimdHWIntrinsicNode(TYP_SIMD8, op3, op2, op1, NI_AdvSimd_FusedMultiplyAddScalar, callJitType, 8); - retNode = gtNewSimdHWIntrinsicNode(callType, retNode, NI_Vector64_ToScalar, callJitType, 8); + retNode = gtNewSimdToScalarNode(callType, retNode, callJitType, 8); break; } #endif @@ -8478,7 +8478,7 @@ GenTree* Compiler::impMinMaxIntrinsic(CORINFO_METHOD_HANDLE method, retNode->AsHWIntrinsic()->Op(2) = op1; } - return gtNewSimdHWIntrinsicNode(callType, retNode, NI_Vector128_ToScalar, callJitType, 16); + return gtNewSimdToScalarNode(callType, retNode, callJitType, 16); } } #endif // FEATURE_HW_INTRINSICS && TARGET_XARCH @@ -8643,7 +8643,7 @@ GenTree* Compiler::impMinMaxIntrinsic(CORINFO_METHOD_HANDLE method, callJitType, 16); } - return gtNewSimdHWIntrinsicNode(callType, tmp, NI_Vector128_ToScalar, callJitType, 16); + return gtNewSimdToScalarNode(callType, tmp, callJitType, 16); } #endif // FEATURE_HW_INTRINSICS && TARGET_XARCH diff --git a/src/coreclr/jit/simdashwintrinsic.cpp b/src/coreclr/jit/simdashwintrinsic.cpp index faeaada9d4b98..d407792edefc8 100644 --- a/src/coreclr/jit/simdashwintrinsic.cpp +++ b/src/coreclr/jit/simdashwintrinsic.cpp @@ -213,20 +213,16 @@ SimdAsHWIntrinsicClassId SimdAsHWIntrinsicInfo::lookupClassId(Compiler* comp, uint32_t vectorTByteLength = comp->getVectorTByteLength(); #if defined(TARGET_XARCH) - if (vectorTByteLength == 32) - { - return SimdAsHWIntrinsicClassId::VectorT256; - } -#endif // TARGET_XARCH - + if ((vectorTByteLength == 16) || (vectorTByteLength == 32) || (vectorTByteLength == 64)) +#else if (vectorTByteLength == 16) +#endif { - return SimdAsHWIntrinsicClassId::VectorT128; - } - else - { - return SimdAsHWIntrinsicClassId::Unknown; + return SimdAsHWIntrinsicClassId::VectorT; } + + // We return unknown for any unsupported size + return SimdAsHWIntrinsicClassId::Unknown; } break; } @@ -491,34 +487,20 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, } #if defined(TARGET_XARCH) - bool isVectorT256 = (SimdAsHWIntrinsicInfo::lookupClassId(intrinsic) == SimdAsHWIntrinsicClassId::VectorT256); + // We should have already exited early if SSE2 isn't supported + assert(compIsaSupportedDebugOnly(InstructionSet_SSE2)); - if (isVectorT256 && (simdSize != 32)) + if (SimdAsHWIntrinsicInfo::lookupClassId(intrinsic) == SimdAsHWIntrinsicClassId::VectorT) { - // We have a couple extension methods for Vector2/3/4 and Quaternion exposed here - // Such APIs are not actually AVX/AVX2 dependent and operate on 128-bit vectors - - switch (intrinsic) + if (simdSize == 32) { - case NI_VectorT256_GetElement: - case NI_VectorT256_WithElement: - { - isVectorT256 = false; - break; - } - - default: - { - break; - } + assert(compIsaSupportedDebugOnly(InstructionSet_AVX2)); + } + else if (simdSize == 64) + { + assert(IsBaselineVector512IsaSupportedDebugOnly()); } } - - // We should have already exited early if SSE2 isn't supported - assert(compIsaSupportedDebugOnly(InstructionSet_SSE2)); - - // Vector, when 32-bytes, requires at least AVX2 - assert(!isVectorT256 || compIsaSupportedDebugOnly(InstructionSet_AVX2)); #elif defined(TARGET_ARM64) // We should have already exited early if AdvSimd isn't supported assert(compIsaSupportedDebugOnly(InstructionSet_AdvSimd)); @@ -531,21 +513,16 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, switch (intrinsic) { #if defined(TARGET_XARCH) - case NI_VectorT128_ConvertToDouble: - case NI_VectorT256_ConvertToDouble: - case NI_VectorT128_ConvertToInt64: - case NI_VectorT256_ConvertToInt64: - case NI_VectorT128_ConvertToUInt32: - case NI_VectorT256_ConvertToUInt32: - case NI_VectorT128_ConvertToUInt64: - case NI_VectorT256_ConvertToUInt64: + case NI_VectorT_ConvertToDouble: + case NI_VectorT_ConvertToInt64: + case NI_VectorT_ConvertToUInt32: + case NI_VectorT_ConvertToUInt64: { // TODO-XARCH-CQ: These intrinsics should be accelerated return nullptr; } - case NI_VectorT128_ConvertToSingle: - case NI_VectorT256_ConvertToSingle: + case NI_VectorT_ConvertToSingle: { if (simdBaseType == TYP_UINT) { @@ -557,8 +534,7 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, #endif // TARGET_XARCH #if defined(TARGET_X86) - case NI_VectorT128_CreateBroadcast: - case NI_VectorT256_CreateBroadcast: + case NI_VectorT_CreateBroadcast: { if (varTypeIsLong(simdBaseType) && !impStackTop(0).val->IsIntegralConst()) { @@ -571,34 +547,19 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, } #endif // TARGET_X86 -#if defined(TARGET_XARCH) - case NI_VectorT256_As: - case NI_VectorT256_AsVectorByte: - case NI_VectorT256_AsVectorDouble: - case NI_VectorT256_AsVectorInt16: - case NI_VectorT256_AsVectorInt32: - case NI_VectorT256_AsVectorInt64: - case NI_VectorT256_AsVectorNInt: - case NI_VectorT256_AsVectorNUInt: - case NI_VectorT256_AsVectorSByte: - case NI_VectorT256_AsVectorSingle: - case NI_VectorT256_AsVectorUInt16: - case NI_VectorT256_AsVectorUInt32: - case NI_VectorT256_AsVectorUInt64: -#endif // TARGET_XARCH - case NI_VectorT128_As: - case NI_VectorT128_AsVectorByte: - case NI_VectorT128_AsVectorDouble: - case NI_VectorT128_AsVectorInt16: - case NI_VectorT128_AsVectorInt32: - case NI_VectorT128_AsVectorInt64: - case NI_VectorT128_AsVectorNInt: - case NI_VectorT128_AsVectorNUInt: - case NI_VectorT128_AsVectorSByte: - case NI_VectorT128_AsVectorSingle: - case NI_VectorT128_AsVectorUInt16: - case NI_VectorT128_AsVectorUInt32: - case NI_VectorT128_AsVectorUInt64: + case NI_VectorT_As: + case NI_VectorT_AsVectorByte: + case NI_VectorT_AsVectorDouble: + case NI_VectorT_AsVectorInt16: + case NI_VectorT_AsVectorInt32: + case NI_VectorT_AsVectorInt64: + case NI_VectorT_AsVectorNInt: + case NI_VectorT_AsVectorNUInt: + case NI_VectorT_AsVectorSByte: + case NI_VectorT_AsVectorSingle: + case NI_VectorT_AsVectorUInt16: + case NI_VectorT_AsVectorUInt32: + case NI_VectorT_AsVectorUInt64: { unsigned retSimdSize; CorInfoType retBaseJitType = getBaseJitTypeAndSizeOfSIMDType(sig->retTypeSigClass, &retSimdSize); @@ -615,10 +576,8 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, } #if defined(TARGET_XARCH) - case NI_VectorT128_get_Item: - case NI_VectorT256_get_Item: - case NI_VectorT128_GetElement: - case NI_VectorT256_GetElement: + case NI_VectorT_get_Item: + case NI_VectorT_GetElement: { op2 = impStackTop(0).val; @@ -664,7 +623,7 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, #endif // TARGET_XARCH #if defined(TARGET_XARCH) - case NI_VectorT128_Dot: + case NI_VectorT_Dot: { if ((simdBaseType == TYP_INT) || (simdBaseType == TYP_UINT)) { @@ -682,30 +641,11 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, break; } - case NI_VectorT128_Sum: - { - if (varTypeIsFloating(simdBaseType)) - { - if (!compOpportunisticallyDependsOn(InstructionSet_SSE3)) - { - // Floating-point types require SSE3.HorizontalAdd - return nullptr; - } - } - else if (!compOpportunisticallyDependsOn(InstructionSet_SSSE3)) - { - // Integral types require SSSE3.HorizontalAdd - return nullptr; - } - break; - } - case NI_Quaternion_WithElement: case NI_Vector2_WithElement: case NI_Vector3_WithElement: case NI_Vector4_WithElement: - case NI_VectorT128_WithElement: - case NI_VectorT256_WithElement: + case NI_VectorT_WithElement: { assert(sig->numArgs == 3); GenTree* indexOp = impStackTop(1).val; @@ -770,10 +710,10 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, #endif // TARGET_XARCH #if defined(TARGET_ARM64) - case NI_VectorT128_LoadAligned: - case NI_VectorT128_LoadAlignedNonTemporal: - case NI_VectorT128_StoreAligned: - case NI_VectorT128_StoreAlignedNonTemporal: + case NI_VectorT_LoadAligned: + case NI_VectorT_LoadAlignedNonTemporal: + case NI_VectorT_StoreAligned: + case NI_VectorT_StoreAlignedNonTemporal: { if (opts.OptimizationDisabled()) { @@ -789,7 +729,7 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, case NI_Vector2_WithElement: case NI_Vector3_WithElement: case NI_Vector4_WithElement: - case NI_VectorT128_WithElement: + case NI_VectorT_WithElement: { assert(numArgs == 3); GenTree* indexOp = impStackTop(1).val; @@ -815,8 +755,8 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, #endif #if defined(TARGET_XARCH) - case NI_VectorT128_Floor: - case NI_VectorT128_Ceiling: + case NI_VectorT_Floor: + case NI_VectorT_Ceiling: { if (!compOpportunisticallyDependsOn(InstructionSet_SSE41)) { @@ -827,10 +767,8 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, #endif // TARGET_XARCH #if defined(TARGET_XARCH) - case NI_VectorT128_Multiply: - case NI_VectorT128_op_Multiply: - case NI_VectorT256_Multiply: - case NI_VectorT256_op_Multiply: + case NI_VectorT_Multiply: + case NI_VectorT_op_Multiply: { if (varTypeIsLong(simdBaseType)) { @@ -850,10 +788,8 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, #endif // TARGET_XARCH #if defined(TARGET_XARCH) - case NI_VectorT128_ShiftRightArithmetic: - case NI_VectorT128_op_RightShift: - case NI_VectorT256_ShiftRightArithmetic: - case NI_VectorT256_op_RightShift: + case NI_VectorT_ShiftRightArithmetic: + case NI_VectorT_op_RightShift: { if (varTypeIsLong(simdBaseType) || (simdBaseType == TYP_DOUBLE)) { @@ -885,10 +821,7 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, switch (intrinsic) { - case NI_VectorT128_get_AllBitsSet: -#if defined(TARGET_XARCH) - case NI_VectorT256_get_AllBitsSet: -#endif // TARGET_XARCH + case NI_VectorT_get_AllBitsSet: { return gtNewAllBitsSetConNode(retType); } @@ -896,10 +829,7 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, case NI_Vector2_get_One: case NI_Vector3_get_One: case NI_Vector4_get_One: - case NI_VectorT128_get_One: -#if defined(TARGET_XARCH) - case NI_VectorT256_get_One: -#endif // TARGET_XARCH + case NI_VectorT_get_One: { return gtNewOneConNode(retType, simdBaseType); } @@ -962,10 +892,7 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, case NI_Vector2_get_Zero: case NI_Vector3_get_Zero: case NI_Vector4_get_Zero: - case NI_VectorT128_get_Zero: -#if defined(TARGET_XARCH) - case NI_VectorT256_get_Zero: -#endif // TARGET_XARCH + case NI_VectorT_get_Zero: { return gtNewZeroConNode(retType); } @@ -984,11 +911,7 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, { assert(newobjThis == nullptr); - isOpExplicit |= (intrinsic == NI_VectorT128_op_Explicit); - -#if defined(TARGET_XARCH) - isOpExplicit |= (intrinsic == NI_VectorT256_op_Explicit); -#endif + isOpExplicit |= (intrinsic == NI_VectorT_op_Explicit); if (isOpExplicit) { @@ -1011,18 +934,12 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, case NI_Vector2_Abs: case NI_Vector3_Abs: case NI_Vector4_Abs: - case NI_VectorT128_Abs: -#if defined(TARGET_XARCH) - case NI_VectorT256_Abs: -#endif // TARGET_XARCH + case NI_VectorT_Abs: { return gtNewSimdAbsNode(retType, op1, simdBaseJitType, simdSize); } - case NI_VectorT128_Ceiling: -#if defined(TARGET_XARCH) - case NI_VectorT256_Ceiling: -#endif // TARGET_XARCH + case NI_VectorT_Ceiling: { return gtNewSimdCeilNode(retType, op1, simdBaseJitType, simdSize); } @@ -1039,10 +956,7 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, return gtNewSimdBinOpNode(GT_MUL, retType, op1, vecCon, simdBaseJitType, simdSize); } - case NI_VectorT128_Floor: -#if defined(TARGET_XARCH) - case NI_VectorT256_Floor: -#endif // TARGET_XARCH + case NI_VectorT_Floor: { return gtNewSimdFloorNode(retType, op1, simdBaseJitType, simdSize); } @@ -1098,12 +1012,8 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, return gtNewSimdGetElementNode(retType, op1, gtNewIconNode(0), simdBaseJitType, simdSize); } - case NI_VectorT128_Load: - case NI_VectorT128_LoadUnsafe: -#if defined(TARGET_XARCH) - case NI_VectorT256_Load: - case NI_VectorT256_LoadUnsafe: -#endif // TARGET_XARCH + case NI_VectorT_Load: + case NI_VectorT_LoadUnsafe: { if (op1->OperIs(GT_CAST) && op1->gtGetOp1()->TypeIs(TYP_BYREF)) { @@ -1114,10 +1024,7 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, return gtNewSimdLoadNode(retType, op1, simdBaseJitType, simdSize); } - case NI_VectorT128_LoadAligned: -#if defined(TARGET_XARCH) - case NI_VectorT256_LoadAligned: -#endif // TARGET_XARCH + case NI_VectorT_LoadAligned: { if (op1->OperIs(GT_CAST) && op1->gtGetOp1()->TypeIs(TYP_BYREF)) { @@ -1128,10 +1035,7 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, return gtNewSimdLoadAlignedNode(retType, op1, simdBaseJitType, simdSize); } - case NI_VectorT128_LoadAlignedNonTemporal: -#if defined(TARGET_XARCH) - case NI_VectorT256_LoadAlignedNonTemporal: -#endif // TARGET_XARCH + case NI_VectorT_LoadAlignedNonTemporal: { if (op1->OperIs(GT_CAST) && op1->gtGetOp1()->TypeIs(TYP_BYREF)) { @@ -1150,12 +1054,8 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, case NI_Vector3_op_UnaryNegation: case NI_Vector4_Negate: case NI_Vector4_op_UnaryNegation: - case NI_VectorT128_Negate: - case NI_VectorT128_op_UnaryNegation: -#if defined(TARGET_XARCH) - case NI_VectorT256_Negate: - case NI_VectorT256_op_UnaryNegation: -#endif // TARGET_XARCH + case NI_VectorT_Negate: + case NI_VectorT_op_UnaryNegation: { return gtNewSimdUnOpNode(GT_NEG, retType, op1, simdBaseJitType, simdSize); } @@ -1179,12 +1079,8 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, return gtNewSimdBinOpNode(GT_DIV, retType, clonedOp2, op1, simdBaseJitType, simdSize); } - case NI_VectorT128_OnesComplement: - case NI_VectorT128_op_OnesComplement: -#if defined(TARGET_XARCH) - case NI_VectorT256_OnesComplement: - case NI_VectorT256_op_OnesComplement: -#endif // TARGET_XARCH + case NI_VectorT_OnesComplement: + case NI_VectorT_op_OnesComplement: { return gtNewSimdUnOpNode(GT_NOT, retType, op1, simdBaseJitType, simdSize); } @@ -1192,23 +1088,17 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, case NI_Vector2_Sqrt: case NI_Vector3_Sqrt: case NI_Vector4_Sqrt: - case NI_VectorT128_Sqrt: -#if defined(TARGET_XARCH) - case NI_VectorT256_Sqrt: -#endif // TARGET_XARCH + case NI_VectorT_Sqrt: { return gtNewSimdSqrtNode(retType, op1, simdBaseJitType, simdSize); } - case NI_VectorT128_Sum: -#if defined(TARGET_XARCH) - case NI_VectorT256_Sum: -#endif // TARGET_XARCH + case NI_VectorT_Sum: { return gtNewSimdSumNode(retType, op1, simdBaseJitType, simdSize); } - case NI_VectorT128_ToScalar: + case NI_VectorT_ToScalar: { #if defined(TARGET_X86) if (varTypeIsLong(simdBaseType)) @@ -1218,101 +1108,107 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, } #endif // TARGET_X86 - return gtNewSimdHWIntrinsicNode(retType, op1, NI_Vector128_ToScalar, simdBaseJitType, simdSize); + return gtNewSimdToScalarNode(retType, op1, simdBaseJitType, simdSize); } - case NI_VectorT128_op_UnaryPlus: -#if defined(TARGET_XARCH) - case NI_VectorT256_op_UnaryPlus: -#endif // TARGET_XARCH + case NI_VectorT_op_UnaryPlus: { return op1; } - case NI_VectorT128_WidenLower: -#if defined(TARGET_XARCH) - case NI_VectorT256_WidenLower: -#endif // TARGET_XARCH + case NI_VectorT_WidenLower: { return gtNewSimdWidenLowerNode(retType, op1, simdBaseJitType, simdSize); } - case NI_VectorT128_WidenUpper: -#if defined(TARGET_XARCH) - case NI_VectorT256_WidenUpper: -#endif // TARGET_XARCH + case NI_VectorT_WidenUpper: { return gtNewSimdWidenUpperNode(retType, op1, simdBaseJitType, simdSize); } #if defined(TARGET_XARCH) - case NI_VectorT128_ConvertToInt32: - case NI_VectorT256_ConvertToInt32: + case NI_VectorT_ConvertToInt32: { assert(simdBaseType == TYP_FLOAT); - NamedIntrinsic convert = (simdSize == 32) ? NI_AVX_ConvertToVector256Int32WithTruncation - : NI_SSE2_ConvertToVector128Int32WithTruncation; + NamedIntrinsic convert; + + switch (simdSize) + { + case 16: + convert = NI_SSE2_ConvertToVector128Int32WithTruncation; + break; + case 32: + convert = NI_AVX_ConvertToVector256Int32WithTruncation; + break; + case 64: + convert = NI_AVX512F_ConvertToVector512Int32WithTruncation; + break; + default: + unreached(); + } + return gtNewSimdHWIntrinsicNode(retType, op1, convert, simdBaseJitType, simdSize); } - case NI_VectorT128_ConvertToSingle: - case NI_VectorT256_ConvertToSingle: + case NI_VectorT_ConvertToSingle: { assert(simdBaseType == TYP_INT); - NamedIntrinsic convert = - (simdSize == 32) ? NI_AVX_ConvertToVector256Single : NI_SSE2_ConvertToVector128Single; - return gtNewSimdHWIntrinsicNode(retType, op1, convert, simdBaseJitType, simdSize); - } + NamedIntrinsic convert; - case NI_VectorT256_ToScalar: - { -#if defined(TARGET_X86) - if (varTypeIsLong(simdBaseType)) + switch (simdSize) { - op2 = gtNewIconNode(0); - return gtNewSimdGetElementNode(retType, op1, op2, simdBaseJitType, simdSize); + case 16: + convert = NI_SSE2_ConvertToVector128Single; + break; + case 32: + convert = NI_AVX_ConvertToVector256Single; + break; + case 64: + convert = NI_AVX512F_ConvertToVector512Single; + break; + default: + unreached(); } -#endif // TARGET_X86 - return gtNewSimdHWIntrinsicNode(retType, op1, NI_Vector256_ToScalar, simdBaseJitType, simdSize); + return gtNewSimdHWIntrinsicNode(retType, op1, convert, simdBaseJitType, simdSize); } #elif defined(TARGET_ARM64) - case NI_VectorT128_ConvertToDouble: + case NI_VectorT_ConvertToDouble: { assert((simdBaseType == TYP_LONG) || (simdBaseType == TYP_ULONG)); return gtNewSimdHWIntrinsicNode(retType, op1, NI_AdvSimd_Arm64_ConvertToDouble, simdBaseJitType, simdSize); } - case NI_VectorT128_ConvertToInt32: + case NI_VectorT_ConvertToInt32: { assert(simdBaseType == TYP_FLOAT); return gtNewSimdHWIntrinsicNode(retType, op1, NI_AdvSimd_ConvertToInt32RoundToZero, simdBaseJitType, simdSize); } - case NI_VectorT128_ConvertToInt64: + case NI_VectorT_ConvertToInt64: { assert(simdBaseType == TYP_DOUBLE); return gtNewSimdHWIntrinsicNode(retType, op1, NI_AdvSimd_Arm64_ConvertToInt64RoundToZero, simdBaseJitType, simdSize); } - case NI_VectorT128_ConvertToSingle: + case NI_VectorT_ConvertToSingle: { assert((simdBaseType == TYP_INT) || (simdBaseType == TYP_UINT)); return gtNewSimdHWIntrinsicNode(retType, op1, NI_AdvSimd_ConvertToSingle, simdBaseJitType, simdSize); } - case NI_VectorT128_ConvertToUInt32: + case NI_VectorT_ConvertToUInt32: { assert(simdBaseType == TYP_FLOAT); return gtNewSimdHWIntrinsicNode(retType, op1, NI_AdvSimd_ConvertToUInt32RoundToZero, simdBaseJitType, simdSize); } - case NI_VectorT128_ConvertToUInt64: + case NI_VectorT_ConvertToUInt64: { assert(simdBaseType == TYP_DOUBLE); return gtNewSimdHWIntrinsicNode(retType, op1, NI_AdvSimd_Arm64_ConvertToUInt64RoundToZero, @@ -1372,40 +1268,25 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, case NI_Vector3_op_Addition: case NI_Vector4_Add: case NI_Vector4_op_Addition: - case NI_VectorT128_Add: - case NI_VectorT128_op_Addition: -#if defined(TARGET_XARCH) - case NI_VectorT256_Add: - case NI_VectorT256_op_Addition: -#endif // TARGET_XARCH + case NI_VectorT_Add: + case NI_VectorT_op_Addition: { return gtNewSimdBinOpNode(GT_ADD, retType, op1, op2, simdBaseJitType, simdSize); } - case NI_VectorT128_AndNot: -#if defined(TARGET_XARCH) - case NI_VectorT256_AndNot: -#endif // TARGET_XARCH + case NI_VectorT_AndNot: { return gtNewSimdBinOpNode(GT_AND_NOT, retType, op1, op2, simdBaseJitType, simdSize); } - case NI_VectorT128_BitwiseAnd: - case NI_VectorT128_op_BitwiseAnd: -#if defined(TARGET_XARCH) - case NI_VectorT256_BitwiseAnd: - case NI_VectorT256_op_BitwiseAnd: -#endif // TARGET_XARCH + case NI_VectorT_BitwiseAnd: + case NI_VectorT_op_BitwiseAnd: { return gtNewSimdBinOpNode(GT_AND, retType, op1, op2, simdBaseJitType, simdSize); } - case NI_VectorT128_BitwiseOr: - case NI_VectorT128_op_BitwiseOr: -#if defined(TARGET_XARCH) - case NI_VectorT256_BitwiseOr: - case NI_VectorT256_op_BitwiseOr: -#endif // TARGET_XARCH + case NI_VectorT_BitwiseOr: + case NI_VectorT_op_BitwiseOr: { return gtNewSimdBinOpNode(GT_OR, retType, op1, op2, simdBaseJitType, simdSize); } @@ -1413,10 +1294,7 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, case NI_Vector2_CreateBroadcast: case NI_Vector3_CreateBroadcast: case NI_Vector4_CreateBroadcast: - case NI_VectorT128_CreateBroadcast: -#if defined(TARGET_XARCH) - case NI_VectorT256_CreateBroadcast: -#endif // TARGET_XARCH + case NI_VectorT_CreateBroadcast: { assert(retType == TYP_VOID); @@ -1472,12 +1350,8 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, case NI_Vector3_op_Division: case NI_Vector4_Divide: case NI_Vector4_op_Division: - case NI_VectorT128_Divide: - case NI_VectorT128_op_Division: -#if defined(TARGET_XARCH) - case NI_VectorT256_Divide: - case NI_VectorT256_op_Division: -#endif // TARGET_XARCH + case NI_VectorT_Divide: + case NI_VectorT_op_Division: { return gtNewSimdBinOpNode(GT_DIV, retType, op1, op2, simdBaseJitType, simdSize); } @@ -1487,19 +1361,13 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, case NI_Vector2_Dot: case NI_Vector3_Dot: case NI_Vector4_Dot: - case NI_VectorT128_Dot: -#if defined(TARGET_XARCH) - case NI_VectorT256_Dot: -#endif // TARGET_XARCH + case NI_VectorT_Dot: { op1 = gtNewSimdDotProdNode(simdType, op1, op2, simdBaseJitType, simdSize); return gtNewSimdGetElementNode(retType, op1, gtNewIconNode(0), simdBaseJitType, simdSize); } - case NI_VectorT128_Equals: -#if defined(TARGET_XARCH) - case NI_VectorT256_Equals: -#endif // TARGET_XARCH + case NI_VectorT_Equals: { return gtNewSimdCmpOpNode(GT_EQ, retType, op1, op2, simdBaseJitType, simdSize); } @@ -1509,30 +1377,19 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, case NI_Vector2_op_Equality: case NI_Vector3_op_Equality: case NI_Vector4_op_Equality: - case NI_VectorT128_EqualsAll: - case NI_VectorT128_op_Equality: -#if defined(TARGET_XARCH) - case NI_VectorT256_EqualsAll: - case NI_VectorT256_op_Equality: -#endif // TARGET_XARCH + case NI_VectorT_EqualsAll: + case NI_VectorT_op_Equality: { return gtNewSimdCmpOpAllNode(GT_EQ, retType, op1, op2, simdBaseJitType, simdSize); } - case NI_VectorT128_EqualsAny: -#if defined(TARGET_XARCH) - case NI_VectorT256_EqualsAny: -#endif // TARGET_XARCH + case NI_VectorT_EqualsAny: { return gtNewSimdCmpOpAnyNode(GT_EQ, retType, op1, op2, simdBaseJitType, simdSize); } - case NI_VectorT128_Xor: - case NI_VectorT128_op_ExclusiveOr: -#if defined(TARGET_XARCH) - case NI_VectorT256_Xor: - case NI_VectorT256_op_ExclusiveOr: -#endif // TARGET_XARCH + case NI_VectorT_Xor: + case NI_VectorT_op_ExclusiveOr: { return gtNewSimdBinOpNode(GT_XOR, retType, op1, op2, simdBaseJitType, simdSize); } @@ -1545,60 +1402,38 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, case NI_Vector3_GetElement: case NI_Vector4_get_Item: case NI_Vector4_GetElement: - case NI_VectorT128_get_Item: - case NI_VectorT128_GetElement: -#if defined(TARGET_XARCH) - case NI_VectorT256_get_Item: - case NI_VectorT256_GetElement: -#endif // TARGET_XARCH + case NI_VectorT_get_Item: + case NI_VectorT_GetElement: { return gtNewSimdGetElementNode(retType, op1, op2, simdBaseJitType, simdSize); } - case NI_VectorT128_GreaterThan: -#if defined(TARGET_XARCH) - case NI_VectorT256_GreaterThan: -#endif // TARGET_XARCH + case NI_VectorT_GreaterThan: { return gtNewSimdCmpOpNode(GT_GT, retType, op1, op2, simdBaseJitType, simdSize); } - case NI_VectorT128_GreaterThanAll: -#if defined(TARGET_XARCH) - case NI_VectorT256_GreaterThanAll: -#endif // TARGET_XARCH + case NI_VectorT_GreaterThanAll: { return gtNewSimdCmpOpAllNode(GT_GT, retType, op1, op2, simdBaseJitType, simdSize); } - case NI_VectorT128_GreaterThanAny: -#if defined(TARGET_XARCH) - case NI_VectorT256_GreaterThanAny: -#endif // TARGET_XARCH + case NI_VectorT_GreaterThanAny: { return gtNewSimdCmpOpAnyNode(GT_GT, retType, op1, op2, simdBaseJitType, simdSize); } - case NI_VectorT128_GreaterThanOrEqual: -#if defined(TARGET_XARCH) - case NI_VectorT256_GreaterThanOrEqual: -#endif // TARGET_XARCH + case NI_VectorT_GreaterThanOrEqual: { return gtNewSimdCmpOpNode(GT_GE, retType, op1, op2, simdBaseJitType, simdSize); } - case NI_VectorT128_GreaterThanOrEqualAll: -#if defined(TARGET_XARCH) - case NI_VectorT256_GreaterThanOrEqualAll: -#endif // TARGET_XARCH + case NI_VectorT_GreaterThanOrEqualAll: { return gtNewSimdCmpOpAllNode(GT_GE, retType, op1, op2, simdBaseJitType, simdSize); } - case NI_VectorT128_GreaterThanOrEqualAny: -#if defined(TARGET_XARCH) - case NI_VectorT256_GreaterThanOrEqualAny: -#endif // TARGET_XARCH + case NI_VectorT_GreaterThanOrEqualAny: { return gtNewSimdCmpOpAnyNode(GT_GE, retType, op1, op2, simdBaseJitType, simdSize); } @@ -1608,66 +1443,42 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, case NI_Vector2_op_Inequality: case NI_Vector3_op_Inequality: case NI_Vector4_op_Inequality: - case NI_VectorT128_op_Inequality: -#if defined(TARGET_XARCH) - case NI_VectorT256_op_Inequality: -#endif // TARGET_XARCH + case NI_VectorT_op_Inequality: { return gtNewSimdCmpOpAnyNode(GT_NE, retType, op1, op2, simdBaseJitType, simdSize); } - case NI_VectorT128_LessThan: -#if defined(TARGET_XARCH) - case NI_VectorT256_LessThan: -#endif // TARGET_XARCH + case NI_VectorT_LessThan: { return gtNewSimdCmpOpNode(GT_LT, retType, op1, op2, simdBaseJitType, simdSize); } - case NI_VectorT128_LessThanAll: -#if defined(TARGET_XARCH) - case NI_VectorT256_LessThanAll: -#endif // TARGET_XARCH + case NI_VectorT_LessThanAll: { return gtNewSimdCmpOpAllNode(GT_LT, retType, op1, op2, simdBaseJitType, simdSize); } - case NI_VectorT128_LessThanAny: -#if defined(TARGET_XARCH) - case NI_VectorT256_LessThanAny: -#endif // TARGET_XARCH + case NI_VectorT_LessThanAny: { return gtNewSimdCmpOpAnyNode(GT_LT, retType, op1, op2, simdBaseJitType, simdSize); } - case NI_VectorT128_LessThanOrEqual: -#if defined(TARGET_XARCH) - case NI_VectorT256_LessThanOrEqual: -#endif // TARGET_XARCH + case NI_VectorT_LessThanOrEqual: { return gtNewSimdCmpOpNode(GT_LE, retType, op1, op2, simdBaseJitType, simdSize); } - case NI_VectorT128_LessThanOrEqualAll: -#if defined(TARGET_XARCH) - case NI_VectorT256_LessThanOrEqualAll: -#endif // TARGET_XARCH + case NI_VectorT_LessThanOrEqualAll: { return gtNewSimdCmpOpAllNode(GT_LE, retType, op1, op2, simdBaseJitType, simdSize); } - case NI_VectorT128_LessThanOrEqualAny: -#if defined(TARGET_XARCH) - case NI_VectorT256_LessThanOrEqualAny: -#endif // TARGET_XARCH + case NI_VectorT_LessThanOrEqualAny: { return gtNewSimdCmpOpAnyNode(GT_LE, retType, op1, op2, simdBaseJitType, simdSize); } - case NI_VectorT128_LoadUnsafeIndex: -#if defined(TARGET_XARCH) - case NI_VectorT256_LoadUnsafeIndex: -#endif // TARGET_XARCH + case NI_VectorT_LoadUnsafeIndex: { GenTree* tmp; @@ -1687,10 +1498,7 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, case NI_Vector2_Max: case NI_Vector3_Max: case NI_Vector4_Max: - case NI_VectorT128_Max: -#if defined(TARGET_XARCH) - case NI_VectorT256_Max: -#endif // TARGET_XARCH + case NI_VectorT_Max: { return gtNewSimdMaxNode(retType, op1, op2, simdBaseJitType, simdSize); } @@ -1698,10 +1506,7 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, case NI_Vector2_Min: case NI_Vector3_Min: case NI_Vector4_Min: - case NI_VectorT128_Min: -#if defined(TARGET_XARCH) - case NI_VectorT256_Min: -#endif // TARGET_XARCH + case NI_VectorT_Min: { return gtNewSimdMinNode(retType, op1, op2, simdBaseJitType, simdSize); } @@ -1714,61 +1519,38 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, case NI_Vector3_op_Multiply: case NI_Vector4_Multiply: case NI_Vector4_op_Multiply: - case NI_VectorT128_Multiply: - case NI_VectorT128_op_Multiply: -#if defined(TARGET_XARCH) - case NI_VectorT256_Multiply: - case NI_VectorT256_op_Multiply: -#endif // TARGET_XARCH + case NI_VectorT_Multiply: + case NI_VectorT_op_Multiply: { return gtNewSimdBinOpNode(GT_MUL, retType, op1, op2, simdBaseJitType, simdSize); } - case NI_VectorT128_Narrow: -#if defined(TARGET_XARCH) - case NI_VectorT256_Narrow: -#endif // TARGET_XARCH + case NI_VectorT_Narrow: { return gtNewSimdNarrowNode(retType, op1, op2, simdBaseJitType, simdSize); } - case NI_VectorT128_ShiftLeft: - case NI_VectorT128_op_LeftShift: -#if defined(TARGET_XARCH) - case NI_VectorT256_ShiftLeft: - case NI_VectorT256_op_LeftShift: -#endif // TARGET_XARCH + case NI_VectorT_ShiftLeft: + case NI_VectorT_op_LeftShift: { return gtNewSimdBinOpNode(GT_LSH, retType, op1, op2, simdBaseJitType, simdSize); } - case NI_VectorT128_ShiftRightArithmetic: - case NI_VectorT128_op_RightShift: -#if defined(TARGET_XARCH) - case NI_VectorT256_ShiftRightArithmetic: - case NI_VectorT256_op_RightShift: -#endif // TARGET_XARCH + case NI_VectorT_ShiftRightArithmetic: + case NI_VectorT_op_RightShift: { genTreeOps op = varTypeIsUnsigned(simdBaseType) ? GT_RSZ : GT_RSH; return gtNewSimdBinOpNode(op, retType, op1, op2, simdBaseJitType, simdSize); } - case NI_VectorT128_ShiftRightLogical: - case NI_VectorT128_op_UnsignedRightShift: -#if defined(TARGET_XARCH) - case NI_VectorT256_ShiftRightLogical: - case NI_VectorT256_op_UnsignedRightShift: -#endif // TARGET_XARCH + case NI_VectorT_ShiftRightLogical: + case NI_VectorT_op_UnsignedRightShift: { return gtNewSimdBinOpNode(GT_RSZ, retType, op1, op2, simdBaseJitType, simdSize); } - case NI_VectorT128_Store: - case NI_VectorT128_StoreUnsafe: -#if defined(TARGET_XARCH) - case NI_VectorT256_Store: - case NI_VectorT256_StoreUnsafe: -#endif // TARGET_XARCH + case NI_VectorT_Store: + case NI_VectorT_StoreUnsafe: { assert(retType == TYP_VOID); @@ -1781,10 +1563,7 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, return gtNewSimdStoreNode(op2, op1, simdBaseJitType, simdSize); } - case NI_VectorT128_StoreAligned: -#if defined(TARGET_XARCH) - case NI_VectorT256_StoreAligned: -#endif // TARGET_XARCH + case NI_VectorT_StoreAligned: { assert(retType == TYP_VOID); @@ -1797,10 +1576,7 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, return gtNewSimdStoreAlignedNode(op2, op1, simdBaseJitType, simdSize); } - case NI_VectorT128_StoreAlignedNonTemporal: -#if defined(TARGET_XARCH) - case NI_VectorT256_StoreAlignedNonTemporal: -#endif // TARGET_XARCH + case NI_VectorT_StoreAlignedNonTemporal: { assert(retType == TYP_VOID); @@ -1821,12 +1597,8 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, case NI_Vector3_op_Subtraction: case NI_Vector4_Subtract: case NI_Vector4_op_Subtraction: - case NI_VectorT128_Subtract: - case NI_VectorT128_op_Subtraction: -#if defined(TARGET_XARCH) - case NI_VectorT256_Subtract: - case NI_VectorT256_op_Subtraction: -#endif // TARGET_XARCH + case NI_VectorT_Subtract: + case NI_VectorT_op_Subtraction: { return gtNewSimdBinOpNode(GT_SUB, retType, op1, op2, simdBaseJitType, simdSize); } @@ -1890,10 +1662,7 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, return gtNewSimdMinNode(retType, maxNode, op3, simdBaseJitType, simdSize); } - case NI_VectorT128_ConditionalSelect: -#if defined(TARGET_XARCH) - case NI_VectorT256_ConditionalSelect: -#endif // TARGET_XARCH + case NI_VectorT_ConditionalSelect: { return gtNewSimdCndSelNode(retType, op1, op2, op3, simdBaseJitType, simdSize); } @@ -1939,10 +1708,7 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, return gtNewSimdBinOpNode(GT_ADD, retType, op1, op2, simdBaseJitType, simdSize); } - case NI_VectorT128_StoreUnsafeIndex: -#if defined(TARGET_XARCH) - case NI_VectorT256_StoreUnsafeIndex: -#endif // TARGET_XARCH + case NI_VectorT_StoreUnsafeIndex: { assert(retType == TYP_VOID); GenTree* tmp; @@ -2048,10 +1814,7 @@ GenTree* Compiler::impSimdAsHWIntrinsicSpecial(NamedIntrinsic intrinsic, case NI_Vector2_WithElement: case NI_Vector3_WithElement: case NI_Vector4_WithElement: - case NI_VectorT128_WithElement: -#if defined(TARGET_XARCH) - case NI_VectorT256_WithElement: -#endif // TARGET_XARCH + case NI_VectorT_WithElement: { return gtNewSimdWithElementNode(retType, op1, op2, op3, simdBaseJitType, simdSize); } diff --git a/src/coreclr/jit/simdashwintrinsic.h b/src/coreclr/jit/simdashwintrinsic.h index 01581550dfeaa..d42fff256ab8e 100644 --- a/src/coreclr/jit/simdashwintrinsic.h +++ b/src/coreclr/jit/simdashwintrinsic.h @@ -13,9 +13,7 @@ enum class SimdAsHWIntrinsicClassId Vector3, Vector4, Vector, - VectorT128, - VectorT256, - VectorT512, + VectorT, }; enum class SimdAsHWIntrinsicFlag : unsigned int diff --git a/src/coreclr/jit/simdashwintrinsiclistarm64.h b/src/coreclr/jit/simdashwintrinsiclistarm64.h index 74673e40b6f33..f081302e0b1d4 100644 --- a/src/coreclr/jit/simdashwintrinsiclistarm64.h +++ b/src/coreclr/jit/simdashwintrinsiclistarm64.h @@ -202,99 +202,99 @@ SIMD_AS_HWINTRINSIC_ID(Vector4, WithElement, // {TYP_BYTE, TYP_UBYTE, TYP_SHORT, TYP_USHORT, TYP_INT, TYP_UINT, TYP_LONG, TYP_ULONG, TYP_FLOAT, TYP_DOUBLE} // ************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************* // Vector Intrinsics -SIMD_AS_HWINTRINSIC_ID(VectorT128, Abs, 1, {NI_VectorT128_Abs, NI_VectorT128_Abs, NI_VectorT128_Abs, NI_VectorT128_Abs, NI_VectorT128_Abs, NI_VectorT128_Abs, NI_VectorT128_Abs, NI_VectorT128_Abs, NI_VectorT128_Abs, NI_VectorT128_Abs}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Add, 2, {NI_VectorT128_Add, NI_VectorT128_Add, NI_VectorT128_Add, NI_VectorT128_Add, NI_VectorT128_Add, NI_VectorT128_Add, NI_VectorT128_Add, NI_VectorT128_Add, NI_VectorT128_Add, NI_VectorT128_Add}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AndNot, 2, {NI_VectorT128_AndNot, NI_VectorT128_AndNot, NI_VectorT128_AndNot, NI_VectorT128_AndNot, NI_VectorT128_AndNot, NI_VectorT128_AndNot, NI_VectorT128_AndNot, NI_VectorT128_AndNot, NI_VectorT128_AndNot, NI_VectorT128_AndNot}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, As, 1, {NI_VectorT128_As, NI_VectorT128_As, NI_VectorT128_As, NI_VectorT128_As, NI_VectorT128_As, NI_VectorT128_As, NI_VectorT128_As, NI_VectorT128_As, NI_VectorT128_As, NI_VectorT128_As}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AsVectorByte, 1, {NI_VectorT128_AsVectorByte, NI_VectorT128_AsVectorByte, NI_VectorT128_AsVectorByte, NI_VectorT128_AsVectorByte, NI_VectorT128_AsVectorByte, NI_VectorT128_AsVectorByte, NI_VectorT128_AsVectorByte, NI_VectorT128_AsVectorByte, NI_VectorT128_AsVectorByte, NI_VectorT128_AsVectorByte}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AsVectorDouble, 1, {NI_VectorT128_AsVectorDouble, NI_VectorT128_AsVectorDouble, NI_VectorT128_AsVectorDouble, NI_VectorT128_AsVectorDouble, NI_VectorT128_AsVectorDouble, NI_VectorT128_AsVectorDouble, NI_VectorT128_AsVectorDouble, NI_VectorT128_AsVectorDouble, NI_VectorT128_AsVectorDouble, NI_VectorT128_AsVectorDouble}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AsVectorInt16, 1, {NI_VectorT128_AsVectorInt16, NI_VectorT128_AsVectorInt16, NI_VectorT128_AsVectorInt16, NI_VectorT128_AsVectorInt16, NI_VectorT128_AsVectorInt16, NI_VectorT128_AsVectorInt16, NI_VectorT128_AsVectorInt16, NI_VectorT128_AsVectorInt16, NI_VectorT128_AsVectorInt16, NI_VectorT128_AsVectorInt16}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AsVectorInt32, 1, {NI_VectorT128_AsVectorInt32, NI_VectorT128_AsVectorInt32, NI_VectorT128_AsVectorInt32, NI_VectorT128_AsVectorInt32, NI_VectorT128_AsVectorInt32, NI_VectorT128_AsVectorInt32, NI_VectorT128_AsVectorInt32, NI_VectorT128_AsVectorInt32, NI_VectorT128_AsVectorInt32, NI_VectorT128_AsVectorInt32}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AsVectorInt64, 1, {NI_VectorT128_AsVectorInt64, NI_VectorT128_AsVectorInt64, NI_VectorT128_AsVectorInt64, NI_VectorT128_AsVectorInt64, NI_VectorT128_AsVectorInt64, NI_VectorT128_AsVectorInt64, NI_VectorT128_AsVectorInt64, NI_VectorT128_AsVectorInt64, NI_VectorT128_AsVectorInt64, NI_VectorT128_AsVectorInt64}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AsVectorNInt, 1, {NI_VectorT128_AsVectorNInt, NI_VectorT128_AsVectorNInt, NI_VectorT128_AsVectorNInt, NI_VectorT128_AsVectorNInt, NI_VectorT128_AsVectorNInt, NI_VectorT128_AsVectorNInt, NI_VectorT128_AsVectorNInt, NI_VectorT128_AsVectorNInt, NI_VectorT128_AsVectorNInt, NI_VectorT128_AsVectorNInt}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AsVectorNUInt, 1, {NI_VectorT128_AsVectorNUInt, NI_VectorT128_AsVectorNUInt, NI_VectorT128_AsVectorNUInt, NI_VectorT128_AsVectorNUInt, NI_VectorT128_AsVectorNUInt, NI_VectorT128_AsVectorNUInt, NI_VectorT128_AsVectorNUInt, NI_VectorT128_AsVectorNUInt, NI_VectorT128_AsVectorNUInt, NI_VectorT128_AsVectorNUInt}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AsVectorSByte, 1, {NI_VectorT128_AsVectorSByte, NI_VectorT128_AsVectorSByte, NI_VectorT128_AsVectorSByte, NI_VectorT128_AsVectorSByte, NI_VectorT128_AsVectorSByte, NI_VectorT128_AsVectorSByte, NI_VectorT128_AsVectorSByte, NI_VectorT128_AsVectorSByte, NI_VectorT128_AsVectorSByte, NI_VectorT128_AsVectorSByte}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AsVectorSingle, 1, {NI_VectorT128_AsVectorSingle, NI_VectorT128_AsVectorSingle, NI_VectorT128_AsVectorSingle, NI_VectorT128_AsVectorSingle, NI_VectorT128_AsVectorSingle, NI_VectorT128_AsVectorSingle, NI_VectorT128_AsVectorSingle, NI_VectorT128_AsVectorSingle, NI_VectorT128_AsVectorSingle, NI_VectorT128_AsVectorSingle}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AsVectorUInt16, 1, {NI_VectorT128_AsVectorUInt16, NI_VectorT128_AsVectorUInt16, NI_VectorT128_AsVectorUInt16, NI_VectorT128_AsVectorUInt16, NI_VectorT128_AsVectorUInt16, NI_VectorT128_AsVectorUInt16, NI_VectorT128_AsVectorUInt16, NI_VectorT128_AsVectorUInt16, NI_VectorT128_AsVectorUInt16, NI_VectorT128_AsVectorUInt16}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AsVectorUInt32, 1, {NI_VectorT128_AsVectorUInt32, NI_VectorT128_AsVectorUInt32, NI_VectorT128_AsVectorUInt32, NI_VectorT128_AsVectorUInt32, NI_VectorT128_AsVectorUInt32, NI_VectorT128_AsVectorUInt32, NI_VectorT128_AsVectorUInt32, NI_VectorT128_AsVectorUInt32, NI_VectorT128_AsVectorUInt32, NI_VectorT128_AsVectorUInt32}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AsVectorUInt64, 1, {NI_VectorT128_AsVectorUInt64, NI_VectorT128_AsVectorUInt64, NI_VectorT128_AsVectorUInt64, NI_VectorT128_AsVectorUInt64, NI_VectorT128_AsVectorUInt64, NI_VectorT128_AsVectorUInt64, NI_VectorT128_AsVectorUInt64, NI_VectorT128_AsVectorUInt64, NI_VectorT128_AsVectorUInt64, NI_VectorT128_AsVectorUInt64}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, BitwiseAnd, 2, {NI_VectorT128_BitwiseAnd, NI_VectorT128_BitwiseAnd, NI_VectorT128_BitwiseAnd, NI_VectorT128_BitwiseAnd, NI_VectorT128_BitwiseAnd, NI_VectorT128_BitwiseAnd, NI_VectorT128_BitwiseAnd, NI_VectorT128_BitwiseAnd, NI_VectorT128_BitwiseAnd, NI_VectorT128_BitwiseAnd}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, BitwiseOr, 2, {NI_VectorT128_BitwiseOr, NI_VectorT128_BitwiseOr, NI_VectorT128_BitwiseOr, NI_VectorT128_BitwiseOr, NI_VectorT128_BitwiseOr, NI_VectorT128_BitwiseOr, NI_VectorT128_BitwiseOr, NI_VectorT128_BitwiseOr, NI_VectorT128_BitwiseOr, NI_VectorT128_BitwiseOr}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Ceiling, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT128_Ceiling, NI_VectorT128_Ceiling}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, ConditionalSelect, 3, {NI_VectorT128_ConditionalSelect, NI_VectorT128_ConditionalSelect, NI_VectorT128_ConditionalSelect, NI_VectorT128_ConditionalSelect, NI_VectorT128_ConditionalSelect, NI_VectorT128_ConditionalSelect, NI_VectorT128_ConditionalSelect, NI_VectorT128_ConditionalSelect, NI_VectorT128_ConditionalSelect, NI_VectorT128_ConditionalSelect}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, ConvertToDouble, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT128_ConvertToDouble, NI_VectorT128_ConvertToDouble, NI_Illegal, NI_Illegal}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, ConvertToInt32, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT128_ConvertToInt32, NI_Illegal}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, ConvertToInt64, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT128_ConvertToInt64}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, ConvertToSingle, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT128_ConvertToSingle, NI_VectorT128_ConvertToSingle, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, ConvertToUInt32, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT128_ConvertToUInt32, NI_Illegal}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, ConvertToUInt64, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT128_ConvertToUInt64}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_NM(VectorT128, CreateBroadcast, ".ctor", 2, {NI_VectorT128_CreateBroadcast, NI_VectorT128_CreateBroadcast, NI_VectorT128_CreateBroadcast, NI_VectorT128_CreateBroadcast, NI_VectorT128_CreateBroadcast, NI_VectorT128_CreateBroadcast, NI_VectorT128_CreateBroadcast, NI_VectorT128_CreateBroadcast, NI_VectorT128_CreateBroadcast, NI_VectorT128_CreateBroadcast}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Divide, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT128_Divide, NI_VectorT128_Divide}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Dot, 2, {NI_VectorT128_Dot, NI_VectorT128_Dot, NI_VectorT128_Dot, NI_VectorT128_Dot, NI_VectorT128_Dot, NI_VectorT128_Dot, NI_Illegal, NI_Illegal, NI_VectorT128_Dot, NI_VectorT128_Dot}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Equals, 2, {NI_VectorT128_Equals, NI_VectorT128_Equals, NI_VectorT128_Equals, NI_VectorT128_Equals, NI_VectorT128_Equals, NI_VectorT128_Equals, NI_VectorT128_Equals, NI_VectorT128_Equals, NI_VectorT128_Equals, NI_VectorT128_Equals}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, EqualsAll, 2, {NI_VectorT128_EqualsAll, NI_VectorT128_EqualsAll, NI_VectorT128_EqualsAll, NI_VectorT128_EqualsAll, NI_VectorT128_EqualsAll, NI_VectorT128_EqualsAll, NI_VectorT128_EqualsAll, NI_VectorT128_EqualsAll, NI_VectorT128_EqualsAll, NI_VectorT128_EqualsAll}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, EqualsAny, 2, {NI_VectorT128_EqualsAny, NI_VectorT128_EqualsAny, NI_VectorT128_EqualsAny, NI_VectorT128_EqualsAny, NI_VectorT128_EqualsAny, NI_VectorT128_EqualsAny, NI_VectorT128_EqualsAny, NI_VectorT128_EqualsAny, NI_VectorT128_EqualsAny, NI_VectorT128_EqualsAny}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Floor, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT128_Floor, NI_VectorT128_Floor}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, get_AllBitsSet, 0, {NI_VectorT128_get_AllBitsSet, NI_VectorT128_get_AllBitsSet, NI_VectorT128_get_AllBitsSet, NI_VectorT128_get_AllBitsSet, NI_VectorT128_get_AllBitsSet, NI_VectorT128_get_AllBitsSet, NI_VectorT128_get_AllBitsSet, NI_VectorT128_get_AllBitsSet, NI_VectorT128_get_AllBitsSet, NI_VectorT128_get_AllBitsSet}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, get_Item, 2, {NI_VectorT128_get_Item, NI_VectorT128_get_Item, NI_VectorT128_get_Item, NI_VectorT128_get_Item, NI_VectorT128_get_Item, NI_VectorT128_get_Item, NI_VectorT128_get_Item, NI_VectorT128_get_Item, NI_VectorT128_get_Item, NI_VectorT128_get_Item}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::BaseTypeFromThisArg) -SIMD_AS_HWINTRINSIC_ID(VectorT128, get_One, 0, {NI_VectorT128_get_One, NI_VectorT128_get_One, NI_VectorT128_get_One, NI_VectorT128_get_One, NI_VectorT128_get_One, NI_VectorT128_get_One, NI_VectorT128_get_One, NI_VectorT128_get_One, NI_VectorT128_get_One, NI_VectorT128_get_One}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, get_Zero, 0, {NI_VectorT128_get_Zero, NI_VectorT128_get_Zero, NI_VectorT128_get_Zero, NI_VectorT128_get_Zero, NI_VectorT128_get_Zero, NI_VectorT128_get_Zero, NI_VectorT128_get_Zero, NI_VectorT128_get_Zero, NI_VectorT128_get_Zero, NI_VectorT128_get_Zero}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, GetElement, 2, {NI_VectorT128_GetElement, NI_VectorT128_GetElement, NI_VectorT128_GetElement, NI_VectorT128_GetElement, NI_VectorT128_GetElement, NI_VectorT128_GetElement, NI_VectorT128_GetElement, NI_VectorT128_GetElement, NI_VectorT128_GetElement, NI_VectorT128_GetElement}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, GreaterThan, 2, {NI_VectorT128_GreaterThan, NI_VectorT128_GreaterThan, NI_VectorT128_GreaterThan, NI_VectorT128_GreaterThan, NI_VectorT128_GreaterThan, NI_VectorT128_GreaterThan, NI_VectorT128_GreaterThan, NI_VectorT128_GreaterThan, NI_VectorT128_GreaterThan, NI_VectorT128_GreaterThan}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, GreaterThanAll, 2, {NI_VectorT128_GreaterThanAll, NI_VectorT128_GreaterThanAll, NI_VectorT128_GreaterThanAll, NI_VectorT128_GreaterThanAll, NI_VectorT128_GreaterThanAll, NI_VectorT128_GreaterThanAll, NI_VectorT128_GreaterThanAll, NI_VectorT128_GreaterThanAll, NI_VectorT128_GreaterThanAll, NI_VectorT128_GreaterThanAll}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, GreaterThanAny, 2, {NI_VectorT128_GreaterThanAny, NI_VectorT128_GreaterThanAny, NI_VectorT128_GreaterThanAny, NI_VectorT128_GreaterThanAny, NI_VectorT128_GreaterThanAny, NI_VectorT128_GreaterThanAny, NI_VectorT128_GreaterThanAny, NI_VectorT128_GreaterThanAny, NI_VectorT128_GreaterThanAny, NI_VectorT128_GreaterThanAny}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, GreaterThanOrEqual, 2, {NI_VectorT128_GreaterThanOrEqual, NI_VectorT128_GreaterThanOrEqual, NI_VectorT128_GreaterThanOrEqual, NI_VectorT128_GreaterThanOrEqual, NI_VectorT128_GreaterThanOrEqual, NI_VectorT128_GreaterThanOrEqual, NI_VectorT128_GreaterThanOrEqual, NI_VectorT128_GreaterThanOrEqual, NI_VectorT128_GreaterThanOrEqual, NI_VectorT128_GreaterThanOrEqual}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, GreaterThanOrEqualAll, 2, {NI_VectorT128_GreaterThanOrEqualAll, NI_VectorT128_GreaterThanOrEqualAll, NI_VectorT128_GreaterThanOrEqualAll, NI_VectorT128_GreaterThanOrEqualAll, NI_VectorT128_GreaterThanOrEqualAll, NI_VectorT128_GreaterThanOrEqualAll, NI_VectorT128_GreaterThanOrEqualAll, NI_VectorT128_GreaterThanOrEqualAll, NI_VectorT128_GreaterThanOrEqualAll, NI_VectorT128_GreaterThanOrEqualAll}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, GreaterThanOrEqualAny, 2, {NI_VectorT128_GreaterThanOrEqualAny, NI_VectorT128_GreaterThanOrEqualAny, NI_VectorT128_GreaterThanOrEqualAny, NI_VectorT128_GreaterThanOrEqualAny, NI_VectorT128_GreaterThanOrEqualAny, NI_VectorT128_GreaterThanOrEqualAny, NI_VectorT128_GreaterThanOrEqualAny, NI_VectorT128_GreaterThanOrEqualAny, NI_VectorT128_GreaterThanOrEqualAny, NI_VectorT128_GreaterThanOrEqualAny}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, LessThan, 2, {NI_VectorT128_LessThan, NI_VectorT128_LessThan, NI_VectorT128_LessThan, NI_VectorT128_LessThan, NI_VectorT128_LessThan, NI_VectorT128_LessThan, NI_VectorT128_LessThan, NI_VectorT128_LessThan, NI_VectorT128_LessThan, NI_VectorT128_LessThan}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, LessThanAll, 2, {NI_VectorT128_LessThanAll, NI_VectorT128_LessThanAll, NI_VectorT128_LessThanAll, NI_VectorT128_LessThanAll, NI_VectorT128_LessThanAll, NI_VectorT128_LessThanAll, NI_VectorT128_LessThanAll, NI_VectorT128_LessThanAll, NI_VectorT128_LessThanAll, NI_VectorT128_LessThanAll}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, LessThanAny, 2, {NI_VectorT128_LessThanAny, NI_VectorT128_LessThanAny, NI_VectorT128_LessThanAny, NI_VectorT128_LessThanAny, NI_VectorT128_LessThanAny, NI_VectorT128_LessThanAny, NI_VectorT128_LessThanAny, NI_VectorT128_LessThanAny, NI_VectorT128_LessThanAny, NI_VectorT128_LessThanAny}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, LessThanOrEqual, 2, {NI_VectorT128_LessThanOrEqual, NI_VectorT128_LessThanOrEqual, NI_VectorT128_LessThanOrEqual, NI_VectorT128_LessThanOrEqual, NI_VectorT128_LessThanOrEqual, NI_VectorT128_LessThanOrEqual, NI_VectorT128_LessThanOrEqual, NI_VectorT128_LessThanOrEqual, NI_VectorT128_LessThanOrEqual, NI_VectorT128_LessThanOrEqual}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, LessThanOrEqualAll, 2, {NI_VectorT128_LessThanOrEqualAll, NI_VectorT128_LessThanOrEqualAll, NI_VectorT128_LessThanOrEqualAll, NI_VectorT128_LessThanOrEqualAll, NI_VectorT128_LessThanOrEqualAll, NI_VectorT128_LessThanOrEqualAll, NI_VectorT128_LessThanOrEqualAll, NI_VectorT128_LessThanOrEqualAll, NI_VectorT128_LessThanOrEqualAll, NI_VectorT128_LessThanOrEqualAll}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, LessThanOrEqualAny, 2, {NI_VectorT128_LessThanOrEqualAny, NI_VectorT128_LessThanOrEqualAny, NI_VectorT128_LessThanOrEqualAny, NI_VectorT128_LessThanOrEqualAny, NI_VectorT128_LessThanOrEqualAny, NI_VectorT128_LessThanOrEqualAny, NI_VectorT128_LessThanOrEqualAny, NI_VectorT128_LessThanOrEqualAny, NI_VectorT128_LessThanOrEqualAny, NI_VectorT128_LessThanOrEqualAny}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Load, 1, {NI_VectorT128_Load, NI_VectorT128_Load, NI_VectorT128_Load, NI_VectorT128_Load, NI_VectorT128_Load, NI_VectorT128_Load, NI_VectorT128_Load, NI_VectorT128_Load, NI_VectorT128_Load, NI_VectorT128_Load}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) -SIMD_AS_HWINTRINSIC_ID(VectorT128, LoadAligned, 1, {NI_VectorT128_LoadAligned, NI_VectorT128_LoadAligned, NI_VectorT128_LoadAligned, NI_VectorT128_LoadAligned, NI_VectorT128_LoadAligned, NI_VectorT128_LoadAligned, NI_VectorT128_LoadAligned, NI_VectorT128_LoadAligned, NI_VectorT128_LoadAligned, NI_VectorT128_LoadAligned}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) -SIMD_AS_HWINTRINSIC_ID(VectorT128, LoadAlignedNonTemporal, 1, {NI_VectorT128_LoadAlignedNonTemporal, NI_VectorT128_LoadAlignedNonTemporal, NI_VectorT128_LoadAlignedNonTemporal, NI_VectorT128_LoadAlignedNonTemporal, NI_VectorT128_LoadAlignedNonTemporal, NI_VectorT128_LoadAlignedNonTemporal, NI_VectorT128_LoadAlignedNonTemporal, NI_VectorT128_LoadAlignedNonTemporal, NI_VectorT128_LoadAlignedNonTemporal, NI_VectorT128_LoadAlignedNonTemporal}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) -SIMD_AS_HWINTRINSIC_ID(VectorT128, LoadUnsafe, 1, {NI_VectorT128_LoadUnsafe, NI_VectorT128_LoadUnsafe, NI_VectorT128_LoadUnsafe, NI_VectorT128_LoadUnsafe, NI_VectorT128_LoadUnsafe, NI_VectorT128_LoadUnsafe, NI_VectorT128_LoadUnsafe, NI_VectorT128_LoadUnsafe, NI_VectorT128_LoadUnsafe, NI_VectorT128_LoadUnsafe}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) -SIMD_AS_HWINTRINSIC_NM(VectorT128, LoadUnsafeIndex, "LoadUnsafe", 2, {NI_VectorT128_LoadUnsafeIndex, NI_VectorT128_LoadUnsafeIndex, NI_VectorT128_LoadUnsafeIndex, NI_VectorT128_LoadUnsafeIndex, NI_VectorT128_LoadUnsafeIndex, NI_VectorT128_LoadUnsafeIndex, NI_VectorT128_LoadUnsafeIndex, NI_VectorT128_LoadUnsafeIndex, NI_VectorT128_LoadUnsafeIndex, NI_VectorT128_LoadUnsafeIndex}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Max, 2, {NI_VectorT128_Max, NI_VectorT128_Max, NI_VectorT128_Max, NI_VectorT128_Max, NI_VectorT128_Max, NI_VectorT128_Max, NI_VectorT128_Max, NI_VectorT128_Max, NI_VectorT128_Max, NI_VectorT128_Max}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Min, 2, {NI_VectorT128_Min, NI_VectorT128_Min, NI_VectorT128_Min, NI_VectorT128_Min, NI_VectorT128_Min, NI_VectorT128_Min, NI_VectorT128_Min, NI_VectorT128_Min, NI_VectorT128_Min, NI_VectorT128_Min}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Multiply, 2, {NI_VectorT128_Multiply, NI_VectorT128_Multiply, NI_VectorT128_Multiply, NI_VectorT128_Multiply, NI_VectorT128_Multiply, NI_VectorT128_Multiply, NI_Illegal, NI_Illegal, NI_VectorT128_Multiply, NI_VectorT128_Multiply}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Narrow, 2, {NI_VectorT128_Narrow, NI_VectorT128_Narrow, NI_VectorT128_Narrow, NI_VectorT128_Narrow, NI_VectorT128_Narrow, NI_VectorT128_Narrow, NI_VectorT128_Narrow, NI_VectorT128_Narrow, NI_VectorT128_Narrow, NI_VectorT128_Narrow}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Negate, 1, {NI_VectorT128_Negate, NI_VectorT128_Negate, NI_VectorT128_Negate, NI_VectorT128_Negate, NI_VectorT128_Negate, NI_VectorT128_Negate, NI_VectorT128_Negate, NI_VectorT128_Negate, NI_VectorT128_Negate, NI_VectorT128_Negate}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, OnesComplement, 2, {NI_VectorT128_OnesComplement, NI_VectorT128_OnesComplement, NI_VectorT128_OnesComplement, NI_VectorT128_OnesComplement, NI_VectorT128_OnesComplement, NI_VectorT128_OnesComplement, NI_VectorT128_OnesComplement, NI_VectorT128_OnesComplement, NI_VectorT128_OnesComplement, NI_VectorT128_OnesComplement}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_Addition, 2, {NI_VectorT128_op_Addition, NI_VectorT128_op_Addition, NI_VectorT128_op_Addition, NI_VectorT128_op_Addition, NI_VectorT128_op_Addition, NI_VectorT128_op_Addition, NI_VectorT128_op_Addition, NI_VectorT128_op_Addition, NI_VectorT128_op_Addition, NI_VectorT128_op_Addition}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_BitwiseAnd, 2, {NI_VectorT128_op_BitwiseAnd, NI_VectorT128_op_BitwiseAnd, NI_VectorT128_op_BitwiseAnd, NI_VectorT128_op_BitwiseAnd, NI_VectorT128_op_BitwiseAnd, NI_VectorT128_op_BitwiseAnd, NI_VectorT128_op_BitwiseAnd, NI_VectorT128_op_BitwiseAnd, NI_VectorT128_op_BitwiseAnd, NI_VectorT128_op_BitwiseAnd}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_BitwiseOr, 2, {NI_VectorT128_op_BitwiseOr, NI_VectorT128_op_BitwiseOr, NI_VectorT128_op_BitwiseOr, NI_VectorT128_op_BitwiseOr, NI_VectorT128_op_BitwiseOr, NI_VectorT128_op_BitwiseOr, NI_VectorT128_op_BitwiseOr, NI_VectorT128_op_BitwiseOr, NI_VectorT128_op_BitwiseOr, NI_VectorT128_op_BitwiseOr}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_Division, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT128_op_Division, NI_VectorT128_op_Division}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_Equality, 2, {NI_VectorT128_op_Equality, NI_VectorT128_op_Equality, NI_VectorT128_op_Equality, NI_VectorT128_op_Equality, NI_VectorT128_op_Equality, NI_VectorT128_op_Equality, NI_VectorT128_op_Equality, NI_VectorT128_op_Equality, NI_VectorT128_op_Equality, NI_VectorT128_op_Equality}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_ExclusiveOr, 2, {NI_VectorT128_op_ExclusiveOr, NI_VectorT128_op_ExclusiveOr, NI_VectorT128_op_ExclusiveOr, NI_VectorT128_op_ExclusiveOr, NI_VectorT128_op_ExclusiveOr, NI_VectorT128_op_ExclusiveOr, NI_VectorT128_op_ExclusiveOr, NI_VectorT128_op_ExclusiveOr, NI_VectorT128_op_ExclusiveOr, NI_VectorT128_op_ExclusiveOr}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_Explicit, 1, {NI_VectorT128_op_Explicit, NI_VectorT128_op_Explicit, NI_VectorT128_op_Explicit, NI_VectorT128_op_Explicit, NI_VectorT128_op_Explicit, NI_VectorT128_op_Explicit, NI_VectorT128_op_Explicit, NI_VectorT128_op_Explicit, NI_VectorT128_op_Explicit, NI_VectorT128_op_Explicit}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_Inequality, 2, {NI_VectorT128_op_Inequality, NI_VectorT128_op_Inequality, NI_VectorT128_op_Inequality, NI_VectorT128_op_Inequality, NI_VectorT128_op_Inequality, NI_VectorT128_op_Inequality, NI_VectorT128_op_Inequality, NI_VectorT128_op_Inequality, NI_VectorT128_op_Inequality, NI_VectorT128_op_Inequality}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_LeftShift, 2, {NI_VectorT128_op_LeftShift, NI_VectorT128_op_LeftShift, NI_VectorT128_op_LeftShift, NI_VectorT128_op_LeftShift, NI_VectorT128_op_LeftShift, NI_VectorT128_op_LeftShift, NI_VectorT128_op_LeftShift, NI_VectorT128_op_LeftShift, NI_VectorT128_op_LeftShift, NI_VectorT128_op_LeftShift}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_Multiply, 2, {NI_VectorT128_op_Multiply, NI_VectorT128_op_Multiply, NI_VectorT128_op_Multiply, NI_VectorT128_op_Multiply, NI_VectorT128_op_Multiply, NI_VectorT128_op_Multiply, NI_Illegal, NI_Illegal, NI_VectorT128_op_Multiply, NI_VectorT128_op_Multiply}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_OnesComplement, 1, {NI_VectorT128_op_OnesComplement, NI_VectorT128_op_OnesComplement, NI_VectorT128_op_OnesComplement, NI_VectorT128_op_OnesComplement, NI_VectorT128_op_OnesComplement, NI_VectorT128_op_OnesComplement, NI_VectorT128_op_OnesComplement, NI_VectorT128_op_OnesComplement, NI_VectorT128_op_OnesComplement, NI_VectorT128_op_OnesComplement}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_RightShift, 2, {NI_VectorT128_op_RightShift, NI_VectorT128_op_RightShift, NI_VectorT128_op_RightShift, NI_VectorT128_op_RightShift, NI_VectorT128_op_RightShift, NI_VectorT128_op_RightShift, NI_VectorT128_op_RightShift, NI_VectorT128_op_RightShift, NI_VectorT128_op_RightShift, NI_VectorT128_op_RightShift}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_Subtraction, 2, {NI_VectorT128_op_Subtraction, NI_VectorT128_op_Subtraction, NI_VectorT128_op_Subtraction, NI_VectorT128_op_Subtraction, NI_VectorT128_op_Subtraction, NI_VectorT128_op_Subtraction, NI_VectorT128_op_Subtraction, NI_VectorT128_op_Subtraction, NI_VectorT128_op_Subtraction, NI_VectorT128_op_Subtraction}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_UnaryNegation, 1, {NI_VectorT128_op_UnaryNegation, NI_VectorT128_op_UnaryNegation, NI_VectorT128_op_UnaryNegation, NI_VectorT128_op_UnaryNegation, NI_VectorT128_op_UnaryNegation, NI_VectorT128_op_UnaryNegation, NI_VectorT128_op_UnaryNegation, NI_VectorT128_op_UnaryNegation, NI_VectorT128_op_UnaryNegation, NI_VectorT128_op_UnaryNegation}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_UnaryPlus, 1, {NI_VectorT128_op_UnaryPlus, NI_VectorT128_op_UnaryPlus, NI_VectorT128_op_UnaryPlus, NI_VectorT128_op_UnaryPlus, NI_VectorT128_op_UnaryPlus, NI_VectorT128_op_UnaryPlus, NI_VectorT128_op_UnaryPlus, NI_VectorT128_op_UnaryPlus, NI_VectorT128_op_UnaryPlus, NI_VectorT128_op_UnaryPlus}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_UnsignedRightShift, 2, {NI_VectorT128_op_UnsignedRightShift, NI_VectorT128_op_UnsignedRightShift, NI_VectorT128_op_UnsignedRightShift, NI_VectorT128_op_UnsignedRightShift, NI_VectorT128_op_UnsignedRightShift, NI_VectorT128_op_UnsignedRightShift, NI_VectorT128_op_UnsignedRightShift, NI_VectorT128_op_UnsignedRightShift, NI_VectorT128_op_UnsignedRightShift, NI_VectorT128_op_UnsignedRightShift}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, ShiftLeft, 2, {NI_VectorT128_ShiftLeft, NI_VectorT128_ShiftLeft, NI_VectorT128_ShiftLeft, NI_VectorT128_ShiftLeft, NI_VectorT128_ShiftLeft, NI_VectorT128_ShiftLeft, NI_VectorT128_ShiftLeft, NI_VectorT128_ShiftLeft, NI_Illegal, NI_Illegal}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, ShiftRightArithmetic, 2, {NI_VectorT128_ShiftRightArithmetic, NI_Illegal, NI_VectorT128_ShiftRightArithmetic, NI_Illegal, NI_VectorT128_ShiftRightArithmetic, NI_Illegal, NI_VectorT128_ShiftRightArithmetic, NI_Illegal, NI_Illegal, NI_Illegal}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, ShiftRightLogical, 2, {NI_VectorT128_ShiftRightLogical, NI_VectorT128_ShiftRightLogical, NI_VectorT128_ShiftRightLogical, NI_VectorT128_ShiftRightLogical, NI_VectorT128_ShiftRightLogical, NI_VectorT128_ShiftRightLogical, NI_VectorT128_ShiftRightLogical, NI_VectorT128_ShiftRightLogical, NI_Illegal, NI_Illegal}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_NM(VectorT128, Sqrt, "SquareRoot", 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT128_Sqrt, NI_VectorT128_Sqrt}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Store, 2, {NI_VectorT128_Store, NI_VectorT128_Store, NI_VectorT128_Store, NI_VectorT128_Store, NI_VectorT128_Store, NI_VectorT128_Store, NI_VectorT128_Store, NI_VectorT128_Store, NI_VectorT128_Store, NI_VectorT128_Store}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) -SIMD_AS_HWINTRINSIC_ID(VectorT128, StoreAligned, 2, {NI_VectorT128_StoreAligned, NI_VectorT128_StoreAligned, NI_VectorT128_StoreAligned, NI_VectorT128_StoreAligned, NI_VectorT128_StoreAligned, NI_VectorT128_StoreAligned, NI_VectorT128_StoreAligned, NI_VectorT128_StoreAligned, NI_VectorT128_StoreAligned, NI_VectorT128_StoreAligned}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) -SIMD_AS_HWINTRINSIC_ID(VectorT128, StoreAlignedNonTemporal, 2, {NI_VectorT128_StoreAlignedNonTemporal, NI_VectorT128_StoreAlignedNonTemporal, NI_VectorT128_StoreAlignedNonTemporal, NI_VectorT128_StoreAlignedNonTemporal, NI_VectorT128_StoreAlignedNonTemporal, NI_VectorT128_StoreAlignedNonTemporal, NI_VectorT128_StoreAlignedNonTemporal, NI_VectorT128_StoreAlignedNonTemporal, NI_VectorT128_StoreAlignedNonTemporal, NI_VectorT128_StoreAlignedNonTemporal}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) -SIMD_AS_HWINTRINSIC_ID(VectorT128, StoreUnsafe, 2, {NI_VectorT128_StoreUnsafe, NI_VectorT128_StoreUnsafe, NI_VectorT128_StoreUnsafe, NI_VectorT128_StoreUnsafe, NI_VectorT128_StoreUnsafe, NI_VectorT128_StoreUnsafe, NI_VectorT128_StoreUnsafe, NI_VectorT128_StoreUnsafe, NI_VectorT128_StoreUnsafe, NI_VectorT128_StoreUnsafe}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) -SIMD_AS_HWINTRINSIC_NM(VectorT128, StoreUnsafeIndex, "StoreUnsafe", 3, {NI_VectorT128_StoreUnsafeIndex, NI_VectorT128_StoreUnsafeIndex, NI_VectorT128_StoreUnsafeIndex, NI_VectorT128_StoreUnsafeIndex, NI_VectorT128_StoreUnsafeIndex, NI_VectorT128_StoreUnsafeIndex, NI_VectorT128_StoreUnsafeIndex, NI_VectorT128_StoreUnsafeIndex, NI_VectorT128_StoreUnsafeIndex, NI_VectorT128_StoreUnsafeIndex}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Subtract, 2, {NI_VectorT128_Subtract, NI_VectorT128_Subtract, NI_VectorT128_Subtract, NI_VectorT128_Subtract, NI_VectorT128_Subtract, NI_VectorT128_Subtract, NI_VectorT128_Subtract, NI_VectorT128_Subtract, NI_VectorT128_Subtract, NI_VectorT128_Subtract}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Sum, 1, {NI_VectorT128_Sum, NI_VectorT128_Sum, NI_VectorT128_Sum, NI_VectorT128_Sum, NI_VectorT128_Sum, NI_VectorT128_Sum, NI_VectorT128_Sum, NI_VectorT128_Sum, NI_VectorT128_Sum, NI_VectorT128_Sum}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, ToScalar, 1, {NI_VectorT128_ToScalar, NI_VectorT128_ToScalar, NI_VectorT128_ToScalar, NI_VectorT128_ToScalar, NI_VectorT128_ToScalar, NI_VectorT128_ToScalar, NI_VectorT128_ToScalar, NI_VectorT128_ToScalar, NI_VectorT128_ToScalar, NI_VectorT128_ToScalar}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, WidenLower, 1, {NI_VectorT128_WidenLower, NI_VectorT128_WidenLower, NI_VectorT128_WidenLower, NI_VectorT128_WidenLower, NI_VectorT128_WidenLower, NI_VectorT128_WidenLower, NI_VectorT128_WidenLower, NI_VectorT128_WidenLower, NI_VectorT128_WidenLower, NI_VectorT128_WidenLower}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, WidenUpper, 1, {NI_VectorT128_WidenUpper, NI_VectorT128_WidenUpper, NI_VectorT128_WidenUpper, NI_VectorT128_WidenUpper, NI_VectorT128_WidenUpper, NI_VectorT128_WidenUpper, NI_VectorT128_WidenUpper, NI_VectorT128_WidenUpper, NI_VectorT128_WidenUpper, NI_VectorT128_WidenUpper}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, WithElement, 3, {NI_VectorT128_WithElement, NI_VectorT128_WithElement, NI_VectorT128_WithElement, NI_VectorT128_WithElement, NI_VectorT128_WithElement, NI_VectorT128_WithElement, NI_VectorT128_WithElement, NI_VectorT128_WithElement, NI_VectorT128_WithElement, NI_VectorT128_WithElement}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Xor, 2, {NI_VectorT128_Xor, NI_VectorT128_Xor, NI_VectorT128_Xor, NI_VectorT128_Xor, NI_VectorT128_Xor, NI_VectorT128_Xor, NI_VectorT128_Xor, NI_VectorT128_Xor, NI_VectorT128_Xor, NI_VectorT128_Xor}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Abs, 1, {NI_VectorT_Abs, NI_VectorT_Abs, NI_VectorT_Abs, NI_VectorT_Abs, NI_VectorT_Abs, NI_VectorT_Abs, NI_VectorT_Abs, NI_VectorT_Abs, NI_VectorT_Abs, NI_VectorT_Abs}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Add, 2, {NI_VectorT_Add, NI_VectorT_Add, NI_VectorT_Add, NI_VectorT_Add, NI_VectorT_Add, NI_VectorT_Add, NI_VectorT_Add, NI_VectorT_Add, NI_VectorT_Add, NI_VectorT_Add}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AndNot, 2, {NI_VectorT_AndNot, NI_VectorT_AndNot, NI_VectorT_AndNot, NI_VectorT_AndNot, NI_VectorT_AndNot, NI_VectorT_AndNot, NI_VectorT_AndNot, NI_VectorT_AndNot, NI_VectorT_AndNot, NI_VectorT_AndNot}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, As, 1, {NI_VectorT_As, NI_VectorT_As, NI_VectorT_As, NI_VectorT_As, NI_VectorT_As, NI_VectorT_As, NI_VectorT_As, NI_VectorT_As, NI_VectorT_As, NI_VectorT_As}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AsVectorByte, 1, {NI_VectorT_AsVectorByte, NI_VectorT_AsVectorByte, NI_VectorT_AsVectorByte, NI_VectorT_AsVectorByte, NI_VectorT_AsVectorByte, NI_VectorT_AsVectorByte, NI_VectorT_AsVectorByte, NI_VectorT_AsVectorByte, NI_VectorT_AsVectorByte, NI_VectorT_AsVectorByte}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AsVectorDouble, 1, {NI_VectorT_AsVectorDouble, NI_VectorT_AsVectorDouble, NI_VectorT_AsVectorDouble, NI_VectorT_AsVectorDouble, NI_VectorT_AsVectorDouble, NI_VectorT_AsVectorDouble, NI_VectorT_AsVectorDouble, NI_VectorT_AsVectorDouble, NI_VectorT_AsVectorDouble, NI_VectorT_AsVectorDouble}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AsVectorInt16, 1, {NI_VectorT_AsVectorInt16, NI_VectorT_AsVectorInt16, NI_VectorT_AsVectorInt16, NI_VectorT_AsVectorInt16, NI_VectorT_AsVectorInt16, NI_VectorT_AsVectorInt16, NI_VectorT_AsVectorInt16, NI_VectorT_AsVectorInt16, NI_VectorT_AsVectorInt16, NI_VectorT_AsVectorInt16}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AsVectorInt32, 1, {NI_VectorT_AsVectorInt32, NI_VectorT_AsVectorInt32, NI_VectorT_AsVectorInt32, NI_VectorT_AsVectorInt32, NI_VectorT_AsVectorInt32, NI_VectorT_AsVectorInt32, NI_VectorT_AsVectorInt32, NI_VectorT_AsVectorInt32, NI_VectorT_AsVectorInt32, NI_VectorT_AsVectorInt32}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AsVectorInt64, 1, {NI_VectorT_AsVectorInt64, NI_VectorT_AsVectorInt64, NI_VectorT_AsVectorInt64, NI_VectorT_AsVectorInt64, NI_VectorT_AsVectorInt64, NI_VectorT_AsVectorInt64, NI_VectorT_AsVectorInt64, NI_VectorT_AsVectorInt64, NI_VectorT_AsVectorInt64, NI_VectorT_AsVectorInt64}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AsVectorNInt, 1, {NI_VectorT_AsVectorNInt, NI_VectorT_AsVectorNInt, NI_VectorT_AsVectorNInt, NI_VectorT_AsVectorNInt, NI_VectorT_AsVectorNInt, NI_VectorT_AsVectorNInt, NI_VectorT_AsVectorNInt, NI_VectorT_AsVectorNInt, NI_VectorT_AsVectorNInt, NI_VectorT_AsVectorNInt}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AsVectorNUInt, 1, {NI_VectorT_AsVectorNUInt, NI_VectorT_AsVectorNUInt, NI_VectorT_AsVectorNUInt, NI_VectorT_AsVectorNUInt, NI_VectorT_AsVectorNUInt, NI_VectorT_AsVectorNUInt, NI_VectorT_AsVectorNUInt, NI_VectorT_AsVectorNUInt, NI_VectorT_AsVectorNUInt, NI_VectorT_AsVectorNUInt}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AsVectorSByte, 1, {NI_VectorT_AsVectorSByte, NI_VectorT_AsVectorSByte, NI_VectorT_AsVectorSByte, NI_VectorT_AsVectorSByte, NI_VectorT_AsVectorSByte, NI_VectorT_AsVectorSByte, NI_VectorT_AsVectorSByte, NI_VectorT_AsVectorSByte, NI_VectorT_AsVectorSByte, NI_VectorT_AsVectorSByte}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AsVectorSingle, 1, {NI_VectorT_AsVectorSingle, NI_VectorT_AsVectorSingle, NI_VectorT_AsVectorSingle, NI_VectorT_AsVectorSingle, NI_VectorT_AsVectorSingle, NI_VectorT_AsVectorSingle, NI_VectorT_AsVectorSingle, NI_VectorT_AsVectorSingle, NI_VectorT_AsVectorSingle, NI_VectorT_AsVectorSingle}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AsVectorUInt16, 1, {NI_VectorT_AsVectorUInt16, NI_VectorT_AsVectorUInt16, NI_VectorT_AsVectorUInt16, NI_VectorT_AsVectorUInt16, NI_VectorT_AsVectorUInt16, NI_VectorT_AsVectorUInt16, NI_VectorT_AsVectorUInt16, NI_VectorT_AsVectorUInt16, NI_VectorT_AsVectorUInt16, NI_VectorT_AsVectorUInt16}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AsVectorUInt32, 1, {NI_VectorT_AsVectorUInt32, NI_VectorT_AsVectorUInt32, NI_VectorT_AsVectorUInt32, NI_VectorT_AsVectorUInt32, NI_VectorT_AsVectorUInt32, NI_VectorT_AsVectorUInt32, NI_VectorT_AsVectorUInt32, NI_VectorT_AsVectorUInt32, NI_VectorT_AsVectorUInt32, NI_VectorT_AsVectorUInt32}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AsVectorUInt64, 1, {NI_VectorT_AsVectorUInt64, NI_VectorT_AsVectorUInt64, NI_VectorT_AsVectorUInt64, NI_VectorT_AsVectorUInt64, NI_VectorT_AsVectorUInt64, NI_VectorT_AsVectorUInt64, NI_VectorT_AsVectorUInt64, NI_VectorT_AsVectorUInt64, NI_VectorT_AsVectorUInt64, NI_VectorT_AsVectorUInt64}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, BitwiseAnd, 2, {NI_VectorT_BitwiseAnd, NI_VectorT_BitwiseAnd, NI_VectorT_BitwiseAnd, NI_VectorT_BitwiseAnd, NI_VectorT_BitwiseAnd, NI_VectorT_BitwiseAnd, NI_VectorT_BitwiseAnd, NI_VectorT_BitwiseAnd, NI_VectorT_BitwiseAnd, NI_VectorT_BitwiseAnd}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, BitwiseOr, 2, {NI_VectorT_BitwiseOr, NI_VectorT_BitwiseOr, NI_VectorT_BitwiseOr, NI_VectorT_BitwiseOr, NI_VectorT_BitwiseOr, NI_VectorT_BitwiseOr, NI_VectorT_BitwiseOr, NI_VectorT_BitwiseOr, NI_VectorT_BitwiseOr, NI_VectorT_BitwiseOr}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Ceiling, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT_Ceiling, NI_VectorT_Ceiling}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, ConditionalSelect, 3, {NI_VectorT_ConditionalSelect, NI_VectorT_ConditionalSelect, NI_VectorT_ConditionalSelect, NI_VectorT_ConditionalSelect, NI_VectorT_ConditionalSelect, NI_VectorT_ConditionalSelect, NI_VectorT_ConditionalSelect, NI_VectorT_ConditionalSelect, NI_VectorT_ConditionalSelect, NI_VectorT_ConditionalSelect}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, ConvertToDouble, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT_ConvertToDouble, NI_VectorT_ConvertToDouble, NI_Illegal, NI_Illegal}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, ConvertToInt32, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT_ConvertToInt32, NI_Illegal}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, ConvertToInt64, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT_ConvertToInt64}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, ConvertToSingle, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT_ConvertToSingle, NI_VectorT_ConvertToSingle, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, ConvertToUInt32, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT_ConvertToUInt32, NI_Illegal}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, ConvertToUInt64, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT_ConvertToUInt64}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_NM(VectorT, CreateBroadcast, ".ctor", 2, {NI_VectorT_CreateBroadcast, NI_VectorT_CreateBroadcast, NI_VectorT_CreateBroadcast, NI_VectorT_CreateBroadcast, NI_VectorT_CreateBroadcast, NI_VectorT_CreateBroadcast, NI_VectorT_CreateBroadcast, NI_VectorT_CreateBroadcast, NI_VectorT_CreateBroadcast, NI_VectorT_CreateBroadcast}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) +SIMD_AS_HWINTRINSIC_ID(VectorT, Divide, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT_Divide, NI_VectorT_Divide}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Dot, 2, {NI_VectorT_Dot, NI_VectorT_Dot, NI_VectorT_Dot, NI_VectorT_Dot, NI_VectorT_Dot, NI_VectorT_Dot, NI_Illegal, NI_Illegal, NI_VectorT_Dot, NI_VectorT_Dot}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Equals, 2, {NI_VectorT_Equals, NI_VectorT_Equals, NI_VectorT_Equals, NI_VectorT_Equals, NI_VectorT_Equals, NI_VectorT_Equals, NI_VectorT_Equals, NI_VectorT_Equals, NI_VectorT_Equals, NI_VectorT_Equals}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, EqualsAll, 2, {NI_VectorT_EqualsAll, NI_VectorT_EqualsAll, NI_VectorT_EqualsAll, NI_VectorT_EqualsAll, NI_VectorT_EqualsAll, NI_VectorT_EqualsAll, NI_VectorT_EqualsAll, NI_VectorT_EqualsAll, NI_VectorT_EqualsAll, NI_VectorT_EqualsAll}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, EqualsAny, 2, {NI_VectorT_EqualsAny, NI_VectorT_EqualsAny, NI_VectorT_EqualsAny, NI_VectorT_EqualsAny, NI_VectorT_EqualsAny, NI_VectorT_EqualsAny, NI_VectorT_EqualsAny, NI_VectorT_EqualsAny, NI_VectorT_EqualsAny, NI_VectorT_EqualsAny}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Floor, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT_Floor, NI_VectorT_Floor}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, get_AllBitsSet, 0, {NI_VectorT_get_AllBitsSet, NI_VectorT_get_AllBitsSet, NI_VectorT_get_AllBitsSet, NI_VectorT_get_AllBitsSet, NI_VectorT_get_AllBitsSet, NI_VectorT_get_AllBitsSet, NI_VectorT_get_AllBitsSet, NI_VectorT_get_AllBitsSet, NI_VectorT_get_AllBitsSet, NI_VectorT_get_AllBitsSet}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, get_Item, 2, {NI_VectorT_get_Item, NI_VectorT_get_Item, NI_VectorT_get_Item, NI_VectorT_get_Item, NI_VectorT_get_Item, NI_VectorT_get_Item, NI_VectorT_get_Item, NI_VectorT_get_Item, NI_VectorT_get_Item, NI_VectorT_get_Item}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::BaseTypeFromThisArg) +SIMD_AS_HWINTRINSIC_ID(VectorT, get_One, 0, {NI_VectorT_get_One, NI_VectorT_get_One, NI_VectorT_get_One, NI_VectorT_get_One, NI_VectorT_get_One, NI_VectorT_get_One, NI_VectorT_get_One, NI_VectorT_get_One, NI_VectorT_get_One, NI_VectorT_get_One}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, get_Zero, 0, {NI_VectorT_get_Zero, NI_VectorT_get_Zero, NI_VectorT_get_Zero, NI_VectorT_get_Zero, NI_VectorT_get_Zero, NI_VectorT_get_Zero, NI_VectorT_get_Zero, NI_VectorT_get_Zero, NI_VectorT_get_Zero, NI_VectorT_get_Zero}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, GetElement, 2, {NI_VectorT_GetElement, NI_VectorT_GetElement, NI_VectorT_GetElement, NI_VectorT_GetElement, NI_VectorT_GetElement, NI_VectorT_GetElement, NI_VectorT_GetElement, NI_VectorT_GetElement, NI_VectorT_GetElement, NI_VectorT_GetElement}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, GreaterThan, 2, {NI_VectorT_GreaterThan, NI_VectorT_GreaterThan, NI_VectorT_GreaterThan, NI_VectorT_GreaterThan, NI_VectorT_GreaterThan, NI_VectorT_GreaterThan, NI_VectorT_GreaterThan, NI_VectorT_GreaterThan, NI_VectorT_GreaterThan, NI_VectorT_GreaterThan}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, GreaterThanAll, 2, {NI_VectorT_GreaterThanAll, NI_VectorT_GreaterThanAll, NI_VectorT_GreaterThanAll, NI_VectorT_GreaterThanAll, NI_VectorT_GreaterThanAll, NI_VectorT_GreaterThanAll, NI_VectorT_GreaterThanAll, NI_VectorT_GreaterThanAll, NI_VectorT_GreaterThanAll, NI_VectorT_GreaterThanAll}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, GreaterThanAny, 2, {NI_VectorT_GreaterThanAny, NI_VectorT_GreaterThanAny, NI_VectorT_GreaterThanAny, NI_VectorT_GreaterThanAny, NI_VectorT_GreaterThanAny, NI_VectorT_GreaterThanAny, NI_VectorT_GreaterThanAny, NI_VectorT_GreaterThanAny, NI_VectorT_GreaterThanAny, NI_VectorT_GreaterThanAny}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, GreaterThanOrEqual, 2, {NI_VectorT_GreaterThanOrEqual, NI_VectorT_GreaterThanOrEqual, NI_VectorT_GreaterThanOrEqual, NI_VectorT_GreaterThanOrEqual, NI_VectorT_GreaterThanOrEqual, NI_VectorT_GreaterThanOrEqual, NI_VectorT_GreaterThanOrEqual, NI_VectorT_GreaterThanOrEqual, NI_VectorT_GreaterThanOrEqual, NI_VectorT_GreaterThanOrEqual}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, GreaterThanOrEqualAll, 2, {NI_VectorT_GreaterThanOrEqualAll, NI_VectorT_GreaterThanOrEqualAll, NI_VectorT_GreaterThanOrEqualAll, NI_VectorT_GreaterThanOrEqualAll, NI_VectorT_GreaterThanOrEqualAll, NI_VectorT_GreaterThanOrEqualAll, NI_VectorT_GreaterThanOrEqualAll, NI_VectorT_GreaterThanOrEqualAll, NI_VectorT_GreaterThanOrEqualAll, NI_VectorT_GreaterThanOrEqualAll}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, GreaterThanOrEqualAny, 2, {NI_VectorT_GreaterThanOrEqualAny, NI_VectorT_GreaterThanOrEqualAny, NI_VectorT_GreaterThanOrEqualAny, NI_VectorT_GreaterThanOrEqualAny, NI_VectorT_GreaterThanOrEqualAny, NI_VectorT_GreaterThanOrEqualAny, NI_VectorT_GreaterThanOrEqualAny, NI_VectorT_GreaterThanOrEqualAny, NI_VectorT_GreaterThanOrEqualAny, NI_VectorT_GreaterThanOrEqualAny}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, LessThan, 2, {NI_VectorT_LessThan, NI_VectorT_LessThan, NI_VectorT_LessThan, NI_VectorT_LessThan, NI_VectorT_LessThan, NI_VectorT_LessThan, NI_VectorT_LessThan, NI_VectorT_LessThan, NI_VectorT_LessThan, NI_VectorT_LessThan}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, LessThanAll, 2, {NI_VectorT_LessThanAll, NI_VectorT_LessThanAll, NI_VectorT_LessThanAll, NI_VectorT_LessThanAll, NI_VectorT_LessThanAll, NI_VectorT_LessThanAll, NI_VectorT_LessThanAll, NI_VectorT_LessThanAll, NI_VectorT_LessThanAll, NI_VectorT_LessThanAll}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, LessThanAny, 2, {NI_VectorT_LessThanAny, NI_VectorT_LessThanAny, NI_VectorT_LessThanAny, NI_VectorT_LessThanAny, NI_VectorT_LessThanAny, NI_VectorT_LessThanAny, NI_VectorT_LessThanAny, NI_VectorT_LessThanAny, NI_VectorT_LessThanAny, NI_VectorT_LessThanAny}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, LessThanOrEqual, 2, {NI_VectorT_LessThanOrEqual, NI_VectorT_LessThanOrEqual, NI_VectorT_LessThanOrEqual, NI_VectorT_LessThanOrEqual, NI_VectorT_LessThanOrEqual, NI_VectorT_LessThanOrEqual, NI_VectorT_LessThanOrEqual, NI_VectorT_LessThanOrEqual, NI_VectorT_LessThanOrEqual, NI_VectorT_LessThanOrEqual}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, LessThanOrEqualAll, 2, {NI_VectorT_LessThanOrEqualAll, NI_VectorT_LessThanOrEqualAll, NI_VectorT_LessThanOrEqualAll, NI_VectorT_LessThanOrEqualAll, NI_VectorT_LessThanOrEqualAll, NI_VectorT_LessThanOrEqualAll, NI_VectorT_LessThanOrEqualAll, NI_VectorT_LessThanOrEqualAll, NI_VectorT_LessThanOrEqualAll, NI_VectorT_LessThanOrEqualAll}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, LessThanOrEqualAny, 2, {NI_VectorT_LessThanOrEqualAny, NI_VectorT_LessThanOrEqualAny, NI_VectorT_LessThanOrEqualAny, NI_VectorT_LessThanOrEqualAny, NI_VectorT_LessThanOrEqualAny, NI_VectorT_LessThanOrEqualAny, NI_VectorT_LessThanOrEqualAny, NI_VectorT_LessThanOrEqualAny, NI_VectorT_LessThanOrEqualAny, NI_VectorT_LessThanOrEqualAny}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Load, 1, {NI_VectorT_Load, NI_VectorT_Load, NI_VectorT_Load, NI_VectorT_Load, NI_VectorT_Load, NI_VectorT_Load, NI_VectorT_Load, NI_VectorT_Load, NI_VectorT_Load, NI_VectorT_Load}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) +SIMD_AS_HWINTRINSIC_ID(VectorT, LoadAligned, 1, {NI_VectorT_LoadAligned, NI_VectorT_LoadAligned, NI_VectorT_LoadAligned, NI_VectorT_LoadAligned, NI_VectorT_LoadAligned, NI_VectorT_LoadAligned, NI_VectorT_LoadAligned, NI_VectorT_LoadAligned, NI_VectorT_LoadAligned, NI_VectorT_LoadAligned}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) +SIMD_AS_HWINTRINSIC_ID(VectorT, LoadAlignedNonTemporal, 1, {NI_VectorT_LoadAlignedNonTemporal, NI_VectorT_LoadAlignedNonTemporal, NI_VectorT_LoadAlignedNonTemporal, NI_VectorT_LoadAlignedNonTemporal, NI_VectorT_LoadAlignedNonTemporal, NI_VectorT_LoadAlignedNonTemporal, NI_VectorT_LoadAlignedNonTemporal, NI_VectorT_LoadAlignedNonTemporal, NI_VectorT_LoadAlignedNonTemporal, NI_VectorT_LoadAlignedNonTemporal}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) +SIMD_AS_HWINTRINSIC_ID(VectorT, LoadUnsafe, 1, {NI_VectorT_LoadUnsafe, NI_VectorT_LoadUnsafe, NI_VectorT_LoadUnsafe, NI_VectorT_LoadUnsafe, NI_VectorT_LoadUnsafe, NI_VectorT_LoadUnsafe, NI_VectorT_LoadUnsafe, NI_VectorT_LoadUnsafe, NI_VectorT_LoadUnsafe, NI_VectorT_LoadUnsafe}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) +SIMD_AS_HWINTRINSIC_NM(VectorT, LoadUnsafeIndex, "LoadUnsafe", 2, {NI_VectorT_LoadUnsafeIndex, NI_VectorT_LoadUnsafeIndex, NI_VectorT_LoadUnsafeIndex, NI_VectorT_LoadUnsafeIndex, NI_VectorT_LoadUnsafeIndex, NI_VectorT_LoadUnsafeIndex, NI_VectorT_LoadUnsafeIndex, NI_VectorT_LoadUnsafeIndex, NI_VectorT_LoadUnsafeIndex, NI_VectorT_LoadUnsafeIndex}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) +SIMD_AS_HWINTRINSIC_ID(VectorT, Max, 2, {NI_VectorT_Max, NI_VectorT_Max, NI_VectorT_Max, NI_VectorT_Max, NI_VectorT_Max, NI_VectorT_Max, NI_VectorT_Max, NI_VectorT_Max, NI_VectorT_Max, NI_VectorT_Max}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Min, 2, {NI_VectorT_Min, NI_VectorT_Min, NI_VectorT_Min, NI_VectorT_Min, NI_VectorT_Min, NI_VectorT_Min, NI_VectorT_Min, NI_VectorT_Min, NI_VectorT_Min, NI_VectorT_Min}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Multiply, 2, {NI_VectorT_Multiply, NI_VectorT_Multiply, NI_VectorT_Multiply, NI_VectorT_Multiply, NI_VectorT_Multiply, NI_VectorT_Multiply, NI_Illegal, NI_Illegal, NI_VectorT_Multiply, NI_VectorT_Multiply}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Narrow, 2, {NI_VectorT_Narrow, NI_VectorT_Narrow, NI_VectorT_Narrow, NI_VectorT_Narrow, NI_VectorT_Narrow, NI_VectorT_Narrow, NI_VectorT_Narrow, NI_VectorT_Narrow, NI_VectorT_Narrow, NI_VectorT_Narrow}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) +SIMD_AS_HWINTRINSIC_ID(VectorT, Negate, 1, {NI_VectorT_Negate, NI_VectorT_Negate, NI_VectorT_Negate, NI_VectorT_Negate, NI_VectorT_Negate, NI_VectorT_Negate, NI_VectorT_Negate, NI_VectorT_Negate, NI_VectorT_Negate, NI_VectorT_Negate}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, OnesComplement, 2, {NI_VectorT_OnesComplement, NI_VectorT_OnesComplement, NI_VectorT_OnesComplement, NI_VectorT_OnesComplement, NI_VectorT_OnesComplement, NI_VectorT_OnesComplement, NI_VectorT_OnesComplement, NI_VectorT_OnesComplement, NI_VectorT_OnesComplement, NI_VectorT_OnesComplement}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_Addition, 2, {NI_VectorT_op_Addition, NI_VectorT_op_Addition, NI_VectorT_op_Addition, NI_VectorT_op_Addition, NI_VectorT_op_Addition, NI_VectorT_op_Addition, NI_VectorT_op_Addition, NI_VectorT_op_Addition, NI_VectorT_op_Addition, NI_VectorT_op_Addition}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_BitwiseAnd, 2, {NI_VectorT_op_BitwiseAnd, NI_VectorT_op_BitwiseAnd, NI_VectorT_op_BitwiseAnd, NI_VectorT_op_BitwiseAnd, NI_VectorT_op_BitwiseAnd, NI_VectorT_op_BitwiseAnd, NI_VectorT_op_BitwiseAnd, NI_VectorT_op_BitwiseAnd, NI_VectorT_op_BitwiseAnd, NI_VectorT_op_BitwiseAnd}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_BitwiseOr, 2, {NI_VectorT_op_BitwiseOr, NI_VectorT_op_BitwiseOr, NI_VectorT_op_BitwiseOr, NI_VectorT_op_BitwiseOr, NI_VectorT_op_BitwiseOr, NI_VectorT_op_BitwiseOr, NI_VectorT_op_BitwiseOr, NI_VectorT_op_BitwiseOr, NI_VectorT_op_BitwiseOr, NI_VectorT_op_BitwiseOr}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_Division, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT_op_Division, NI_VectorT_op_Division}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_Equality, 2, {NI_VectorT_op_Equality, NI_VectorT_op_Equality, NI_VectorT_op_Equality, NI_VectorT_op_Equality, NI_VectorT_op_Equality, NI_VectorT_op_Equality, NI_VectorT_op_Equality, NI_VectorT_op_Equality, NI_VectorT_op_Equality, NI_VectorT_op_Equality}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_ExclusiveOr, 2, {NI_VectorT_op_ExclusiveOr, NI_VectorT_op_ExclusiveOr, NI_VectorT_op_ExclusiveOr, NI_VectorT_op_ExclusiveOr, NI_VectorT_op_ExclusiveOr, NI_VectorT_op_ExclusiveOr, NI_VectorT_op_ExclusiveOr, NI_VectorT_op_ExclusiveOr, NI_VectorT_op_ExclusiveOr, NI_VectorT_op_ExclusiveOr}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_Explicit, 1, {NI_VectorT_op_Explicit, NI_VectorT_op_Explicit, NI_VectorT_op_Explicit, NI_VectorT_op_Explicit, NI_VectorT_op_Explicit, NI_VectorT_op_Explicit, NI_VectorT_op_Explicit, NI_VectorT_op_Explicit, NI_VectorT_op_Explicit, NI_VectorT_op_Explicit}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_Inequality, 2, {NI_VectorT_op_Inequality, NI_VectorT_op_Inequality, NI_VectorT_op_Inequality, NI_VectorT_op_Inequality, NI_VectorT_op_Inequality, NI_VectorT_op_Inequality, NI_VectorT_op_Inequality, NI_VectorT_op_Inequality, NI_VectorT_op_Inequality, NI_VectorT_op_Inequality}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_LeftShift, 2, {NI_VectorT_op_LeftShift, NI_VectorT_op_LeftShift, NI_VectorT_op_LeftShift, NI_VectorT_op_LeftShift, NI_VectorT_op_LeftShift, NI_VectorT_op_LeftShift, NI_VectorT_op_LeftShift, NI_VectorT_op_LeftShift, NI_VectorT_op_LeftShift, NI_VectorT_op_LeftShift}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_Multiply, 2, {NI_VectorT_op_Multiply, NI_VectorT_op_Multiply, NI_VectorT_op_Multiply, NI_VectorT_op_Multiply, NI_VectorT_op_Multiply, NI_VectorT_op_Multiply, NI_Illegal, NI_Illegal, NI_VectorT_op_Multiply, NI_VectorT_op_Multiply}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_OnesComplement, 1, {NI_VectorT_op_OnesComplement, NI_VectorT_op_OnesComplement, NI_VectorT_op_OnesComplement, NI_VectorT_op_OnesComplement, NI_VectorT_op_OnesComplement, NI_VectorT_op_OnesComplement, NI_VectorT_op_OnesComplement, NI_VectorT_op_OnesComplement, NI_VectorT_op_OnesComplement, NI_VectorT_op_OnesComplement}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_RightShift, 2, {NI_VectorT_op_RightShift, NI_VectorT_op_RightShift, NI_VectorT_op_RightShift, NI_VectorT_op_RightShift, NI_VectorT_op_RightShift, NI_VectorT_op_RightShift, NI_VectorT_op_RightShift, NI_VectorT_op_RightShift, NI_VectorT_op_RightShift, NI_VectorT_op_RightShift}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_Subtraction, 2, {NI_VectorT_op_Subtraction, NI_VectorT_op_Subtraction, NI_VectorT_op_Subtraction, NI_VectorT_op_Subtraction, NI_VectorT_op_Subtraction, NI_VectorT_op_Subtraction, NI_VectorT_op_Subtraction, NI_VectorT_op_Subtraction, NI_VectorT_op_Subtraction, NI_VectorT_op_Subtraction}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_UnaryNegation, 1, {NI_VectorT_op_UnaryNegation, NI_VectorT_op_UnaryNegation, NI_VectorT_op_UnaryNegation, NI_VectorT_op_UnaryNegation, NI_VectorT_op_UnaryNegation, NI_VectorT_op_UnaryNegation, NI_VectorT_op_UnaryNegation, NI_VectorT_op_UnaryNegation, NI_VectorT_op_UnaryNegation, NI_VectorT_op_UnaryNegation}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_UnaryPlus, 1, {NI_VectorT_op_UnaryPlus, NI_VectorT_op_UnaryPlus, NI_VectorT_op_UnaryPlus, NI_VectorT_op_UnaryPlus, NI_VectorT_op_UnaryPlus, NI_VectorT_op_UnaryPlus, NI_VectorT_op_UnaryPlus, NI_VectorT_op_UnaryPlus, NI_VectorT_op_UnaryPlus, NI_VectorT_op_UnaryPlus}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_UnsignedRightShift, 2, {NI_VectorT_op_UnsignedRightShift, NI_VectorT_op_UnsignedRightShift, NI_VectorT_op_UnsignedRightShift, NI_VectorT_op_UnsignedRightShift, NI_VectorT_op_UnsignedRightShift, NI_VectorT_op_UnsignedRightShift, NI_VectorT_op_UnsignedRightShift, NI_VectorT_op_UnsignedRightShift, NI_VectorT_op_UnsignedRightShift, NI_VectorT_op_UnsignedRightShift}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, ShiftLeft, 2, {NI_VectorT_ShiftLeft, NI_VectorT_ShiftLeft, NI_VectorT_ShiftLeft, NI_VectorT_ShiftLeft, NI_VectorT_ShiftLeft, NI_VectorT_ShiftLeft, NI_VectorT_ShiftLeft, NI_VectorT_ShiftLeft, NI_Illegal, NI_Illegal}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, ShiftRightArithmetic, 2, {NI_VectorT_ShiftRightArithmetic, NI_Illegal, NI_VectorT_ShiftRightArithmetic, NI_Illegal, NI_VectorT_ShiftRightArithmetic, NI_Illegal, NI_VectorT_ShiftRightArithmetic, NI_Illegal, NI_Illegal, NI_Illegal}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, ShiftRightLogical, 2, {NI_VectorT_ShiftRightLogical, NI_VectorT_ShiftRightLogical, NI_VectorT_ShiftRightLogical, NI_VectorT_ShiftRightLogical, NI_VectorT_ShiftRightLogical, NI_VectorT_ShiftRightLogical, NI_VectorT_ShiftRightLogical, NI_VectorT_ShiftRightLogical, NI_Illegal, NI_Illegal}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_NM(VectorT, Sqrt, "SquareRoot", 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT_Sqrt, NI_VectorT_Sqrt}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Store, 2, {NI_VectorT_Store, NI_VectorT_Store, NI_VectorT_Store, NI_VectorT_Store, NI_VectorT_Store, NI_VectorT_Store, NI_VectorT_Store, NI_VectorT_Store, NI_VectorT_Store, NI_VectorT_Store}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) +SIMD_AS_HWINTRINSIC_ID(VectorT, StoreAligned, 2, {NI_VectorT_StoreAligned, NI_VectorT_StoreAligned, NI_VectorT_StoreAligned, NI_VectorT_StoreAligned, NI_VectorT_StoreAligned, NI_VectorT_StoreAligned, NI_VectorT_StoreAligned, NI_VectorT_StoreAligned, NI_VectorT_StoreAligned, NI_VectorT_StoreAligned}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) +SIMD_AS_HWINTRINSIC_ID(VectorT, StoreAlignedNonTemporal, 2, {NI_VectorT_StoreAlignedNonTemporal, NI_VectorT_StoreAlignedNonTemporal, NI_VectorT_StoreAlignedNonTemporal, NI_VectorT_StoreAlignedNonTemporal, NI_VectorT_StoreAlignedNonTemporal, NI_VectorT_StoreAlignedNonTemporal, NI_VectorT_StoreAlignedNonTemporal, NI_VectorT_StoreAlignedNonTemporal, NI_VectorT_StoreAlignedNonTemporal, NI_VectorT_StoreAlignedNonTemporal}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) +SIMD_AS_HWINTRINSIC_ID(VectorT, StoreUnsafe, 2, {NI_VectorT_StoreUnsafe, NI_VectorT_StoreUnsafe, NI_VectorT_StoreUnsafe, NI_VectorT_StoreUnsafe, NI_VectorT_StoreUnsafe, NI_VectorT_StoreUnsafe, NI_VectorT_StoreUnsafe, NI_VectorT_StoreUnsafe, NI_VectorT_StoreUnsafe, NI_VectorT_StoreUnsafe}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) +SIMD_AS_HWINTRINSIC_NM(VectorT, StoreUnsafeIndex, "StoreUnsafe", 3, {NI_VectorT_StoreUnsafeIndex, NI_VectorT_StoreUnsafeIndex, NI_VectorT_StoreUnsafeIndex, NI_VectorT_StoreUnsafeIndex, NI_VectorT_StoreUnsafeIndex, NI_VectorT_StoreUnsafeIndex, NI_VectorT_StoreUnsafeIndex, NI_VectorT_StoreUnsafeIndex, NI_VectorT_StoreUnsafeIndex, NI_VectorT_StoreUnsafeIndex}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) +SIMD_AS_HWINTRINSIC_ID(VectorT, Subtract, 2, {NI_VectorT_Subtract, NI_VectorT_Subtract, NI_VectorT_Subtract, NI_VectorT_Subtract, NI_VectorT_Subtract, NI_VectorT_Subtract, NI_VectorT_Subtract, NI_VectorT_Subtract, NI_VectorT_Subtract, NI_VectorT_Subtract}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Sum, 1, {NI_VectorT_Sum, NI_VectorT_Sum, NI_VectorT_Sum, NI_VectorT_Sum, NI_VectorT_Sum, NI_VectorT_Sum, NI_VectorT_Sum, NI_VectorT_Sum, NI_VectorT_Sum, NI_VectorT_Sum}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, ToScalar, 1, {NI_VectorT_ToScalar, NI_VectorT_ToScalar, NI_VectorT_ToScalar, NI_VectorT_ToScalar, NI_VectorT_ToScalar, NI_VectorT_ToScalar, NI_VectorT_ToScalar, NI_VectorT_ToScalar, NI_VectorT_ToScalar, NI_VectorT_ToScalar}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, WidenLower, 1, {NI_VectorT_WidenLower, NI_VectorT_WidenLower, NI_VectorT_WidenLower, NI_VectorT_WidenLower, NI_VectorT_WidenLower, NI_VectorT_WidenLower, NI_VectorT_WidenLower, NI_VectorT_WidenLower, NI_VectorT_WidenLower, NI_VectorT_WidenLower}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, WidenUpper, 1, {NI_VectorT_WidenUpper, NI_VectorT_WidenUpper, NI_VectorT_WidenUpper, NI_VectorT_WidenUpper, NI_VectorT_WidenUpper, NI_VectorT_WidenUpper, NI_VectorT_WidenUpper, NI_VectorT_WidenUpper, NI_VectorT_WidenUpper, NI_VectorT_WidenUpper}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, WithElement, 3, {NI_VectorT_WithElement, NI_VectorT_WithElement, NI_VectorT_WithElement, NI_VectorT_WithElement, NI_VectorT_WithElement, NI_VectorT_WithElement, NI_VectorT_WithElement, NI_VectorT_WithElement, NI_VectorT_WithElement, NI_VectorT_WithElement}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Xor, 2, {NI_VectorT_Xor, NI_VectorT_Xor, NI_VectorT_Xor, NI_VectorT_Xor, NI_VectorT_Xor, NI_VectorT_Xor, NI_VectorT_Xor, NI_VectorT_Xor, NI_VectorT_Xor, NI_VectorT_Xor}, SimdAsHWIntrinsicFlag::None) #undef SIMD_AS_HWINTRINSIC_NM #undef SIMD_AS_HWINTRINSIC_ID diff --git a/src/coreclr/jit/simdashwintrinsiclistxarch.h b/src/coreclr/jit/simdashwintrinsiclistxarch.h index 598712e86254d..89be46812469b 100644 --- a/src/coreclr/jit/simdashwintrinsiclistxarch.h +++ b/src/coreclr/jit/simdashwintrinsiclistxarch.h @@ -202,205 +202,99 @@ SIMD_AS_HWINTRINSIC_ID(Vector4, WithElement, // {TYP_BYTE, TYP_UBYTE, TYP_SHORT, TYP_USHORT, TYP_INT, TYP_UINT, TYP_LONG, TYP_ULONG, TYP_FLOAT, TYP_DOUBLE} // ************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************* // Vector Intrinsics -SIMD_AS_HWINTRINSIC_ID(VectorT128, Abs, 1, {NI_VectorT128_Abs, NI_VectorT128_Abs, NI_VectorT128_Abs, NI_VectorT128_Abs, NI_VectorT128_Abs, NI_VectorT128_Abs, NI_VectorT128_Abs, NI_VectorT128_Abs, NI_VectorT128_Abs, NI_VectorT128_Abs}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Add, 2, {NI_VectorT128_Add, NI_VectorT128_Add, NI_VectorT128_Add, NI_VectorT128_Add, NI_VectorT128_Add, NI_VectorT128_Add, NI_VectorT128_Add, NI_VectorT128_Add, NI_VectorT128_Add, NI_VectorT128_Add}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AndNot, 2, {NI_VectorT128_AndNot, NI_VectorT128_AndNot, NI_VectorT128_AndNot, NI_VectorT128_AndNot, NI_VectorT128_AndNot, NI_VectorT128_AndNot, NI_VectorT128_AndNot, NI_VectorT128_AndNot, NI_VectorT128_AndNot, NI_VectorT128_AndNot}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) -SIMD_AS_HWINTRINSIC_ID(VectorT128, As, 1, {NI_VectorT128_As, NI_VectorT128_As, NI_VectorT128_As, NI_VectorT128_As, NI_VectorT128_As, NI_VectorT128_As, NI_VectorT128_As, NI_VectorT128_As, NI_VectorT128_As, NI_VectorT128_As}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AsVectorByte, 1, {NI_VectorT128_AsVectorByte, NI_VectorT128_AsVectorByte, NI_VectorT128_AsVectorByte, NI_VectorT128_AsVectorByte, NI_VectorT128_AsVectorByte, NI_VectorT128_AsVectorByte, NI_VectorT128_AsVectorByte, NI_VectorT128_AsVectorByte, NI_VectorT128_AsVectorByte, NI_VectorT128_AsVectorByte}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AsVectorDouble, 1, {NI_VectorT128_AsVectorDouble, NI_VectorT128_AsVectorDouble, NI_VectorT128_AsVectorDouble, NI_VectorT128_AsVectorDouble, NI_VectorT128_AsVectorDouble, NI_VectorT128_AsVectorDouble, NI_VectorT128_AsVectorDouble, NI_VectorT128_AsVectorDouble, NI_VectorT128_AsVectorDouble, NI_VectorT128_AsVectorDouble}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AsVectorInt16, 1, {NI_VectorT128_AsVectorInt16, NI_VectorT128_AsVectorInt16, NI_VectorT128_AsVectorInt16, NI_VectorT128_AsVectorInt16, NI_VectorT128_AsVectorInt16, NI_VectorT128_AsVectorInt16, NI_VectorT128_AsVectorInt16, NI_VectorT128_AsVectorInt16, NI_VectorT128_AsVectorInt16, NI_VectorT128_AsVectorInt16}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AsVectorInt32, 1, {NI_VectorT128_AsVectorInt32, NI_VectorT128_AsVectorInt32, NI_VectorT128_AsVectorInt32, NI_VectorT128_AsVectorInt32, NI_VectorT128_AsVectorInt32, NI_VectorT128_AsVectorInt32, NI_VectorT128_AsVectorInt32, NI_VectorT128_AsVectorInt32, NI_VectorT128_AsVectorInt32, NI_VectorT128_AsVectorInt32}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AsVectorInt64, 1, {NI_VectorT128_AsVectorInt64, NI_VectorT128_AsVectorInt64, NI_VectorT128_AsVectorInt64, NI_VectorT128_AsVectorInt64, NI_VectorT128_AsVectorInt64, NI_VectorT128_AsVectorInt64, NI_VectorT128_AsVectorInt64, NI_VectorT128_AsVectorInt64, NI_VectorT128_AsVectorInt64, NI_VectorT128_AsVectorInt64}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AsVectorNInt, 1, {NI_VectorT128_AsVectorNInt, NI_VectorT128_AsVectorNInt, NI_VectorT128_AsVectorNInt, NI_VectorT128_AsVectorNInt, NI_VectorT128_AsVectorNInt, NI_VectorT128_AsVectorNInt, NI_VectorT128_AsVectorNInt, NI_VectorT128_AsVectorNInt, NI_VectorT128_AsVectorNInt, NI_VectorT128_AsVectorNInt}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AsVectorNUInt, 1, {NI_VectorT128_AsVectorNUInt, NI_VectorT128_AsVectorNUInt, NI_VectorT128_AsVectorNUInt, NI_VectorT128_AsVectorNUInt, NI_VectorT128_AsVectorNUInt, NI_VectorT128_AsVectorNUInt, NI_VectorT128_AsVectorNUInt, NI_VectorT128_AsVectorNUInt, NI_VectorT128_AsVectorNUInt, NI_VectorT128_AsVectorNUInt}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AsVectorSByte, 1, {NI_VectorT128_AsVectorSByte, NI_VectorT128_AsVectorSByte, NI_VectorT128_AsVectorSByte, NI_VectorT128_AsVectorSByte, NI_VectorT128_AsVectorSByte, NI_VectorT128_AsVectorSByte, NI_VectorT128_AsVectorSByte, NI_VectorT128_AsVectorSByte, NI_VectorT128_AsVectorSByte, NI_VectorT128_AsVectorSByte}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AsVectorSingle, 1, {NI_VectorT128_AsVectorSingle, NI_VectorT128_AsVectorSingle, NI_VectorT128_AsVectorSingle, NI_VectorT128_AsVectorSingle, NI_VectorT128_AsVectorSingle, NI_VectorT128_AsVectorSingle, NI_VectorT128_AsVectorSingle, NI_VectorT128_AsVectorSingle, NI_VectorT128_AsVectorSingle, NI_VectorT128_AsVectorSingle}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AsVectorUInt16, 1, {NI_VectorT128_AsVectorUInt16, NI_VectorT128_AsVectorUInt16, NI_VectorT128_AsVectorUInt16, NI_VectorT128_AsVectorUInt16, NI_VectorT128_AsVectorUInt16, NI_VectorT128_AsVectorUInt16, NI_VectorT128_AsVectorUInt16, NI_VectorT128_AsVectorUInt16, NI_VectorT128_AsVectorUInt16, NI_VectorT128_AsVectorUInt16}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AsVectorUInt32, 1, {NI_VectorT128_AsVectorUInt32, NI_VectorT128_AsVectorUInt32, NI_VectorT128_AsVectorUInt32, NI_VectorT128_AsVectorUInt32, NI_VectorT128_AsVectorUInt32, NI_VectorT128_AsVectorUInt32, NI_VectorT128_AsVectorUInt32, NI_VectorT128_AsVectorUInt32, NI_VectorT128_AsVectorUInt32, NI_VectorT128_AsVectorUInt32}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, AsVectorUInt64, 1, {NI_VectorT128_AsVectorUInt64, NI_VectorT128_AsVectorUInt64, NI_VectorT128_AsVectorUInt64, NI_VectorT128_AsVectorUInt64, NI_VectorT128_AsVectorUInt64, NI_VectorT128_AsVectorUInt64, NI_VectorT128_AsVectorUInt64, NI_VectorT128_AsVectorUInt64, NI_VectorT128_AsVectorUInt64, NI_VectorT128_AsVectorUInt64}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, BitwiseAnd, 2, {NI_VectorT128_BitwiseAnd, NI_VectorT128_BitwiseAnd, NI_VectorT128_BitwiseAnd, NI_VectorT128_BitwiseAnd, NI_VectorT128_BitwiseAnd, NI_VectorT128_BitwiseAnd, NI_VectorT128_BitwiseAnd, NI_VectorT128_BitwiseAnd, NI_VectorT128_BitwiseAnd, NI_VectorT128_BitwiseAnd}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, BitwiseOr, 2, {NI_VectorT128_BitwiseOr, NI_VectorT128_BitwiseOr, NI_VectorT128_BitwiseOr, NI_VectorT128_BitwiseOr, NI_VectorT128_BitwiseOr, NI_VectorT128_BitwiseOr, NI_VectorT128_BitwiseOr, NI_VectorT128_BitwiseOr, NI_VectorT128_BitwiseOr, NI_VectorT128_BitwiseOr}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Ceiling, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT128_Ceiling, NI_VectorT128_Ceiling}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, ConditionalSelect, 3, {NI_VectorT128_ConditionalSelect, NI_VectorT128_ConditionalSelect, NI_VectorT128_ConditionalSelect, NI_VectorT128_ConditionalSelect, NI_VectorT128_ConditionalSelect, NI_VectorT128_ConditionalSelect, NI_VectorT128_ConditionalSelect, NI_VectorT128_ConditionalSelect, NI_VectorT128_ConditionalSelect, NI_VectorT128_ConditionalSelect}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, ConvertToDouble, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT128_ConvertToDouble, NI_VectorT128_ConvertToDouble, NI_Illegal, NI_Illegal}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, ConvertToInt32, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT128_ConvertToInt32, NI_Illegal}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, ConvertToInt64, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT128_ConvertToInt64}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, ConvertToSingle, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT128_ConvertToSingle, NI_VectorT128_ConvertToSingle, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, ConvertToUInt32, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT128_ConvertToUInt32, NI_Illegal}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, ConvertToUInt64, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT128_ConvertToUInt64}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_NM(VectorT128, CreateBroadcast, ".ctor", 2, {NI_VectorT128_CreateBroadcast, NI_VectorT128_CreateBroadcast, NI_VectorT128_CreateBroadcast, NI_VectorT128_CreateBroadcast, NI_VectorT128_CreateBroadcast, NI_VectorT128_CreateBroadcast, NI_VectorT128_CreateBroadcast, NI_VectorT128_CreateBroadcast, NI_VectorT128_CreateBroadcast, NI_VectorT128_CreateBroadcast}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Divide, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT128_Divide, NI_VectorT128_Divide}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Dot, 2, {NI_Illegal, NI_Illegal, NI_VectorT128_Dot, NI_VectorT128_Dot, NI_VectorT128_Dot, NI_VectorT128_Dot, NI_Illegal, NI_Illegal, NI_VectorT128_Dot, NI_VectorT128_Dot}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Equals, 2, {NI_VectorT128_Equals, NI_VectorT128_Equals, NI_VectorT128_Equals, NI_VectorT128_Equals, NI_VectorT128_Equals, NI_VectorT128_Equals, NI_VectorT128_Equals, NI_VectorT128_Equals, NI_VectorT128_Equals, NI_VectorT128_Equals}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, EqualsAll, 2, {NI_VectorT128_EqualsAll, NI_VectorT128_EqualsAll, NI_VectorT128_EqualsAll, NI_VectorT128_EqualsAll, NI_VectorT128_EqualsAll, NI_VectorT128_EqualsAll, NI_VectorT128_EqualsAll, NI_VectorT128_EqualsAll, NI_VectorT128_EqualsAll, NI_VectorT128_EqualsAll}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, EqualsAny, 2, {NI_VectorT128_EqualsAny, NI_VectorT128_EqualsAny, NI_VectorT128_EqualsAny, NI_VectorT128_EqualsAny, NI_VectorT128_EqualsAny, NI_VectorT128_EqualsAny, NI_VectorT128_EqualsAny, NI_VectorT128_EqualsAny, NI_VectorT128_EqualsAny, NI_VectorT128_EqualsAny}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Floor, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT128_Floor, NI_VectorT128_Floor}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, get_AllBitsSet, 0, {NI_VectorT128_get_AllBitsSet, NI_VectorT128_get_AllBitsSet, NI_VectorT128_get_AllBitsSet, NI_VectorT128_get_AllBitsSet, NI_VectorT128_get_AllBitsSet, NI_VectorT128_get_AllBitsSet, NI_VectorT128_get_AllBitsSet, NI_VectorT128_get_AllBitsSet, NI_VectorT128_get_AllBitsSet, NI_VectorT128_get_AllBitsSet}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, get_Item, 2, {NI_VectorT128_get_Item, NI_VectorT128_get_Item, NI_VectorT128_get_Item, NI_VectorT128_get_Item, NI_VectorT128_get_Item, NI_VectorT128_get_Item, NI_VectorT128_get_Item, NI_VectorT128_get_Item, NI_VectorT128_get_Item, NI_VectorT128_get_Item}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::BaseTypeFromThisArg) -SIMD_AS_HWINTRINSIC_ID(VectorT128, get_One, 0, {NI_VectorT128_get_One, NI_VectorT128_get_One, NI_VectorT128_get_One, NI_VectorT128_get_One, NI_VectorT128_get_One, NI_VectorT128_get_One, NI_VectorT128_get_One, NI_VectorT128_get_One, NI_VectorT128_get_One, NI_VectorT128_get_One}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, get_Zero, 0, {NI_VectorT128_get_Zero, NI_VectorT128_get_Zero, NI_VectorT128_get_Zero, NI_VectorT128_get_Zero, NI_VectorT128_get_Zero, NI_VectorT128_get_Zero, NI_VectorT128_get_Zero, NI_VectorT128_get_Zero, NI_VectorT128_get_Zero, NI_VectorT128_get_Zero}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, GetElement, 2, {NI_VectorT128_GetElement, NI_VectorT128_GetElement, NI_VectorT128_GetElement, NI_VectorT128_GetElement, NI_VectorT128_GetElement, NI_VectorT128_GetElement, NI_VectorT128_GetElement, NI_VectorT128_GetElement, NI_VectorT128_GetElement, NI_VectorT128_GetElement}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, GreaterThan, 2, {NI_VectorT128_GreaterThan, NI_VectorT128_GreaterThan, NI_VectorT128_GreaterThan, NI_VectorT128_GreaterThan, NI_VectorT128_GreaterThan, NI_VectorT128_GreaterThan, NI_VectorT128_GreaterThan, NI_VectorT128_GreaterThan, NI_VectorT128_GreaterThan, NI_VectorT128_GreaterThan}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, GreaterThanAll, 2, {NI_VectorT128_GreaterThanAll, NI_VectorT128_GreaterThanAll, NI_VectorT128_GreaterThanAll, NI_VectorT128_GreaterThanAll, NI_VectorT128_GreaterThanAll, NI_VectorT128_GreaterThanAll, NI_VectorT128_GreaterThanAll, NI_VectorT128_GreaterThanAll, NI_VectorT128_GreaterThanAll, NI_VectorT128_GreaterThanAll}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, GreaterThanAny, 2, {NI_VectorT128_GreaterThanAny, NI_VectorT128_GreaterThanAny, NI_VectorT128_GreaterThanAny, NI_VectorT128_GreaterThanAny, NI_VectorT128_GreaterThanAny, NI_VectorT128_GreaterThanAny, NI_VectorT128_GreaterThanAny, NI_VectorT128_GreaterThanAny, NI_VectorT128_GreaterThanAny, NI_VectorT128_GreaterThanAny}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, GreaterThanOrEqual, 2, {NI_VectorT128_GreaterThanOrEqual, NI_VectorT128_GreaterThanOrEqual, NI_VectorT128_GreaterThanOrEqual, NI_VectorT128_GreaterThanOrEqual, NI_VectorT128_GreaterThanOrEqual, NI_VectorT128_GreaterThanOrEqual, NI_VectorT128_GreaterThanOrEqual, NI_VectorT128_GreaterThanOrEqual, NI_VectorT128_GreaterThanOrEqual, NI_VectorT128_GreaterThanOrEqual}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, GreaterThanOrEqualAll, 2, {NI_VectorT128_GreaterThanOrEqualAll, NI_VectorT128_GreaterThanOrEqualAll, NI_VectorT128_GreaterThanOrEqualAll, NI_VectorT128_GreaterThanOrEqualAll, NI_VectorT128_GreaterThanOrEqualAll, NI_VectorT128_GreaterThanOrEqualAll, NI_VectorT128_GreaterThanOrEqualAll, NI_VectorT128_GreaterThanOrEqualAll, NI_VectorT128_GreaterThanOrEqualAll, NI_VectorT128_GreaterThanOrEqualAll}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, GreaterThanOrEqualAny, 2, {NI_VectorT128_GreaterThanOrEqualAny, NI_VectorT128_GreaterThanOrEqualAny, NI_VectorT128_GreaterThanOrEqualAny, NI_VectorT128_GreaterThanOrEqualAny, NI_VectorT128_GreaterThanOrEqualAny, NI_VectorT128_GreaterThanOrEqualAny, NI_VectorT128_GreaterThanOrEqualAny, NI_VectorT128_GreaterThanOrEqualAny, NI_VectorT128_GreaterThanOrEqualAny, NI_VectorT128_GreaterThanOrEqualAny}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, LessThan, 2, {NI_VectorT128_LessThan, NI_VectorT128_LessThan, NI_VectorT128_LessThan, NI_VectorT128_LessThan, NI_VectorT128_LessThan, NI_VectorT128_LessThan, NI_VectorT128_LessThan, NI_VectorT128_LessThan, NI_VectorT128_LessThan, NI_VectorT128_LessThan}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, LessThanAll, 2, {NI_VectorT128_LessThanAll, NI_VectorT128_LessThanAll, NI_VectorT128_LessThanAll, NI_VectorT128_LessThanAll, NI_VectorT128_LessThanAll, NI_VectorT128_LessThanAll, NI_VectorT128_LessThanAll, NI_VectorT128_LessThanAll, NI_VectorT128_LessThanAll, NI_VectorT128_LessThanAll}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, LessThanAny, 2, {NI_VectorT128_LessThanAny, NI_VectorT128_LessThanAny, NI_VectorT128_LessThanAny, NI_VectorT128_LessThanAny, NI_VectorT128_LessThanAny, NI_VectorT128_LessThanAny, NI_VectorT128_LessThanAny, NI_VectorT128_LessThanAny, NI_VectorT128_LessThanAny, NI_VectorT128_LessThanAny}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, LessThanOrEqual, 2, {NI_VectorT128_LessThanOrEqual, NI_VectorT128_LessThanOrEqual, NI_VectorT128_LessThanOrEqual, NI_VectorT128_LessThanOrEqual, NI_VectorT128_LessThanOrEqual, NI_VectorT128_LessThanOrEqual, NI_VectorT128_LessThanOrEqual, NI_VectorT128_LessThanOrEqual, NI_VectorT128_LessThanOrEqual, NI_VectorT128_LessThanOrEqual}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, LessThanOrEqualAll, 2, {NI_VectorT128_LessThanOrEqualAll, NI_VectorT128_LessThanOrEqualAll, NI_VectorT128_LessThanOrEqualAll, NI_VectorT128_LessThanOrEqualAll, NI_VectorT128_LessThanOrEqualAll, NI_VectorT128_LessThanOrEqualAll, NI_VectorT128_LessThanOrEqualAll, NI_VectorT128_LessThanOrEqualAll, NI_VectorT128_LessThanOrEqualAll, NI_VectorT128_LessThanOrEqualAll}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, LessThanOrEqualAny, 2, {NI_VectorT128_LessThanOrEqualAny, NI_VectorT128_LessThanOrEqualAny, NI_VectorT128_LessThanOrEqualAny, NI_VectorT128_LessThanOrEqualAny, NI_VectorT128_LessThanOrEqualAny, NI_VectorT128_LessThanOrEqualAny, NI_VectorT128_LessThanOrEqualAny, NI_VectorT128_LessThanOrEqualAny, NI_VectorT128_LessThanOrEqualAny, NI_VectorT128_LessThanOrEqualAny}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Load, 1, {NI_VectorT128_Load, NI_VectorT128_Load, NI_VectorT128_Load, NI_VectorT128_Load, NI_VectorT128_Load, NI_VectorT128_Load, NI_VectorT128_Load, NI_VectorT128_Load, NI_VectorT128_Load, NI_VectorT128_Load}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) -SIMD_AS_HWINTRINSIC_ID(VectorT128, LoadAligned, 1, {NI_VectorT128_LoadAligned, NI_VectorT128_LoadAligned, NI_VectorT128_LoadAligned, NI_VectorT128_LoadAligned, NI_VectorT128_LoadAligned, NI_VectorT128_LoadAligned, NI_VectorT128_LoadAligned, NI_VectorT128_LoadAligned, NI_VectorT128_LoadAligned, NI_VectorT128_LoadAligned}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) -SIMD_AS_HWINTRINSIC_ID(VectorT128, LoadAlignedNonTemporal, 1, {NI_VectorT128_LoadAlignedNonTemporal, NI_VectorT128_LoadAlignedNonTemporal, NI_VectorT128_LoadAlignedNonTemporal, NI_VectorT128_LoadAlignedNonTemporal, NI_VectorT128_LoadAlignedNonTemporal, NI_VectorT128_LoadAlignedNonTemporal, NI_VectorT128_LoadAlignedNonTemporal, NI_VectorT128_LoadAlignedNonTemporal, NI_VectorT128_LoadAlignedNonTemporal, NI_VectorT128_LoadAlignedNonTemporal}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) -SIMD_AS_HWINTRINSIC_ID(VectorT128, LoadUnsafe, 1, {NI_VectorT128_LoadUnsafe, NI_VectorT128_LoadUnsafe, NI_VectorT128_LoadUnsafe, NI_VectorT128_LoadUnsafe, NI_VectorT128_LoadUnsafe, NI_VectorT128_LoadUnsafe, NI_VectorT128_LoadUnsafe, NI_VectorT128_LoadUnsafe, NI_VectorT128_LoadUnsafe, NI_VectorT128_LoadUnsafe}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) -SIMD_AS_HWINTRINSIC_NM(VectorT128, LoadUnsafeIndex, "LoadUnsafe", 2, {NI_VectorT128_LoadUnsafeIndex, NI_VectorT128_LoadUnsafeIndex, NI_VectorT128_LoadUnsafeIndex, NI_VectorT128_LoadUnsafeIndex, NI_VectorT128_LoadUnsafeIndex, NI_VectorT128_LoadUnsafeIndex, NI_VectorT128_LoadUnsafeIndex, NI_VectorT128_LoadUnsafeIndex, NI_VectorT128_LoadUnsafeIndex, NI_VectorT128_LoadUnsafeIndex}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Max, 2, {NI_VectorT128_Max, NI_VectorT128_Max, NI_VectorT128_Max, NI_VectorT128_Max, NI_VectorT128_Max, NI_VectorT128_Max, NI_VectorT128_Max, NI_VectorT128_Max, NI_VectorT128_Max, NI_VectorT128_Max}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Min, 2, {NI_VectorT128_Min, NI_VectorT128_Min, NI_VectorT128_Min, NI_VectorT128_Min, NI_VectorT128_Min, NI_VectorT128_Min, NI_VectorT128_Min, NI_VectorT128_Min, NI_VectorT128_Min, NI_VectorT128_Min}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Multiply, 2, {NI_Illegal, NI_Illegal, NI_VectorT128_Multiply, NI_VectorT128_Multiply, NI_VectorT128_Multiply, NI_VectorT128_Multiply, NI_VectorT128_Multiply, NI_VectorT128_Multiply, NI_VectorT128_Multiply, NI_VectorT128_Multiply}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Narrow, 2, {NI_VectorT128_Narrow, NI_VectorT128_Narrow, NI_VectorT128_Narrow, NI_VectorT128_Narrow, NI_VectorT128_Narrow, NI_VectorT128_Narrow, NI_VectorT128_Narrow, NI_VectorT128_Narrow, NI_VectorT128_Narrow, NI_VectorT128_Narrow}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Negate, 1, {NI_VectorT128_Negate, NI_VectorT128_Negate, NI_VectorT128_Negate, NI_VectorT128_Negate, NI_VectorT128_Negate, NI_VectorT128_Negate, NI_VectorT128_Negate, NI_VectorT128_Negate, NI_VectorT128_Negate, NI_VectorT128_Negate}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, OnesComplement, 1, {NI_VectorT128_OnesComplement, NI_VectorT128_OnesComplement, NI_VectorT128_OnesComplement, NI_VectorT128_OnesComplement, NI_VectorT128_OnesComplement, NI_VectorT128_OnesComplement, NI_VectorT128_OnesComplement, NI_VectorT128_OnesComplement, NI_VectorT128_OnesComplement, NI_VectorT128_OnesComplement}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_Addition, 2, {NI_VectorT128_op_Addition, NI_VectorT128_op_Addition, NI_VectorT128_op_Addition, NI_VectorT128_op_Addition, NI_VectorT128_op_Addition, NI_VectorT128_op_Addition, NI_VectorT128_op_Addition, NI_VectorT128_op_Addition, NI_VectorT128_op_Addition, NI_VectorT128_op_Addition}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_BitwiseAnd, 2, {NI_VectorT128_op_BitwiseAnd, NI_VectorT128_op_BitwiseAnd, NI_VectorT128_op_BitwiseAnd, NI_VectorT128_op_BitwiseAnd, NI_VectorT128_op_BitwiseAnd, NI_VectorT128_op_BitwiseAnd, NI_VectorT128_op_BitwiseAnd, NI_VectorT128_op_BitwiseAnd, NI_VectorT128_op_BitwiseAnd, NI_VectorT128_op_BitwiseAnd}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_BitwiseOr, 2, {NI_VectorT128_op_BitwiseOr, NI_VectorT128_op_BitwiseOr, NI_VectorT128_op_BitwiseOr, NI_VectorT128_op_BitwiseOr, NI_VectorT128_op_BitwiseOr, NI_VectorT128_op_BitwiseOr, NI_VectorT128_op_BitwiseOr, NI_VectorT128_op_BitwiseOr, NI_VectorT128_op_BitwiseOr, NI_VectorT128_op_BitwiseOr}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_Division, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT128_op_Division, NI_VectorT128_op_Division}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_Equality, 2, {NI_VectorT128_op_Equality, NI_VectorT128_op_Equality, NI_VectorT128_op_Equality, NI_VectorT128_op_Equality, NI_VectorT128_op_Equality, NI_VectorT128_op_Equality, NI_VectorT128_op_Equality, NI_VectorT128_op_Equality, NI_VectorT128_op_Equality, NI_VectorT128_op_Equality}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_ExclusiveOr, 2, {NI_VectorT128_op_ExclusiveOr, NI_VectorT128_op_ExclusiveOr, NI_VectorT128_op_ExclusiveOr, NI_VectorT128_op_ExclusiveOr, NI_VectorT128_op_ExclusiveOr, NI_VectorT128_op_ExclusiveOr, NI_VectorT128_op_ExclusiveOr, NI_VectorT128_op_ExclusiveOr, NI_VectorT128_op_ExclusiveOr, NI_VectorT128_op_ExclusiveOr}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_Explicit, 1, {NI_VectorT128_op_Explicit, NI_VectorT128_op_Explicit, NI_VectorT128_op_Explicit, NI_VectorT128_op_Explicit, NI_VectorT128_op_Explicit, NI_VectorT128_op_Explicit, NI_VectorT128_op_Explicit, NI_VectorT128_op_Explicit, NI_VectorT128_op_Explicit, NI_VectorT128_op_Explicit}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_Inequality, 2, {NI_VectorT128_op_Inequality, NI_VectorT128_op_Inequality, NI_VectorT128_op_Inequality, NI_VectorT128_op_Inequality, NI_VectorT128_op_Inequality, NI_VectorT128_op_Inequality, NI_VectorT128_op_Inequality, NI_VectorT128_op_Inequality, NI_VectorT128_op_Inequality, NI_VectorT128_op_Inequality}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_LeftShift, 2, {NI_Illegal, NI_Illegal, NI_VectorT128_op_LeftShift, NI_VectorT128_op_LeftShift, NI_VectorT128_op_LeftShift, NI_VectorT128_op_LeftShift, NI_VectorT128_op_LeftShift, NI_VectorT128_op_LeftShift, NI_VectorT128_op_LeftShift, NI_VectorT128_op_LeftShift}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_Multiply, 2, {NI_Illegal, NI_Illegal, NI_VectorT128_op_Multiply, NI_VectorT128_op_Multiply, NI_VectorT128_op_Multiply, NI_VectorT128_op_Multiply, NI_Illegal, NI_Illegal, NI_VectorT128_op_Multiply, NI_VectorT128_op_Multiply}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_OnesComplement, 2, {NI_VectorT128_op_OnesComplement, NI_VectorT128_op_OnesComplement, NI_VectorT128_op_OnesComplement, NI_VectorT128_op_OnesComplement, NI_VectorT128_op_OnesComplement, NI_VectorT128_op_OnesComplement, NI_VectorT128_op_OnesComplement, NI_VectorT128_op_OnesComplement, NI_VectorT128_op_OnesComplement, NI_VectorT128_op_OnesComplement}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_RightShift, 2, {NI_Illegal, NI_Illegal, NI_VectorT128_op_RightShift, NI_VectorT128_op_RightShift, NI_VectorT128_op_RightShift, NI_VectorT128_op_RightShift, NI_VectorT128_op_RightShift, NI_VectorT128_op_RightShift, NI_VectorT128_op_RightShift, NI_VectorT128_op_RightShift}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_Subtraction, 2, {NI_VectorT128_op_Subtraction, NI_VectorT128_op_Subtraction, NI_VectorT128_op_Subtraction, NI_VectorT128_op_Subtraction, NI_VectorT128_op_Subtraction, NI_VectorT128_op_Subtraction, NI_VectorT128_op_Subtraction, NI_VectorT128_op_Subtraction, NI_VectorT128_op_Subtraction, NI_VectorT128_op_Subtraction}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_UnaryNegation, 1, {NI_VectorT128_op_UnaryNegation, NI_VectorT128_op_UnaryNegation, NI_VectorT128_op_UnaryNegation, NI_VectorT128_op_UnaryNegation, NI_VectorT128_op_UnaryNegation, NI_VectorT128_op_UnaryNegation, NI_VectorT128_op_UnaryNegation, NI_VectorT128_op_UnaryNegation, NI_VectorT128_op_UnaryNegation, NI_VectorT128_op_UnaryNegation}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_UnaryPlus, 1, {NI_VectorT128_op_UnaryPlus, NI_VectorT128_op_UnaryPlus, NI_VectorT128_op_UnaryPlus, NI_VectorT128_op_UnaryPlus, NI_VectorT128_op_UnaryPlus, NI_VectorT128_op_UnaryPlus, NI_VectorT128_op_UnaryPlus, NI_VectorT128_op_UnaryPlus, NI_VectorT128_op_UnaryPlus, NI_VectorT128_op_UnaryPlus}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, op_UnsignedRightShift, 2, {NI_Illegal, NI_Illegal, NI_VectorT128_op_UnsignedRightShift, NI_VectorT128_op_UnsignedRightShift, NI_VectorT128_op_UnsignedRightShift, NI_VectorT128_op_UnsignedRightShift, NI_VectorT128_op_UnsignedRightShift, NI_VectorT128_op_UnsignedRightShift, NI_VectorT128_op_UnsignedRightShift, NI_VectorT128_op_UnsignedRightShift}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, ShiftLeft, 2, {NI_Illegal, NI_Illegal, NI_VectorT128_ShiftLeft, NI_VectorT128_ShiftLeft, NI_VectorT128_ShiftLeft, NI_VectorT128_ShiftLeft, NI_VectorT128_ShiftLeft, NI_VectorT128_ShiftLeft, NI_Illegal, NI_Illegal}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, ShiftRightArithmetic, 2, {NI_Illegal, NI_Illegal, NI_VectorT128_ShiftRightArithmetic, NI_Illegal, NI_VectorT128_ShiftRightArithmetic, NI_Illegal, NI_VectorT128_ShiftRightArithmetic, NI_Illegal, NI_Illegal, NI_Illegal}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, ShiftRightLogical, 2, {NI_Illegal, NI_Illegal, NI_VectorT128_ShiftRightLogical, NI_VectorT128_ShiftRightLogical, NI_VectorT128_ShiftRightLogical, NI_VectorT128_ShiftRightLogical, NI_VectorT128_ShiftRightLogical, NI_VectorT128_ShiftRightLogical, NI_Illegal, NI_Illegal}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_NM(VectorT128, Sqrt, "SquareRoot", 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT128_Sqrt, NI_VectorT128_Sqrt}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Store, 2, {NI_VectorT128_Store, NI_VectorT128_Store, NI_VectorT128_Store, NI_VectorT128_Store, NI_VectorT128_Store, NI_VectorT128_Store, NI_VectorT128_Store, NI_VectorT128_Store, NI_VectorT128_Store, NI_VectorT128_Store}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) -SIMD_AS_HWINTRINSIC_ID(VectorT128, StoreAligned, 2, {NI_VectorT128_StoreAligned, NI_VectorT128_StoreAligned, NI_VectorT128_StoreAligned, NI_VectorT128_StoreAligned, NI_VectorT128_StoreAligned, NI_VectorT128_StoreAligned, NI_VectorT128_StoreAligned, NI_VectorT128_StoreAligned, NI_VectorT128_StoreAligned, NI_VectorT128_StoreAligned}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) -SIMD_AS_HWINTRINSIC_ID(VectorT128, StoreAlignedNonTemporal, 2, {NI_VectorT128_StoreAlignedNonTemporal, NI_VectorT128_StoreAlignedNonTemporal, NI_VectorT128_StoreAlignedNonTemporal, NI_VectorT128_StoreAlignedNonTemporal, NI_VectorT128_StoreAlignedNonTemporal, NI_VectorT128_StoreAlignedNonTemporal, NI_VectorT128_StoreAlignedNonTemporal, NI_VectorT128_StoreAlignedNonTemporal, NI_VectorT128_StoreAlignedNonTemporal, NI_VectorT128_StoreAlignedNonTemporal}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) -SIMD_AS_HWINTRINSIC_ID(VectorT128, StoreUnsafe, -1, {NI_VectorT128_StoreUnsafe, NI_VectorT128_StoreUnsafe, NI_VectorT128_StoreUnsafe, NI_VectorT128_StoreUnsafe, NI_VectorT128_StoreUnsafe, NI_VectorT128_StoreUnsafe, NI_VectorT128_StoreUnsafe, NI_VectorT128_StoreUnsafe, NI_VectorT128_StoreUnsafe, NI_VectorT128_StoreUnsafe}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) -SIMD_AS_HWINTRINSIC_NM(VectorT128, StoreUnsafeIndex, "StoreUnsafe", 3, {NI_VectorT128_StoreUnsafeIndex, NI_VectorT128_StoreUnsafeIndex, NI_VectorT128_StoreUnsafeIndex, NI_VectorT128_StoreUnsafeIndex, NI_VectorT128_StoreUnsafeIndex, NI_VectorT128_StoreUnsafeIndex, NI_VectorT128_StoreUnsafeIndex, NI_VectorT128_StoreUnsafeIndex, NI_VectorT128_StoreUnsafeIndex, NI_VectorT128_StoreUnsafeIndex}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Subtract, 2, {NI_VectorT128_Subtract, NI_VectorT128_Subtract, NI_VectorT128_Subtract, NI_VectorT128_Subtract, NI_VectorT128_Subtract, NI_VectorT128_Subtract, NI_VectorT128_Subtract, NI_VectorT128_Subtract, NI_VectorT128_Subtract, NI_VectorT128_Subtract}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Sum, 1, {NI_Illegal, NI_Illegal, NI_VectorT128_Sum, NI_VectorT128_Sum, NI_VectorT128_Sum, NI_VectorT128_Sum, NI_Illegal, NI_Illegal, NI_VectorT128_Sum, NI_VectorT128_Sum}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, ToScalar, 1, {NI_VectorT128_ToScalar, NI_VectorT128_ToScalar, NI_VectorT128_ToScalar, NI_VectorT128_ToScalar, NI_VectorT128_ToScalar, NI_VectorT128_ToScalar, NI_VectorT128_ToScalar, NI_VectorT128_ToScalar, NI_VectorT128_ToScalar, NI_VectorT128_ToScalar}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, WidenLower, 1, {NI_VectorT128_WidenLower, NI_VectorT128_WidenLower, NI_VectorT128_WidenLower, NI_VectorT128_WidenLower, NI_VectorT128_WidenLower, NI_VectorT128_WidenLower, NI_VectorT128_WidenLower, NI_VectorT128_WidenLower, NI_VectorT128_WidenLower, NI_VectorT128_WidenLower}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, WidenUpper, 1, {NI_VectorT128_WidenUpper, NI_VectorT128_WidenUpper, NI_VectorT128_WidenUpper, NI_VectorT128_WidenUpper, NI_VectorT128_WidenUpper, NI_VectorT128_WidenUpper, NI_VectorT128_WidenUpper, NI_VectorT128_WidenUpper, NI_VectorT128_WidenUpper, NI_VectorT128_WidenUpper}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, WithElement, 3, {NI_VectorT128_WithElement, NI_VectorT128_WithElement, NI_VectorT128_WithElement, NI_VectorT128_WithElement, NI_VectorT128_WithElement, NI_VectorT128_WithElement, NI_VectorT128_WithElement, NI_VectorT128_WithElement, NI_VectorT128_WithElement, NI_VectorT128_WithElement}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT128, Xor, 2, {NI_VectorT128_Xor, NI_VectorT128_Xor, NI_VectorT128_Xor, NI_VectorT128_Xor, NI_VectorT128_Xor, NI_VectorT128_Xor, NI_VectorT128_Xor, NI_VectorT128_Xor, NI_VectorT128_Xor, NI_VectorT128_Xor}, SimdAsHWIntrinsicFlag::None) - -// ************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************* -// ISA ID Name NumArg Instructions Flags -// {TYP_BYTE, TYP_UBYTE, TYP_SHORT, TYP_USHORT, TYP_INT, TYP_UINT, TYP_LONG, TYP_ULONG, TYP_FLOAT, TYP_DOUBLE} -// ************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************* -// Vector Intrinsics -SIMD_AS_HWINTRINSIC_ID(VectorT256, Abs, 1, {NI_VectorT256_Abs, NI_VectorT256_Abs, NI_VectorT256_Abs, NI_VectorT256_Abs, NI_VectorT256_Abs, NI_VectorT256_Abs, NI_VectorT256_Abs, NI_VectorT256_Abs, NI_VectorT256_Abs, NI_VectorT256_Abs}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, Add, 2, {NI_VectorT256_Add, NI_VectorT256_Add, NI_VectorT256_Add, NI_VectorT256_Add, NI_VectorT256_Add, NI_VectorT256_Add, NI_VectorT256_Add, NI_VectorT256_Add, NI_VectorT256_Add, NI_VectorT256_Add}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, AndNot, 2, {NI_VectorT256_AndNot, NI_VectorT256_AndNot, NI_VectorT256_AndNot, NI_VectorT256_AndNot, NI_VectorT256_AndNot, NI_VectorT256_AndNot, NI_VectorT256_AndNot, NI_VectorT256_AndNot, NI_VectorT256_AndNot, NI_VectorT256_AndNot}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) -SIMD_AS_HWINTRINSIC_ID(VectorT256, As, 1, {NI_VectorT256_As, NI_VectorT256_As, NI_VectorT256_As, NI_VectorT256_As, NI_VectorT256_As, NI_VectorT256_As, NI_VectorT256_As, NI_VectorT256_As, NI_VectorT256_As, NI_VectorT256_As}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, AsVectorByte, 1, {NI_VectorT256_AsVectorByte, NI_VectorT256_AsVectorByte, NI_VectorT256_AsVectorByte, NI_VectorT256_AsVectorByte, NI_VectorT256_AsVectorByte, NI_VectorT256_AsVectorByte, NI_VectorT256_AsVectorByte, NI_VectorT256_AsVectorByte, NI_VectorT256_AsVectorByte, NI_VectorT256_AsVectorByte}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, AsVectorDouble, 1, {NI_VectorT256_AsVectorDouble, NI_VectorT256_AsVectorDouble, NI_VectorT256_AsVectorDouble, NI_VectorT256_AsVectorDouble, NI_VectorT256_AsVectorDouble, NI_VectorT256_AsVectorDouble, NI_VectorT256_AsVectorDouble, NI_VectorT256_AsVectorDouble, NI_VectorT256_AsVectorDouble, NI_VectorT256_AsVectorDouble}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, AsVectorInt16, 1, {NI_VectorT256_AsVectorInt16, NI_VectorT256_AsVectorInt16, NI_VectorT256_AsVectorInt16, NI_VectorT256_AsVectorInt16, NI_VectorT256_AsVectorInt16, NI_VectorT256_AsVectorInt16, NI_VectorT256_AsVectorInt16, NI_VectorT256_AsVectorInt16, NI_VectorT256_AsVectorInt16, NI_VectorT256_AsVectorInt16}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, AsVectorInt32, 1, {NI_VectorT256_AsVectorInt32, NI_VectorT256_AsVectorInt32, NI_VectorT256_AsVectorInt32, NI_VectorT256_AsVectorInt32, NI_VectorT256_AsVectorInt32, NI_VectorT256_AsVectorInt32, NI_VectorT256_AsVectorInt32, NI_VectorT256_AsVectorInt32, NI_VectorT256_AsVectorInt32, NI_VectorT256_AsVectorInt32}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, AsVectorInt64, 1, {NI_VectorT256_AsVectorInt64, NI_VectorT256_AsVectorInt64, NI_VectorT256_AsVectorInt64, NI_VectorT256_AsVectorInt64, NI_VectorT256_AsVectorInt64, NI_VectorT256_AsVectorInt64, NI_VectorT256_AsVectorInt64, NI_VectorT256_AsVectorInt64, NI_VectorT256_AsVectorInt64, NI_VectorT256_AsVectorInt64}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, AsVectorNInt, 1, {NI_VectorT256_AsVectorNInt, NI_VectorT256_AsVectorNInt, NI_VectorT256_AsVectorNInt, NI_VectorT256_AsVectorNInt, NI_VectorT256_AsVectorNInt, NI_VectorT256_AsVectorNInt, NI_VectorT256_AsVectorNInt, NI_VectorT256_AsVectorNInt, NI_VectorT256_AsVectorNInt, NI_VectorT256_AsVectorNInt}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, AsVectorNUInt, 1, {NI_VectorT256_AsVectorNUInt, NI_VectorT256_AsVectorNUInt, NI_VectorT256_AsVectorNUInt, NI_VectorT256_AsVectorNUInt, NI_VectorT256_AsVectorNUInt, NI_VectorT256_AsVectorNUInt, NI_VectorT256_AsVectorNUInt, NI_VectorT256_AsVectorNUInt, NI_VectorT256_AsVectorNUInt, NI_VectorT256_AsVectorNUInt}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, AsVectorSByte, 1, {NI_VectorT256_AsVectorSByte, NI_VectorT256_AsVectorSByte, NI_VectorT256_AsVectorSByte, NI_VectorT256_AsVectorSByte, NI_VectorT256_AsVectorSByte, NI_VectorT256_AsVectorSByte, NI_VectorT256_AsVectorSByte, NI_VectorT256_AsVectorSByte, NI_VectorT256_AsVectorSByte, NI_VectorT256_AsVectorSByte}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, AsVectorSingle, 1, {NI_VectorT256_AsVectorSingle, NI_VectorT256_AsVectorSingle, NI_VectorT256_AsVectorSingle, NI_VectorT256_AsVectorSingle, NI_VectorT256_AsVectorSingle, NI_VectorT256_AsVectorSingle, NI_VectorT256_AsVectorSingle, NI_VectorT256_AsVectorSingle, NI_VectorT256_AsVectorSingle, NI_VectorT256_AsVectorSingle}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, AsVectorUInt16, 1, {NI_VectorT256_AsVectorUInt16, NI_VectorT256_AsVectorUInt16, NI_VectorT256_AsVectorUInt16, NI_VectorT256_AsVectorUInt16, NI_VectorT256_AsVectorUInt16, NI_VectorT256_AsVectorUInt16, NI_VectorT256_AsVectorUInt16, NI_VectorT256_AsVectorUInt16, NI_VectorT256_AsVectorUInt16, NI_VectorT256_AsVectorUInt16}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, AsVectorUInt32, 1, {NI_VectorT256_AsVectorUInt32, NI_VectorT256_AsVectorUInt32, NI_VectorT256_AsVectorUInt32, NI_VectorT256_AsVectorUInt32, NI_VectorT256_AsVectorUInt32, NI_VectorT256_AsVectorUInt32, NI_VectorT256_AsVectorUInt32, NI_VectorT256_AsVectorUInt32, NI_VectorT256_AsVectorUInt32, NI_VectorT256_AsVectorUInt32}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, AsVectorUInt64, 1, {NI_VectorT256_AsVectorUInt64, NI_VectorT256_AsVectorUInt64, NI_VectorT256_AsVectorUInt64, NI_VectorT256_AsVectorUInt64, NI_VectorT256_AsVectorUInt64, NI_VectorT256_AsVectorUInt64, NI_VectorT256_AsVectorUInt64, NI_VectorT256_AsVectorUInt64, NI_VectorT256_AsVectorUInt64, NI_VectorT256_AsVectorUInt64}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, BitwiseAnd, 2, {NI_VectorT256_BitwiseAnd, NI_VectorT256_BitwiseAnd, NI_VectorT256_BitwiseAnd, NI_VectorT256_BitwiseAnd, NI_VectorT256_BitwiseAnd, NI_VectorT256_BitwiseAnd, NI_VectorT256_BitwiseAnd, NI_VectorT256_BitwiseAnd, NI_VectorT256_BitwiseAnd, NI_VectorT256_BitwiseAnd}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, BitwiseOr, 2, {NI_VectorT256_BitwiseOr, NI_VectorT256_BitwiseOr, NI_VectorT256_BitwiseOr, NI_VectorT256_BitwiseOr, NI_VectorT256_BitwiseOr, NI_VectorT256_BitwiseOr, NI_VectorT256_BitwiseOr, NI_VectorT256_BitwiseOr, NI_VectorT256_BitwiseOr, NI_VectorT256_BitwiseOr}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, Ceiling, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT256_Ceiling, NI_VectorT256_Ceiling}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, ConditionalSelect, 3, {NI_VectorT256_ConditionalSelect, NI_VectorT256_ConditionalSelect, NI_VectorT256_ConditionalSelect, NI_VectorT256_ConditionalSelect, NI_VectorT256_ConditionalSelect, NI_VectorT256_ConditionalSelect, NI_VectorT256_ConditionalSelect, NI_VectorT256_ConditionalSelect, NI_VectorT256_ConditionalSelect, NI_VectorT256_ConditionalSelect}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, ConvertToDouble, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT256_ConvertToDouble, NI_VectorT256_ConvertToDouble, NI_Illegal, NI_Illegal}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, ConvertToInt32, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT256_ConvertToInt32, NI_Illegal}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, ConvertToInt64, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT256_ConvertToInt64}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, ConvertToSingle, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT256_ConvertToSingle, NI_VectorT256_ConvertToSingle, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, ConvertToUInt32, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT256_ConvertToUInt32, NI_Illegal}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, ConvertToUInt64, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT256_ConvertToUInt64}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_NM(VectorT256, CreateBroadcast, ".ctor", 2, {NI_VectorT256_CreateBroadcast, NI_VectorT256_CreateBroadcast, NI_VectorT256_CreateBroadcast, NI_VectorT256_CreateBroadcast, NI_VectorT256_CreateBroadcast, NI_VectorT256_CreateBroadcast, NI_VectorT256_CreateBroadcast, NI_VectorT256_CreateBroadcast, NI_VectorT256_CreateBroadcast, NI_VectorT256_CreateBroadcast}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) -SIMD_AS_HWINTRINSIC_ID(VectorT256, Divide, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT256_Divide, NI_VectorT256_Divide}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, Dot, 2, {NI_Illegal, NI_Illegal, NI_VectorT256_Dot, NI_VectorT256_Dot, NI_VectorT256_Dot, NI_VectorT256_Dot, NI_Illegal, NI_Illegal, NI_VectorT256_Dot, NI_VectorT256_Dot}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, Equals, 2, {NI_VectorT256_Equals, NI_VectorT256_Equals, NI_VectorT256_Equals, NI_VectorT256_Equals, NI_VectorT256_Equals, NI_VectorT256_Equals, NI_VectorT256_Equals, NI_VectorT256_Equals, NI_VectorT256_Equals, NI_VectorT256_Equals}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, EqualsAll, 2, {NI_VectorT256_EqualsAll, NI_VectorT256_EqualsAll, NI_VectorT256_EqualsAll, NI_VectorT256_EqualsAll, NI_VectorT256_EqualsAll, NI_VectorT256_EqualsAll, NI_VectorT256_EqualsAll, NI_VectorT256_EqualsAll, NI_VectorT256_EqualsAll, NI_VectorT256_EqualsAll}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, EqualsAny, 2, {NI_VectorT256_EqualsAny, NI_VectorT256_EqualsAny, NI_VectorT256_EqualsAny, NI_VectorT256_EqualsAny, NI_VectorT256_EqualsAny, NI_VectorT256_EqualsAny, NI_VectorT256_EqualsAny, NI_VectorT256_EqualsAny, NI_VectorT256_EqualsAny, NI_VectorT256_EqualsAny}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, Floor, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT256_Floor, NI_VectorT256_Floor}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, get_AllBitsSet, 0, {NI_VectorT256_get_AllBitsSet, NI_VectorT256_get_AllBitsSet, NI_VectorT256_get_AllBitsSet, NI_VectorT256_get_AllBitsSet, NI_VectorT256_get_AllBitsSet, NI_VectorT256_get_AllBitsSet, NI_VectorT256_get_AllBitsSet, NI_VectorT256_get_AllBitsSet, NI_VectorT256_get_AllBitsSet, NI_VectorT256_get_AllBitsSet}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, get_Item, 2, {NI_VectorT256_get_Item, NI_VectorT256_get_Item, NI_VectorT256_get_Item, NI_VectorT256_get_Item, NI_VectorT256_get_Item, NI_VectorT256_get_Item, NI_VectorT256_get_Item, NI_VectorT256_get_Item, NI_VectorT256_get_Item, NI_VectorT256_get_Item}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::BaseTypeFromThisArg) -SIMD_AS_HWINTRINSIC_ID(VectorT256, get_One, 0, {NI_VectorT256_get_One, NI_VectorT256_get_One, NI_VectorT256_get_One, NI_VectorT256_get_One, NI_VectorT256_get_One, NI_VectorT256_get_One, NI_VectorT256_get_One, NI_VectorT256_get_One, NI_VectorT256_get_One, NI_VectorT256_get_One}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, get_Zero, 0, {NI_VectorT256_get_Zero, NI_VectorT256_get_Zero, NI_VectorT256_get_Zero, NI_VectorT256_get_Zero, NI_VectorT256_get_Zero, NI_VectorT256_get_Zero, NI_VectorT256_get_Zero, NI_VectorT256_get_Zero, NI_VectorT256_get_Zero, NI_VectorT256_get_Zero}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, GetElement, 2, {NI_VectorT256_GetElement, NI_VectorT256_GetElement, NI_VectorT256_GetElement, NI_VectorT256_GetElement, NI_VectorT256_GetElement, NI_VectorT256_GetElement, NI_VectorT256_GetElement, NI_VectorT256_GetElement, NI_VectorT256_GetElement, NI_VectorT256_GetElement}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, GreaterThan, 2, {NI_VectorT256_GreaterThan, NI_VectorT256_GreaterThan, NI_VectorT256_GreaterThan, NI_VectorT256_GreaterThan, NI_VectorT256_GreaterThan, NI_VectorT256_GreaterThan, NI_VectorT256_GreaterThan, NI_VectorT256_GreaterThan, NI_VectorT256_GreaterThan, NI_VectorT256_GreaterThan}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, GreaterThanAll, 2, {NI_VectorT256_GreaterThanAll, NI_VectorT256_GreaterThanAll, NI_VectorT256_GreaterThanAll, NI_VectorT256_GreaterThanAll, NI_VectorT256_GreaterThanAll, NI_VectorT256_GreaterThanAll, NI_VectorT256_GreaterThanAll, NI_VectorT256_GreaterThanAll, NI_VectorT256_GreaterThanAll, NI_VectorT256_GreaterThanAll}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, GreaterThanAny, 2, {NI_VectorT256_GreaterThanAny, NI_VectorT256_GreaterThanAny, NI_VectorT256_GreaterThanAny, NI_VectorT256_GreaterThanAny, NI_VectorT256_GreaterThanAny, NI_VectorT256_GreaterThanAny, NI_VectorT256_GreaterThanAny, NI_VectorT256_GreaterThanAny, NI_VectorT256_GreaterThanAny, NI_VectorT256_GreaterThanAny}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, GreaterThanOrEqual, 2, {NI_VectorT256_GreaterThanOrEqual, NI_VectorT256_GreaterThanOrEqual, NI_VectorT256_GreaterThanOrEqual, NI_VectorT256_GreaterThanOrEqual, NI_VectorT256_GreaterThanOrEqual, NI_VectorT256_GreaterThanOrEqual, NI_VectorT256_GreaterThanOrEqual, NI_VectorT256_GreaterThanOrEqual, NI_VectorT256_GreaterThanOrEqual, NI_VectorT256_GreaterThanOrEqual}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, GreaterThanOrEqualAll, 2, {NI_VectorT256_GreaterThanOrEqualAll, NI_VectorT256_GreaterThanOrEqualAll, NI_VectorT256_GreaterThanOrEqualAll, NI_VectorT256_GreaterThanOrEqualAll, NI_VectorT256_GreaterThanOrEqualAll, NI_VectorT256_GreaterThanOrEqualAll, NI_VectorT256_GreaterThanOrEqualAll, NI_VectorT256_GreaterThanOrEqualAll, NI_VectorT256_GreaterThanOrEqualAll, NI_VectorT256_GreaterThanOrEqualAll}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, GreaterThanOrEqualAny, 2, {NI_VectorT256_GreaterThanOrEqualAny, NI_VectorT256_GreaterThanOrEqualAny, NI_VectorT256_GreaterThanOrEqualAny, NI_VectorT256_GreaterThanOrEqualAny, NI_VectorT256_GreaterThanOrEqualAny, NI_VectorT256_GreaterThanOrEqualAny, NI_VectorT256_GreaterThanOrEqualAny, NI_VectorT256_GreaterThanOrEqualAny, NI_VectorT256_GreaterThanOrEqualAny, NI_VectorT256_GreaterThanOrEqualAny}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, LessThan, 2, {NI_VectorT256_LessThan, NI_VectorT256_LessThan, NI_VectorT256_LessThan, NI_VectorT256_LessThan, NI_VectorT256_LessThan, NI_VectorT256_LessThan, NI_VectorT256_LessThan, NI_VectorT256_LessThan, NI_VectorT256_LessThan, NI_VectorT256_LessThan}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, LessThanAll, 2, {NI_VectorT256_LessThanAll, NI_VectorT256_LessThanAll, NI_VectorT256_LessThanAll, NI_VectorT256_LessThanAll, NI_VectorT256_LessThanAll, NI_VectorT256_LessThanAll, NI_VectorT256_LessThanAll, NI_VectorT256_LessThanAll, NI_VectorT256_LessThanAll, NI_VectorT256_LessThanAll}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, LessThanAny, 2, {NI_VectorT256_LessThanAny, NI_VectorT256_LessThanAny, NI_VectorT256_LessThanAny, NI_VectorT256_LessThanAny, NI_VectorT256_LessThanAny, NI_VectorT256_LessThanAny, NI_VectorT256_LessThanAny, NI_VectorT256_LessThanAny, NI_VectorT256_LessThanAny, NI_VectorT256_LessThanAny}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, LessThanOrEqual, 2, {NI_VectorT256_LessThanOrEqual, NI_VectorT256_LessThanOrEqual, NI_VectorT256_LessThanOrEqual, NI_VectorT256_LessThanOrEqual, NI_VectorT256_LessThanOrEqual, NI_VectorT256_LessThanOrEqual, NI_VectorT256_LessThanOrEqual, NI_VectorT256_LessThanOrEqual, NI_VectorT256_LessThanOrEqual, NI_VectorT256_LessThanOrEqual}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, LessThanOrEqualAll, 2, {NI_VectorT256_LessThanOrEqualAll, NI_VectorT256_LessThanOrEqualAll, NI_VectorT256_LessThanOrEqualAll, NI_VectorT256_LessThanOrEqualAll, NI_VectorT256_LessThanOrEqualAll, NI_VectorT256_LessThanOrEqualAll, NI_VectorT256_LessThanOrEqualAll, NI_VectorT256_LessThanOrEqualAll, NI_VectorT256_LessThanOrEqualAll, NI_VectorT256_LessThanOrEqualAll}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, LessThanOrEqualAny, 2, {NI_VectorT256_LessThanOrEqualAny, NI_VectorT256_LessThanOrEqualAny, NI_VectorT256_LessThanOrEqualAny, NI_VectorT256_LessThanOrEqualAny, NI_VectorT256_LessThanOrEqualAny, NI_VectorT256_LessThanOrEqualAny, NI_VectorT256_LessThanOrEqualAny, NI_VectorT256_LessThanOrEqualAny, NI_VectorT256_LessThanOrEqualAny, NI_VectorT256_LessThanOrEqualAny}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, Load, 1, {NI_VectorT256_Load, NI_VectorT256_Load, NI_VectorT256_Load, NI_VectorT256_Load, NI_VectorT256_Load, NI_VectorT256_Load, NI_VectorT256_Load, NI_VectorT256_Load, NI_VectorT256_Load, NI_VectorT256_Load}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) -SIMD_AS_HWINTRINSIC_ID(VectorT256, LoadAligned, 1, {NI_VectorT256_LoadAligned, NI_VectorT256_LoadAligned, NI_VectorT256_LoadAligned, NI_VectorT256_LoadAligned, NI_VectorT256_LoadAligned, NI_VectorT256_LoadAligned, NI_VectorT256_LoadAligned, NI_VectorT256_LoadAligned, NI_VectorT256_LoadAligned, NI_VectorT256_LoadAligned}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) -SIMD_AS_HWINTRINSIC_ID(VectorT256, LoadAlignedNonTemporal, 1, {NI_VectorT256_LoadAlignedNonTemporal, NI_VectorT256_LoadAlignedNonTemporal, NI_VectorT256_LoadAlignedNonTemporal, NI_VectorT256_LoadAlignedNonTemporal, NI_VectorT256_LoadAlignedNonTemporal, NI_VectorT256_LoadAlignedNonTemporal, NI_VectorT256_LoadAlignedNonTemporal, NI_VectorT256_LoadAlignedNonTemporal, NI_VectorT256_LoadAlignedNonTemporal, NI_VectorT256_LoadAlignedNonTemporal}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) -SIMD_AS_HWINTRINSIC_ID(VectorT256, LoadUnsafe, 1, {NI_VectorT256_LoadUnsafe, NI_VectorT256_LoadUnsafe, NI_VectorT256_LoadUnsafe, NI_VectorT256_LoadUnsafe, NI_VectorT256_LoadUnsafe, NI_VectorT256_LoadUnsafe, NI_VectorT256_LoadUnsafe, NI_VectorT256_LoadUnsafe, NI_VectorT256_LoadUnsafe, NI_VectorT256_LoadUnsafe}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) -SIMD_AS_HWINTRINSIC_NM(VectorT256, LoadUnsafeIndex, "LoadUnsafe", 2, {NI_VectorT256_LoadUnsafeIndex, NI_VectorT256_LoadUnsafeIndex, NI_VectorT256_LoadUnsafeIndex, NI_VectorT256_LoadUnsafeIndex, NI_VectorT256_LoadUnsafeIndex, NI_VectorT256_LoadUnsafeIndex, NI_VectorT256_LoadUnsafeIndex, NI_VectorT256_LoadUnsafeIndex, NI_VectorT256_LoadUnsafeIndex, NI_VectorT256_LoadUnsafeIndex}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) -SIMD_AS_HWINTRINSIC_ID(VectorT256, Min, 2, {NI_VectorT256_Min, NI_VectorT256_Min, NI_VectorT256_Min, NI_VectorT256_Min, NI_VectorT256_Min, NI_VectorT256_Min, NI_VectorT256_Min, NI_VectorT256_Min, NI_VectorT256_Min, NI_VectorT256_Min}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, Max, 2, {NI_VectorT256_Max, NI_VectorT256_Max, NI_VectorT256_Max, NI_VectorT256_Max, NI_VectorT256_Max, NI_VectorT256_Max, NI_VectorT256_Max, NI_VectorT256_Max, NI_VectorT256_Max, NI_VectorT256_Max}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, Multiply, 2, {NI_Illegal, NI_Illegal, NI_VectorT256_Multiply, NI_VectorT256_Multiply, NI_VectorT256_Multiply, NI_VectorT256_Multiply, NI_VectorT256_Multiply, NI_VectorT256_Multiply, NI_VectorT256_Multiply, NI_VectorT256_Multiply}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, Narrow, 2, {NI_VectorT256_Narrow, NI_VectorT256_Narrow, NI_VectorT256_Narrow, NI_VectorT256_Narrow, NI_VectorT256_Narrow, NI_VectorT256_Narrow, NI_VectorT256_Narrow, NI_VectorT256_Narrow, NI_VectorT256_Narrow, NI_VectorT256_Narrow}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) -SIMD_AS_HWINTRINSIC_ID(VectorT256, Negate, 1, {NI_VectorT256_Negate, NI_VectorT256_Negate, NI_VectorT256_Negate, NI_VectorT256_Negate, NI_VectorT256_Negate, NI_VectorT256_Negate, NI_VectorT256_Negate, NI_VectorT256_Negate, NI_VectorT256_Negate, NI_VectorT256_Negate}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, OnesComplement, 2, {NI_VectorT256_OnesComplement, NI_VectorT256_OnesComplement, NI_VectorT256_OnesComplement, NI_VectorT256_OnesComplement, NI_VectorT256_OnesComplement, NI_VectorT256_OnesComplement, NI_VectorT256_OnesComplement, NI_VectorT256_OnesComplement, NI_VectorT256_OnesComplement, NI_VectorT256_OnesComplement}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, op_Addition, 2, {NI_VectorT256_op_Addition, NI_VectorT256_op_Addition, NI_VectorT256_op_Addition, NI_VectorT256_op_Addition, NI_VectorT256_op_Addition, NI_VectorT256_op_Addition, NI_VectorT256_op_Addition, NI_VectorT256_op_Addition, NI_VectorT256_op_Addition, NI_VectorT256_op_Addition}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, op_BitwiseAnd, 2, {NI_VectorT256_op_BitwiseAnd, NI_VectorT256_op_BitwiseAnd, NI_VectorT256_op_BitwiseAnd, NI_VectorT256_op_BitwiseAnd, NI_VectorT256_op_BitwiseAnd, NI_VectorT256_op_BitwiseAnd, NI_VectorT256_op_BitwiseAnd, NI_VectorT256_op_BitwiseAnd, NI_VectorT256_op_BitwiseAnd, NI_VectorT256_op_BitwiseAnd}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, op_BitwiseOr, 2, {NI_VectorT256_op_BitwiseOr, NI_VectorT256_op_BitwiseOr, NI_VectorT256_op_BitwiseOr, NI_VectorT256_op_BitwiseOr, NI_VectorT256_op_BitwiseOr, NI_VectorT256_op_BitwiseOr, NI_VectorT256_op_BitwiseOr, NI_VectorT256_op_BitwiseOr, NI_VectorT256_op_BitwiseOr, NI_VectorT256_op_BitwiseOr}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, op_Division, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT256_op_Division, NI_VectorT256_op_Division}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, op_Equality, 2, {NI_VectorT256_op_Equality, NI_VectorT256_op_Equality, NI_VectorT256_op_Equality, NI_VectorT256_op_Equality, NI_VectorT256_op_Equality, NI_VectorT256_op_Equality, NI_VectorT256_op_Equality, NI_VectorT256_op_Equality, NI_VectorT256_op_Equality, NI_VectorT256_op_Equality}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, op_ExclusiveOr, 2, {NI_VectorT256_op_ExclusiveOr, NI_VectorT256_op_ExclusiveOr, NI_VectorT256_op_ExclusiveOr, NI_VectorT256_op_ExclusiveOr, NI_VectorT256_op_ExclusiveOr, NI_VectorT256_op_ExclusiveOr, NI_VectorT256_op_ExclusiveOr, NI_VectorT256_op_ExclusiveOr, NI_VectorT256_op_ExclusiveOr, NI_VectorT256_op_ExclusiveOr}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, op_Explicit, 1, {NI_VectorT256_op_Explicit, NI_VectorT256_op_Explicit, NI_VectorT256_op_Explicit, NI_VectorT256_op_Explicit, NI_VectorT256_op_Explicit, NI_VectorT256_op_Explicit, NI_VectorT256_op_Explicit, NI_VectorT256_op_Explicit, NI_VectorT256_op_Explicit, NI_VectorT256_op_Explicit}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, op_Inequality, 2, {NI_VectorT256_op_Inequality, NI_VectorT256_op_Inequality, NI_VectorT256_op_Inequality, NI_VectorT256_op_Inequality, NI_VectorT256_op_Inequality, NI_VectorT256_op_Inequality, NI_VectorT256_op_Inequality, NI_VectorT256_op_Inequality, NI_VectorT256_op_Inequality, NI_VectorT256_op_Inequality}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, op_LeftShift, 2, {NI_Illegal, NI_Illegal, NI_VectorT256_op_LeftShift, NI_VectorT256_op_LeftShift, NI_VectorT256_op_LeftShift, NI_VectorT256_op_LeftShift, NI_VectorT256_op_LeftShift, NI_VectorT256_op_LeftShift, NI_VectorT256_op_LeftShift, NI_VectorT256_op_LeftShift}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, op_Multiply, 2, {NI_Illegal, NI_Illegal, NI_VectorT256_op_Multiply, NI_VectorT256_op_Multiply, NI_VectorT256_op_Multiply, NI_VectorT256_op_Multiply, NI_Illegal, NI_Illegal, NI_VectorT256_op_Multiply, NI_VectorT256_op_Multiply}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, op_OnesComplement, 1, {NI_VectorT256_op_OnesComplement, NI_VectorT256_op_OnesComplement, NI_VectorT256_op_OnesComplement, NI_VectorT256_op_OnesComplement, NI_VectorT256_op_OnesComplement, NI_VectorT256_op_OnesComplement, NI_VectorT256_op_OnesComplement, NI_VectorT256_op_OnesComplement, NI_VectorT256_op_OnesComplement, NI_VectorT256_op_OnesComplement}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, op_RightShift, 2, {NI_Illegal, NI_Illegal, NI_VectorT256_op_RightShift, NI_VectorT256_op_RightShift, NI_VectorT256_op_RightShift, NI_VectorT256_op_RightShift, NI_VectorT256_op_RightShift, NI_VectorT256_op_RightShift, NI_VectorT256_op_RightShift, NI_VectorT256_op_RightShift}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, op_Subtraction, 2, {NI_VectorT256_op_Subtraction, NI_VectorT256_op_Subtraction, NI_VectorT256_op_Subtraction, NI_VectorT256_op_Subtraction, NI_VectorT256_op_Subtraction, NI_VectorT256_op_Subtraction, NI_VectorT256_op_Subtraction, NI_VectorT256_op_Subtraction, NI_VectorT256_op_Subtraction, NI_VectorT256_op_Subtraction}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, op_UnaryNegation, 1, {NI_VectorT256_op_UnaryNegation, NI_VectorT256_op_UnaryNegation, NI_VectorT256_op_UnaryNegation, NI_VectorT256_op_UnaryNegation, NI_VectorT256_op_UnaryNegation, NI_VectorT256_op_UnaryNegation, NI_VectorT256_op_UnaryNegation, NI_VectorT256_op_UnaryNegation, NI_VectorT256_op_UnaryNegation, NI_VectorT256_op_UnaryNegation}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, op_UnaryPlus, 1, {NI_VectorT256_op_UnaryPlus, NI_VectorT256_op_UnaryPlus, NI_VectorT256_op_UnaryPlus, NI_VectorT256_op_UnaryPlus, NI_VectorT256_op_UnaryPlus, NI_VectorT256_op_UnaryPlus, NI_VectorT256_op_UnaryPlus, NI_VectorT256_op_UnaryPlus, NI_VectorT256_op_UnaryPlus, NI_VectorT256_op_UnaryPlus}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, op_UnsignedRightShift, 2, {NI_Illegal, NI_Illegal, NI_VectorT256_op_UnsignedRightShift, NI_VectorT256_op_UnsignedRightShift, NI_VectorT256_op_UnsignedRightShift, NI_VectorT256_op_UnsignedRightShift, NI_VectorT256_op_UnsignedRightShift, NI_VectorT256_op_UnsignedRightShift, NI_VectorT256_op_UnsignedRightShift, NI_VectorT256_op_UnsignedRightShift}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, ShiftLeft, 2, {NI_Illegal, NI_Illegal, NI_VectorT256_ShiftLeft, NI_VectorT256_ShiftLeft, NI_VectorT256_ShiftLeft, NI_VectorT256_ShiftLeft, NI_VectorT256_ShiftLeft, NI_VectorT256_ShiftLeft, NI_Illegal, NI_Illegal}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, ShiftRightArithmetic, 2, {NI_Illegal, NI_Illegal, NI_VectorT256_ShiftRightArithmetic, NI_Illegal, NI_VectorT256_ShiftRightArithmetic, NI_Illegal, NI_VectorT256_ShiftRightArithmetic, NI_Illegal, NI_Illegal, NI_Illegal}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, ShiftRightLogical, 2, {NI_Illegal, NI_Illegal, NI_VectorT256_ShiftRightLogical, NI_VectorT256_ShiftRightLogical, NI_VectorT256_ShiftRightLogical, NI_VectorT256_ShiftRightLogical, NI_VectorT256_ShiftRightLogical, NI_VectorT256_ShiftRightLogical, NI_Illegal, NI_Illegal}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_NM(VectorT256, Sqrt, "SquareRoot", 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT256_Sqrt, NI_VectorT256_Sqrt}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, Store, 2, {NI_VectorT256_Store, NI_VectorT256_Store, NI_VectorT256_Store, NI_VectorT256_Store, NI_VectorT256_Store, NI_VectorT256_Store, NI_VectorT256_Store, NI_VectorT256_Store, NI_VectorT256_Store, NI_VectorT256_Store}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) -SIMD_AS_HWINTRINSIC_ID(VectorT256, StoreAligned, 2, {NI_VectorT256_StoreAligned, NI_VectorT256_StoreAligned, NI_VectorT256_StoreAligned, NI_VectorT256_StoreAligned, NI_VectorT256_StoreAligned, NI_VectorT256_StoreAligned, NI_VectorT256_StoreAligned, NI_VectorT256_StoreAligned, NI_VectorT256_StoreAligned, NI_VectorT256_StoreAligned}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) -SIMD_AS_HWINTRINSIC_ID(VectorT256, StoreAlignedNonTemporal, 2, {NI_VectorT256_StoreAlignedNonTemporal, NI_VectorT256_StoreAlignedNonTemporal, NI_VectorT256_StoreAlignedNonTemporal, NI_VectorT256_StoreAlignedNonTemporal, NI_VectorT256_StoreAlignedNonTemporal, NI_VectorT256_StoreAlignedNonTemporal, NI_VectorT256_StoreAlignedNonTemporal, NI_VectorT256_StoreAlignedNonTemporal, NI_VectorT256_StoreAlignedNonTemporal, NI_VectorT256_StoreAlignedNonTemporal}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) -SIMD_AS_HWINTRINSIC_ID(VectorT256, StoreUnsafe, 2, {NI_VectorT256_StoreUnsafe, NI_VectorT256_StoreUnsafe, NI_VectorT256_StoreUnsafe, NI_VectorT256_StoreUnsafe, NI_VectorT256_StoreUnsafe, NI_VectorT256_StoreUnsafe, NI_VectorT256_StoreUnsafe, NI_VectorT256_StoreUnsafe, NI_VectorT256_StoreUnsafe, NI_VectorT256_StoreUnsafe}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) -SIMD_AS_HWINTRINSIC_NM(VectorT256, StoreUnsafeIndex, "StoreUnsafe", 3, {NI_VectorT256_StoreUnsafeIndex, NI_VectorT256_StoreUnsafeIndex, NI_VectorT256_StoreUnsafeIndex, NI_VectorT256_StoreUnsafeIndex, NI_VectorT256_StoreUnsafeIndex, NI_VectorT256_StoreUnsafeIndex, NI_VectorT256_StoreUnsafeIndex, NI_VectorT256_StoreUnsafeIndex, NI_VectorT256_StoreUnsafeIndex, NI_VectorT256_StoreUnsafeIndex}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) -SIMD_AS_HWINTRINSIC_ID(VectorT256, Subtract, 2, {NI_VectorT256_Subtract, NI_VectorT256_Subtract, NI_VectorT256_Subtract, NI_VectorT256_Subtract, NI_VectorT256_Subtract, NI_VectorT256_Subtract, NI_VectorT256_Subtract, NI_VectorT256_Subtract, NI_VectorT256_Subtract, NI_VectorT256_Subtract}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, Sum, 1, {NI_Illegal, NI_Illegal, NI_VectorT256_Sum, NI_VectorT256_Sum, NI_VectorT256_Sum, NI_VectorT256_Sum, NI_Illegal, NI_Illegal, NI_VectorT256_Sum, NI_VectorT256_Sum}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, ToScalar, 1, {NI_VectorT256_ToScalar, NI_VectorT256_ToScalar, NI_VectorT256_ToScalar, NI_VectorT256_ToScalar, NI_VectorT256_ToScalar, NI_VectorT256_ToScalar, NI_VectorT256_ToScalar, NI_VectorT256_ToScalar, NI_VectorT256_ToScalar, NI_VectorT256_ToScalar}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, WidenLower, 1, {NI_VectorT256_WidenLower, NI_VectorT256_WidenLower, NI_VectorT256_WidenLower, NI_VectorT256_WidenLower, NI_VectorT256_WidenLower, NI_VectorT256_WidenLower, NI_VectorT256_WidenLower, NI_VectorT256_WidenLower, NI_VectorT256_WidenLower, NI_VectorT256_WidenLower}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, WidenUpper, 1, {NI_VectorT256_WidenUpper, NI_VectorT256_WidenUpper, NI_VectorT256_WidenUpper, NI_VectorT256_WidenUpper, NI_VectorT256_WidenUpper, NI_VectorT256_WidenUpper, NI_VectorT256_WidenUpper, NI_VectorT256_WidenUpper, NI_VectorT256_WidenUpper, NI_VectorT256_WidenUpper}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, WithElement, 3, {NI_VectorT256_WithElement, NI_VectorT256_WithElement, NI_VectorT256_WithElement, NI_VectorT256_WithElement, NI_VectorT256_WithElement, NI_VectorT256_WithElement, NI_VectorT256_WithElement, NI_VectorT256_WithElement, NI_VectorT256_WithElement, NI_VectorT256_WithElement}, SimdAsHWIntrinsicFlag::None) -SIMD_AS_HWINTRINSIC_ID(VectorT256, Xor, 2, {NI_VectorT256_Xor, NI_VectorT256_Xor, NI_VectorT256_Xor, NI_VectorT256_Xor, NI_VectorT256_Xor, NI_VectorT256_Xor, NI_VectorT256_Xor, NI_VectorT256_Xor, NI_VectorT256_Xor, NI_VectorT256_Xor}, SimdAsHWIntrinsicFlag::None) - -// ************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************* -// ISA ID Name NumArg Instructions Flags -// {TYP_BYTE, TYP_UBYTE, TYP_SHORT, TYP_USHORT, TYP_INT, TYP_UINT, TYP_LONG, TYP_ULONG, TYP_FLOAT, TYP_DOUBLE} -// ************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************* -// Vector Intrinsics -SIMD_AS_HWINTRINSIC_ID(VectorT512, get_Zero, 0, {NI_VectorT512_get_Zero, NI_VectorT512_get_Zero, NI_VectorT512_get_Zero, NI_VectorT512_get_Zero, NI_VectorT512_get_Zero, NI_VectorT512_get_Zero, NI_VectorT512_get_Zero, NI_VectorT512_get_Zero, NI_VectorT512_get_Zero, NI_VectorT512_get_Zero}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Abs, 1, {NI_VectorT_Abs, NI_VectorT_Abs, NI_VectorT_Abs, NI_VectorT_Abs, NI_VectorT_Abs, NI_VectorT_Abs, NI_VectorT_Abs, NI_VectorT_Abs, NI_VectorT_Abs, NI_VectorT_Abs}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Add, 2, {NI_VectorT_Add, NI_VectorT_Add, NI_VectorT_Add, NI_VectorT_Add, NI_VectorT_Add, NI_VectorT_Add, NI_VectorT_Add, NI_VectorT_Add, NI_VectorT_Add, NI_VectorT_Add}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AndNot, 2, {NI_VectorT_AndNot, NI_VectorT_AndNot, NI_VectorT_AndNot, NI_VectorT_AndNot, NI_VectorT_AndNot, NI_VectorT_AndNot, NI_VectorT_AndNot, NI_VectorT_AndNot, NI_VectorT_AndNot, NI_VectorT_AndNot}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) +SIMD_AS_HWINTRINSIC_ID(VectorT, As, 1, {NI_VectorT_As, NI_VectorT_As, NI_VectorT_As, NI_VectorT_As, NI_VectorT_As, NI_VectorT_As, NI_VectorT_As, NI_VectorT_As, NI_VectorT_As, NI_VectorT_As}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AsVectorByte, 1, {NI_VectorT_AsVectorByte, NI_VectorT_AsVectorByte, NI_VectorT_AsVectorByte, NI_VectorT_AsVectorByte, NI_VectorT_AsVectorByte, NI_VectorT_AsVectorByte, NI_VectorT_AsVectorByte, NI_VectorT_AsVectorByte, NI_VectorT_AsVectorByte, NI_VectorT_AsVectorByte}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AsVectorDouble, 1, {NI_VectorT_AsVectorDouble, NI_VectorT_AsVectorDouble, NI_VectorT_AsVectorDouble, NI_VectorT_AsVectorDouble, NI_VectorT_AsVectorDouble, NI_VectorT_AsVectorDouble, NI_VectorT_AsVectorDouble, NI_VectorT_AsVectorDouble, NI_VectorT_AsVectorDouble, NI_VectorT_AsVectorDouble}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AsVectorInt16, 1, {NI_VectorT_AsVectorInt16, NI_VectorT_AsVectorInt16, NI_VectorT_AsVectorInt16, NI_VectorT_AsVectorInt16, NI_VectorT_AsVectorInt16, NI_VectorT_AsVectorInt16, NI_VectorT_AsVectorInt16, NI_VectorT_AsVectorInt16, NI_VectorT_AsVectorInt16, NI_VectorT_AsVectorInt16}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AsVectorInt32, 1, {NI_VectorT_AsVectorInt32, NI_VectorT_AsVectorInt32, NI_VectorT_AsVectorInt32, NI_VectorT_AsVectorInt32, NI_VectorT_AsVectorInt32, NI_VectorT_AsVectorInt32, NI_VectorT_AsVectorInt32, NI_VectorT_AsVectorInt32, NI_VectorT_AsVectorInt32, NI_VectorT_AsVectorInt32}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AsVectorInt64, 1, {NI_VectorT_AsVectorInt64, NI_VectorT_AsVectorInt64, NI_VectorT_AsVectorInt64, NI_VectorT_AsVectorInt64, NI_VectorT_AsVectorInt64, NI_VectorT_AsVectorInt64, NI_VectorT_AsVectorInt64, NI_VectorT_AsVectorInt64, NI_VectorT_AsVectorInt64, NI_VectorT_AsVectorInt64}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AsVectorNInt, 1, {NI_VectorT_AsVectorNInt, NI_VectorT_AsVectorNInt, NI_VectorT_AsVectorNInt, NI_VectorT_AsVectorNInt, NI_VectorT_AsVectorNInt, NI_VectorT_AsVectorNInt, NI_VectorT_AsVectorNInt, NI_VectorT_AsVectorNInt, NI_VectorT_AsVectorNInt, NI_VectorT_AsVectorNInt}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AsVectorNUInt, 1, {NI_VectorT_AsVectorNUInt, NI_VectorT_AsVectorNUInt, NI_VectorT_AsVectorNUInt, NI_VectorT_AsVectorNUInt, NI_VectorT_AsVectorNUInt, NI_VectorT_AsVectorNUInt, NI_VectorT_AsVectorNUInt, NI_VectorT_AsVectorNUInt, NI_VectorT_AsVectorNUInt, NI_VectorT_AsVectorNUInt}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AsVectorSByte, 1, {NI_VectorT_AsVectorSByte, NI_VectorT_AsVectorSByte, NI_VectorT_AsVectorSByte, NI_VectorT_AsVectorSByte, NI_VectorT_AsVectorSByte, NI_VectorT_AsVectorSByte, NI_VectorT_AsVectorSByte, NI_VectorT_AsVectorSByte, NI_VectorT_AsVectorSByte, NI_VectorT_AsVectorSByte}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AsVectorSingle, 1, {NI_VectorT_AsVectorSingle, NI_VectorT_AsVectorSingle, NI_VectorT_AsVectorSingle, NI_VectorT_AsVectorSingle, NI_VectorT_AsVectorSingle, NI_VectorT_AsVectorSingle, NI_VectorT_AsVectorSingle, NI_VectorT_AsVectorSingle, NI_VectorT_AsVectorSingle, NI_VectorT_AsVectorSingle}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AsVectorUInt16, 1, {NI_VectorT_AsVectorUInt16, NI_VectorT_AsVectorUInt16, NI_VectorT_AsVectorUInt16, NI_VectorT_AsVectorUInt16, NI_VectorT_AsVectorUInt16, NI_VectorT_AsVectorUInt16, NI_VectorT_AsVectorUInt16, NI_VectorT_AsVectorUInt16, NI_VectorT_AsVectorUInt16, NI_VectorT_AsVectorUInt16}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AsVectorUInt32, 1, {NI_VectorT_AsVectorUInt32, NI_VectorT_AsVectorUInt32, NI_VectorT_AsVectorUInt32, NI_VectorT_AsVectorUInt32, NI_VectorT_AsVectorUInt32, NI_VectorT_AsVectorUInt32, NI_VectorT_AsVectorUInt32, NI_VectorT_AsVectorUInt32, NI_VectorT_AsVectorUInt32, NI_VectorT_AsVectorUInt32}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, AsVectorUInt64, 1, {NI_VectorT_AsVectorUInt64, NI_VectorT_AsVectorUInt64, NI_VectorT_AsVectorUInt64, NI_VectorT_AsVectorUInt64, NI_VectorT_AsVectorUInt64, NI_VectorT_AsVectorUInt64, NI_VectorT_AsVectorUInt64, NI_VectorT_AsVectorUInt64, NI_VectorT_AsVectorUInt64, NI_VectorT_AsVectorUInt64}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, BitwiseAnd, 2, {NI_VectorT_BitwiseAnd, NI_VectorT_BitwiseAnd, NI_VectorT_BitwiseAnd, NI_VectorT_BitwiseAnd, NI_VectorT_BitwiseAnd, NI_VectorT_BitwiseAnd, NI_VectorT_BitwiseAnd, NI_VectorT_BitwiseAnd, NI_VectorT_BitwiseAnd, NI_VectorT_BitwiseAnd}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, BitwiseOr, 2, {NI_VectorT_BitwiseOr, NI_VectorT_BitwiseOr, NI_VectorT_BitwiseOr, NI_VectorT_BitwiseOr, NI_VectorT_BitwiseOr, NI_VectorT_BitwiseOr, NI_VectorT_BitwiseOr, NI_VectorT_BitwiseOr, NI_VectorT_BitwiseOr, NI_VectorT_BitwiseOr}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Ceiling, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT_Ceiling, NI_VectorT_Ceiling}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, ConditionalSelect, 3, {NI_VectorT_ConditionalSelect, NI_VectorT_ConditionalSelect, NI_VectorT_ConditionalSelect, NI_VectorT_ConditionalSelect, NI_VectorT_ConditionalSelect, NI_VectorT_ConditionalSelect, NI_VectorT_ConditionalSelect, NI_VectorT_ConditionalSelect, NI_VectorT_ConditionalSelect, NI_VectorT_ConditionalSelect}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, ConvertToDouble, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT_ConvertToDouble, NI_VectorT_ConvertToDouble, NI_Illegal, NI_Illegal}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, ConvertToInt32, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT_ConvertToInt32, NI_Illegal}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, ConvertToInt64, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT_ConvertToInt64}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, ConvertToSingle, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT_ConvertToSingle, NI_VectorT_ConvertToSingle, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, ConvertToUInt32, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT_ConvertToUInt32, NI_Illegal}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, ConvertToUInt64, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT_ConvertToUInt64}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_NM(VectorT, CreateBroadcast, ".ctor", 2, {NI_VectorT_CreateBroadcast, NI_VectorT_CreateBroadcast, NI_VectorT_CreateBroadcast, NI_VectorT_CreateBroadcast, NI_VectorT_CreateBroadcast, NI_VectorT_CreateBroadcast, NI_VectorT_CreateBroadcast, NI_VectorT_CreateBroadcast, NI_VectorT_CreateBroadcast, NI_VectorT_CreateBroadcast}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) +SIMD_AS_HWINTRINSIC_ID(VectorT, Divide, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT_Divide, NI_VectorT_Divide}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Dot, 2, {NI_Illegal, NI_Illegal, NI_VectorT_Dot, NI_VectorT_Dot, NI_VectorT_Dot, NI_VectorT_Dot, NI_Illegal, NI_Illegal, NI_VectorT_Dot, NI_VectorT_Dot}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Equals, 2, {NI_VectorT_Equals, NI_VectorT_Equals, NI_VectorT_Equals, NI_VectorT_Equals, NI_VectorT_Equals, NI_VectorT_Equals, NI_VectorT_Equals, NI_VectorT_Equals, NI_VectorT_Equals, NI_VectorT_Equals}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, EqualsAll, 2, {NI_VectorT_EqualsAll, NI_VectorT_EqualsAll, NI_VectorT_EqualsAll, NI_VectorT_EqualsAll, NI_VectorT_EqualsAll, NI_VectorT_EqualsAll, NI_VectorT_EqualsAll, NI_VectorT_EqualsAll, NI_VectorT_EqualsAll, NI_VectorT_EqualsAll}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, EqualsAny, 2, {NI_VectorT_EqualsAny, NI_VectorT_EqualsAny, NI_VectorT_EqualsAny, NI_VectorT_EqualsAny, NI_VectorT_EqualsAny, NI_VectorT_EqualsAny, NI_VectorT_EqualsAny, NI_VectorT_EqualsAny, NI_VectorT_EqualsAny, NI_VectorT_EqualsAny}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Floor, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT_Floor, NI_VectorT_Floor}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, get_AllBitsSet, 0, {NI_VectorT_get_AllBitsSet, NI_VectorT_get_AllBitsSet, NI_VectorT_get_AllBitsSet, NI_VectorT_get_AllBitsSet, NI_VectorT_get_AllBitsSet, NI_VectorT_get_AllBitsSet, NI_VectorT_get_AllBitsSet, NI_VectorT_get_AllBitsSet, NI_VectorT_get_AllBitsSet, NI_VectorT_get_AllBitsSet}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, get_Item, 2, {NI_VectorT_get_Item, NI_VectorT_get_Item, NI_VectorT_get_Item, NI_VectorT_get_Item, NI_VectorT_get_Item, NI_VectorT_get_Item, NI_VectorT_get_Item, NI_VectorT_get_Item, NI_VectorT_get_Item, NI_VectorT_get_Item}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::BaseTypeFromThisArg) +SIMD_AS_HWINTRINSIC_ID(VectorT, get_One, 0, {NI_VectorT_get_One, NI_VectorT_get_One, NI_VectorT_get_One, NI_VectorT_get_One, NI_VectorT_get_One, NI_VectorT_get_One, NI_VectorT_get_One, NI_VectorT_get_One, NI_VectorT_get_One, NI_VectorT_get_One}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, get_Zero, 0, {NI_VectorT_get_Zero, NI_VectorT_get_Zero, NI_VectorT_get_Zero, NI_VectorT_get_Zero, NI_VectorT_get_Zero, NI_VectorT_get_Zero, NI_VectorT_get_Zero, NI_VectorT_get_Zero, NI_VectorT_get_Zero, NI_VectorT_get_Zero}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, GetElement, 2, {NI_VectorT_GetElement, NI_VectorT_GetElement, NI_VectorT_GetElement, NI_VectorT_GetElement, NI_VectorT_GetElement, NI_VectorT_GetElement, NI_VectorT_GetElement, NI_VectorT_GetElement, NI_VectorT_GetElement, NI_VectorT_GetElement}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, GreaterThan, 2, {NI_VectorT_GreaterThan, NI_VectorT_GreaterThan, NI_VectorT_GreaterThan, NI_VectorT_GreaterThan, NI_VectorT_GreaterThan, NI_VectorT_GreaterThan, NI_VectorT_GreaterThan, NI_VectorT_GreaterThan, NI_VectorT_GreaterThan, NI_VectorT_GreaterThan}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, GreaterThanAll, 2, {NI_VectorT_GreaterThanAll, NI_VectorT_GreaterThanAll, NI_VectorT_GreaterThanAll, NI_VectorT_GreaterThanAll, NI_VectorT_GreaterThanAll, NI_VectorT_GreaterThanAll, NI_VectorT_GreaterThanAll, NI_VectorT_GreaterThanAll, NI_VectorT_GreaterThanAll, NI_VectorT_GreaterThanAll}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, GreaterThanAny, 2, {NI_VectorT_GreaterThanAny, NI_VectorT_GreaterThanAny, NI_VectorT_GreaterThanAny, NI_VectorT_GreaterThanAny, NI_VectorT_GreaterThanAny, NI_VectorT_GreaterThanAny, NI_VectorT_GreaterThanAny, NI_VectorT_GreaterThanAny, NI_VectorT_GreaterThanAny, NI_VectorT_GreaterThanAny}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, GreaterThanOrEqual, 2, {NI_VectorT_GreaterThanOrEqual, NI_VectorT_GreaterThanOrEqual, NI_VectorT_GreaterThanOrEqual, NI_VectorT_GreaterThanOrEqual, NI_VectorT_GreaterThanOrEqual, NI_VectorT_GreaterThanOrEqual, NI_VectorT_GreaterThanOrEqual, NI_VectorT_GreaterThanOrEqual, NI_VectorT_GreaterThanOrEqual, NI_VectorT_GreaterThanOrEqual}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, GreaterThanOrEqualAll, 2, {NI_VectorT_GreaterThanOrEqualAll, NI_VectorT_GreaterThanOrEqualAll, NI_VectorT_GreaterThanOrEqualAll, NI_VectorT_GreaterThanOrEqualAll, NI_VectorT_GreaterThanOrEqualAll, NI_VectorT_GreaterThanOrEqualAll, NI_VectorT_GreaterThanOrEqualAll, NI_VectorT_GreaterThanOrEqualAll, NI_VectorT_GreaterThanOrEqualAll, NI_VectorT_GreaterThanOrEqualAll}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, GreaterThanOrEqualAny, 2, {NI_VectorT_GreaterThanOrEqualAny, NI_VectorT_GreaterThanOrEqualAny, NI_VectorT_GreaterThanOrEqualAny, NI_VectorT_GreaterThanOrEqualAny, NI_VectorT_GreaterThanOrEqualAny, NI_VectorT_GreaterThanOrEqualAny, NI_VectorT_GreaterThanOrEqualAny, NI_VectorT_GreaterThanOrEqualAny, NI_VectorT_GreaterThanOrEqualAny, NI_VectorT_GreaterThanOrEqualAny}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, LessThan, 2, {NI_VectorT_LessThan, NI_VectorT_LessThan, NI_VectorT_LessThan, NI_VectorT_LessThan, NI_VectorT_LessThan, NI_VectorT_LessThan, NI_VectorT_LessThan, NI_VectorT_LessThan, NI_VectorT_LessThan, NI_VectorT_LessThan}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, LessThanAll, 2, {NI_VectorT_LessThanAll, NI_VectorT_LessThanAll, NI_VectorT_LessThanAll, NI_VectorT_LessThanAll, NI_VectorT_LessThanAll, NI_VectorT_LessThanAll, NI_VectorT_LessThanAll, NI_VectorT_LessThanAll, NI_VectorT_LessThanAll, NI_VectorT_LessThanAll}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, LessThanAny, 2, {NI_VectorT_LessThanAny, NI_VectorT_LessThanAny, NI_VectorT_LessThanAny, NI_VectorT_LessThanAny, NI_VectorT_LessThanAny, NI_VectorT_LessThanAny, NI_VectorT_LessThanAny, NI_VectorT_LessThanAny, NI_VectorT_LessThanAny, NI_VectorT_LessThanAny}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, LessThanOrEqual, 2, {NI_VectorT_LessThanOrEqual, NI_VectorT_LessThanOrEqual, NI_VectorT_LessThanOrEqual, NI_VectorT_LessThanOrEqual, NI_VectorT_LessThanOrEqual, NI_VectorT_LessThanOrEqual, NI_VectorT_LessThanOrEqual, NI_VectorT_LessThanOrEqual, NI_VectorT_LessThanOrEqual, NI_VectorT_LessThanOrEqual}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, LessThanOrEqualAll, 2, {NI_VectorT_LessThanOrEqualAll, NI_VectorT_LessThanOrEqualAll, NI_VectorT_LessThanOrEqualAll, NI_VectorT_LessThanOrEqualAll, NI_VectorT_LessThanOrEqualAll, NI_VectorT_LessThanOrEqualAll, NI_VectorT_LessThanOrEqualAll, NI_VectorT_LessThanOrEqualAll, NI_VectorT_LessThanOrEqualAll, NI_VectorT_LessThanOrEqualAll}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, LessThanOrEqualAny, 2, {NI_VectorT_LessThanOrEqualAny, NI_VectorT_LessThanOrEqualAny, NI_VectorT_LessThanOrEqualAny, NI_VectorT_LessThanOrEqualAny, NI_VectorT_LessThanOrEqualAny, NI_VectorT_LessThanOrEqualAny, NI_VectorT_LessThanOrEqualAny, NI_VectorT_LessThanOrEqualAny, NI_VectorT_LessThanOrEqualAny, NI_VectorT_LessThanOrEqualAny}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Load, 1, {NI_VectorT_Load, NI_VectorT_Load, NI_VectorT_Load, NI_VectorT_Load, NI_VectorT_Load, NI_VectorT_Load, NI_VectorT_Load, NI_VectorT_Load, NI_VectorT_Load, NI_VectorT_Load}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) +SIMD_AS_HWINTRINSIC_ID(VectorT, LoadAligned, 1, {NI_VectorT_LoadAligned, NI_VectorT_LoadAligned, NI_VectorT_LoadAligned, NI_VectorT_LoadAligned, NI_VectorT_LoadAligned, NI_VectorT_LoadAligned, NI_VectorT_LoadAligned, NI_VectorT_LoadAligned, NI_VectorT_LoadAligned, NI_VectorT_LoadAligned}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) +SIMD_AS_HWINTRINSIC_ID(VectorT, LoadAlignedNonTemporal, 1, {NI_VectorT_LoadAlignedNonTemporal, NI_VectorT_LoadAlignedNonTemporal, NI_VectorT_LoadAlignedNonTemporal, NI_VectorT_LoadAlignedNonTemporal, NI_VectorT_LoadAlignedNonTemporal, NI_VectorT_LoadAlignedNonTemporal, NI_VectorT_LoadAlignedNonTemporal, NI_VectorT_LoadAlignedNonTemporal, NI_VectorT_LoadAlignedNonTemporal, NI_VectorT_LoadAlignedNonTemporal}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) +SIMD_AS_HWINTRINSIC_ID(VectorT, LoadUnsafe, 1, {NI_VectorT_LoadUnsafe, NI_VectorT_LoadUnsafe, NI_VectorT_LoadUnsafe, NI_VectorT_LoadUnsafe, NI_VectorT_LoadUnsafe, NI_VectorT_LoadUnsafe, NI_VectorT_LoadUnsafe, NI_VectorT_LoadUnsafe, NI_VectorT_LoadUnsafe, NI_VectorT_LoadUnsafe}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) +SIMD_AS_HWINTRINSIC_NM(VectorT, LoadUnsafeIndex, "LoadUnsafe", 2, {NI_VectorT_LoadUnsafeIndex, NI_VectorT_LoadUnsafeIndex, NI_VectorT_LoadUnsafeIndex, NI_VectorT_LoadUnsafeIndex, NI_VectorT_LoadUnsafeIndex, NI_VectorT_LoadUnsafeIndex, NI_VectorT_LoadUnsafeIndex, NI_VectorT_LoadUnsafeIndex, NI_VectorT_LoadUnsafeIndex, NI_VectorT_LoadUnsafeIndex}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) +SIMD_AS_HWINTRINSIC_ID(VectorT, Max, 2, {NI_VectorT_Max, NI_VectorT_Max, NI_VectorT_Max, NI_VectorT_Max, NI_VectorT_Max, NI_VectorT_Max, NI_VectorT_Max, NI_VectorT_Max, NI_VectorT_Max, NI_VectorT_Max}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Min, 2, {NI_VectorT_Min, NI_VectorT_Min, NI_VectorT_Min, NI_VectorT_Min, NI_VectorT_Min, NI_VectorT_Min, NI_VectorT_Min, NI_VectorT_Min, NI_VectorT_Min, NI_VectorT_Min}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Multiply, 2, {NI_Illegal, NI_Illegal, NI_VectorT_Multiply, NI_VectorT_Multiply, NI_VectorT_Multiply, NI_VectorT_Multiply, NI_VectorT_Multiply, NI_VectorT_Multiply, NI_VectorT_Multiply, NI_VectorT_Multiply}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Narrow, 2, {NI_VectorT_Narrow, NI_VectorT_Narrow, NI_VectorT_Narrow, NI_VectorT_Narrow, NI_VectorT_Narrow, NI_VectorT_Narrow, NI_VectorT_Narrow, NI_VectorT_Narrow, NI_VectorT_Narrow, NI_VectorT_Narrow}, SimdAsHWIntrinsicFlag::KeepBaseTypeFromRet) +SIMD_AS_HWINTRINSIC_ID(VectorT, Negate, 1, {NI_VectorT_Negate, NI_VectorT_Negate, NI_VectorT_Negate, NI_VectorT_Negate, NI_VectorT_Negate, NI_VectorT_Negate, NI_VectorT_Negate, NI_VectorT_Negate, NI_VectorT_Negate, NI_VectorT_Negate}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, OnesComplement, 1, {NI_VectorT_OnesComplement, NI_VectorT_OnesComplement, NI_VectorT_OnesComplement, NI_VectorT_OnesComplement, NI_VectorT_OnesComplement, NI_VectorT_OnesComplement, NI_VectorT_OnesComplement, NI_VectorT_OnesComplement, NI_VectorT_OnesComplement, NI_VectorT_OnesComplement}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_Addition, 2, {NI_VectorT_op_Addition, NI_VectorT_op_Addition, NI_VectorT_op_Addition, NI_VectorT_op_Addition, NI_VectorT_op_Addition, NI_VectorT_op_Addition, NI_VectorT_op_Addition, NI_VectorT_op_Addition, NI_VectorT_op_Addition, NI_VectorT_op_Addition}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_BitwiseAnd, 2, {NI_VectorT_op_BitwiseAnd, NI_VectorT_op_BitwiseAnd, NI_VectorT_op_BitwiseAnd, NI_VectorT_op_BitwiseAnd, NI_VectorT_op_BitwiseAnd, NI_VectorT_op_BitwiseAnd, NI_VectorT_op_BitwiseAnd, NI_VectorT_op_BitwiseAnd, NI_VectorT_op_BitwiseAnd, NI_VectorT_op_BitwiseAnd}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_BitwiseOr, 2, {NI_VectorT_op_BitwiseOr, NI_VectorT_op_BitwiseOr, NI_VectorT_op_BitwiseOr, NI_VectorT_op_BitwiseOr, NI_VectorT_op_BitwiseOr, NI_VectorT_op_BitwiseOr, NI_VectorT_op_BitwiseOr, NI_VectorT_op_BitwiseOr, NI_VectorT_op_BitwiseOr, NI_VectorT_op_BitwiseOr}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_Division, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT_op_Division, NI_VectorT_op_Division}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_Equality, 2, {NI_VectorT_op_Equality, NI_VectorT_op_Equality, NI_VectorT_op_Equality, NI_VectorT_op_Equality, NI_VectorT_op_Equality, NI_VectorT_op_Equality, NI_VectorT_op_Equality, NI_VectorT_op_Equality, NI_VectorT_op_Equality, NI_VectorT_op_Equality}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_ExclusiveOr, 2, {NI_VectorT_op_ExclusiveOr, NI_VectorT_op_ExclusiveOr, NI_VectorT_op_ExclusiveOr, NI_VectorT_op_ExclusiveOr, NI_VectorT_op_ExclusiveOr, NI_VectorT_op_ExclusiveOr, NI_VectorT_op_ExclusiveOr, NI_VectorT_op_ExclusiveOr, NI_VectorT_op_ExclusiveOr, NI_VectorT_op_ExclusiveOr}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_Explicit, 1, {NI_VectorT_op_Explicit, NI_VectorT_op_Explicit, NI_VectorT_op_Explicit, NI_VectorT_op_Explicit, NI_VectorT_op_Explicit, NI_VectorT_op_Explicit, NI_VectorT_op_Explicit, NI_VectorT_op_Explicit, NI_VectorT_op_Explicit, NI_VectorT_op_Explicit}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_Inequality, 2, {NI_VectorT_op_Inequality, NI_VectorT_op_Inequality, NI_VectorT_op_Inequality, NI_VectorT_op_Inequality, NI_VectorT_op_Inequality, NI_VectorT_op_Inequality, NI_VectorT_op_Inequality, NI_VectorT_op_Inequality, NI_VectorT_op_Inequality, NI_VectorT_op_Inequality}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_LeftShift, 2, {NI_Illegal, NI_Illegal, NI_VectorT_op_LeftShift, NI_VectorT_op_LeftShift, NI_VectorT_op_LeftShift, NI_VectorT_op_LeftShift, NI_VectorT_op_LeftShift, NI_VectorT_op_LeftShift, NI_VectorT_op_LeftShift, NI_VectorT_op_LeftShift}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_Multiply, 2, {NI_Illegal, NI_Illegal, NI_VectorT_op_Multiply, NI_VectorT_op_Multiply, NI_VectorT_op_Multiply, NI_VectorT_op_Multiply, NI_Illegal, NI_Illegal, NI_VectorT_op_Multiply, NI_VectorT_op_Multiply}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_OnesComplement, 2, {NI_VectorT_op_OnesComplement, NI_VectorT_op_OnesComplement, NI_VectorT_op_OnesComplement, NI_VectorT_op_OnesComplement, NI_VectorT_op_OnesComplement, NI_VectorT_op_OnesComplement, NI_VectorT_op_OnesComplement, NI_VectorT_op_OnesComplement, NI_VectorT_op_OnesComplement, NI_VectorT_op_OnesComplement}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_RightShift, 2, {NI_Illegal, NI_Illegal, NI_VectorT_op_RightShift, NI_VectorT_op_RightShift, NI_VectorT_op_RightShift, NI_VectorT_op_RightShift, NI_VectorT_op_RightShift, NI_VectorT_op_RightShift, NI_VectorT_op_RightShift, NI_VectorT_op_RightShift}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_Subtraction, 2, {NI_VectorT_op_Subtraction, NI_VectorT_op_Subtraction, NI_VectorT_op_Subtraction, NI_VectorT_op_Subtraction, NI_VectorT_op_Subtraction, NI_VectorT_op_Subtraction, NI_VectorT_op_Subtraction, NI_VectorT_op_Subtraction, NI_VectorT_op_Subtraction, NI_VectorT_op_Subtraction}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_UnaryNegation, 1, {NI_VectorT_op_UnaryNegation, NI_VectorT_op_UnaryNegation, NI_VectorT_op_UnaryNegation, NI_VectorT_op_UnaryNegation, NI_VectorT_op_UnaryNegation, NI_VectorT_op_UnaryNegation, NI_VectorT_op_UnaryNegation, NI_VectorT_op_UnaryNegation, NI_VectorT_op_UnaryNegation, NI_VectorT_op_UnaryNegation}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_UnaryPlus, 1, {NI_VectorT_op_UnaryPlus, NI_VectorT_op_UnaryPlus, NI_VectorT_op_UnaryPlus, NI_VectorT_op_UnaryPlus, NI_VectorT_op_UnaryPlus, NI_VectorT_op_UnaryPlus, NI_VectorT_op_UnaryPlus, NI_VectorT_op_UnaryPlus, NI_VectorT_op_UnaryPlus, NI_VectorT_op_UnaryPlus}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, op_UnsignedRightShift, 2, {NI_Illegal, NI_Illegal, NI_VectorT_op_UnsignedRightShift, NI_VectorT_op_UnsignedRightShift, NI_VectorT_op_UnsignedRightShift, NI_VectorT_op_UnsignedRightShift, NI_VectorT_op_UnsignedRightShift, NI_VectorT_op_UnsignedRightShift, NI_VectorT_op_UnsignedRightShift, NI_VectorT_op_UnsignedRightShift}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, ShiftLeft, 2, {NI_Illegal, NI_Illegal, NI_VectorT_ShiftLeft, NI_VectorT_ShiftLeft, NI_VectorT_ShiftLeft, NI_VectorT_ShiftLeft, NI_VectorT_ShiftLeft, NI_VectorT_ShiftLeft, NI_Illegal, NI_Illegal}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, ShiftRightArithmetic, 2, {NI_Illegal, NI_Illegal, NI_VectorT_ShiftRightArithmetic, NI_Illegal, NI_VectorT_ShiftRightArithmetic, NI_Illegal, NI_VectorT_ShiftRightArithmetic, NI_Illegal, NI_Illegal, NI_Illegal}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, ShiftRightLogical, 2, {NI_Illegal, NI_Illegal, NI_VectorT_ShiftRightLogical, NI_VectorT_ShiftRightLogical, NI_VectorT_ShiftRightLogical, NI_VectorT_ShiftRightLogical, NI_VectorT_ShiftRightLogical, NI_VectorT_ShiftRightLogical, NI_Illegal, NI_Illegal}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_NM(VectorT, Sqrt, "SquareRoot", 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_VectorT_Sqrt, NI_VectorT_Sqrt}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Store, 2, {NI_VectorT_Store, NI_VectorT_Store, NI_VectorT_Store, NI_VectorT_Store, NI_VectorT_Store, NI_VectorT_Store, NI_VectorT_Store, NI_VectorT_Store, NI_VectorT_Store, NI_VectorT_Store}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) +SIMD_AS_HWINTRINSIC_ID(VectorT, StoreAligned, 2, {NI_VectorT_StoreAligned, NI_VectorT_StoreAligned, NI_VectorT_StoreAligned, NI_VectorT_StoreAligned, NI_VectorT_StoreAligned, NI_VectorT_StoreAligned, NI_VectorT_StoreAligned, NI_VectorT_StoreAligned, NI_VectorT_StoreAligned, NI_VectorT_StoreAligned}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) +SIMD_AS_HWINTRINSIC_ID(VectorT, StoreAlignedNonTemporal, 2, {NI_VectorT_StoreAlignedNonTemporal, NI_VectorT_StoreAlignedNonTemporal, NI_VectorT_StoreAlignedNonTemporal, NI_VectorT_StoreAlignedNonTemporal, NI_VectorT_StoreAlignedNonTemporal, NI_VectorT_StoreAlignedNonTemporal, NI_VectorT_StoreAlignedNonTemporal, NI_VectorT_StoreAlignedNonTemporal, NI_VectorT_StoreAlignedNonTemporal, NI_VectorT_StoreAlignedNonTemporal}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) +SIMD_AS_HWINTRINSIC_ID(VectorT, StoreUnsafe, -1, {NI_VectorT_StoreUnsafe, NI_VectorT_StoreUnsafe, NI_VectorT_StoreUnsafe, NI_VectorT_StoreUnsafe, NI_VectorT_StoreUnsafe, NI_VectorT_StoreUnsafe, NI_VectorT_StoreUnsafe, NI_VectorT_StoreUnsafe, NI_VectorT_StoreUnsafe, NI_VectorT_StoreUnsafe}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) +SIMD_AS_HWINTRINSIC_NM(VectorT, StoreUnsafeIndex, "StoreUnsafe", 3, {NI_VectorT_StoreUnsafeIndex, NI_VectorT_StoreUnsafeIndex, NI_VectorT_StoreUnsafeIndex, NI_VectorT_StoreUnsafeIndex, NI_VectorT_StoreUnsafeIndex, NI_VectorT_StoreUnsafeIndex, NI_VectorT_StoreUnsafeIndex, NI_VectorT_StoreUnsafeIndex, NI_VectorT_StoreUnsafeIndex, NI_VectorT_StoreUnsafeIndex}, SimdAsHWIntrinsicFlag::SpillSideEffectsOp1) +SIMD_AS_HWINTRINSIC_ID(VectorT, Subtract, 2, {NI_VectorT_Subtract, NI_VectorT_Subtract, NI_VectorT_Subtract, NI_VectorT_Subtract, NI_VectorT_Subtract, NI_VectorT_Subtract, NI_VectorT_Subtract, NI_VectorT_Subtract, NI_VectorT_Subtract, NI_VectorT_Subtract}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Sum, 1, {NI_Illegal, NI_Illegal, NI_VectorT_Sum, NI_VectorT_Sum, NI_VectorT_Sum, NI_VectorT_Sum, NI_Illegal, NI_Illegal, NI_VectorT_Sum, NI_VectorT_Sum}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, ToScalar, 1, {NI_VectorT_ToScalar, NI_VectorT_ToScalar, NI_VectorT_ToScalar, NI_VectorT_ToScalar, NI_VectorT_ToScalar, NI_VectorT_ToScalar, NI_VectorT_ToScalar, NI_VectorT_ToScalar, NI_VectorT_ToScalar, NI_VectorT_ToScalar}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, WidenLower, 1, {NI_VectorT_WidenLower, NI_VectorT_WidenLower, NI_VectorT_WidenLower, NI_VectorT_WidenLower, NI_VectorT_WidenLower, NI_VectorT_WidenLower, NI_VectorT_WidenLower, NI_VectorT_WidenLower, NI_VectorT_WidenLower, NI_VectorT_WidenLower}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, WidenUpper, 1, {NI_VectorT_WidenUpper, NI_VectorT_WidenUpper, NI_VectorT_WidenUpper, NI_VectorT_WidenUpper, NI_VectorT_WidenUpper, NI_VectorT_WidenUpper, NI_VectorT_WidenUpper, NI_VectorT_WidenUpper, NI_VectorT_WidenUpper, NI_VectorT_WidenUpper}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, WithElement, 3, {NI_VectorT_WithElement, NI_VectorT_WithElement, NI_VectorT_WithElement, NI_VectorT_WithElement, NI_VectorT_WithElement, NI_VectorT_WithElement, NI_VectorT_WithElement, NI_VectorT_WithElement, NI_VectorT_WithElement, NI_VectorT_WithElement}, SimdAsHWIntrinsicFlag::None) +SIMD_AS_HWINTRINSIC_ID(VectorT, Xor, 2, {NI_VectorT_Xor, NI_VectorT_Xor, NI_VectorT_Xor, NI_VectorT_Xor, NI_VectorT_Xor, NI_VectorT_Xor, NI_VectorT_Xor, NI_VectorT_Xor, NI_VectorT_Xor, NI_VectorT_Xor}, SimdAsHWIntrinsicFlag::None) #undef SIMD_AS_HWINTRINSIC_NM #undef SIMD_AS_HWINTRINSIC_ID diff --git a/src/coreclr/vm/codeman.cpp b/src/coreclr/vm/codeman.cpp index 6f984b6483396..52917161fb002 100644 --- a/src/coreclr/vm/codeman.cpp +++ b/src/coreclr/vm/codeman.cpp @@ -1291,6 +1291,12 @@ void EEJitManager::SetCpuInfo() CPUCompileFlags.Set(InstructionSet_VectorT256); } + if (((cpuFeatures & XArchIntrinsicConstants_VectorT512) != 0) && (maxVectorTBitWidth >= 512)) + { + // We require 512-bit Vector to be opt-in + CPUCompileFlags.Set(InstructionSet_VectorT512); + } + // TODO-XArch: Add support for 512-bit Vector _ASSERTE(!CPUCompileFlags.IsSet(InstructionSet_VectorT512)); @@ -1543,8 +1549,6 @@ void EEJitManager::SetCpuInfo() // Clean up mutually exclusive ISAs if (CPUCompileFlags.IsSet(InstructionSet_VectorT512)) { - // We don't currently support InstructionSet_VectorT512, but just to - // make it future proof. CPUCompileFlags.Clear(InstructionSet_VectorT256); CPUCompileFlags.Clear(InstructionSet_VectorT128); } diff --git a/src/coreclr/vm/methodtablebuilder.cpp b/src/coreclr/vm/methodtablebuilder.cpp index 6dbccf31995b8..b23cce491ecd8 100644 --- a/src/coreclr/vm/methodtablebuilder.cpp +++ b/src/coreclr/vm/methodtablebuilder.cpp @@ -1153,8 +1153,7 @@ BOOL MethodTableBuilder::CheckIfSIMDAndUpdateSize() if (CPUCompileFlags.IsSet(InstructionSet_VectorT512)) { - // TODO-XARCH: The JIT needs to be updated to support 64-byte Vector - numInstanceFieldBytes = 32; + numInstanceFieldBytes = 64; } else if (CPUCompileFlags.IsSet(InstructionSet_VectorT256)) { diff --git a/src/tests/Common/testenvironment.proj b/src/tests/Common/testenvironment.proj index 8a923b781a710..d1bc1d1a94c42 100644 --- a/src/tests/Common/testenvironment.proj +++ b/src/tests/Common/testenvironment.proj @@ -39,6 +39,7 @@ DOTNET_EnableSSSE3; DOTNET_JitStressEvexEncoding; DOTNET_PreferredVectorBitWidth; + DOTNET_MaxVectorTBitWidth; DOTNET_ForceRelocs; DOTNET_GCStress; DOTNET_GCName; @@ -130,6 +131,8 @@ + +