From d1f76389a15ec3ecbcaa4bd8f06c0988e69ede70 Mon Sep 17 00:00:00 2001 From: Jacob Crawley Date: Thu, 10 Jul 2025 14:42:29 +0000 Subject: [PATCH 1/2] Correcting the naming of AddWidening intrinsics --- src/coreclr/jit/hwintrinsicarm64.cpp | 2 + src/coreclr/jit/hwintrinsiccodegenarm64.cpp | 25 ++++ src/coreclr/jit/hwintrinsiclistarm64sve.h | 9 +- .../Arm/Sve2.PlatformNotSupported.cs | 120 +++++++++--------- .../src/System/Runtime/Intrinsics/Arm/Sve2.cs | 120 +++++++++--------- .../ref/System.Runtime.Intrinsics.cs | 54 ++++---- .../GenerateHWIntrinsicTests_Arm.cs | 62 ++++----- 7 files changed, 204 insertions(+), 188 deletions(-) diff --git a/src/coreclr/jit/hwintrinsicarm64.cpp b/src/coreclr/jit/hwintrinsicarm64.cpp index f636ca7c0b0c57..6631da478c9784 100644 --- a/src/coreclr/jit/hwintrinsicarm64.cpp +++ b/src/coreclr/jit/hwintrinsicarm64.cpp @@ -3405,6 +3405,8 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, break; } + case NI_Sve2_AddWideningEven: + case NI_Sve2_AddWideningOdd: case NI_Sve2_SubtractWideningEven: case NI_Sve2_SubtractWideningOdd: { diff --git a/src/coreclr/jit/hwintrinsiccodegenarm64.cpp b/src/coreclr/jit/hwintrinsiccodegenarm64.cpp index 92a247f93ca3eb..6f825a38c45fee 100644 --- a/src/coreclr/jit/hwintrinsiccodegenarm64.cpp +++ b/src/coreclr/jit/hwintrinsiccodegenarm64.cpp @@ -2687,6 +2687,31 @@ void CodeGen::genHWIntrinsic(GenTreeHWIntrinsic* node) GetEmitter()->emitInsSve_R_R_R(ins, emitSize, targetReg, op1Reg, op2Reg, opt); break; + case NI_Sve2_AddWideningEven: + { + var_types returnType = node->AsHWIntrinsic()->GetSimdBaseType(); + var_types op1Type = node->AsHWIntrinsic()->GetAuxiliaryType(); + if (returnType != op1Type) + { + ins = varTypeIsUnsigned(intrin.baseType) ? INS_sve_uaddlb : INS_sve_saddlb; + } + + GetEmitter()->emitInsSve_R_R_R(ins, emitSize, targetReg, op1Reg, op2Reg, opt); + break; + } + + case NI_Sve2_AddWideningOdd: + { + var_types returnType = node->AsHWIntrinsic()->GetSimdBaseType(); + var_types op1Type = node->AsHWIntrinsic()->GetAuxiliaryType(); + if (returnType != op1Type) + { + ins = varTypeIsUnsigned(intrin.baseType) ? INS_sve_uaddlt : INS_sve_saddlt; + } + GetEmitter()->emitInsSve_R_R_R(ins, emitSize, targetReg, op1Reg, op2Reg, opt); + break; + } + case NI_Sve2_BitwiseClearXor: case NI_Sve2_Xor: if (targetReg != op1Reg) diff --git a/src/coreclr/jit/hwintrinsiclistarm64sve.h b/src/coreclr/jit/hwintrinsiclistarm64sve.h index 1ed19f661836fc..ba24efa5481bd5 100644 --- a/src/coreclr/jit/hwintrinsiclistarm64sve.h +++ b/src/coreclr/jit/hwintrinsiclistarm64sve.h @@ -312,7 +312,6 @@ HARDWARE_INTRINSIC(Sve, ZipLow, // ISA Function name SIMD size NumArg Instructions Category Flags // {TYP_BYTE, TYP_UBYTE, TYP_SHORT, TYP_USHORT, TYP_INT, TYP_UINT, TYP_LONG, TYP_ULONG, TYP_FLOAT, TYP_DOUBLE} // *************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** -// SVE2 Intrinsics #define FIRST_NI_Sve2 NI_Sve2_AbsoluteDifferenceAdd HARDWARE_INTRINSIC(Sve2, AbsoluteDifferenceAdd, -1, 3, {INS_sve_saba, INS_sve_uaba, INS_sve_saba, INS_sve_uaba, INS_sve_saba, INS_sve_uaba, INS_sve_saba, INS_sve_uaba, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_HasRMWSemantics) HARDWARE_INTRINSIC(Sve2, AbsoluteDifferenceWideningEven, -1, 2, {INS_invalid, INS_invalid, INS_sve_sabdlb, INS_sve_uabdlb, INS_sve_sabdlb, INS_sve_uabdlb, INS_sve_sabdlb, INS_sve_uabdlb, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable) @@ -328,11 +327,9 @@ HARDWARE_INTRINSIC(Sve2, AddPairwiseWidening, HARDWARE_INTRINSIC(Sve2, AddSaturate, -1, -1, {INS_sve_sqadd, INS_sve_uqadd, INS_sve_sqadd, INS_sve_uqadd, INS_sve_sqadd, INS_sve_uqadd, INS_sve_sqadd, INS_sve_uqadd, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_OptionalEmbeddedMaskedOperation|HW_Flag_HasRMWSemantics|HW_Flag_LowMaskedOperation) HARDWARE_INTRINSIC(Sve2, AddSaturateWithSignedAddend, -1, -1, {INS_invalid, INS_sve_usqadd, INS_invalid, INS_sve_usqadd, INS_invalid, INS_sve_usqadd, INS_invalid, INS_sve_usqadd, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_EmbeddedMaskedOperation|HW_Flag_HasRMWSemantics|HW_Flag_LowMaskedOperation) HARDWARE_INTRINSIC(Sve2, AddSaturateWithUnsignedAddend, -1, -1, {INS_sve_suqadd, INS_invalid, INS_sve_suqadd, INS_invalid, INS_sve_suqadd, INS_invalid, INS_sve_suqadd, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_EmbeddedMaskedOperation|HW_Flag_HasRMWSemantics|HW_Flag_LowMaskedOperation) -HARDWARE_INTRINSIC(Sve2, AddWideLower, -1, 2, {INS_invalid, INS_invalid, INS_sve_saddwb, INS_sve_uaddwb, INS_sve_saddwb, INS_sve_uaddwb, INS_sve_saddwb, INS_sve_uaddwb, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_BaseTypeFromFirstArg) -HARDWARE_INTRINSIC(Sve2, AddWideUpper, -1, 2, {INS_invalid, INS_invalid, INS_sve_saddwt, INS_sve_uaddwt, INS_sve_saddwt, INS_sve_uaddwt, INS_sve_saddwt, INS_sve_uaddwt, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_BaseTypeFromFirstArg) -HARDWARE_INTRINSIC(Sve2, AddWideningLower, -1, 2, {INS_invalid, INS_invalid, INS_sve_saddlb, INS_sve_uaddlb, INS_sve_saddlb, INS_sve_uaddlb, INS_sve_saddlb, INS_sve_uaddlb, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable) -HARDWARE_INTRINSIC(Sve2, AddWideningLowerUpper, -1, 2, {INS_invalid, INS_invalid, INS_sve_saddlbt, INS_invalid, INS_sve_saddlbt, INS_invalid, INS_sve_saddlbt, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable) -HARDWARE_INTRINSIC(Sve2, AddWideningUpper, -1, 2, {INS_invalid, INS_invalid, INS_sve_saddlt, INS_sve_uaddlt, INS_sve_saddlt, INS_sve_uaddlt, INS_sve_saddlt, INS_sve_uaddlt, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable) +HARDWARE_INTRINSIC(Sve2, AddWideningEven, -1, 2, {INS_invalid, INS_invalid, INS_sve_saddwb, INS_sve_uaddwb, INS_sve_saddwb, INS_sve_uaddwb, INS_sve_saddwb, INS_sve_uaddwb, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialImport|HW_Flag_SpecialCodeGen) +HARDWARE_INTRINSIC(Sve2, AddWideningEvenOdd, -1, 2, {INS_invalid, INS_invalid, INS_sve_saddlbt, INS_invalid, INS_sve_saddlbt, INS_invalid, INS_sve_saddlbt, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable) +HARDWARE_INTRINSIC(Sve2, AddWideningOdd, -1, 2, {INS_invalid, INS_invalid, INS_sve_saddwt, INS_sve_uaddwt, INS_sve_saddwt, INS_sve_uaddwt, INS_sve_saddwt, INS_sve_uaddwt, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialImport|HW_Flag_SpecialCodeGen) HARDWARE_INTRINSIC(Sve2, BitwiseClearXor, -1, 3, {INS_sve_bcax, INS_sve_bcax, INS_sve_bcax, INS_sve_bcax, INS_sve_bcax, INS_sve_bcax, INS_sve_bcax, INS_sve_bcax, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_HasRMWSemantics) HARDWARE_INTRINSIC(Sve2, BitwiseSelect, -1, 3, {INS_sve_bsl, INS_sve_bsl, INS_sve_bsl, INS_sve_bsl, INS_sve_bsl, INS_sve_bsl, INS_sve_bsl, INS_sve_bsl, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_HasRMWSemantics) HARDWARE_INTRINSIC(Sve2, BitwiseSelectLeftInverted, -1, 3, {INS_sve_bsl1n, INS_sve_bsl1n, INS_sve_bsl1n, INS_sve_bsl1n, INS_sve_bsl1n, INS_sve_bsl1n, INS_sve_bsl1n, INS_sve_bsl1n, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_HasRMWSemantics) diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve2.PlatformNotSupported.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve2.PlatformNotSupported.cs index 3730491079170a..df51106a430bcd 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve2.PlatformNotSupported.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve2.PlatformNotSupported.cs @@ -637,113 +637,73 @@ internal Arm64() { } /// svint16_t svaddwb[_s16](svint16_t op1, svint8_t op2) /// SADDWB Zresult.H, Zop1.H, Zop2.B /// - public static Vector AddWideLower(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddWideningEven(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svint32_t svaddwb[_s32](svint32_t op1, svint16_t op2) /// SADDWB Zresult.S, Zop1.S, Zop2.H /// - public static Vector AddWideLower(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddWideningEven(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svint64_t svaddwb[_s64](svint64_t op1, svint32_t op2) /// SADDWB Zresult.D, Zop1.D, Zop2.S /// - public static Vector AddWideLower(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddWideningEven(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svuint16_t svaddwb[_u16](svuint16_t op1, svuint8_t op2) /// UADDWB Zresult.H, Zop1.H, Zop2.B /// - public static Vector AddWideLower(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddWideningEven(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svuint32_t svaddwb[_u32](svuint32_t op1, svuint16_t op2) /// UADDWB Zresult.S, Zop1.S, Zop2.H /// - public static Vector AddWideLower(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddWideningEven(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svuint64_t svaddwb[_u64](svuint64_t op1, svuint32_t op2) /// UADDWB Zresult.D, Zop1.D, Zop2.S /// - public static Vector AddWideLower(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - - // Add wide (top) - - /// - /// svint16_t svaddwt[_s16](svint16_t op1, svint8_t op2) - /// SADDWT Zresult.H, Zop1.H, Zop2.B - /// - public static Vector AddWideUpper(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - - /// - /// svint32_t svaddwt[_s32](svint32_t op1, svint16_t op2) - /// SADDWT Zresult.S, Zop1.S, Zop2.H - /// - public static Vector AddWideUpper(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - - /// - /// svint64_t svaddwt[_s64](svint64_t op1, svint32_t op2) - /// SADDWT Zresult.D, Zop1.D, Zop2.S - /// - public static Vector AddWideUpper(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - - /// - /// svuint16_t svaddwt[_u16](svuint16_t op1, svuint8_t op2) - /// UADDWT Zresult.H, Zop1.H, Zop2.B - /// - public static Vector AddWideUpper(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - - /// - /// svuint32_t svaddwt[_u32](svuint32_t op1, svuint16_t op2) - /// UADDWT Zresult.S, Zop1.S, Zop2.H - /// - public static Vector AddWideUpper(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - - /// - /// svuint64_t svaddwt[_u64](svuint64_t op1, svuint32_t op2) - /// UADDWT Zresult.D, Zop1.D, Zop2.S - /// - public static Vector AddWideUpper(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - - // Add long (bottom) + public static Vector AddWideningEven(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svint16_t svaddlb[_s16](svint8_t op1, svint8_t op2) /// SADDLB Zresult.H, Zop1.B, Zop2.B /// - public static Vector AddWideningLower(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddWideningEven(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svint32_t svaddlb[_s32](svint16_t op1, svint16_t op2) /// SADDLB Zresult.S, Zop1.H, Zop2.H /// - public static Vector AddWideningLower(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddWideningEven(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svint64_t svaddlb[_s64](svint32_t op1, svint32_t op2) /// SADDLB Zresult.D, Zop1.S, Zop2.S /// - public static Vector AddWideningLower(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddWideningEven(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svuint16_t svaddlb[_u16](svuint8_t op1, svuint8_t op2) /// UADDLB Zresult.H, Zop1.B, Zop2.B /// - public static Vector AddWideningLower(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddWideningEven(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svuint32_t svaddlb[_u32](svuint16_t op1, svuint16_t op2) /// UADDLB Zresult.S, Zop1.H, Zop2.H /// - public static Vector AddWideningLower(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddWideningEven(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svuint64_t svaddlb[_u64](svuint32_t op1, svuint32_t op2) /// UADDLB Zresult.D, Zop1.S, Zop2.S /// - public static Vector AddWideningLower(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddWideningEven(Vector left, Vector right) { throw new PlatformNotSupportedException(); } // Add long (bottom + top) @@ -751,57 +711,93 @@ internal Arm64() { } /// svint16_t svaddlbt[_s16](svint8_t op1, svint8_t op2) /// SADDLBT Zresult.H, Zop1.B, Zop2.B /// - public static Vector AddWideningLowerUpper(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddWideningEvenOdd(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svint32_t svaddlbt[_s32](svint16_t op1, svint16_t op2) /// SADDLBT Zresult.S, Zop1.H, Zop2.H /// - public static Vector AddWideningLowerUpper(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddWideningEvenOdd(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svint64_t svaddlbt[_s64](svint32_t op1, svint32_t op2) /// SADDLBT Zresult.D, Zop1.S, Zop2.S /// - public static Vector AddWideningLowerUpper(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddWideningEvenOdd(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + + // Add wide (top) + + /// + /// svint16_t svaddwt[_s16](svint16_t op1, svint8_t op2) + /// SADDWT Zresult.H, Zop1.H, Zop2.B + /// + public static Vector AddWideningOdd(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + + /// + /// svint32_t svaddwt[_s32](svint32_t op1, svint16_t op2) + /// SADDWT Zresult.S, Zop1.S, Zop2.H + /// + public static Vector AddWideningOdd(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + + /// + /// svint64_t svaddwt[_s64](svint64_t op1, svint32_t op2) + /// SADDWT Zresult.D, Zop1.D, Zop2.S + /// + public static Vector AddWideningOdd(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + + /// + /// svuint16_t svaddwt[_u16](svuint16_t op1, svuint8_t op2) + /// UADDWT Zresult.H, Zop1.H, Zop2.B + /// + public static Vector AddWideningOdd(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + + /// + /// svuint32_t svaddwt[_u32](svuint32_t op1, svuint16_t op2) + /// UADDWT Zresult.S, Zop1.S, Zop2.H + /// + public static Vector AddWideningOdd(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - // Add long (top) + /// + /// svuint64_t svaddwt[_u64](svuint64_t op1, svuint32_t op2) + /// UADDWT Zresult.D, Zop1.D, Zop2.S + /// + public static Vector AddWideningOdd(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svint16_t svaddlt[_s16](svint8_t op1, svint8_t op2) /// SADDLT Zresult.H, Zop1.B, Zop2.B /// - public static Vector AddWideningUpper(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddWideningOdd(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svint32_t svaddlt[_s32](svint16_t op1, svint16_t op2) /// SADDLT Zresult.S, Zop1.H, Zop2.H /// - public static Vector AddWideningUpper(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddWideningOdd(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svint64_t svaddlt[_s64](svint32_t op1, svint32_t op2) /// SADDLT Zresult.D, Zop1.S, Zop2.S /// - public static Vector AddWideningUpper(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddWideningOdd(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svuint16_t svaddlt[_u16](svuint8_t op1, svuint8_t op2) /// UADDLT Zresult.H, Zop1.B, Zop2.B /// - public static Vector AddWideningUpper(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddWideningOdd(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svuint32_t svaddlt[_u32](svuint16_t op1, svuint16_t op2) /// UADDLT Zresult.S, Zop1.H, Zop2.H /// - public static Vector AddWideningUpper(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddWideningOdd(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svuint64_t svaddlt[_u64](svuint32_t op1, svuint32_t op2) /// UADDLT Zresult.D, Zop1.S, Zop2.S /// - public static Vector AddWideningUpper(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddWideningOdd(Vector left, Vector right) { throw new PlatformNotSupportedException(); } // Bitwise clear and exclusive OR diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve2.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve2.cs index c5627682918f03..e5e6e8eff99956 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve2.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve2.cs @@ -637,113 +637,73 @@ internal Arm64() { } /// svint16_t svaddwb[_s16](svint16_t op1, svint8_t op2) /// SADDWB Zresult.H, Zop1.H, Zop2.B /// - public static Vector AddWideLower(Vector left, Vector right) => AddWideLower(left, right); + public static Vector AddWideningEven(Vector left, Vector right) => AddWideningEven(left, right); /// /// svint32_t svaddwb[_s32](svint32_t op1, svint16_t op2) /// SADDWB Zresult.S, Zop1.S, Zop2.H /// - public static Vector AddWideLower(Vector left, Vector right) => AddWideLower(left, right); + public static Vector AddWideningEven(Vector left, Vector right) => AddWideningEven(left, right); /// /// svint64_t svaddwb[_s64](svint64_t op1, svint32_t op2) /// SADDWB Zresult.D, Zop1.D, Zop2.S /// - public static Vector AddWideLower(Vector left, Vector right) => AddWideLower(left, right); + public static Vector AddWideningEven(Vector left, Vector right) => AddWideningEven(left, right); /// /// svuint16_t svaddwb[_u16](svuint16_t op1, svuint8_t op2) /// UADDWB Zresult.H, Zop1.H, Zop2.B /// - public static Vector AddWideLower(Vector left, Vector right) => AddWideLower(left, right); + public static Vector AddWideningEven(Vector left, Vector right) => AddWideningEven(left, right); /// /// svuint32_t svaddwb[_u32](svuint32_t op1, svuint16_t op2) /// UADDWB Zresult.S, Zop1.S, Zop2.H /// - public static Vector AddWideLower(Vector left, Vector right) => AddWideLower(left, right); + public static Vector AddWideningEven(Vector left, Vector right) => AddWideningEven(left, right); /// /// svuint64_t svaddwb[_u64](svuint64_t op1, svuint32_t op2) /// UADDWB Zresult.D, Zop1.D, Zop2.S /// - public static Vector AddWideLower(Vector left, Vector right) => AddWideLower(left, right); - - // Add wide (top) - - /// - /// svint16_t svaddwt[_s16](svint16_t op1, svint8_t op2) - /// SADDWT Zresult.H, Zop1.H, Zop2.B - /// - public static Vector AddWideUpper(Vector left, Vector right) => AddWideUpper(left, right); - - /// - /// svint32_t svaddwt[_s32](svint32_t op1, svint16_t op2) - /// SADDWT Zresult.S, Zop1.S, Zop2.H - /// - public static Vector AddWideUpper(Vector left, Vector right) => AddWideUpper(left, right); - - /// - /// svint64_t svaddwt[_s64](svint64_t op1, svint32_t op2) - /// SADDWT Zresult.D, Zop1.D, Zop2.S - /// - public static Vector AddWideUpper(Vector left, Vector right) => AddWideUpper(left, right); - - /// - /// svuint16_t svaddwt[_u16](svuint16_t op1, svuint8_t op2) - /// UADDWT Zresult.H, Zop1.H, Zop2.B - /// - public static Vector AddWideUpper(Vector left, Vector right) => AddWideUpper(left, right); - - /// - /// svuint32_t svaddwt[_u32](svuint32_t op1, svuint16_t op2) - /// UADDWT Zresult.S, Zop1.S, Zop2.H - /// - public static Vector AddWideUpper(Vector left, Vector right) => AddWideUpper(left, right); - - /// - /// svuint64_t svaddwt[_u64](svuint64_t op1, svuint32_t op2) - /// UADDWT Zresult.D, Zop1.D, Zop2.S - /// - public static Vector AddWideUpper(Vector left, Vector right) => AddWideUpper(left, right); - - // Add long (bottom) + public static Vector AddWideningEven(Vector left, Vector right) => AddWideningEven(left, right); /// /// svint16_t svaddlb[_s16](svint8_t op1, svint8_t op2) /// SADDLB Zresult.H, Zop1.B, Zop2.B /// - public static Vector AddWideningLower(Vector left, Vector right) => AddWideningLower(left, right); + public static Vector AddWideningEven(Vector left, Vector right) => AddWideningEven(left, right); /// /// svint32_t svaddlb[_s32](svint16_t op1, svint16_t op2) /// SADDLB Zresult.S, Zop1.H, Zop2.H /// - public static Vector AddWideningLower(Vector left, Vector right) => AddWideningLower(left, right); + public static Vector AddWideningEven(Vector left, Vector right) => AddWideningEven(left, right); /// /// svint64_t svaddlb[_s64](svint32_t op1, svint32_t op2) /// SADDLB Zresult.D, Zop1.S, Zop2.S /// - public static Vector AddWideningLower(Vector left, Vector right) => AddWideningLower(left, right); + public static Vector AddWideningEven(Vector left, Vector right) => AddWideningEven(left, right); /// /// svuint16_t svaddlb[_u16](svuint8_t op1, svuint8_t op2) /// UADDLB Zresult.H, Zop1.B, Zop2.B /// - public static Vector AddWideningLower(Vector left, Vector right) => AddWideningLower(left, right); + public static Vector AddWideningEven(Vector left, Vector right) => AddWideningEven(left, right); /// /// svuint32_t svaddlb[_u32](svuint16_t op1, svuint16_t op2) /// UADDLB Zresult.S, Zop1.H, Zop2.H /// - public static Vector AddWideningLower(Vector left, Vector right) => AddWideningLower(left, right); + public static Vector AddWideningEven(Vector left, Vector right) => AddWideningEven(left, right); /// /// svuint64_t svaddlb[_u64](svuint32_t op1, svuint32_t op2) /// UADDLB Zresult.D, Zop1.S, Zop2.S /// - public static Vector AddWideningLower(Vector left, Vector right) => AddWideningLower(left, right); + public static Vector AddWideningEven(Vector left, Vector right) => AddWideningEven(left, right); // Add long (bottom + top) @@ -751,57 +711,93 @@ internal Arm64() { } /// svint16_t svaddlbt[_s16](svint8_t op1, svint8_t op2) /// SADDLBT Zresult.H, Zop1.B, Zop2.B /// - public static Vector AddWideningLowerUpper(Vector left, Vector right) => AddWideningLowerUpper(left, right); + public static Vector AddWideningEvenOdd(Vector left, Vector right) => AddWideningEvenOdd(left, right); /// /// svint32_t svaddlbt[_s32](svint16_t op1, svint16_t op2) /// SADDLBT Zresult.S, Zop1.H, Zop2.H /// - public static Vector AddWideningLowerUpper(Vector left, Vector right) => AddWideningLowerUpper(left, right); + public static Vector AddWideningEvenOdd(Vector left, Vector right) => AddWideningEvenOdd(left, right); /// /// svint64_t svaddlbt[_s64](svint32_t op1, svint32_t op2) /// SADDLBT Zresult.D, Zop1.S, Zop2.S /// - public static Vector AddWideningLowerUpper(Vector left, Vector right) => AddWideningLowerUpper(left, right); + public static Vector AddWideningEvenOdd(Vector left, Vector right) => AddWideningEvenOdd(left, right); + + // Add wide (top) + + /// + /// svint16_t svaddwt[_s16](svint16_t op1, svint8_t op2) + /// SADDWT Zresult.H, Zop1.H, Zop2.B + /// + public static Vector AddWideningOdd(Vector left, Vector right) => AddWideningOdd(left, right); + + /// + /// svint32_t svaddwt[_s32](svint32_t op1, svint16_t op2) + /// SADDWT Zresult.S, Zop1.S, Zop2.H + /// + public static Vector AddWideningOdd(Vector left, Vector right) => AddWideningOdd(left, right); + + /// + /// svint64_t svaddwt[_s64](svint64_t op1, svint32_t op2) + /// SADDWT Zresult.D, Zop1.D, Zop2.S + /// + public static Vector AddWideningOdd(Vector left, Vector right) => AddWideningOdd(left, right); + + /// + /// svuint16_t svaddwt[_u16](svuint16_t op1, svuint8_t op2) + /// UADDWT Zresult.H, Zop1.H, Zop2.B + /// + public static Vector AddWideningOdd(Vector left, Vector right) => AddWideningOdd(left, right); + + /// + /// svuint32_t svaddwt[_u32](svuint32_t op1, svuint16_t op2) + /// UADDWT Zresult.S, Zop1.S, Zop2.H + /// + public static Vector AddWideningOdd(Vector left, Vector right) => AddWideningOdd(left, right); - // Add long (top) + /// + /// svuint64_t svaddwt[_u64](svuint64_t op1, svuint32_t op2) + /// UADDWT Zresult.D, Zop1.D, Zop2.S + /// + public static Vector AddWideningOdd(Vector left, Vector right) => AddWideningOdd(left, right); /// /// svint16_t svaddlt[_s16](svint8_t op1, svint8_t op2) /// SADDLT Zresult.H, Zop1.B, Zop2.B /// - public static Vector AddWideningUpper(Vector left, Vector right) => AddWideningUpper(left, right); + public static Vector AddWideningOdd(Vector left, Vector right) => AddWideningOdd(left, right); /// /// svint32_t svaddlt[_s32](svint16_t op1, svint16_t op2) /// SADDLT Zresult.S, Zop1.H, Zop2.H /// - public static Vector AddWideningUpper(Vector left, Vector right) => AddWideningUpper(left, right); + public static Vector AddWideningOdd(Vector left, Vector right) => AddWideningOdd(left, right); /// /// svint64_t svaddlt[_s64](svint32_t op1, svint32_t op2) /// SADDLT Zresult.D, Zop1.S, Zop2.S /// - public static Vector AddWideningUpper(Vector left, Vector right) => AddWideningUpper(left, right); + public static Vector AddWideningOdd(Vector left, Vector right) => AddWideningOdd(left, right); /// /// svuint16_t svaddlt[_u16](svuint8_t op1, svuint8_t op2) /// UADDLT Zresult.H, Zop1.B, Zop2.B /// - public static Vector AddWideningUpper(Vector left, Vector right) => AddWideningUpper(left, right); + public static Vector AddWideningOdd(Vector left, Vector right) => AddWideningOdd(left, right); /// /// svuint32_t svaddlt[_u32](svuint16_t op1, svuint16_t op2) /// UADDLT Zresult.S, Zop1.H, Zop2.H /// - public static Vector AddWideningUpper(Vector left, Vector right) => AddWideningUpper(left, right); + public static Vector AddWideningOdd(Vector left, Vector right) => AddWideningOdd(left, right); /// /// svuint64_t svaddlt[_u64](svuint32_t op1, svuint32_t op2) /// UADDLT Zresult.D, Zop1.S, Zop2.S /// - public static Vector AddWideningUpper(Vector left, Vector right) => AddWideningUpper(left, right); + public static Vector AddWideningOdd(Vector left, Vector right) => AddWideningOdd(left, right); // Bitwise clear and exclusive OR diff --git a/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs b/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs index 11853b83c9f825..ea9e30075fe82b 100644 --- a/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs +++ b/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs @@ -6194,33 +6194,33 @@ internal Arm64() { } public static System.Numerics.Vector AddSaturateWithUnsignedAddend(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector AddSaturateWithUnsignedAddend(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector AddSaturateWithUnsignedAddend(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideLower(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideLower(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideLower(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideLower(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideLower(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideLower(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideUpper(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideUpper(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideUpper(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideUpper(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideUpper(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideUpper(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideningLower(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideningLower(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideningLower(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideningLower(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideningLower(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideningLower(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideningLowerUpper(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideningLowerUpper(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideningLowerUpper(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideningUpper(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideningUpper(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideningUpper(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideningUpper(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideningUpper(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddWideningUpper(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningEvenOdd(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningEvenOdd(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningEvenOdd(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningOdd(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningOdd(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningOdd(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningOdd(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningOdd(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningOdd(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningOdd(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningOdd(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningOdd(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningOdd(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningOdd(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddWideningOdd(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector BitwiseClearXor(System.Numerics.Vector xor, System.Numerics.Vector value, System.Numerics.Vector mask) { throw null; } public static System.Numerics.Vector BitwiseClearXor(System.Numerics.Vector xor, System.Numerics.Vector value, System.Numerics.Vector mask) { throw null; } public static System.Numerics.Vector BitwiseClearXor(System.Numerics.Vector xor, System.Numerics.Vector value, System.Numerics.Vector mask) { throw null; } diff --git a/src/tests/Common/GenerateHWIntrinsicTests/GenerateHWIntrinsicTests_Arm.cs b/src/tests/Common/GenerateHWIntrinsicTests/GenerateHWIntrinsicTests_Arm.cs index fee59ce7cd373d..758b4aa601f898 100644 --- a/src/tests/Common/GenerateHWIntrinsicTests/GenerateHWIntrinsicTests_Arm.cs +++ b/src/tests/Common/GenerateHWIntrinsicTests/GenerateHWIntrinsicTests_Arm.cs @@ -4915,37 +4915,37 @@ ("SveVecBinOpDifferentRetType.template", new Dictionary {["TestName"] = "Sve2_AddSaturateWithUnsignedAddend_int_uint", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddSaturateWithUnsignedAddend", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddSaturate(left[i], right[i]) != result[i]", ["GetIterResult"] = "(Int32) Helpers.AddSaturate(left[i], right[i])"}), ("SveVecBinOpDifferentRetType.template", new Dictionary {["TestName"] = "Sve2_AddSaturateWithUnsignedAddend_long_ulong", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddSaturateWithUnsignedAddend", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddSaturate(left[i], right[i]) != result[i]", ["GetIterResult"] = "(Int64) Helpers.AddSaturate(left[i], right[i])"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideLower_short_sbyte", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideLower", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i], right[i * 2]) != result[i]", ["GetIterResult"] = "(Int16) Helpers.AddWidening(left[i], right[i * 2])"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideLower_int_short", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideLower", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i], right[i * 2]) != result[i]", ["GetIterResult"] = "(Int32) Helpers.AddWidening(left[i], right[i * 2])"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideLower_long_int", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideLower", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i], right[i * 2]) != result[i]", ["GetIterResult"] = "(Int64) Helpers.AddWidening(left[i], right[i * 2])",}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideLower_ushort_byte", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideLower", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i], right[i * 2])!= result[i]", ["GetIterResult"] = "(UInt16) Helpers.AddWidening(left[i], right[i * 2])"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideLower_uint_ushort", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideLower", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i], right[i * 2]) != result[i]", ["GetIterResult"] = "(UInt32) Helpers.AddWidening(left[i], right[i * 2])"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideLower_ulong_uint", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideLower", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i], right[i * 2]) != result[i]", ["GetIterResult"] = "(UInt64) Helpers.AddWidening(left[i], right[i * 2])"}), - - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideUpper_short_sbyte", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideUpper", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(Int16) Helpers.AddWidening(left[i], right[i * 2 + 1])"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideUpper_int_short", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideUpper", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(Int32) Helpers.AddWidening(left[i], right[i * 2 + 1])"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideUpper_long_int", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideUpper", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(Int64) Helpers.AddWidening(left[i], right[i * 2 + 1])"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideUpper_ushort_byte", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideUpper", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(UInt16) Helpers.AddWidening(left[i], right[i * 2 + 1])"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideUpper_uint_ushort", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideUpper", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(UInt32) Helpers.AddWidening(left[i], right[i * 2 + 1])"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideUpper_ulong_uint", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideUpper", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(UInt64) Helpers.AddWidening(left[i], right[i * 2 + 1])"}), - - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningLower_short_sbyte", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningLower", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2], right[i * 2]) != result[i]", ["GetIterResult"] = "(Int16) Helpers.AddWidening(left[i * 2], right[i * 2])"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningLower_int_short", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningLower", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2], right[i * 2]) != result[i]", ["GetIterResult"] = "(Int32) Helpers.AddWidening(left[i * 2], right[i * 2])"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningLower_long_int", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningLower", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2], right[i * 2]) != result[i]", ["GetIterResult"] = "(Int64) Helpers.AddWidening(left[i * 2], right[i * 2])"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningLower_ushort_byte", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningLower", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2], right[i * 2]) != result[i]", ["GetIterResult"] = "(UInt16) Helpers.AddWidening(left[i * 2], right[i * 2])"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningLower_uint_ushort", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningLower", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2], right[i * 2]) != result[i]", ["GetIterResult"] = "(UInt32) Helpers.AddWidening(left[i * 2], right[i * 2])"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningLower_ulong_uint", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningLower", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2], right[i * 2]) != result[i]", ["GetIterResult"] = "(UInt64) Helpers.AddWidening(left[i * 2], right[i * 2])"}), - - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningLowerUpper_short_sbyte", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningLowerUpper", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(Int16) Helpers.AddWidening(left[i * 2], right[i * 2 + 1])"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningLowerUpper_int_short", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningLowerUpper", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(Int32) Helpers.AddWidening(left[i * 2], right[i * 2 + 1])"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningLowerUpper_long_int", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningLowerUpper", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(Int64) Helpers.AddWidening(left[i * 2], right[i * 2 + 1])"}), - - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningUpper_short_sbyte", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningUpper", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2 + 1], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(Int16) Helpers.AddWidening(left[i * 2 + 1], right[i * 2 + 1])"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningUpper_int_short", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningUpper", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2 + 1], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(Int32) Helpers.AddWidening(left[i * 2 + 1], right[i * 2 + 1])"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningUpper_long_int", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningUpper", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2 + 1], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(Int64) Helpers.AddWidening(left[i * 2 + 1], right[i * 2 + 1])"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningUpper_ushort_byte", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningUpper", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2 + 1], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(UInt16) Helpers.AddWidening(left[i * 2 + 1], right[i * 2 + 1])"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningUpper_uint_ushort", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningUpper", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2 + 1], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(UInt32) Helpers.AddWidening(left[i * 2 + 1], right[i * 2 + 1])"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningUpper_ulong_uint", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningUpper", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2 + 1], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(UInt64) Helpers.AddWidening(left[i * 2 + 1], right[i * 2 + 1])"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningEven_short_short_sbyte", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningEven", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i], right[i * 2]) != result[i]", ["GetIterResult"] = "(Int16) Helpers.AddWidening(left[i], right[i * 2])"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningEven_int_int_short", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningEven", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i], right[i * 2]) != result[i]", ["GetIterResult"] = "(Int32) Helpers.AddWidening(left[i], right[i * 2])"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningEven_long_long_int", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningEven", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i], right[i * 2]) != result[i]", ["GetIterResult"] = "(Int64) Helpers.AddWidening(left[i], right[i * 2])",}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningEven_ushort_ushort_byte", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningEven", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i], right[i * 2])!= result[i]", ["GetIterResult"] = "(UInt16) Helpers.AddWidening(left[i], right[i * 2])"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningEven_uint_uint_ushort", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningEven", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i], right[i * 2]) != result[i]", ["GetIterResult"] = "(UInt32) Helpers.AddWidening(left[i], right[i * 2])"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningEven_ulong_ulong_uint", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningEven", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i], right[i * 2]) != result[i]", ["GetIterResult"] = "(UInt64) Helpers.AddWidening(left[i], right[i * 2])"}), + + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningEven_short_sbyte_sbyte", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningEven", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2], right[i * 2]) != result[i]", ["GetIterResult"] = "(Int16) Helpers.AddWidening(left[i * 2], right[i * 2])"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningEven_int_short_short", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningEven", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2], right[i * 2]) != result[i]", ["GetIterResult"] = "(Int32) Helpers.AddWidening(left[i * 2], right[i * 2])"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningEven_long_int_int", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningEven", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2], right[i * 2]) != result[i]", ["GetIterResult"] = "(Int64) Helpers.AddWidening(left[i * 2], right[i * 2])"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningEven_ushort_byte_byte", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningEven", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2], right[i * 2]) != result[i]", ["GetIterResult"] = "(UInt16) Helpers.AddWidening(left[i * 2], right[i * 2])"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningEven_uint_ushort_ushort", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningEven", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2], right[i * 2]) != result[i]", ["GetIterResult"] = "(UInt32) Helpers.AddWidening(left[i * 2], right[i * 2])"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningEven_ulong_uint_uint", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningEven", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2], right[i * 2]) != result[i]", ["GetIterResult"] = "(UInt64) Helpers.AddWidening(left[i * 2], right[i * 2])"}), + + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningEvenOdd_short_sbyte", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningEvenOdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(Int16) Helpers.AddWidening(left[i * 2], right[i * 2 + 1])"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningEvenOdd_int_short", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningEvenOdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(Int32) Helpers.AddWidening(left[i * 2], right[i * 2 + 1])"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningEvenOdd_long_int", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningEvenOdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(Int64) Helpers.AddWidening(left[i * 2], right[i * 2 + 1])"}), + + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningOdd_short_short_sbyte", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningOdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(Int16) Helpers.AddWidening(left[i], right[i * 2 + 1])"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningOdd_int_int_short", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningOdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(Int32) Helpers.AddWidening(left[i], right[i * 2 + 1])"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningOdd_long_long_int", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningOdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(Int64) Helpers.AddWidening(left[i], right[i * 2 + 1])"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningOdd_ushort_ushort_byte", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningOdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(UInt16) Helpers.AddWidening(left[i], right[i * 2 + 1])"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningOdd_uint_uint_ushort", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningOdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(UInt32) Helpers.AddWidening(left[i], right[i * 2 + 1])"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningOdd_ulong_ulong_uint", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningOdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(UInt64) Helpers.AddWidening(left[i], right[i * 2 + 1])"}), + + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningOdd_short_sbyte_sbyte", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningOdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2 + 1], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(Int16) Helpers.AddWidening(left[i * 2 + 1], right[i * 2 + 1])"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningOdd_int_short_short", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningOdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2 + 1], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(Int32) Helpers.AddWidening(left[i * 2 + 1], right[i * 2 + 1])"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningOdd_long_int_int", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningOdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2 + 1], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(Int64) Helpers.AddWidening(left[i * 2 + 1], right[i * 2 + 1])"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningOdd_ushort_byte_byte", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningOdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2 + 1], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(UInt16) Helpers.AddWidening(left[i * 2 + 1], right[i * 2 + 1])"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningOdd_uint_ushort_ushort", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningOdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2 + 1], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(UInt32) Helpers.AddWidening(left[i * 2 + 1], right[i * 2 + 1])"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddWideningOdd_ulong_uint_uint", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddWideningOdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddWidening(left[i * 2 + 1], right[i * 2 + 1]) != result[i]", ["GetIterResult"] = "(UInt64) Helpers.AddWidening(left[i * 2 + 1], right[i * 2 + 1])"}), ("SveVecTernOpTest.template", new Dictionary { ["TestName"] = "Sve2_BitwiseClearXor_sbyte", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "BitwiseClearXor", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "SByte", ["Op3VectorType"] = "Vector", ["Op3BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp3"] = "TestLibrary.Generator.GetSByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "result[i] != (firstOp[i] ^ (secondOp[i] &~ thirdOp[i]))", ["GetIterResult"] = "(SByte) (firstOp[i] ^ (secondOp[i] &~ thirdOp[i]))"}), ("SveVecTernOpTest.template", new Dictionary { ["TestName"] = "Sve2_BitwiseClearXor_short", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "BitwiseClearXor", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int16", ["Op3VectorType"] = "Vector", ["Op3BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt16()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "result[i] != (firstOp[i] ^ (secondOp[i] &~ thirdOp[i]))", ["GetIterResult"] = "(Int16) (firstOp[i] ^ (secondOp[i] &~ thirdOp[i]))"}), From 0bb71440e2573adc0ddada4eb772377ba723bf8f Mon Sep 17 00:00:00 2001 From: Jacob Crawley Date: Tue, 15 Jul 2025 15:56:36 +0000 Subject: [PATCH 2/2] rename of AddPairwiseWidening to AddPairwiseWideningAndAdd --- src/coreclr/jit/hwintrinsiclistarm64sve.h | 2 +- .../Intrinsics/Arm/Sve2.PlatformNotSupported.cs | 12 ++++++------ .../src/System/Runtime/Intrinsics/Arm/Sve2.cs | 12 ++++++------ .../ref/System.Runtime.Intrinsics.cs | 12 ++++++------ .../GenerateHWIntrinsicTests_Arm.cs | 12 ++++++------ 5 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/coreclr/jit/hwintrinsiclistarm64sve.h b/src/coreclr/jit/hwintrinsiclistarm64sve.h index ba24efa5481bd5..e122c847bb5fcc 100644 --- a/src/coreclr/jit/hwintrinsiclistarm64sve.h +++ b/src/coreclr/jit/hwintrinsiclistarm64sve.h @@ -323,7 +323,7 @@ HARDWARE_INTRINSIC(Sve2, AddCarryWideningOdd, HARDWARE_INTRINSIC(Sve2, AddHighNarrowingEven, -1, 2, {INS_sve_addhnb, INS_sve_addhnb, INS_sve_addhnb, INS_sve_addhnb, INS_sve_addhnb, INS_sve_addhnb, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable) HARDWARE_INTRINSIC(Sve2, AddHighNarrowingOdd, -1, 3, {INS_sve_addhnt, INS_sve_addhnt, INS_sve_addhnt, INS_sve_addhnt, INS_sve_addhnt, INS_sve_addhnt, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_HasRMWSemantics) HARDWARE_INTRINSIC(Sve2, AddPairwise, -1, -1, {INS_sve_addp, INS_sve_addp, INS_sve_addp, INS_sve_addp, INS_sve_addp, INS_sve_addp, INS_sve_addp, INS_sve_addp, INS_sve_faddp, INS_sve_faddp}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_EmbeddedMaskedOperation|HW_Flag_HasRMWSemantics|HW_Flag_LowMaskedOperation|HW_Flag_ReduceOperation) -HARDWARE_INTRINSIC(Sve2, AddPairwiseWidening, -1, -1, {INS_invalid, INS_invalid, INS_sve_sadalp, INS_sve_uadalp, INS_sve_sadalp, INS_sve_uadalp, INS_sve_sadalp, INS_sve_uadalp, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_EmbeddedMaskedOperation|HW_Flag_HasRMWSemantics|HW_Flag_LowMaskedOperation) +HARDWARE_INTRINSIC(Sve2, AddPairwiseWideningAndAdd, -1, -1, {INS_invalid, INS_invalid, INS_sve_sadalp, INS_sve_uadalp, INS_sve_sadalp, INS_sve_uadalp, INS_sve_sadalp, INS_sve_uadalp, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_EmbeddedMaskedOperation|HW_Flag_HasRMWSemantics|HW_Flag_LowMaskedOperation) HARDWARE_INTRINSIC(Sve2, AddSaturate, -1, -1, {INS_sve_sqadd, INS_sve_uqadd, INS_sve_sqadd, INS_sve_uqadd, INS_sve_sqadd, INS_sve_uqadd, INS_sve_sqadd, INS_sve_uqadd, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_OptionalEmbeddedMaskedOperation|HW_Flag_HasRMWSemantics|HW_Flag_LowMaskedOperation) HARDWARE_INTRINSIC(Sve2, AddSaturateWithSignedAddend, -1, -1, {INS_invalid, INS_sve_usqadd, INS_invalid, INS_sve_usqadd, INS_invalid, INS_sve_usqadd, INS_invalid, INS_sve_usqadd, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_EmbeddedMaskedOperation|HW_Flag_HasRMWSemantics|HW_Flag_LowMaskedOperation) HARDWARE_INTRINSIC(Sve2, AddSaturateWithUnsignedAddend, -1, -1, {INS_sve_suqadd, INS_invalid, INS_sve_suqadd, INS_invalid, INS_sve_suqadd, INS_invalid, INS_sve_suqadd, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_EmbeddedMaskedOperation|HW_Flag_HasRMWSemantics|HW_Flag_LowMaskedOperation) diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve2.PlatformNotSupported.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve2.PlatformNotSupported.cs index df51106a430bcd..f909cd61615961 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve2.PlatformNotSupported.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve2.PlatformNotSupported.cs @@ -426,7 +426,7 @@ internal Arm64() { } /// SADALP Ztied1.H, Pg/M, Zop2.B /// SADALP Ztied1.H, Pg/M, Zop2.B /// - public static Vector AddPairwiseWidening(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddPairwiseWideningAndAdd(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svint32_t svadalp[_s32]_m(svbool_t pg, svint32_t op1, svint16_t op2) @@ -435,7 +435,7 @@ internal Arm64() { } /// SADALP Ztied1.S, Pg/M, Zop2.H /// SADALP Ztied1.S, Pg/M, Zop2.H /// - public static Vector AddPairwiseWidening(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddPairwiseWideningAndAdd(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svint64_t svadalp[_s64]_m(svbool_t pg, svint64_t op1, svint32_t op2) @@ -444,7 +444,7 @@ internal Arm64() { } /// SADALP Ztied1.D, Pg/M, Zop2.S /// SADALP Ztied1.D, Pg/M, Zop2.S /// - public static Vector AddPairwiseWidening(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddPairwiseWideningAndAdd(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svuint16_t svadalp[_u16]_m(svbool_t pg, svuint16_t op1, svuint8_t op2) @@ -453,7 +453,7 @@ internal Arm64() { } /// UADALP Ztied1.H, Pg/M, Zop2.B /// UADALP Ztied1.H, Pg/M, Zop2.B /// - public static Vector AddPairwiseWidening(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddPairwiseWideningAndAdd(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svuint32_t svadalp[_u32]_m(svbool_t pg, svuint32_t op1, svuint16_t op2) @@ -462,7 +462,7 @@ internal Arm64() { } /// UADALP Ztied1.S, Pg/M, Zop2.H /// UADALP Ztied1.S, Pg/M, Zop2.H /// - public static Vector AddPairwiseWidening(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddPairwiseWideningAndAdd(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svuint64_t svadalp[_u64]_m(svbool_t pg, svuint64_t op1, svuint32_t op2) @@ -471,7 +471,7 @@ internal Arm64() { } /// UADALP Ztied1.D, Pg/M, Zop2.S /// UADALP Ztied1.D, Pg/M, Zop2.S /// - public static Vector AddPairwiseWidening(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static Vector AddPairwiseWideningAndAdd(Vector left, Vector right) { throw new PlatformNotSupportedException(); } // Saturating add diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve2.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve2.cs index e5e6e8eff99956..bab0e4e55dd1e8 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve2.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve2.cs @@ -425,7 +425,7 @@ internal Arm64() { } /// SADALP Ztied1.H, Pg/M, Zop2.B /// SADALP Ztied1.H, Pg/M, Zop2.B /// - public static Vector AddPairwiseWidening(Vector left, Vector right) => AddPairwiseWidening(left, right); + public static Vector AddPairwiseWideningAndAdd(Vector left, Vector right) => AddPairwiseWideningAndAdd(left, right); /// /// svint32_t svadalp[_s32]_m(svbool_t pg, svint32_t op1, svint16_t op2) @@ -434,7 +434,7 @@ internal Arm64() { } /// SADALP Ztied1.S, Pg/M, Zop2.H /// SADALP Ztied1.S, Pg/M, Zop2.H /// - public static Vector AddPairwiseWidening(Vector left, Vector right) => AddPairwiseWidening(left, right); + public static Vector AddPairwiseWideningAndAdd(Vector left, Vector right) => AddPairwiseWideningAndAdd(left, right); /// /// svint64_t svadalp[_s64]_m(svbool_t pg, svint64_t op1, svint32_t op2) @@ -443,7 +443,7 @@ internal Arm64() { } /// SADALP Ztied1.D, Pg/M, Zop2.S /// SADALP Ztied1.D, Pg/M, Zop2.S /// - public static Vector AddPairwiseWidening(Vector left, Vector right) => AddPairwiseWidening(left, right); + public static Vector AddPairwiseWideningAndAdd(Vector left, Vector right) => AddPairwiseWideningAndAdd(left, right); /// /// svuint16_t svadalp[_u16]_m(svbool_t pg, svuint16_t op1, svuint8_t op2) @@ -452,7 +452,7 @@ internal Arm64() { } /// UADALP Ztied1.H, Pg/M, Zop2.B /// UADALP Ztied1.H, Pg/M, Zop2.B /// - public static Vector AddPairwiseWidening(Vector left, Vector right) => AddPairwiseWidening(left, right); + public static Vector AddPairwiseWideningAndAdd(Vector left, Vector right) => AddPairwiseWideningAndAdd(left, right); /// /// svuint32_t svadalp[_u32]_m(svbool_t pg, svuint32_t op1, svuint16_t op2) @@ -461,7 +461,7 @@ internal Arm64() { } /// UADALP Ztied1.S, Pg/M, Zop2.H /// UADALP Ztied1.S, Pg/M, Zop2.H /// - public static Vector AddPairwiseWidening(Vector left, Vector right) => AddPairwiseWidening(left, right); + public static Vector AddPairwiseWideningAndAdd(Vector left, Vector right) => AddPairwiseWideningAndAdd(left, right); /// /// svuint64_t svadalp[_u64]_m(svbool_t pg, svuint64_t op1, svuint32_t op2) @@ -470,7 +470,7 @@ internal Arm64() { } /// UADALP Ztied1.D, Pg/M, Zop2.S /// UADALP Ztied1.D, Pg/M, Zop2.S /// - public static Vector AddPairwiseWidening(Vector left, Vector right) => AddPairwiseWidening(left, right); + public static Vector AddPairwiseWideningAndAdd(Vector left, Vector right) => AddPairwiseWideningAndAdd(left, right); // Saturating add diff --git a/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs b/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs index ea9e30075fe82b..17378d29ec3858 100644 --- a/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs +++ b/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs @@ -6171,12 +6171,12 @@ internal Arm64() { } public static System.Numerics.Vector AddPairwise(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector AddPairwise(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddPairwiseWidening(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddPairwiseWidening(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddPairwiseWidening(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddPairwiseWidening(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddPairwiseWidening(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AddPairwiseWidening(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddPairwiseWideningAndAdd(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddPairwiseWideningAndAdd(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddPairwiseWideningAndAdd(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddPairwiseWideningAndAdd(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddPairwiseWideningAndAdd(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AddPairwiseWideningAndAdd(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static new System.Numerics.Vector AddSaturate(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static new System.Numerics.Vector AddSaturate(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } diff --git a/src/tests/Common/GenerateHWIntrinsicTests/GenerateHWIntrinsicTests_Arm.cs b/src/tests/Common/GenerateHWIntrinsicTests/GenerateHWIntrinsicTests_Arm.cs index 758b4aa601f898..00d9e45ae2a838 100644 --- a/src/tests/Common/GenerateHWIntrinsicTests/GenerateHWIntrinsicTests_Arm.cs +++ b/src/tests/Common/GenerateHWIntrinsicTests/GenerateHWIntrinsicTests_Arm.cs @@ -4889,12 +4889,12 @@ ("SveVecBinOpTest.template", new Dictionary { ["TestName"] = "Sve2_AddPairwise_uint", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddPairwise", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddPairwiseSve(left, right, i) != result[i]", ["GetIterResult"] = "(UInt32) Helpers.AddPairwiseSve(left, right, i)"}), ("SveVecBinOpTest.template", new Dictionary { ["TestName"] = "Sve2_AddPairwise_ulong", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddPairwise", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddPairwiseSve(left, right, i) != result[i]", ["GetIterResult"] = "(UInt64) Helpers.AddPairwiseSve(left, right, i)"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddPairwiseWidening_short_sbyte", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddPairwiseWidening", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddPairwiseWidening(left, right, i) != result[i]", ["GetIterResult"] = "(Int16) Helpers.AddPairwiseWidening(left, right, i)"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddPairwiseWidening_int_short", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddPairwiseWidening", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddPairwiseWidening(left, right, i) != result[i]", ["GetIterResult"] = "(Int32) Helpers.AddPairwiseWidening(left, right, i)"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddPairwiseWidening_long_int", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddPairwiseWidening", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddPairwiseWidening(left, right, i) != result[i]", ["GetIterResult"] = "(Int64) Helpers.AddPairwiseWidening(left, right, i)"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddPairwiseWidening_ushort_byte", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddPairwiseWidening", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddPairwiseWidening(left, right, i) != result[i]", ["GetIterResult"] = "(UInt16) Helpers.AddPairwiseWidening(left, right, i)"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddPairwiseWidening_uint_ushort", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddPairwiseWidening", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddPairwiseWidening(left, right, i) != result[i]", ["GetIterResult"] = "(UInt32) Helpers.AddPairwiseWidening(left, right, i)"}), - ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddPairwiseWidening_ulong_uint", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddPairwiseWidening", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddPairwiseWidening(left, right, i) != result[i]", ["GetIterResult"] = "(UInt64) Helpers.AddPairwiseWidening(left, right, i)"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddPairwiseWideningAndAdd_short_sbyte", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddPairwiseWideningAndAdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddPairwiseWidening(left, right, i) != result[i]", ["GetIterResult"] = "(Int16) Helpers.AddPairwiseWidening(left, right, i)"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddPairwiseWideningAndAdd_int_short", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddPairwiseWideningAndAdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddPairwiseWidening(left, right, i) != result[i]", ["GetIterResult"] = "(Int32) Helpers.AddPairwiseWidening(left, right, i)"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddPairwiseWideningAndAdd_long_int", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddPairwiseWideningAndAdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddPairwiseWidening(left, right, i) != result[i]", ["GetIterResult"] = "(Int64) Helpers.AddPairwiseWidening(left, right, i)"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddPairwiseWideningAndAdd_ushort_byte", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddPairwiseWideningAndAdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddPairwiseWidening(left, right, i) != result[i]", ["GetIterResult"] = "(UInt16) Helpers.AddPairwiseWidening(left, right, i)"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddPairwiseWideningAndAdd_uint_ushort", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddPairwiseWideningAndAdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddPairwiseWidening(left, right, i) != result[i]", ["GetIterResult"] = "(UInt32) Helpers.AddPairwiseWidening(left, right, i)"}), + ("SveVecBinOpDifferentRetType.template", new Dictionary { ["TestName"] = "Sve2_AddPairwiseWideningAndAdd_ulong_uint", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddPairwiseWideningAndAdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddPairwiseWidening(left, right, i) != result[i]", ["GetIterResult"] = "(UInt64) Helpers.AddPairwiseWidening(left, right, i)"}), ("SveVecBinOpTest.template", new Dictionary { ["TestName"] = "Sve2_AddSaturate_sbyte", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddSaturate", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddSaturate(left[i], right[i]) != result[i]", ["GetIterResult"] = "(SByte) Helpers.AddSaturate(left[i], right[i])"}), ("SveVecBinOpTest.template", new Dictionary { ["TestName"] = "Sve2_AddSaturate_short", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "AddSaturate", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.AddSaturate(left[i], right[i]) != result[i]", ["GetIterResult"] = "(Int16) Helpers.AddSaturate(left[i], right[i])"}),