intrinsic = NI_Vector128_op_Equality;
}
- op1 = gtNewSimdCmpOpNode(op, simdType, op1, op2, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ false);
+ op1 = gtNewSimdCmpOpNode(op, simdType, op1, op2, simdBaseJitType, simdSize, isSimdAsHWIntrinsic);
op2 = gtNewAllBitsSetConNode(simdType);
if (simdBaseType == TYP_FLOAT)
intrinsic = NI_Vector128_op_Equality;
}
- op1 = gtNewSimdCmpOpNode(op, simdType, op1, op2, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ false);
+ op1 = gtNewSimdCmpOpNode(op, simdType, op1, op2, simdBaseJitType, simdSize, isSimdAsHWIntrinsic);
op2 = gtNewAllBitsSetConNode(simdType);
if (simdBaseType == TYP_FLOAT)
intrinsic = NI_Vector128_op_Inequality;
}
- op1 = gtNewSimdCmpOpNode(op, simdType, op1, op2, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ false);
+ op1 = gtNewSimdCmpOpNode(op, simdType, op1, op2, simdBaseJitType, simdSize, isSimdAsHWIntrinsic);
op2 = gtNewZeroConNode(simdType);
if (simdBaseType == TYP_FLOAT)
intrinsic = (simdSize == 8) ? NI_Vector64_op_Inequality : NI_Vector128_op_Inequality;
- op1 = gtNewSimdCmpOpNode(op, simdType, op1, op2, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ false);
+ op1 = gtNewSimdCmpOpNode(op, simdType, op1, op2, simdBaseJitType, simdSize, isSimdAsHWIntrinsic);
op2 = gtNewZeroConNode(simdType);
if (simdBaseType == TYP_FLOAT)
{
assert(sig->numArgs == 2);
+ impSpillSideEffect(true,
+ verCurrentState.esStackDepth - 2 DEBUGARG("Spilling op1 side effects for HWIntrinsic"));
+
op2 = impSIMDPopStack(retType);
op1 = impSIMDPopStack(retType);
{
case 0:
{
- assert(!SimdAsHWIntrinsicInfo::NeedsOperandsSwapped(intrinsic));
return gtNewSimdAsHWIntrinsicNode(retType, hwIntrinsic, simdBaseJitType, simdSize);
}
: JITtype2varType(strip(info.compCompHnd->getArgType(sig, argList, &argClass)));
op1 = getArgForHWIntrinsic(argType, argClass, isInstanceMethod);
- assert(!SimdAsHWIntrinsicInfo::NeedsOperandsSwapped(intrinsic));
return gtNewSimdAsHWIntrinsicNode(retType, op1, hwIntrinsic, simdBaseJitType, simdSize);
}
: JITtype2varType(strip(info.compCompHnd->getArgType(sig, argList, &argClass)));
op1 = getArgForHWIntrinsic(argType, argClass, isInstanceMethod);
- if (SimdAsHWIntrinsicInfo::NeedsOperandsSwapped(intrinsic))
- {
- std::swap(op1, op2);
- }
-
return gtNewSimdAsHWIntrinsicNode(retType, op1, op2, hwIntrinsic, simdBaseJitType, simdSize);
}
}
#if defined(TARGET_XARCH)
case NI_VectorT128_Dot:
{
- if (!compOpportunisticallyDependsOn(InstructionSet_SSE41))
+ if ((simdBaseType == TYP_INT) || (simdBaseType == TYP_UINT))
{
- // We need to exit early if this is Vector<T>.Dot for int or uint and SSE41 is not supported
- // The other types should be handled via the table driven paths
-
- assert((simdBaseType == TYP_INT) || (simdBaseType == TYP_UINT));
- return nullptr;
+ if (!compExactlyDependsOn(InstructionSet_SSE41))
+ {
+ // TODO-XARCH-CQ: We can support 32-bit integers if we updating multiplication
+ // to be lowered rather than imported as the relevant operations.
+ return nullptr;
+ }
+ }
+ else
+ {
+ assert(varTypeIsShort(simdBaseType) || varTypeIsFloating(simdBaseType));
}
break;
}
}
#endif
+#if defined(TARGET_XARCH)
+ case NI_VectorT128_Floor:
+ case NI_VectorT128_Ceiling:
+ {
+ if (!compExactlyDependsOn(InstructionSet_SSE41))
+ {
+ return nullptr;
+ }
+ break;
+ }
+#endif // TARGET_XARCH
+
default:
{
// Most intrinsics have some path that works even if only SSE2/AdvSimd is available
switch (intrinsic)
{
-#if defined(TARGET_XARCH)
case NI_VectorT128_get_AllBitsSet:
+#if defined(TARGET_XARCH)
case NI_VectorT256_get_AllBitsSet:
+#endif // TARGET_XARCH
{
return gtNewAllBitsSetConNode(retType);
}
case NI_VectorT128_get_Count:
+#if defined(TARGET_XARCH)
case NI_VectorT256_get_Count:
+#endif // TARGET_XARCH
{
GenTreeIntCon* countNode = gtNewIconNode(getSIMDVectorLength(simdSize, simdBaseType), TYP_INT);
countNode->gtFlags |= GTF_ICON_SIMD_COUNT;
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
{
return gtNewOneConNode(retType, simdBaseType);
}
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
{
return gtNewZeroConNode(retType);
}
-#elif defined(TARGET_ARM64)
- case NI_VectorT128_get_AllBitsSet:
- {
- return gtNewAllBitsSetConNode(retType);
- }
-
- case NI_VectorT128_get_Count:
- {
- GenTreeIntCon* countNode = gtNewIconNode(getSIMDVectorLength(simdSize, simdBaseType), TYP_INT);
- countNode->gtFlags |= GTF_ICON_SIMD_COUNT;
- return countNode;
- }
-
- case NI_Vector2_get_One:
- case NI_Vector3_get_One:
- case NI_Vector4_get_One:
- case NI_VectorT128_get_One:
- {
- return gtNewOneConNode(retType, simdBaseType);
- }
-
- case NI_Vector2_get_Zero:
- case NI_Vector3_get_Zero:
- case NI_Vector4_get_Zero:
- case NI_VectorT128_get_Zero:
- {
- return gtNewZeroConNode(retType);
- }
-#else
-#error Unsupported platform
-#endif // !TARGET_XARCH && !TARGET_ARM64
default:
{
: JITtype2varType(strip(info.compCompHnd->getArgType(sig, argList, &argClass)));
op1 = getArgForHWIntrinsic(argType, argClass, isInstanceMethod);
- assert(!SimdAsHWIntrinsicInfo::NeedsOperandsSwapped(intrinsic));
-
switch (intrinsic)
{
-#if defined(TARGET_XARCH)
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
{
return gtNewSimdAbsNode(retType, op1, simdBaseJitType, simdSize, /* isSimdAsHWIntrinsic */ true);
}
+ case NI_VectorT128_Ceiling:
+#if defined(TARGET_XARCH)
+ case NI_VectorT256_Ceiling:
+#endif // TARGET_XARCH
+ {
+ return gtNewSimdCeilNode(retType, op1, simdBaseJitType, simdSize, /* isSimdAsHWIntrinsic */ true);
+ }
+
+ case NI_VectorT128_Floor:
+#if defined(TARGET_XARCH)
+ case NI_VectorT256_Floor:
+#endif // TARGET_XARCH
+ {
+ return gtNewSimdFloorNode(retType, op1, simdBaseJitType, simdSize, /* isSimdAsHWIntrinsic */ true);
+ }
+
+ case NI_Vector2_op_UnaryNegation:
+ case NI_Vector3_op_UnaryNegation:
+ 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
+ {
+ return gtNewSimdUnOpNode(GT_NEG, retType, op1, simdBaseJitType, simdSize,
+ /* isSimdAsHWIntrinsic */ true);
+ }
+
+ 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
+ {
+ return gtNewSimdUnOpNode(GT_NOT, retType, op1, simdBaseJitType, simdSize,
+ /* isSimdAsHWIntrinsic */ true);
+ }
+
+ 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
+ {
+ return gtNewSimdSqrtNode(retType, op1, simdBaseJitType, simdSize, /* isSimdAsHWIntrinsic */ true);
+ }
+
+ case NI_VectorT128_Sum:
+#if defined(TARGET_XARCH)
+ case NI_VectorT256_Sum:
+#endif // TARGET_XARCH
+ {
+ return gtNewSimdSumNode(retType, op1, simdBaseJitType, simdSize, /* isSimdAsHWIntrinsic */ true);
+ }
+
+ case NI_VectorT128_ToScalar:
+ {
+ return gtNewSimdHWIntrinsicNode(retType, op1, NI_Vector128_ToScalar, simdBaseJitType, simdSize,
+ /* isSimdAsHWIntrinsic */ true);
+ }
+
+ case NI_VectorT128_op_UnaryPlus:
+#if defined(TARGET_XARCH)
+ case NI_VectorT256_op_UnaryPlus:
+#endif // TARGET_XARCH
+ {
+ return op1;
+ }
+
+ case NI_VectorT128_WidenLower:
+#if defined(TARGET_XARCH)
+ case NI_VectorT256_WidenLower:
+#endif // TARGET_XARCH
+ {
+ return gtNewSimdWidenLowerNode(retType, op1, simdBaseJitType, simdSize,
+ /* isSimdAsHWIntrinsic */ true);
+ }
+
+ case NI_VectorT128_WidenUpper:
+#if defined(TARGET_XARCH)
+ case NI_VectorT256_WidenUpper:
+#endif // TARGET_XARCH
+ {
+ return gtNewSimdWidenUpperNode(retType, op1, simdBaseJitType, simdSize,
+ /* isSimdAsHWIntrinsic */ true);
+ }
+
+#if defined(TARGET_XARCH)
case NI_VectorT128_ConvertToInt32:
case NI_VectorT256_ConvertToInt32:
{
/* isSimdAsHWIntrinsic */ true);
}
- case NI_VectorT128_Negate:
- case NI_VectorT256_Negate:
- case NI_VectorT128_op_UnaryNegation:
- case NI_VectorT256_op_UnaryNegation:
- {
- return gtNewSimdUnOpNode(GT_NEG, retType, op1, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_OnesComplement:
- case NI_VectorT256_OnesComplement:
- case NI_VectorT128_op_OnesComplement:
- case NI_VectorT256_op_OnesComplement:
- {
- return gtNewSimdUnOpNode(GT_NOT, retType, op1, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_op_UnaryPlus:
- case NI_VectorT256_op_UnaryPlus:
- {
- return op1;
- }
-
- case NI_VectorT128_Sum:
- case NI_VectorT256_Sum:
- {
- return gtNewSimdSumNode(retType, op1, simdBaseJitType, simdSize, /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_ToScalar:
- {
- return gtNewSimdHWIntrinsicNode(retType, op1, NI_Vector128_ToScalar, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
case NI_VectorT256_ToScalar:
{
return gtNewSimdHWIntrinsicNode(retType, op1, NI_Vector256_ToScalar, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
-
- case NI_VectorT128_WidenLower:
- case NI_VectorT256_WidenLower:
- {
- return gtNewSimdWidenLowerNode(retType, op1, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_WidenUpper:
- case NI_VectorT256_WidenUpper:
- {
- return gtNewSimdWidenUpperNode(retType, op1, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
#elif defined(TARGET_ARM64)
- case NI_VectorT128_Abs:
- {
- return gtNewSimdAbsNode(retType, op1, simdBaseJitType, simdSize, /* isSimdAsHWIntrinsic */ true);
- }
-
case NI_VectorT128_ConvertToDouble:
{
assert((simdBaseType == TYP_LONG) || (simdBaseType == TYP_ULONG));
return gtNewSimdHWIntrinsicNode(retType, op1, NI_AdvSimd_LoadVector128, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
-
- case NI_VectorT128_Negate:
- case NI_VectorT128_op_UnaryNegation:
- {
- return gtNewSimdUnOpNode(GT_NEG, retType, op1, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_OnesComplement:
- case NI_VectorT128_op_OnesComplement:
- {
- return gtNewSimdUnOpNode(GT_NOT, retType, op1, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_op_UnaryPlus:
- {
- return op1;
- }
-
- case NI_VectorT128_Sum:
- {
- return gtNewSimdSumNode(retType, op1, simdBaseJitType, simdSize, /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_ToScalar:
- {
- return gtNewSimdHWIntrinsicNode(retType, op1, NI_Vector128_ToScalar, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_WidenLower:
- {
- return gtNewSimdWidenLowerNode(retType, op1, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_WidenUpper:
- {
- return gtNewSimdWidenUpperNode(retType, op1, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
#else
#error Unsupported platform
#endif // !TARGET_XARCH && !TARGET_ARM64
newobjThis);
}
- assert(!SimdAsHWIntrinsicInfo::NeedsOperandsSwapped(intrinsic));
-
switch (intrinsic)
{
+ case NI_Vector2_op_Addition:
+ case NI_Vector3_op_Addition:
+ case NI_Vector4_op_Addition:
+ case NI_VectorT128_Add:
+ case NI_VectorT128_op_Addition:
#if defined(TARGET_XARCH)
- case NI_Vector2_CreateBroadcast:
- case NI_Vector3_CreateBroadcast:
- case NI_Vector4_CreateBroadcast:
- case NI_VectorT128_CreateBroadcast:
- case NI_VectorT256_CreateBroadcast:
+ case NI_VectorT256_Add:
+ case NI_VectorT256_op_Addition:
+#endif // TARGET_XARCH
{
- assert(retType == TYP_VOID);
-
- copyBlkDst = op1;
- copyBlkSrc = gtNewSimdCreateBroadcastNode(simdType, op2, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- break;
+ return gtNewSimdBinOpNode(GT_ADD, retType, op1, op2, simdBaseJitType, simdSize,
+ /* isSimdAsHWIntrinsic */ true);
}
- case NI_VectorT128_Divide:
- case NI_VectorT256_Divide:
- case NI_VectorT128_op_Division:
+ case NI_VectorT128_AndNot:
+#if defined(TARGET_XARCH)
+ case NI_VectorT256_AndNot:
+#endif // TARGET_XARCH
+ {
+ return gtNewSimdBinOpNode(GT_AND_NOT, retType, op1, op2, simdBaseJitType, simdSize,
+ /* isSimdAsHWIntrinsic */ true);
+ }
+
+ 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
+ {
+ return gtNewSimdBinOpNode(GT_AND, retType, op1, op2, simdBaseJitType, simdSize,
+ /* isSimdAsHWIntrinsic */ true);
+ }
+
+ 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
+ {
+ return gtNewSimdBinOpNode(GT_OR, retType, op1, op2, simdBaseJitType, simdSize,
+ /* isSimdAsHWIntrinsic */ true);
+ }
+
+ 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
+ {
+ assert(retType == TYP_VOID);
+
+ copyBlkDst = op1;
+ copyBlkSrc = gtNewSimdCreateBroadcastNode(simdType, op2, simdBaseJitType, simdSize,
+ /* isSimdAsHWIntrinsic */ true);
+ break;
+ }
+
+ case NI_Vector2_op_Division:
+ case NI_Vector3_op_Division:
+ 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
{
return gtNewSimdBinOpNode(GT_DIV, retType, op1, op2, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
+ 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
{
return gtNewSimdDotProdNode(retType, op1, op2, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
case NI_VectorT128_Equals:
+#if defined(TARGET_XARCH)
+ case NI_VectorT256_Equals:
+#endif // TARGET_XARCH
{
return gtNewSimdCmpOpNode(GT_EQ, retType, op1, op2, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
+ case NI_Vector2_op_Equality:
+ case NI_Vector3_op_Equality:
+ case NI_Vector4_op_Equality:
case NI_VectorT128_EqualsAll:
- case NI_VectorT256_EqualsAll:
case NI_VectorT128_op_Equality:
+#if defined(TARGET_XARCH)
+ case NI_VectorT256_EqualsAll:
case NI_VectorT256_op_Equality:
+#endif // TARGET_XARCH
{
return gtNewSimdCmpOpAllNode(GT_EQ, retType, op1, op2, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
case NI_VectorT128_EqualsAny:
+#if defined(TARGET_XARCH)
case NI_VectorT256_EqualsAny:
+#endif // TARGET_XARCH
{
return gtNewSimdCmpOpAnyNode(GT_EQ, retType, op1, op2, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
+ 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
+ {
+ return gtNewSimdBinOpNode(GT_XOR, retType, op1, op2, simdBaseJitType, simdSize,
+ /* isSimdAsHWIntrinsic */ true);
+ }
+
case NI_VectorT128_get_Item:
- case NI_VectorT256_get_Item:
case NI_VectorT128_GetElement:
+#if defined(TARGET_XARCH)
+ case NI_VectorT256_get_Item:
case NI_VectorT256_GetElement:
+#endif // TARGET_XARCH
{
return gtNewSimdGetElementNode(retType, op1, op2, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
case NI_VectorT128_GreaterThan:
+#if defined(TARGET_XARCH)
case NI_VectorT256_GreaterThan:
+#endif // TARGET_XARCH
{
return gtNewSimdCmpOpNode(GT_GT, retType, op1, op2, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
case NI_VectorT128_GreaterThanAll:
+#if defined(TARGET_XARCH)
case NI_VectorT256_GreaterThanAll:
+#endif // TARGET_XARCH
{
return gtNewSimdCmpOpAllNode(GT_GT, retType, op1, op2, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
case NI_VectorT128_GreaterThanAny:
+#if defined(TARGET_XARCH)
case NI_VectorT256_GreaterThanAny:
+#endif // TARGET_XARCH
{
return gtNewSimdCmpOpAnyNode(GT_GT, retType, op1, op2, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
case NI_VectorT128_GreaterThanOrEqual:
+#if defined(TARGET_XARCH)
case NI_VectorT256_GreaterThanOrEqual:
+#endif // TARGET_XARCH
{
return gtNewSimdCmpOpNode(GT_GE, retType, op1, op2, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
case NI_VectorT128_GreaterThanOrEqualAll:
+#if defined(TARGET_XARCH)
case NI_VectorT256_GreaterThanOrEqualAll:
+#endif // TARGET_XARCH
{
return gtNewSimdCmpOpAllNode(GT_GE, retType, op1, op2, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
case NI_VectorT128_GreaterThanOrEqualAny:
+#if defined(TARGET_XARCH)
case NI_VectorT256_GreaterThanOrEqualAny:
+#endif // TARGET_XARCH
{
return gtNewSimdCmpOpAnyNode(GT_GE, retType, op1, op2, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
+ 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
+ {
+ return gtNewSimdCmpOpAnyNode(GT_NE, retType, op1, op2, simdBaseJitType, simdSize,
+ /* isSimdAsHWIntrinsic */ true);
+ }
+
case NI_VectorT128_LessThan:
+#if defined(TARGET_XARCH)
case NI_VectorT256_LessThan:
+#endif // TARGET_XARCH
{
return gtNewSimdCmpOpNode(GT_LT, retType, op1, op2, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
case NI_VectorT128_LessThanAll:
+#if defined(TARGET_XARCH)
case NI_VectorT256_LessThanAll:
+#endif // TARGET_XARCH
{
return gtNewSimdCmpOpAllNode(GT_LT, retType, op1, op2, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
case NI_VectorT128_LessThanAny:
+#if defined(TARGET_XARCH)
case NI_VectorT256_LessThanAny:
+#endif // TARGET_XARCH
{
return gtNewSimdCmpOpAnyNode(GT_LT, retType, op1, op2, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
case NI_VectorT128_LessThanOrEqual:
+#if defined(TARGET_XARCH)
case NI_VectorT256_LessThanOrEqual:
+#endif // TARGET_XARCH
{
return gtNewSimdCmpOpNode(GT_LE, retType, op1, op2, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
case NI_VectorT128_LessThanOrEqualAll:
+#if defined(TARGET_XARCH)
case NI_VectorT256_LessThanOrEqualAll:
+#endif // TARGET_XARCH
{
return gtNewSimdCmpOpAllNode(GT_LE, retType, op1, op2, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
case NI_VectorT128_LessThanOrEqualAny:
+#if defined(TARGET_XARCH)
case NI_VectorT256_LessThanOrEqualAny:
+#endif // TARGET_XARCH
{
return gtNewSimdCmpOpAnyNode(GT_LE, retType, op1, op2, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
- case NI_VectorT128_LoadUnsafeIndex:
- case NI_VectorT256_LoadUnsafeIndex:
- {
- GenTree* tmp;
-
- if (op1->OperIs(GT_CAST))
- {
- // Although the API specifies a pointer, if what we have is a BYREF, that's what
- // we really want, so throw away the cast.
- if (op1->gtGetOp1()->TypeGet() == TYP_BYREF)
- {
- op1 = op1->gtGetOp1();
- }
- }
-
- tmp = gtNewIconNode(genTypeSize(simdBaseType), op2->TypeGet());
- op2 = gtNewOperNode(GT_MUL, op2->TypeGet(), op2, tmp);
- op1 = gtNewOperNode(GT_ADD, op1->TypeGet(), op1, op2);
-
- NamedIntrinsic loadIntrinsic = NI_Illegal;
-
- if (simdSize == 32)
- {
- loadIntrinsic = NI_AVX_LoadVector256;
- }
- else if (simdBaseType != TYP_FLOAT)
- {
- loadIntrinsic = NI_SSE2_LoadVector128;
- }
- else
- {
- loadIntrinsic = NI_SSE_LoadVector128;
- }
-
- return gtNewSimdHWIntrinsicNode(retType, op1, loadIntrinsic, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
+ 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
{
return gtNewSimdMaxNode(retType, op1, op2, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
+ 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
{
return gtNewSimdMinNode(retType, op1, op2, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
+ case NI_Vector2_op_Multiply:
+ case NI_Vector3_op_Multiply:
+ case NI_Vector4_op_Multiply:
case NI_VectorT128_Multiply:
- case NI_VectorT256_Multiply:
case NI_VectorT128_op_Multiply:
+#if defined(TARGET_XARCH)
+ case NI_VectorT256_Multiply:
case NI_VectorT256_op_Multiply:
+#endif // TARGET_XARCH
{
return gtNewSimdBinOpNode(GT_MUL, retType, op1, op2, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
case NI_VectorT128_Narrow:
+#if defined(TARGET_XARCH)
case NI_VectorT256_Narrow:
+#endif // TARGET_XARCH
{
return gtNewSimdNarrowNode(retType, op1, op2, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
- case NI_Vector2_op_Division:
- case NI_Vector3_op_Division:
- {
- // Vector2/3 div: since the top-most elements will be zero, we end up
- // performing 0/0 which is a NAN. Therefore, post division we need to set the
- // top-most elements to zero. This is achieved by left logical shift followed
- // by right logical shift of the result.
-
- // These are 16 byte operations, so we subtract from 16 bytes, not the vector register length.
- unsigned shiftCount = 16 - simdSize;
- assert((shiftCount > 0) && (shiftCount <= 16));
-
- // retNode = Sse.Divide(op1, op2);
- GenTree* retNode =
- gtNewSimdAsHWIntrinsicNode(retType, op1, op2, NI_SSE_Divide, simdBaseJitType, simdSize);
-
- // retNode = Sse.ShiftLeftLogical128BitLane(retNode.AsInt32(), shiftCount).AsSingle()
- retNode =
- gtNewSimdAsHWIntrinsicNode(retType, retNode, gtNewIconNode(shiftCount, TYP_INT),
- NI_SSE2_ShiftLeftLogical128BitLane, CORINFO_TYPE_INT, simdSize);
-
- // retNode = Sse.ShiftRightLogical128BitLane(retNode.AsInt32(), shiftCount).AsSingle()
- retNode =
- gtNewSimdAsHWIntrinsicNode(retType, retNode, gtNewIconNode(shiftCount, TYP_INT),
- NI_SSE2_ShiftRightLogical128BitLane, CORINFO_TYPE_INT, simdSize);
-
- return retNode;
- }
-
- case NI_VectorT128_op_LeftShift:
- case NI_VectorT256_op_LeftShift:
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
{
return gtNewSimdBinOpNode(GT_LSH, retType, op1, op2, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
- case NI_VectorT128_op_RightShift:
- case NI_VectorT256_op_RightShift:
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
{
genTreeOps op = varTypeIsUnsigned(simdBaseType) ? GT_RSZ : GT_RSH;
return gtNewSimdBinOpNode(op, retType, op1, op2, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
- case NI_VectorT128_op_UnsignedRightShift:
- case NI_VectorT256_op_UnsignedRightShift:
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
{
return gtNewSimdBinOpNode(GT_RSZ, retType, op1, op2, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
+ case NI_Vector2_op_Subtraction:
+ case NI_Vector3_op_Subtraction:
+ 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
+ {
+ return gtNewSimdBinOpNode(GT_SUB, retType, op1, op2, simdBaseJitType, simdSize,
+ /* isSimdAsHWIntrinsic */ true);
+ }
+
+#if defined(TARGET_XARCH)
+ case NI_VectorT128_LoadUnsafeIndex:
+ case NI_VectorT256_LoadUnsafeIndex:
+ {
+ GenTree* tmp;
+
+ if (op1->OperIs(GT_CAST))
+ {
+ // Although the API specifies a pointer, if what we have is a BYREF, that's what
+ // we really want, so throw away the cast.
+ if (op1->gtGetOp1()->TypeGet() == TYP_BYREF)
+ {
+ op1 = op1->gtGetOp1();
+ }
+ }
+
+ tmp = gtNewIconNode(genTypeSize(simdBaseType), op2->TypeGet());
+ op2 = gtNewOperNode(GT_MUL, op2->TypeGet(), op2, tmp);
+ op1 = gtNewOperNode(GT_ADD, op1->TypeGet(), op1, op2);
+
+ NamedIntrinsic loadIntrinsic = NI_Illegal;
+
+ if (simdSize == 32)
+ {
+ loadIntrinsic = NI_AVX_LoadVector256;
+ }
+ else if (simdBaseType != TYP_FLOAT)
+ {
+ loadIntrinsic = NI_SSE2_LoadVector128;
+ }
+ else
+ {
+ loadIntrinsic = NI_SSE_LoadVector128;
+ }
+
+ return gtNewSimdHWIntrinsicNode(retType, op1, loadIntrinsic, simdBaseJitType, simdSize,
+ /* isSimdAsHWIntrinsic */ true);
+ }
+
case NI_VectorT128_Store:
case NI_VectorT256_Store:
case NI_VectorT128_StoreUnsafe:
/* isSimdAsHWIntrinsic */ true);
}
#elif defined(TARGET_ARM64)
- case NI_Vector2_CreateBroadcast:
- case NI_Vector3_CreateBroadcast:
- case NI_Vector4_CreateBroadcast:
- case NI_VectorT128_CreateBroadcast:
- {
- assert(retType == TYP_VOID);
-
- copyBlkDst = op1;
- copyBlkSrc = gtNewSimdCreateBroadcastNode(simdType, op2, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- break;
- }
-
- case NI_VectorT128_Divide:
- case NI_VectorT128_op_Division:
- {
- return gtNewSimdBinOpNode(GT_DIV, retType, op1, op2, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_EqualsAll:
- case NI_VectorT128_op_Equality:
- {
- return gtNewSimdCmpOpAllNode(GT_EQ, retType, op1, op2, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_EqualsAny:
- {
- return gtNewSimdCmpOpAnyNode(GT_EQ, retType, op1, op2, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_get_Item:
- case NI_VectorT128_GetElement:
- {
- return gtNewSimdGetElementNode(retType, op1, op2, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_GreaterThanAll:
- {
- return gtNewSimdCmpOpAllNode(GT_GT, retType, op1, op2, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_GreaterThanAny:
- {
- return gtNewSimdCmpOpAnyNode(GT_GT, retType, op1, op2, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_GreaterThanOrEqualAll:
- {
- return gtNewSimdCmpOpAllNode(GT_GE, retType, op1, op2, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_GreaterThanOrEqualAny:
- {
- return gtNewSimdCmpOpAnyNode(GT_GE, retType, op1, op2, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_LessThanAll:
- {
- return gtNewSimdCmpOpAllNode(GT_LT, retType, op1, op2, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_LessThanAny:
- {
- return gtNewSimdCmpOpAnyNode(GT_LT, retType, op1, op2, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_LessThanOrEqualAll:
- {
- return gtNewSimdCmpOpAllNode(GT_LE, retType, op1, op2, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_LessThanOrEqualAny:
- {
- return gtNewSimdCmpOpAnyNode(GT_LE, retType, op1, op2, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
case NI_VectorT128_LoadUnsafeIndex:
{
GenTree* tmp;
/* isSimdAsHWIntrinsic */ true);
}
- case NI_VectorT128_Max:
- {
- return gtNewSimdMaxNode(retType, op1, op2, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_Min:
- {
- return gtNewSimdMinNode(retType, op1, op2, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_Multiply:
- case NI_VectorT128_op_Multiply:
- {
- return gtNewSimdBinOpNode(GT_MUL, retType, op1, op2, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_Narrow:
- {
- return gtNewSimdNarrowNode(retType, op1, op2, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_op_LeftShift:
- case NI_VectorT128_ShiftLeft:
- {
- return gtNewSimdBinOpNode(GT_LSH, retType, op1, op2, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_op_RightShift:
- case NI_VectorT128_ShiftRightArithmetic:
- {
- genTreeOps op = varTypeIsUnsigned(simdBaseType) ? GT_RSZ : GT_RSH;
- return gtNewSimdBinOpNode(op, retType, op1, op2, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_op_UnsignedRightShift:
- case NI_VectorT128_ShiftRightLogical:
- {
- return gtNewSimdBinOpNode(GT_RSZ, retType, op1, op2, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
case NI_VectorT128_Store:
case NI_VectorT128_StoreUnsafe:
case NI_VectorT128_StoreAligned:
newobjThis);
}
- assert(!SimdAsHWIntrinsicInfo::NeedsOperandsSwapped(intrinsic));
-
switch (intrinsic)
{
-#if defined(TARGET_XARCH)
case NI_VectorT128_ConditionalSelect:
+#if defined(TARGET_XARCH)
case NI_VectorT256_ConditionalSelect:
+#endif // TARGET_XARCH
{
return gtNewSimdCndSelNode(retType, op1, op2, op3, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
- case NI_VectorT128_StoreUnsafeIndex:
- case NI_VectorT256_StoreUnsafeIndex:
- {
- GenTree* tmp;
-
- tmp = gtNewIconNode(genTypeSize(simdBaseType), op3->TypeGet());
- op3 = gtNewOperNode(GT_MUL, op3->TypeGet(), op3, tmp);
- op2 = gtNewOperNode(GT_ADD, op2->TypeGet(), op2, op3);
-
- NamedIntrinsic storeIntrinsic = NI_Illegal;
-
- if (simdSize == 32)
- {
- storeIntrinsic = NI_AVX_Store;
- }
- else if (simdBaseType != TYP_FLOAT)
- {
- storeIntrinsic = NI_SSE2_Store;
- }
- else
- {
- storeIntrinsic = NI_SSE_Store;
- }
-
- return gtNewSimdHWIntrinsicNode(retType, op2, op1, storeIntrinsic, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_WithElement:
- case NI_VectorT256_WithElement:
- {
- return gtNewSimdWithElementNode(retType, op1, op2, op3, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-#elif defined(TARGET_ARM64)
- case NI_VectorT128_ConditionalSelect:
- {
- return gtNewSimdCndSelNode(retType, op1, op2, op3, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_StoreUnsafeIndex:
- {
- GenTree* tmp;
-
- tmp = gtNewIconNode(genTypeSize(simdBaseType), op3->TypeGet());
- op3 = gtNewOperNode(GT_MUL, op3->TypeGet(), op3, tmp);
- op2 = gtNewOperNode(GT_ADD, op2->TypeGet(), op2, op3);
-
- return gtNewSimdHWIntrinsicNode(retType, op2, op1, NI_AdvSimd_Store, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-
- case NI_VectorT128_WithElement:
- {
- return gtNewSimdWithElementNode(retType, op1, op2, op3, simdBaseJitType, simdSize,
- /* isSimdAsHWIntrinsic */ true);
- }
-#else
-#error Unsupported platform
-#endif // !TARGET_XARCH && !TARGET_ARM64
-
case NI_Vector2_Create:
{
assert(retType == TYP_VOID);
else
{
GenTree* idx = gtNewIconNode((simdSize == 12) ? 2 : 3, TYP_INT);
- copyBlkSrc = gtNewSimdWithElementNode(simdType, op2, op3, idx, simdBaseJitType, simdSize,
+ copyBlkSrc = gtNewSimdWithElementNode(simdType, op2, idx, op3, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
break;
}
+ case NI_VectorT128_WithElement:
+#if defined(TARGET_XARCH)
+ case NI_VectorT256_WithElement:
+#endif // TARGET_XARCH
+ {
+ return gtNewSimdWithElementNode(retType, op1, op2, op3, simdBaseJitType, simdSize,
+ /* isSimdAsHWIntrinsic */ true);
+ }
+
+#if defined(TARGET_XARCH)
+ case NI_VectorT128_StoreUnsafeIndex:
+ case NI_VectorT256_StoreUnsafeIndex:
+ {
+ GenTree* tmp;
+
+ tmp = gtNewIconNode(genTypeSize(simdBaseType), op3->TypeGet());
+ op3 = gtNewOperNode(GT_MUL, op3->TypeGet(), op3, tmp);
+ op2 = gtNewOperNode(GT_ADD, op2->TypeGet(), op2, op3);
+
+ NamedIntrinsic storeIntrinsic = NI_Illegal;
+
+ if (simdSize == 32)
+ {
+ storeIntrinsic = NI_AVX_Store;
+ }
+ else if (simdBaseType != TYP_FLOAT)
+ {
+ storeIntrinsic = NI_SSE2_Store;
+ }
+ else
+ {
+ storeIntrinsic = NI_SSE_Store;
+ }
+
+ return gtNewSimdHWIntrinsicNode(retType, op2, op1, storeIntrinsic, simdBaseJitType, simdSize,
+ /* isSimdAsHWIntrinsic */ true);
+ }
+#elif defined(TARGET_ARM64)
+ case NI_VectorT128_StoreUnsafeIndex:
+ {
+ GenTree* tmp;
+
+ tmp = gtNewIconNode(genTypeSize(simdBaseType), op3->TypeGet());
+ op3 = gtNewOperNode(GT_MUL, op3->TypeGet(), op3, tmp);
+ op2 = gtNewOperNode(GT_ADD, op2->TypeGet(), op2, op3);
+
+ return gtNewSimdHWIntrinsicNode(retType, op2, op1, NI_AdvSimd_Store, simdBaseJitType, simdSize,
+ /* isSimdAsHWIntrinsic */ true);
+ }
+#else
+#error Unsupported platform
+#endif // !TARGET_XARCH && !TARGET_ARM64
default:
{
// Some platforms warn about unhandled switch cases
newobjThis);
}
- assert(!SimdAsHWIntrinsicInfo::NeedsOperandsSwapped(intrinsic));
-
switch (intrinsic)
{
case NI_Vector3_Create:
else
{
GenTree* idx = gtNewIconNode(2, TYP_INT);
- op2 = gtNewSimdWithElementNode(simdType, op2, op3, idx, simdBaseJitType, simdSize,
+ op2 = gtNewSimdWithElementNode(simdType, op2, idx, op3, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
idx = gtNewIconNode(3, TYP_INT);
- copyBlkSrc = gtNewSimdWithElementNode(simdType, op2, op4, idx, simdBaseJitType, simdSize,
+ copyBlkSrc = gtNewSimdWithElementNode(simdType, op2, idx, op4, simdBaseJitType, simdSize,
/* isSimdAsHWIntrinsic */ true);
}
newobjThis);
}
- assert(!SimdAsHWIntrinsicInfo::NeedsOperandsSwapped(intrinsic));
-
switch (intrinsic)
{
case NI_Vector4_Create:
// Indicates the intrinsic is for an instance method.
InstanceMethod = 0x02,
- // Indicates the operands should be swapped in importation.
- NeedsOperandsSwapped = 0x04,
+ /* UnusedFlag = 0x04, */
// Base type should come from the this argument
BaseTypeFromThisArg = 0x08,
return (flags & SimdAsHWIntrinsicFlag::InstanceMethod) == SimdAsHWIntrinsicFlag::InstanceMethod;
}
- static bool NeedsOperandsSwapped(NamedIntrinsic id)
- {
- SimdAsHWIntrinsicFlag flags = lookupFlags(id);
- return (flags & SimdAsHWIntrinsicFlag::NeedsOperandsSwapped) == SimdAsHWIntrinsicFlag::NeedsOperandsSwapped;
- }
-
static bool BaseTypeFromThisArg(NamedIntrinsic id)
{
SimdAsHWIntrinsicFlag flags = lookupFlags(id);
// {TYP_BYTE, TYP_UBYTE, TYP_SHORT, TYP_USHORT, TYP_INT, TYP_UINT, TYP_LONG, TYP_ULONG, TYP_FLOAT, TYP_DOUBLE}
// *************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
// Vector2 Intrinsics
-SIMD_AS_HWINTRINSIC_ID(Vector2, Abs, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AdvSimd_Abs, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector2, Abs, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_Abs, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
SIMD_AS_HWINTRINSIC_NM(Vector2, Create, ".ctor", 3, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_Create, NI_Illegal}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::SpillSideEffectsOp1)
SIMD_AS_HWINTRINSIC_NM(Vector2, CreateBroadcast, ".ctor", 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_CreateBroadcast, NI_Illegal}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::SpillSideEffectsOp1)
-SIMD_AS_HWINTRINSIC_ID(Vector2, Dot, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector64_Dot, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector2, Dot, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_Dot, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
SIMD_AS_HWINTRINSIC_ID(Vector2, get_One, 0, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_get_One, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
SIMD_AS_HWINTRINSIC_ID(Vector2, get_Zero, 0, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_get_Zero, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector2, Max, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AdvSimd_Max, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector2, Min, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AdvSimd_Min, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector2, op_Addition, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AdvSimd_Add, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector2, op_Division, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AdvSimd_Arm64_Divide, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector2, op_Equality, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector64_op_Equality, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector2, op_Inequality, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector64_op_Inequality, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector2, op_Multiply, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AdvSimd_Multiply, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector2, op_Subtraction, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AdvSimd_Subtract, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector2, SquareRoot, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AdvSimd_Arm64_Sqrt, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector2, Max, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_Max, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector2, Min, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_Min, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector2, op_Addition, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_op_Addition, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector2, op_Division, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_op_Division, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector2, op_Equality, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_op_Equality, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector2, op_Inequality, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_op_Inequality, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector2, op_Multiply, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_op_Multiply, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector2, op_Subtraction, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_op_Subtraction, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector2, op_UnaryNegation, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_op_UnaryNegation, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_NM(Vector2, Sqrt, "SquareRoot", 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_Sqrt, NI_Illegal}, 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}
// *************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
// Vector3 Intrinsics
-SIMD_AS_HWINTRINSIC_ID(Vector3, Abs, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AdvSimd_Abs, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector3, Abs, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_Abs, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
SIMD_AS_HWINTRINSIC_NM(Vector3, Create, ".ctor", 4, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_Create, NI_Illegal}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::SpillSideEffectsOp1)
SIMD_AS_HWINTRINSIC_NM(Vector3, CreateBroadcast, ".ctor", 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_CreateBroadcast, NI_Illegal}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::SpillSideEffectsOp1)
SIMD_AS_HWINTRINSIC_NM(Vector3, CreateFromVector2, ".ctor", 3, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_CreateFromVector2, NI_Illegal}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::SpillSideEffectsOp1)
-SIMD_AS_HWINTRINSIC_ID(Vector3, Dot, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector128_Dot, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector3, Dot, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_Dot, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
SIMD_AS_HWINTRINSIC_ID(Vector3, get_One, 0, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_get_One, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
SIMD_AS_HWINTRINSIC_ID(Vector3, get_Zero, 0, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_get_Zero , NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector3, Max, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AdvSimd_Max, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector3, Min, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AdvSimd_Min, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector3, op_Addition, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AdvSimd_Add, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector3, op_Division, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AdvSimd_Arm64_Divide, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector3, op_Equality, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector128_op_Equality, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector3, op_Inequality, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector128_op_Inequality, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector3, op_Multiply, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AdvSimd_Multiply, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector3, op_Subtraction, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AdvSimd_Subtract, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector3, SquareRoot, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AdvSimd_Arm64_Sqrt, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector3, Max, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_Max, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector3, Min, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_Min, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector3, op_Addition, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_op_Addition, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector3, op_Division, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_op_Division, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector3, op_Equality, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_op_Equality, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector3, op_Inequality, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_op_Inequality, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector3, op_Multiply, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_op_Multiply, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector3, op_Subtraction, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_op_Subtraction, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector3, op_UnaryNegation, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_op_UnaryNegation, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_NM(Vector3, Sqrt, "SquareRoot", 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_Sqrt, NI_Illegal}, 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}
// *************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
// Vector4 Intrinsics
-SIMD_AS_HWINTRINSIC_ID(Vector4, Abs, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AdvSimd_Abs, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector4, Abs, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_Abs, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
SIMD_AS_HWINTRINSIC_NM(Vector4, Create, ".ctor", 5, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_Create, NI_Illegal}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::SpillSideEffectsOp1)
SIMD_AS_HWINTRINSIC_NM(Vector4, CreateBroadcast, ".ctor", 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_CreateBroadcast, NI_Illegal}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::SpillSideEffectsOp1)
SIMD_AS_HWINTRINSIC_NM(Vector4, CreateFromVector2, ".ctor", 4, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_CreateFromVector2, NI_Illegal}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::SpillSideEffectsOp1)
SIMD_AS_HWINTRINSIC_NM(Vector4, CreateFromVector3, ".ctor", 3, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_CreateFromVector3, NI_Illegal}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::SpillSideEffectsOp1)
-SIMD_AS_HWINTRINSIC_ID(Vector4, Dot, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector128_Dot, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector4, Dot, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_Dot, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
SIMD_AS_HWINTRINSIC_ID(Vector4, get_One, 0, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_get_One, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
SIMD_AS_HWINTRINSIC_ID(Vector4, get_Zero, 0, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_get_Zero, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector4, Max, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AdvSimd_Max, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector4, Min, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AdvSimd_Min, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector4, op_Addition, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AdvSimd_Add, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector4, op_Division, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AdvSimd_Arm64_Divide, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector4, op_Equality, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector128_op_Equality, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector4, op_Inequality, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector128_op_Inequality, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector4, op_Multiply, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AdvSimd_Multiply, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector4, op_Subtraction, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AdvSimd_Subtract, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector4, SquareRoot, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AdvSimd_Arm64_Sqrt, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector4, Max, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_Max, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector4, Min, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_Min, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector4, op_Addition, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_op_Addition, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector4, op_Division, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_op_Division, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector4, op_Equality, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_op_Equality, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector4, op_Inequality, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_op_Inequality, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector4, op_Multiply, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_op_Multiply, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector4, op_Subtraction, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_op_Subtraction, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector4, op_UnaryNegation, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_op_UnaryNegation, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_NM(Vector4, Sqrt, "SquareRoot", 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_Sqrt, NI_Illegal}, 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<T> Intrinsics
-SIMD_AS_HWINTRINSIC_ID(VectorT128, Abs, 1, {NI_AdvSimd_Abs, NI_VectorT128_Abs, NI_AdvSimd_Abs, NI_VectorT128_Abs, NI_AdvSimd_Abs, NI_VectorT128_Abs, NI_AdvSimd_Arm64_Abs, NI_VectorT128_Abs, NI_AdvSimd_Abs, NI_AdvSimd_Arm64_Abs}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(VectorT128, Add, 2, {NI_AdvSimd_Add, NI_AdvSimd_Add, NI_AdvSimd_Add, NI_AdvSimd_Add, NI_AdvSimd_Add, NI_AdvSimd_Add, NI_AdvSimd_Add, NI_AdvSimd_Add, NI_AdvSimd_Add, NI_AdvSimd_Arm64_Add}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(VectorT128, AndNot, 2, {NI_AdvSimd_BitwiseClear, NI_AdvSimd_BitwiseClear, NI_AdvSimd_BitwiseClear, NI_AdvSimd_BitwiseClear, NI_AdvSimd_BitwiseClear, NI_AdvSimd_BitwiseClear, NI_AdvSimd_BitwiseClear, NI_AdvSimd_BitwiseClear, NI_AdvSimd_BitwiseClear, NI_AdvSimd_BitwiseClear}, SimdAsHWIntrinsicFlag::None)
+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, 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_AdvSimd_And, NI_AdvSimd_And, NI_AdvSimd_And, NI_AdvSimd_And, NI_AdvSimd_And, NI_AdvSimd_And, NI_AdvSimd_And, NI_AdvSimd_And, NI_AdvSimd_And, NI_AdvSimd_And}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(VectorT128, BitwiseOr, 2, {NI_AdvSimd_Or, NI_AdvSimd_Or, NI_AdvSimd_Or, NI_AdvSimd_Or, NI_AdvSimd_Or, NI_AdvSimd_Or, NI_AdvSimd_Or, NI_AdvSimd_Or, NI_AdvSimd_Or, NI_AdvSimd_Or}, 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_AdvSimd_Ceiling, NI_AdvSimd_Arm64_Ceiling}, 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, 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_Vector128_Dot, NI_Vector128_Dot, NI_Vector128_Dot, NI_Vector128_Dot, NI_Vector128_Dot, NI_Vector128_Dot, NI_Illegal, NI_Illegal, NI_Vector128_Dot, NI_Vector128_Dot}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(VectorT128, Equals, 2, {NI_AdvSimd_CompareEqual, NI_AdvSimd_CompareEqual, NI_AdvSimd_CompareEqual, NI_AdvSimd_CompareEqual, NI_AdvSimd_CompareEqual, NI_AdvSimd_CompareEqual, NI_AdvSimd_Arm64_CompareEqual, NI_AdvSimd_Arm64_CompareEqual, NI_AdvSimd_CompareEqual, NI_AdvSimd_Arm64_CompareEqual}, 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_AdvSimd_Floor, NI_AdvSimd_Arm64_Floor}, 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_Count, 0, {NI_VectorT128_get_Count, NI_VectorT128_get_Count, NI_VectorT128_get_Count, NI_VectorT128_get_Count, NI_VectorT128_get_Count, NI_VectorT128_get_Count, NI_VectorT128_get_Count, NI_VectorT128_get_Count, NI_VectorT128_get_Count, NI_VectorT128_get_Count}, 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_AdvSimd_CompareGreaterThan, NI_AdvSimd_CompareGreaterThan, NI_AdvSimd_CompareGreaterThan, NI_AdvSimd_CompareGreaterThan, NI_AdvSimd_CompareGreaterThan, NI_AdvSimd_CompareGreaterThan, NI_AdvSimd_Arm64_CompareGreaterThan, NI_AdvSimd_Arm64_CompareGreaterThan, NI_AdvSimd_CompareGreaterThan, NI_AdvSimd_Arm64_CompareGreaterThan}, 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_AdvSimd_CompareGreaterThanOrEqual, NI_AdvSimd_CompareGreaterThanOrEqual, NI_AdvSimd_CompareGreaterThanOrEqual, NI_AdvSimd_CompareGreaterThanOrEqual, NI_AdvSimd_CompareGreaterThanOrEqual, NI_AdvSimd_CompareGreaterThanOrEqual, NI_AdvSimd_Arm64_CompareGreaterThanOrEqual, NI_AdvSimd_Arm64_CompareGreaterThanOrEqual, NI_AdvSimd_CompareGreaterThanOrEqual, NI_AdvSimd_Arm64_CompareGreaterThanOrEqual}, 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_AdvSimd_CompareLessThan, NI_AdvSimd_CompareLessThan, NI_AdvSimd_CompareLessThan, NI_AdvSimd_CompareLessThan, NI_AdvSimd_CompareLessThan, NI_AdvSimd_CompareLessThan, NI_AdvSimd_Arm64_CompareLessThan, NI_AdvSimd_Arm64_CompareLessThan, NI_AdvSimd_CompareLessThan, NI_AdvSimd_Arm64_CompareLessThan}, 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_AdvSimd_CompareLessThanOrEqual, NI_AdvSimd_CompareLessThanOrEqual, NI_AdvSimd_CompareLessThanOrEqual, NI_AdvSimd_CompareLessThanOrEqual, NI_AdvSimd_CompareLessThanOrEqual, NI_AdvSimd_CompareLessThanOrEqual, NI_AdvSimd_Arm64_CompareLessThanOrEqual, NI_AdvSimd_Arm64_CompareLessThanOrEqual, NI_AdvSimd_CompareLessThanOrEqual, NI_AdvSimd_Arm64_CompareLessThanOrEqual}, 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, 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_AdvSimd_Max, NI_AdvSimd_Max, NI_AdvSimd_Max, NI_AdvSimd_Max, NI_AdvSimd_Max, NI_AdvSimd_Max, NI_VectorT128_Max, NI_VectorT128_Max, NI_AdvSimd_Max, NI_AdvSimd_Arm64_Max}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(VectorT128, Min, 2, {NI_AdvSimd_Min, NI_AdvSimd_Min, NI_AdvSimd_Min, NI_AdvSimd_Min, NI_AdvSimd_Min, NI_AdvSimd_Min, NI_VectorT128_Min, NI_VectorT128_Min, NI_AdvSimd_Min, NI_AdvSimd_Arm64_Min}, SimdAsHWIntrinsicFlag::None)
+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, 2, {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::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_AdvSimd_Add, NI_AdvSimd_Add, NI_AdvSimd_Add, NI_AdvSimd_Add, NI_AdvSimd_Add, NI_AdvSimd_Add, NI_AdvSimd_Add, NI_AdvSimd_Add, NI_AdvSimd_Add, NI_AdvSimd_Arm64_Add}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(VectorT128, op_BitwiseAnd, 2, {NI_AdvSimd_And, NI_AdvSimd_And, NI_AdvSimd_And, NI_AdvSimd_And, NI_AdvSimd_And, NI_AdvSimd_And, NI_AdvSimd_And, NI_AdvSimd_And, NI_AdvSimd_And, NI_AdvSimd_And}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(VectorT128, op_BitwiseOr, 2, {NI_AdvSimd_Or, NI_AdvSimd_Or, NI_AdvSimd_Or, NI_AdvSimd_Or, NI_AdvSimd_Or, NI_AdvSimd_Or, NI_AdvSimd_Or, NI_AdvSimd_Or, NI_AdvSimd_Or, NI_AdvSimd_Or}, 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_Vector128_op_Equality, NI_Vector128_op_Equality, NI_Vector128_op_Equality, NI_Vector128_op_Equality, NI_Vector128_op_Equality, NI_Vector128_op_Equality, NI_Vector128_op_Equality, NI_Vector128_op_Equality, NI_Vector128_op_Equality, NI_Vector128_op_Equality}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(VectorT128, op_ExclusiveOr, 2, {NI_AdvSimd_Xor, NI_AdvSimd_Xor, NI_AdvSimd_Xor, NI_AdvSimd_Xor, NI_AdvSimd_Xor, NI_AdvSimd_Xor, NI_AdvSimd_Xor, NI_AdvSimd_Xor, NI_AdvSimd_Xor, NI_AdvSimd_Xor}, 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_Vector128_op_Inequality, NI_Vector128_op_Inequality, NI_Vector128_op_Inequality, NI_Vector128_op_Inequality, NI_Vector128_op_Inequality, NI_Vector128_op_Inequality, NI_Vector128_op_Inequality, NI_Vector128_op_Inequality, NI_Vector128_op_Inequality, NI_Vector128_op_Inequality}, 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, 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_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_AdvSimd_Subtract, NI_AdvSimd_Subtract, NI_AdvSimd_Subtract, NI_AdvSimd_Subtract, NI_AdvSimd_Subtract, NI_AdvSimd_Subtract, NI_AdvSimd_Subtract, NI_AdvSimd_Subtract, NI_AdvSimd_Subtract, NI_AdvSimd_Arm64_Subtract}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(VectorT128, op_UnaryNegation, 2, {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, 2, {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_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_ID(VectorT128, SquareRoot, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AdvSimd_Arm64_Sqrt, NI_AdvSimd_Arm64_Sqrt}, 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_AdvSimd_Subtract, NI_AdvSimd_Subtract, NI_AdvSimd_Subtract, NI_AdvSimd_Subtract, NI_AdvSimd_Subtract, NI_AdvSimd_Subtract, NI_AdvSimd_Subtract, NI_AdvSimd_Subtract, NI_AdvSimd_Subtract, NI_AdvSimd_Arm64_Subtract}, SimdAsHWIntrinsicFlag::None)
+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_AdvSimd_Xor, NI_AdvSimd_Xor, NI_AdvSimd_Xor, NI_AdvSimd_Xor, NI_AdvSimd_Xor, NI_AdvSimd_Xor, NI_AdvSimd_Xor, NI_AdvSimd_Xor, NI_AdvSimd_Xor, NI_AdvSimd_Xor}, 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)
#undef SIMD_AS_HWINTRINSIC_NM
#undef SIMD_AS_HWINTRINSIC_ID
SIMD_AS_HWINTRINSIC_ID(Vector2, Abs, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_Abs, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
SIMD_AS_HWINTRINSIC_NM(Vector2, Create, ".ctor", 3, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_Create, NI_Illegal}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::SpillSideEffectsOp1)
SIMD_AS_HWINTRINSIC_NM(Vector2, CreateBroadcast, ".ctor", 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_CreateBroadcast, NI_Illegal}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::SpillSideEffectsOp1)
-SIMD_AS_HWINTRINSIC_ID(Vector2, Dot, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector128_Dot, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector2, Dot, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_Dot, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
SIMD_AS_HWINTRINSIC_ID(Vector2, get_One, 0, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_get_One, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
SIMD_AS_HWINTRINSIC_ID(Vector2, get_Zero, 0, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_get_Zero, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector2, Max, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_SSE_Max, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector2, Min, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_SSE_Min, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector2, op_Addition, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_SSE_Add, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector2, Max, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_Max, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector2, Min, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_Min, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector2, op_Addition, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_op_Addition, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
SIMD_AS_HWINTRINSIC_ID(Vector2, op_Division, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_op_Division, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector2, op_Equality, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector128_op_Equality, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector2, op_Inequality, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector128_op_Inequality, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector2, op_Multiply, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_SSE_Multiply, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector2, op_Subtraction, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_SSE_Subtract, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector2, SquareRoot, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_SSE_Sqrt, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector2, op_Equality, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_op_Equality, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector2, op_Inequality, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_op_Inequality, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector2, op_Multiply, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_op_Multiply, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector2, op_Subtraction, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_op_Subtraction, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector2, op_UnaryNegation, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_op_UnaryNegation, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_NM(Vector2, Sqrt, "SquareRoot", 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector2_Sqrt, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
// *************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
// ISA ID Name NumArg Instructions Flags
SIMD_AS_HWINTRINSIC_NM(Vector3, Create, ".ctor", 4, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_Create, NI_Illegal}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::SpillSideEffectsOp1)
SIMD_AS_HWINTRINSIC_NM(Vector3, CreateBroadcast, ".ctor", 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_CreateBroadcast, NI_Illegal}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::SpillSideEffectsOp1)
SIMD_AS_HWINTRINSIC_NM(Vector3, CreateFromVector2, ".ctor", 3, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_CreateFromVector2, NI_Illegal}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::SpillSideEffectsOp1)
-SIMD_AS_HWINTRINSIC_ID(Vector3, Dot, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector128_Dot, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector3, Dot, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_Dot, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
SIMD_AS_HWINTRINSIC_ID(Vector3, get_One, 0, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_get_One, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
SIMD_AS_HWINTRINSIC_ID(Vector3, get_Zero, 0, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_get_Zero, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector3, Max, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_SSE_Max, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector3, Min, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_SSE_Min, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector3, op_Addition, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_SSE_Add, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector3, Max, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_Max, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector3, Min, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_Min, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector3, op_Addition, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_op_Addition, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
SIMD_AS_HWINTRINSIC_ID(Vector3, op_Division, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_op_Division, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector3, op_Equality, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector128_op_Equality, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector3, op_Inequality, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector128_op_Inequality, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector3, op_Multiply, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_SSE_Multiply, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector3, op_Subtraction, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_SSE_Subtract, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector3, SquareRoot, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_SSE_Sqrt, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector3, op_Equality, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_op_Equality, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector3, op_Inequality, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_op_Inequality, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector3, op_Multiply, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_op_Multiply, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector3, op_Subtraction, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_op_Subtraction, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector3, op_UnaryNegation, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_op_UnaryNegation, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_NM(Vector3, Sqrt, "SquareRoot", 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector3_Sqrt, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
// *************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
// ISA ID Name NumArg Instructions Flags
SIMD_AS_HWINTRINSIC_NM(Vector4, CreateBroadcast, ".ctor", 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_CreateBroadcast, NI_Illegal}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::SpillSideEffectsOp1)
SIMD_AS_HWINTRINSIC_NM(Vector4, CreateFromVector2, ".ctor", 4, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_CreateFromVector2, NI_Illegal}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::SpillSideEffectsOp1)
SIMD_AS_HWINTRINSIC_NM(Vector4, CreateFromVector3, ".ctor", 3, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_CreateFromVector3, NI_Illegal}, SimdAsHWIntrinsicFlag::InstanceMethod | SimdAsHWIntrinsicFlag::SpillSideEffectsOp1)
-SIMD_AS_HWINTRINSIC_ID(Vector4, Dot, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector128_Dot, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector4, Dot, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_Dot, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
SIMD_AS_HWINTRINSIC_ID(Vector4, get_One, 0, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_get_One, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
SIMD_AS_HWINTRINSIC_ID(Vector4, get_Zero, 0, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_get_Zero, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector4, Max, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_SSE_Max, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector4, Min, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_SSE_Min, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector4, op_Addition, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_SSE_Add, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector4, op_Division, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_SSE_Divide, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector4, op_Equality, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector128_op_Equality, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector4, op_Inequality, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector128_op_Inequality, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector4, op_Multiply, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_SSE_Multiply, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector4, op_Subtraction, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_SSE_Subtract, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(Vector4, SquareRoot, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_SSE_Sqrt, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector4, Max, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_Max, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector4, Min, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_Min, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector4, op_Addition, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_op_Addition, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector4, op_Division, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_op_Division, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector4, op_Equality, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_op_Equality, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector4, op_Inequality, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_op_Inequality, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector4, op_Multiply, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_op_Multiply, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector4, op_Subtraction, 2, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_op_Subtraction, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_ID(Vector4, op_UnaryNegation, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_op_UnaryNegation, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
+SIMD_AS_HWINTRINSIC_NM(Vector4, Sqrt, "SquareRoot", 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Vector4_Sqrt, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
// *************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
// ISA ID Name NumArg Instructions Flags
// *************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
// Vector<T> 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_SSE2_Add, NI_SSE2_Add, NI_SSE2_Add, NI_SSE2_Add, NI_SSE2_Add, NI_SSE2_Add, NI_SSE2_Add, NI_SSE2_Add, NI_SSE_Add, NI_SSE2_Add}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(VectorT128, AndNot, 2, {NI_SSE2_AndNot, NI_SSE2_AndNot, NI_SSE2_AndNot, NI_SSE2_AndNot, NI_SSE2_AndNot, NI_SSE2_AndNot, NI_SSE2_AndNot, NI_SSE2_AndNot, NI_SSE_AndNot, NI_SSE2_AndNot}, SimdAsHWIntrinsicFlag::NeedsOperandsSwapped | SimdAsHWIntrinsicFlag::SpillSideEffectsOp1)
+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, 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_SSE2_And, NI_SSE2_And, NI_SSE2_And, NI_SSE2_And, NI_SSE2_And, NI_SSE2_And, NI_SSE2_And, NI_SSE2_And, NI_SSE_And, NI_SSE2_And}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(VectorT128, BitwiseOr, 2, {NI_SSE2_Or, NI_SSE2_Or, NI_SSE2_Or, NI_SSE2_Or, NI_SSE2_Or, NI_SSE2_Or, NI_SSE2_Or, NI_SSE2_Or, NI_SSE_Or, NI_SSE2_Or}, 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_SSE41_Ceiling, NI_SSE41_Ceiling}, 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, 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_Vector128_Dot, NI_Vector128_Dot, NI_VectorT128_Dot, NI_VectorT128_Dot, NI_Illegal, NI_Illegal, NI_Vector128_Dot, NI_Vector128_Dot}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(VectorT128, Equals, 2, {NI_SSE2_CompareEqual, NI_SSE2_CompareEqual, NI_SSE2_CompareEqual, NI_SSE2_CompareEqual, NI_SSE2_CompareEqual, NI_SSE2_CompareEqual, NI_VectorT128_Equals, NI_VectorT128_Equals, NI_SSE_CompareEqual, NI_SSE2_CompareEqual}, 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_SSE41_Floor, NI_SSE41_Floor}, 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_Count, 0, {NI_VectorT128_get_Count, NI_VectorT128_get_Count, NI_VectorT128_get_Count, NI_VectorT128_get_Count, NI_VectorT128_get_Count, NI_VectorT128_get_Count, NI_VectorT128_get_Count, NI_VectorT128_get_Count, NI_VectorT128_get_Count, NI_VectorT128_get_Count}, 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_SSE2_CompareGreaterThan, NI_VectorT128_GreaterThan, NI_SSE2_CompareGreaterThan, NI_VectorT128_GreaterThan, NI_SSE2_CompareGreaterThan, NI_VectorT128_GreaterThan, NI_VectorT128_GreaterThan, NI_VectorT128_GreaterThan, NI_SSE_CompareGreaterThan, NI_SSE2_CompareGreaterThan}, 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_SSE_CompareGreaterThanOrEqual, NI_SSE2_CompareGreaterThanOrEqual}, 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_SSE2_CompareLessThan, NI_VectorT128_LessThan, NI_SSE2_CompareLessThan, NI_VectorT128_LessThan, NI_SSE2_CompareLessThan, NI_VectorT128_LessThan, NI_VectorT128_LessThan, NI_VectorT128_LessThan, NI_SSE_CompareLessThan, NI_SSE2_CompareLessThan}, 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_SSE_CompareLessThanOrEqual, NI_SSE2_CompareLessThanOrEqual}, 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, 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_SSE2_Max, NI_SSE2_Max, NI_VectorT128_Max, NI_VectorT128_Max, NI_VectorT128_Max, NI_VectorT128_Max, NI_VectorT128_Max, NI_SSE_Max, NI_SSE2_Max}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(VectorT128, Min, 2, {NI_VectorT128_Min, NI_SSE2_Min, NI_SSE2_Min, NI_VectorT128_Min, NI_VectorT128_Min, NI_VectorT128_Min, NI_VectorT128_Min, NI_VectorT128_Min, NI_SSE_Min, NI_SSE2_Min}, SimdAsHWIntrinsicFlag::None)
+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_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, 2, {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::KeepBaseTypeFromRet)
-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_SSE2_Add, NI_SSE2_Add, NI_SSE2_Add, NI_SSE2_Add, NI_SSE2_Add, NI_SSE2_Add, NI_SSE2_Add, NI_SSE2_Add, NI_SSE_Add, NI_SSE2_Add}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(VectorT128, op_BitwiseAnd, 2, {NI_SSE2_And, NI_SSE2_And, NI_SSE2_And, NI_SSE2_And, NI_SSE2_And, NI_SSE2_And, NI_SSE2_And, NI_SSE2_And, NI_SSE_And, NI_SSE2_And}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(VectorT128, op_BitwiseOr, 2, {NI_SSE2_Or, NI_SSE2_Or, NI_SSE2_Or, NI_SSE2_Or, NI_SSE2_Or, NI_SSE2_Or, NI_SSE2_Or, NI_SSE2_Or, NI_SSE_Or, NI_SSE2_Or}, SimdAsHWIntrinsicFlag::None)
+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_SSE2_Xor, NI_SSE2_Xor, NI_SSE2_Xor, NI_SSE2_Xor, NI_SSE2_Xor, NI_SSE2_Xor, NI_SSE2_Xor, NI_SSE2_Xor, NI_SSE_Xor, NI_SSE2_Xor}, 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_Vector128_op_Inequality, NI_Vector128_op_Inequality, NI_Vector128_op_Inequality, NI_Vector128_op_Inequality, NI_Vector128_op_Inequality, NI_Vector128_op_Inequality, NI_Vector128_op_Inequality, NI_Vector128_op_Inequality, NI_Vector128_op_Inequality, NI_Vector128_op_Inequality}, 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_Illegal, NI_Illegal, NI_VectorT128_op_RightShift, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(VectorT128, op_Subtraction, 2, {NI_SSE2_Subtract, NI_SSE2_Subtract, NI_SSE2_Subtract, NI_SSE2_Subtract, NI_SSE2_Subtract, NI_SSE2_Subtract, NI_SSE2_Subtract, NI_SSE2_Subtract, NI_SSE_Subtract, NI_SSE2_Subtract}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(VectorT128, op_UnaryNegation, 2, {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, 2, {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_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_Illegal, 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_ID(VectorT128, SquareRoot, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_SSE_Sqrt, NI_SSE2_Sqrt}, 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 | SimdAsHWIntrinsicFlag::SpillSideEffectsOp2)
-SIMD_AS_HWINTRINSIC_ID(VectorT128, Subtract, 2, {NI_SSE2_Subtract, NI_SSE2_Subtract, NI_SSE2_Subtract, NI_SSE2_Subtract, NI_SSE2_Subtract, NI_SSE2_Subtract, NI_SSE2_Subtract, NI_SSE2_Subtract, NI_SSE_Subtract, NI_SSE2_Subtract}, SimdAsHWIntrinsicFlag::None)
+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_SSE2_Xor, NI_SSE2_Xor, NI_SSE2_Xor, NI_SSE2_Xor, NI_SSE2_Xor, NI_SSE2_Xor, NI_SSE2_Xor, NI_SSE2_Xor, NI_SSE_Xor, NI_SSE2_Xor}, 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<T> Intrinsics
-SIMD_AS_HWINTRINSIC_ID(VectorT256, Abs, 1, {NI_AVX2_Abs, NI_VectorT256_Abs, NI_AVX2_Abs, NI_VectorT256_Abs, NI_AVX2_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_AVX2_Add, NI_AVX2_Add, NI_AVX2_Add, NI_AVX2_Add, NI_AVX2_Add, NI_AVX2_Add, NI_AVX2_Add, NI_AVX2_Add, NI_AVX_Add, NI_AVX_Add}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(VectorT256, AndNot, 2, {NI_AVX2_AndNot, NI_AVX2_AndNot, NI_AVX2_AndNot, NI_AVX2_AndNot, NI_AVX2_AndNot, NI_AVX2_AndNot, NI_AVX2_AndNot, NI_AVX2_AndNot, NI_AVX_AndNot, NI_AVX_AndNot}, SimdAsHWIntrinsicFlag::NeedsOperandsSwapped | SimdAsHWIntrinsicFlag::SpillSideEffectsOp1)
+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, 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_AVX2_And, NI_AVX2_And, NI_AVX2_And, NI_AVX2_And, NI_AVX2_And, NI_AVX2_And, NI_AVX2_And, NI_AVX2_And, NI_AVX_And, NI_AVX_And}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(VectorT256, BitwiseOr, 2, {NI_AVX2_Or, NI_AVX2_Or, NI_AVX2_Or, NI_AVX2_Or, NI_AVX2_Or, NI_AVX2_Or, NI_AVX2_Or, NI_AVX2_Or, NI_AVX_Or, NI_AVX_Or}, 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_AVX_Ceiling, NI_AVX_Ceiling}, 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, 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_Vector256_Dot, NI_Vector256_Dot, NI_Vector256_Dot, NI_Vector256_Dot, NI_Illegal, NI_Illegal, NI_Vector256_Dot, NI_Vector256_Dot}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(VectorT256, Equals, 2, {NI_AVX2_CompareEqual, NI_AVX2_CompareEqual, NI_AVX2_CompareEqual, NI_AVX2_CompareEqual, NI_AVX2_CompareEqual, NI_AVX2_CompareEqual, NI_AVX2_CompareEqual, NI_AVX2_CompareEqual, NI_AVX_CompareEqual, NI_AVX_CompareEqual}, 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_AVX_Floor, NI_AVX_Floor}, 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_Count, 0, {NI_VectorT256_get_Count, NI_VectorT256_get_Count, NI_VectorT256_get_Count, NI_VectorT256_get_Count, NI_VectorT256_get_Count, NI_VectorT256_get_Count, NI_VectorT256_get_Count, NI_VectorT256_get_Count, NI_VectorT256_get_Count, NI_VectorT256_get_Count}, 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_AVX2_CompareGreaterThan, NI_VectorT256_GreaterThan, NI_AVX2_CompareGreaterThan, NI_VectorT256_GreaterThan, NI_AVX2_CompareGreaterThan, NI_VectorT256_GreaterThan, NI_AVX2_CompareGreaterThan, NI_VectorT256_GreaterThan, NI_AVX_CompareGreaterThan, NI_AVX_CompareGreaterThan}, 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_AVX_CompareGreaterThanOrEqual, NI_AVX_CompareGreaterThanOrEqual}, 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_AVX2_CompareLessThan, NI_VectorT256_LessThan, NI_AVX2_CompareLessThan, NI_VectorT256_LessThan, NI_AVX2_CompareLessThan, NI_VectorT256_LessThan, NI_AVX2_CompareLessThan, NI_VectorT256_LessThan, NI_AVX_CompareLessThan, NI_AVX_CompareLessThan}, 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_AVX_CompareLessThanOrEqual, NI_AVX_CompareLessThanOrEqual}, 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, 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, Max, 2, {NI_AVX2_Max, NI_AVX2_Max, NI_AVX2_Max, NI_AVX2_Max, NI_AVX2_Max, NI_AVX2_Max, NI_VectorT256_Max, NI_VectorT256_Max, NI_AVX_Max, NI_AVX_Max}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(VectorT256, Min, 2, {NI_AVX2_Min, NI_AVX2_Min, NI_AVX2_Min, NI_AVX2_Min, NI_AVX2_Min, NI_AVX2_Min, NI_VectorT256_Min, NI_VectorT256_Min, NI_AVX_Min, NI_AVX_Min}, SimdAsHWIntrinsicFlag::None)
+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_Illegal, NI_Illegal, 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, 2, {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::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_AVX2_Add, NI_AVX2_Add, NI_AVX2_Add, NI_AVX2_Add, NI_AVX2_Add, NI_AVX2_Add, NI_AVX2_Add, NI_AVX2_Add, NI_AVX_Add, NI_AVX_Add}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(VectorT256, op_BitwiseAnd, 2, {NI_AVX2_And, NI_AVX2_And, NI_AVX2_And, NI_AVX2_And, NI_AVX2_And, NI_AVX2_And, NI_AVX2_And, NI_AVX2_And, NI_AVX_And, NI_AVX_And}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(VectorT256, op_BitwiseOr, 2, {NI_AVX2_Or, NI_AVX2_Or, NI_AVX2_Or, NI_AVX2_Or, NI_AVX2_Or, NI_AVX2_Or, NI_AVX2_Or, NI_AVX2_Or, NI_AVX_Or, NI_AVX_Or}, 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_AVX2_Xor, NI_AVX2_Xor, NI_AVX2_Xor, NI_AVX2_Xor, NI_AVX2_Xor, NI_AVX2_Xor, NI_AVX2_Xor, NI_AVX2_Xor, NI_AVX_Xor, NI_AVX_Xor}, 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_Vector256_op_Inequality, NI_Vector256_op_Inequality, NI_Vector256_op_Inequality, NI_Vector256_op_Inequality, NI_Vector256_op_Inequality, NI_Vector256_op_Inequality, NI_Vector256_op_Inequality, NI_Vector256_op_Inequality, NI_Vector256_op_Inequality, NI_Vector256_op_Inequality}, 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, 2, {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_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_Illegal, NI_Illegal, NI_VectorT256_op_RightShift, NI_Illegal}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(VectorT256, op_Subtraction, 2, {NI_AVX2_Subtract, NI_AVX2_Subtract, NI_AVX2_Subtract, NI_AVX2_Subtract, NI_AVX2_Subtract, NI_AVX2_Subtract, NI_AVX2_Subtract, NI_AVX2_Subtract, NI_AVX_Subtract, NI_AVX_Subtract}, SimdAsHWIntrinsicFlag::None)
-SIMD_AS_HWINTRINSIC_ID(VectorT256, op_UnaryNegation, 2, {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, 2, {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_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_Illegal, 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_ID(VectorT256, SquareRoot, 1, {NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_Illegal, NI_AVX_Sqrt, NI_AVX_Sqrt}, 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 | SimdAsHWIntrinsicFlag::SpillSideEffectsOp2)
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 | SimdAsHWIntrinsicFlag::SpillSideEffectsOp2)
-SIMD_AS_HWINTRINSIC_ID(VectorT256, Subtract, 2, {NI_AVX2_Subtract, NI_AVX2_Subtract, NI_AVX2_Subtract, NI_AVX2_Subtract, NI_AVX2_Subtract, NI_AVX2_Subtract, NI_AVX2_Subtract, NI_AVX2_Subtract, NI_AVX_Subtract, NI_AVX_Subtract}, SimdAsHWIntrinsicFlag::None)
+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_AVX2_Xor, NI_AVX2_Xor, NI_AVX2_Xor, NI_AVX2_Xor, NI_AVX2_Xor, NI_AVX2_Xor, NI_AVX2_Xor, NI_AVX2_Xor, NI_AVX_Xor, NI_AVX_Xor}, 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)
#undef SIMD_AS_HWINTRINSIC_NM
#undef SIMD_AS_HWINTRINSIC_ID
/// <param name="right">The scalar value.</param>
/// <returns>The scaled vector.</returns>
/// <remarks>The <see cref="System.Numerics.Vector2.op_Multiply" /> method defines the multiplication operation for <see cref="System.Numerics.Vector2" /> objects.</remarks>
+ [Intrinsic]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector2 operator *(Vector2 left, float right)
{
/// <param name="right">The scalar value.</param>
/// <returns>The scaled vector.</returns>
/// <remarks>The <see cref="System.Numerics.Vector2.op_Multiply" /> method defines the multiplication operation for <see cref="System.Numerics.Vector2" /> objects.</remarks>
+ [Intrinsic]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector2 operator *(float left, Vector2 right)
{
/// <param name="value">The vector to negate.</param>
/// <returns>The negated vector.</returns>
/// <remarks>The <see cref="System.Numerics.Vector2.op_UnaryNegation" /> method defines the unary negation operation for <see cref="System.Numerics.Vector2" /> objects.</remarks>
+ [Intrinsic]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector2 operator -(Vector2 value)
{
/// <param name="right">The scalar value.</param>
/// <returns>The scaled vector.</returns>
/// <remarks>The <see cref="System.Numerics.Vector3.op_Multiply" /> method defines the multiplication operation for <see cref="System.Numerics.Vector3" /> objects.</remarks>
+ [Intrinsic]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector3 operator *(Vector3 left, float right)
{
/// <param name="right">The scalar value.</param>
/// <returns>The scaled vector.</returns>
/// <remarks>The <see cref="System.Numerics.Vector3.op_Multiply" /> method defines the multiplication operation for <see cref="System.Numerics.Vector3" /> objects.</remarks>
+ [Intrinsic]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector3 operator *(float left, Vector3 right)
{
/// <param name="value">The vector to negate.</param>
/// <returns>The negated vector.</returns>
/// <remarks>The <see cref="System.Numerics.Vector3.op_UnaryNegation" /> method defines the unary negation operation for <see cref="System.Numerics.Vector3" /> objects.</remarks>
+ [Intrinsic]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector3 operator -(Vector3 value)
{
/// <param name="value2">The scalar value.</param>
/// <returns>The result of the division.</returns>
/// <remarks>The <see cref="System.Numerics.Vector4.op_Division" /> method defines the division operation for <see cref="System.Numerics.Vector4" /> objects.</remarks>
+ [Intrinsic]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 operator /(Vector4 value1, float value2)
{
/// <param name="right">The scalar value.</param>
/// <returns>The scaled vector.</returns>
/// <remarks>The <see cref="System.Numerics.Vector4.op_Multiply" /> method defines the multiplication operation for <see cref="System.Numerics.Vector4" /> objects.</remarks>
+ [Intrinsic]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 operator *(Vector4 left, float right)
{
/// <param name="right">The scalar value.</param>
/// <returns>The scaled vector.</returns>
/// <remarks>The <see cref="System.Numerics.Vector4.op_Multiply" /> method defines the multiplication operation for <see cref="System.Numerics.Vector4" /> objects.</remarks>
+ [Intrinsic]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 operator *(float left, Vector4 right)
{
/// <param name="value">The vector to negate.</param>
/// <returns>The negated vector.</returns>
/// <remarks>The <see cref="System.Numerics.Vector4.op_UnaryNegation" /> method defines the unary negation operation for <see cref="System.Numerics.Vector4" /> objects.</remarks>
+ [Intrinsic]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 operator -(Vector4 value)
{
SN_op_Inequality,
SN_op_Multiply,
SN_op_Subtraction,
+ SN_op_UnaryNegation,
SN_set_Item,
};
return NULL;
#endif
}
+ case SN_op_UnaryNegation: {
+#if defined(TARGET_ARM64) || defined(TARGET_AMD64)
+ return emit_simd_ins (cfg, klass, OP_NEGATION, args [0]->dreg, -1);
+#else
+ return NULL;
+#endif
+ }
case SN_Abs: {
// MAX(x,0-x)
MonoInst *zero = emit_xzero (cfg, klass);