diff --git a/src/coreclr/inc/jiteeversionguid.h b/src/coreclr/inc/jiteeversionguid.h index fe1aaade4fb3b9..079280146be060 100644 --- a/src/coreclr/inc/jiteeversionguid.h +++ b/src/coreclr/inc/jiteeversionguid.h @@ -37,11 +37,11 @@ #include -constexpr GUID JITEEVersionIdentifier = { /* 2d40ec46-2e41-4a8b-8349-3c1267b95821 */ - 0x2d40ec46, - 0x2e41, - 0x4a8b, - {0x83, 0x49, 0x3c, 0x12, 0x67, 0xb9, 0x58, 0x21} +constexpr GUID JITEEVersionIdentifier = { /* fafeaf26-740f-4e0a-b3f4-852fb3d5ccae */ + 0xfafeaf26, + 0x740f, + 0x4e0a, + {0xb3, 0xf4, 0x85, 0x2f, 0xb3, 0xd5, 0xcc, 0xae} }; #endif // JIT_EE_VERSIONING_GUID_H diff --git a/src/coreclr/jit/hwintrinsiclistarm64sve.h b/src/coreclr/jit/hwintrinsiclistarm64sve.h index fe1853df4017e3..90ed46def1308b 100644 --- a/src/coreclr/jit/hwintrinsiclistarm64sve.h +++ b/src/coreclr/jit/hwintrinsiclistarm64sve.h @@ -402,8 +402,8 @@ HARDWARE_INTRINSIC(Sve2, ShiftLogicalRounded, HARDWARE_INTRINSIC(Sve2, ShiftLogicalRoundedSaturate, -1, -1, {INS_invalid, INS_sve_uqrshl, INS_invalid, INS_sve_uqrshl, INS_invalid, INS_sve_uqrshl, INS_invalid, INS_sve_uqrshl, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_EmbeddedMaskedOperation|HW_Flag_LowMaskedOperation|HW_Flag_HasRMWSemantics) HARDWARE_INTRINSIC(Sve2, ShiftRightAndInsert, -1, 3, {INS_sve_sri, INS_sve_sri, INS_sve_sri, INS_sve_sri, INS_sve_sri, INS_sve_sri, INS_sve_sri, INS_sve_sri, INS_invalid, INS_invalid}, HW_Category_ShiftRightByImmediate, HW_Flag_Scalable|HW_Flag_HasImmediateOperand|HW_Flag_HasRMWSemantics) HARDWARE_INTRINSIC(Sve2, ShiftRightArithmeticAdd, -1, 3, {INS_sve_ssra, INS_invalid, INS_sve_ssra, INS_invalid, INS_sve_ssra, INS_invalid, INS_sve_ssra, INS_invalid, INS_invalid, INS_invalid}, HW_Category_ShiftRightByImmediate, HW_Flag_Scalable|HW_Flag_HasImmediateOperand|HW_Flag_HasRMWSemantics) -HARDWARE_INTRINSIC(Sve2, ShiftRightArithmeticNarrowingSaturateEven, -1, 2, {INS_sve_sqshrnb, INS_sve_uqshrnb, INS_sve_sqshrnb, INS_sve_uqshrnb, INS_sve_sqshrnb, INS_sve_uqshrnb, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_ShiftRightByImmediate, HW_Flag_Scalable|HW_Flag_HasImmediateOperand) -HARDWARE_INTRINSIC(Sve2, ShiftRightArithmeticNarrowingSaturateOdd, -1, 3, {INS_sve_sqshrnt, INS_sve_uqshrnt, INS_sve_sqshrnt, INS_sve_uqshrnt, INS_sve_sqshrnt, INS_sve_uqshrnt, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_ShiftRightByImmediate, HW_Flag_Scalable|HW_Flag_HasImmediateOperand|HW_Flag_HasRMWSemantics) +HARDWARE_INTRINSIC(Sve2, ShiftRightArithmeticNarrowingSaturateEven, -1, 2, {INS_sve_sqshrnb, INS_invalid, INS_sve_sqshrnb, INS_invalid, INS_sve_sqshrnb, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_ShiftRightByImmediate, HW_Flag_Scalable|HW_Flag_HasImmediateOperand) +HARDWARE_INTRINSIC(Sve2, ShiftRightArithmeticNarrowingSaturateOdd, -1, 3, {INS_sve_sqshrnt, INS_invalid, INS_sve_sqshrnt, INS_invalid, INS_sve_sqshrnt, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_ShiftRightByImmediate, HW_Flag_Scalable|HW_Flag_HasImmediateOperand|HW_Flag_HasRMWSemantics) HARDWARE_INTRINSIC(Sve2, ShiftRightArithmeticNarrowingSaturateUnsignedEven, -1, 2, {INS_invalid, INS_sve_sqshrunb, INS_invalid, INS_sve_sqshrunb, INS_invalid, INS_sve_sqshrunb, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_ShiftRightByImmediate, HW_Flag_Scalable|HW_Flag_HasImmediateOperand) HARDWARE_INTRINSIC(Sve2, ShiftRightArithmeticNarrowingSaturateUnsignedOdd, -1, 3, {INS_invalid, INS_sve_sqshrunt, INS_invalid, INS_sve_sqshrunt, INS_invalid, INS_sve_sqshrunt, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_ShiftRightByImmediate, HW_Flag_Scalable|HW_Flag_HasImmediateOperand|HW_Flag_HasRMWSemantics) HARDWARE_INTRINSIC(Sve2, ShiftRightArithmeticRounded, -1, -1, {INS_sve_srshr, INS_invalid, INS_sve_srshr, INS_invalid, INS_sve_srshr, INS_invalid, INS_sve_srshr, INS_invalid, INS_invalid, INS_invalid}, HW_Category_ShiftRightByImmediate, HW_Flag_Scalable|HW_Flag_EmbeddedMaskedOperation|HW_Flag_LowMaskedOperation|HW_Flag_HasRMWSemantics|HW_Flag_HasImmediateOperand) 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 2341fdebd6c5f2..032c2d57e8ff49 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 @@ -3065,12 +3065,6 @@ internal Arm64() { } // Saturating shift right narrow (bottom) - /// - /// svuint8_t svqshrnb[_n_u16](svuint16_t op1, uint64_t imm2) - /// UQSHRNB Zresult.B, Zop1.H, #imm2 - /// - public static Vector ShiftRightArithmeticNarrowingSaturateEven(Vector value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } - /// /// svint16_t svqshrnb[_n_s32](svint32_t op1, uint64_t imm2) /// SQSHRNB Zresult.H, Zop1.S, #imm2 @@ -3089,27 +3083,9 @@ internal Arm64() { } /// public static Vector ShiftRightArithmeticNarrowingSaturateEven(Vector value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } - /// - /// svuint16_t svqshrnb[_n_u32](svuint32_t op1, uint64_t imm2) - /// UQSHRNB Zresult.H, Zop1.S, #imm2 - /// - public static Vector ShiftRightArithmeticNarrowingSaturateEven(Vector value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } - - /// - /// svuint32_t svqshrnb[_n_u64](svuint64_t op1, uint64_t imm2) - /// UQSHRNB Zresult.S, Zop1.D, #imm2 - /// - public static Vector ShiftRightArithmeticNarrowingSaturateEven(Vector value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } - // Saturating shift right narrow (top) - /// - /// svuint8_t svqshrnt[_n_u16](svuint8_t even, svuint16_t op1, uint64_t imm2) - /// UQSHRNT Ztied.B, Zop1.H, #imm2 - /// - public static Vector ShiftRightArithmeticNarrowingSaturateOdd(Vector even, Vector value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } - /// /// svint16_t svqshrnt[_n_s32](svint16_t even, svint32_t op1, uint64_t imm2) /// SQSHRNT Ztied.H, Zop1.S, #imm2 @@ -3128,18 +3104,6 @@ internal Arm64() { } /// public static Vector ShiftRightArithmeticNarrowingSaturateOdd(Vector even, Vector value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } - /// - /// svuint16_t svqshrnt[_n_u32](svuint16_t even, svuint32_t op1, uint64_t imm2) - /// UQSHRNT Ztied.H, Zop1.S, #imm2 - /// - public static Vector ShiftRightArithmeticNarrowingSaturateOdd(Vector even, Vector value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } - - /// - /// svuint32_t svqshrnt[_n_u64](svuint32_t even, svuint64_t op1, uint64_t imm2) - /// UQSHRNT Ztied.S, Zop1.D, #imm2 - /// - public static Vector ShiftRightArithmeticNarrowingSaturateOdd(Vector even, Vector value, [ConstantExpected] byte count) { throw new PlatformNotSupportedException(); } - // Saturating shift right unsigned narrow (bottom) 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 2267c002b056eb..3f9545d4290a7c 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 @@ -3088,12 +3088,6 @@ internal Arm64() { } // Saturating shift right narrow (bottom) - /// - /// svuint8_t svqshrnb[_n_u16](svuint16_t op1, uint64_t imm2) - /// UQSHRNB Zresult.B, Zop1.H, #imm2 - /// - public static Vector ShiftRightArithmeticNarrowingSaturateEven(Vector value, [ConstantExpected] byte count) => ShiftRightArithmeticNarrowingSaturateEven(value, count); - /// /// svint16_t svqshrnb[_n_s32](svint32_t op1, uint64_t imm2) /// SQSHRNB Zresult.H, Zop1.S, #imm2 @@ -3112,27 +3106,9 @@ internal Arm64() { } /// public static Vector ShiftRightArithmeticNarrowingSaturateEven(Vector value, [ConstantExpected] byte count) => ShiftRightArithmeticNarrowingSaturateEven(value, count); - /// - /// svuint16_t svqshrnb[_n_u32](svuint32_t op1, uint64_t imm2) - /// UQSHRNB Zresult.H, Zop1.S, #imm2 - /// - public static Vector ShiftRightArithmeticNarrowingSaturateEven(Vector value, [ConstantExpected] byte count) => ShiftRightArithmeticNarrowingSaturateEven(value, count); - - /// - /// svuint32_t svqshrnb[_n_u64](svuint64_t op1, uint64_t imm2) - /// UQSHRNB Zresult.S, Zop1.D, #imm2 - /// - public static Vector ShiftRightArithmeticNarrowingSaturateEven(Vector value, [ConstantExpected] byte count) => ShiftRightArithmeticNarrowingSaturateEven(value, count); - // Saturating shift right narrow (top) - /// - /// svuint8_t svqshrnt[_n_u16](svuint8_t even, svuint16_t op1, uint64_t imm2) - /// UQSHRNT Ztied.B, Zop1.H, #imm2 - /// - public static Vector ShiftRightArithmeticNarrowingSaturateOdd(Vector even, Vector value, [ConstantExpected] byte count) => ShiftRightArithmeticNarrowingSaturateOdd(even, value, count); - /// /// svint16_t svqshrnt[_n_s32](svint16_t even, svint32_t op1, uint64_t imm2) /// SQSHRNT Ztied.H, Zop1.S, #imm2 @@ -3151,18 +3127,6 @@ internal Arm64() { } /// public static Vector ShiftRightArithmeticNarrowingSaturateOdd(Vector even, Vector value, [ConstantExpected] byte count) => ShiftRightArithmeticNarrowingSaturateOdd(even, value, count); - /// - /// svuint16_t svqshrnt[_n_u32](svuint16_t even, svuint32_t op1, uint64_t imm2) - /// UQSHRNT Ztied.H, Zop1.S, #imm2 - /// - public static Vector ShiftRightArithmeticNarrowingSaturateOdd(Vector even, Vector value, [ConstantExpected] byte count) => ShiftRightArithmeticNarrowingSaturateOdd(even, value, count); - - /// - /// svuint32_t svqshrnt[_n_u64](svuint32_t even, svuint64_t op1, uint64_t imm2) - /// UQSHRNT Ztied.S, Zop1.D, #imm2 - /// - public static Vector ShiftRightArithmeticNarrowingSaturateOdd(Vector even, Vector value, [ConstantExpected] byte count) => ShiftRightArithmeticNarrowingSaturateOdd(even, value, count); - // Saturating shift right unsigned narrow (bottom) 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 83e78d108bf104..384489481f9cd4 100644 --- a/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs +++ b/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs @@ -6548,18 +6548,12 @@ internal Arm64() { } public static System.Numerics.Vector ShiftRightArithmeticAdd(System.Numerics.Vector addend, System.Numerics.Vector value, [ConstantExpected] byte count) { throw null; } public static System.Numerics.Vector ShiftRightArithmeticAdd(System.Numerics.Vector addend, System.Numerics.Vector value, [ConstantExpected] byte count) { throw null; } public static System.Numerics.Vector ShiftRightArithmeticAdd(System.Numerics.Vector addend, System.Numerics.Vector value, [ConstantExpected] byte count) { throw null; } - public static System.Numerics.Vector ShiftRightArithmeticNarrowingSaturateEven(System.Numerics.Vector value, [ConstantExpected] byte count) { throw null; } public static System.Numerics.Vector ShiftRightArithmeticNarrowingSaturateEven(System.Numerics.Vector value, [ConstantExpected] byte count) { throw null; } public static System.Numerics.Vector ShiftRightArithmeticNarrowingSaturateEven(System.Numerics.Vector value, [ConstantExpected] byte count) { throw null; } public static System.Numerics.Vector ShiftRightArithmeticNarrowingSaturateEven(System.Numerics.Vector value, [ConstantExpected] byte count) { throw null; } - public static System.Numerics.Vector ShiftRightArithmeticNarrowingSaturateEven(System.Numerics.Vector value, [ConstantExpected] byte count) { throw null; } - public static System.Numerics.Vector ShiftRightArithmeticNarrowingSaturateEven(System.Numerics.Vector value, [ConstantExpected] byte count) { throw null; } - public static System.Numerics.Vector ShiftRightArithmeticNarrowingSaturateOdd(System.Numerics.Vector even, System.Numerics.Vector value, [ConstantExpected] byte count) { throw null; } public static System.Numerics.Vector ShiftRightArithmeticNarrowingSaturateOdd(System.Numerics.Vector even, System.Numerics.Vector value, [ConstantExpected] byte count) { throw null; } public static System.Numerics.Vector ShiftRightArithmeticNarrowingSaturateOdd(System.Numerics.Vector even, System.Numerics.Vector value, [ConstantExpected] byte count) { throw null; } public static System.Numerics.Vector ShiftRightArithmeticNarrowingSaturateOdd(System.Numerics.Vector even, System.Numerics.Vector value, [ConstantExpected] byte count) { throw null; } - public static System.Numerics.Vector ShiftRightArithmeticNarrowingSaturateOdd(System.Numerics.Vector even, System.Numerics.Vector value, [ConstantExpected] byte count) { throw null; } - public static System.Numerics.Vector ShiftRightArithmeticNarrowingSaturateOdd(System.Numerics.Vector even, System.Numerics.Vector value, [ConstantExpected] byte count) { throw null; } public static System.Numerics.Vector ShiftRightArithmeticNarrowingSaturateUnsignedEven(System.Numerics.Vector value, [ConstantExpected] byte count) { throw null; } public static System.Numerics.Vector ShiftRightArithmeticNarrowingSaturateUnsignedEven(System.Numerics.Vector value, [ConstantExpected] byte count) { throw null; } public static System.Numerics.Vector ShiftRightArithmeticNarrowingSaturateUnsignedEven(System.Numerics.Vector value, [ConstantExpected] byte count) { throw null; } diff --git a/src/tests/Common/GenerateHWIntrinsicTests/Arm/Sve2Tests.cs b/src/tests/Common/GenerateHWIntrinsicTests/Arm/Sve2Tests.cs index 30f72174f0e73f..f16ad8e20fd2ad 100644 --- a/src/tests/Common/GenerateHWIntrinsicTests/Arm/Sve2Tests.cs +++ b/src/tests/Common/GenerateHWIntrinsicTests/Arm/Sve2Tests.cs @@ -559,16 +559,10 @@ public static (string templateFileName, Dictionary templateData) ("SveVecImmUnOpTest.template", new Dictionary {["TestName"] = "Sve2_ShiftRightArithmeticNarrowingSaturateEven_sbyte_short", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "ShiftRightArithmeticNarrowingSaturateEven", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int16", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["Imm"] = "4", ["InvalidImm"] = "9", ["ValidateIterResult"] = "result[i] != Helpers.ShiftRightArithmeticNarrowingSaturateEven(firstOp[Helpers.NarrowIdx(i)], Imm, i)", ["GetIterResult"] = "Helpers.ShiftRightArithmeticNarrowingSaturateEven(firstOp[Helpers.NarrowIdx(i)], Imm, i)",}), ("SveVecImmUnOpTest.template", new Dictionary {["TestName"] = "Sve2_ShiftRightArithmeticNarrowingSaturateEven_short_int", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "ShiftRightArithmeticNarrowingSaturateEven", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["Imm"] = "15", ["InvalidImm"] = "17", ["ValidateIterResult"] = "result[i] != Helpers.ShiftRightArithmeticNarrowingSaturateEven(firstOp[Helpers.NarrowIdx(i)], Imm, i)", ["GetIterResult"] = "Helpers.ShiftRightArithmeticNarrowingSaturateEven(firstOp[Helpers.NarrowIdx(i)], Imm, i)",}), ("SveVecImmUnOpTest.template", new Dictionary {["TestName"] = "Sve2_ShiftRightArithmeticNarrowingSaturateEven_int_long", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "ShiftRightArithmeticNarrowingSaturateEven", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["Imm"] = "22", ["InvalidImm"] = "33", ["ValidateIterResult"] = "result[i] != Helpers.ShiftRightArithmeticNarrowingSaturateEven(firstOp[Helpers.NarrowIdx(i)], Imm, i)", ["GetIterResult"] = "Helpers.ShiftRightArithmeticNarrowingSaturateEven(firstOp[Helpers.NarrowIdx(i)], Imm, i)",}), - ("SveVecImmUnOpTest.template", new Dictionary {["TestName"] = "Sve2_ShiftRightArithmeticNarrowingSaturateEven_byte_ushort", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "ShiftRightArithmeticNarrowingSaturateEven", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt16", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["Imm"] = "4", ["InvalidImm"] = "9", ["ValidateIterResult"] = "result[i] != Helpers.ShiftRightArithmeticNarrowingSaturateEven(firstOp[Helpers.NarrowIdx(i)], Imm, i)", ["GetIterResult"] = "Helpers.ShiftRightArithmeticNarrowingSaturateEven(firstOp[Helpers.NarrowIdx(i)], Imm, i)",}), - ("SveVecImmUnOpTest.template", new Dictionary {["TestName"] = "Sve2_ShiftRightArithmeticNarrowingSaturateEven_ushort_uint", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "ShiftRightArithmeticNarrowingSaturateEven", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["Imm"] = "15", ["InvalidImm"] = "17", ["ValidateIterResult"] = "result[i] != Helpers.ShiftRightArithmeticNarrowingSaturateEven(firstOp[Helpers.NarrowIdx(i)], Imm, i)", ["GetIterResult"] = "Helpers.ShiftRightArithmeticNarrowingSaturateEven(firstOp[Helpers.NarrowIdx(i)], Imm, i)",}), - ("SveVecImmUnOpTest.template", new Dictionary {["TestName"] = "Sve2_ShiftRightArithmeticNarrowingSaturateEven_uint_ulong", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "ShiftRightArithmeticNarrowingSaturateEven", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["Imm"] = "22", ["InvalidImm"] = "33", ["ValidateIterResult"] = "result[i] != Helpers.ShiftRightArithmeticNarrowingSaturateEven(firstOp[Helpers.NarrowIdx(i)], Imm, i)", ["GetIterResult"] = "Helpers.ShiftRightArithmeticNarrowingSaturateEven(firstOp[Helpers.NarrowIdx(i)], Imm, i)",}), ("SveVecImmBinOpTest.template",new Dictionary {["TestName"] = "Sve2_ShiftRightArithmeticNarrowingSaturateOdd_sbyte_short", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "ShiftRightArithmeticNarrowingSaturateOdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int16", ["Op3BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["NextValueMask"] = "Helpers.getMaskInt16()", ["Imm"] = "4", ["InvalidImm"] = "9", ["ValidateIterResult"] = "result[i] != Helpers.ShiftRightArithmeticNarrowingSaturateOdd(firstOp[i], secondOp[Helpers.NarrowIdx(i)], Imm, i)", ["GetIterResult"] = "Helpers.ShiftRightArithmeticNarrowingSaturateOdd(firstOp[i], secondOp[Helpers.NarrowIdx(i)], Imm, i)",}), ("SveVecImmBinOpTest.template",new Dictionary {["TestName"] = "Sve2_ShiftRightArithmeticNarrowingSaturateOdd_short_int", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "ShiftRightArithmeticNarrowingSaturateOdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int32", ["Op3BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["NextValueMask"] = "Helpers.getMaskInt32()", ["Imm"] = "15", ["InvalidImm"] = "17", ["ValidateIterResult"] = "result[i] != Helpers.ShiftRightArithmeticNarrowingSaturateOdd(firstOp[i], secondOp[Helpers.NarrowIdx(i)], Imm, i)", ["GetIterResult"] = "Helpers.ShiftRightArithmeticNarrowingSaturateOdd(firstOp[i], secondOp[Helpers.NarrowIdx(i)], Imm, i)",}), ("SveVecImmBinOpTest.template",new Dictionary {["TestName"] = "Sve2_ShiftRightArithmeticNarrowingSaturateOdd_int_long", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "ShiftRightArithmeticNarrowingSaturateOdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int64", ["Op3BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["NextValueMask"] = "Helpers.getMaskInt64()", ["Imm"] = "22", ["InvalidImm"] = "33", ["ValidateIterResult"] = "result[i] != Helpers.ShiftRightArithmeticNarrowingSaturateOdd(firstOp[i], secondOp[Helpers.NarrowIdx(i)], Imm, i)", ["GetIterResult"] = "Helpers.ShiftRightArithmeticNarrowingSaturateOdd(firstOp[i], secondOp[Helpers.NarrowIdx(i)], Imm, i)",}), - ("SveVecImmBinOpTest.template",new Dictionary {["TestName"] = "Sve2_ShiftRightArithmeticNarrowingSaturateOdd_byte_ushort", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "ShiftRightArithmeticNarrowingSaturateOdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt16", ["Op3BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["NextValueMask"] = "Helpers.getMaskUInt16()", ["Imm"] = "4", ["InvalidImm"] = "9", ["ValidateIterResult"] = "result[i] != Helpers.ShiftRightArithmeticNarrowingSaturateOdd(firstOp[i], secondOp[Helpers.NarrowIdx(i)], Imm, i)", ["GetIterResult"] = "Helpers.ShiftRightArithmeticNarrowingSaturateOdd(firstOp[i], secondOp[Helpers.NarrowIdx(i)], Imm, i)",}), - ("SveVecImmBinOpTest.template",new Dictionary {["TestName"] = "Sve2_ShiftRightArithmeticNarrowingSaturateOdd_ushort_uint", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "ShiftRightArithmeticNarrowingSaturateOdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt32", ["Op3BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["NextValueMask"] = "Helpers.getMaskUInt32()", ["Imm"] = "15", ["InvalidImm"] = "17", ["ValidateIterResult"] = "result[i] != Helpers.ShiftRightArithmeticNarrowingSaturateOdd(firstOp[i], secondOp[Helpers.NarrowIdx(i)], Imm, i)", ["GetIterResult"] = "Helpers.ShiftRightArithmeticNarrowingSaturateOdd(firstOp[i], secondOp[Helpers.NarrowIdx(i)], Imm, i)",}), - ("SveVecImmBinOpTest.template",new Dictionary {["TestName"] = "Sve2_ShiftRightArithmeticNarrowingSaturateOdd_uint_ulong", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "ShiftRightArithmeticNarrowingSaturateOdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt64", ["Op3BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["NextValueMask"] = "Helpers.getMaskUInt64()", ["Imm"] = "22", ["InvalidImm"] = "33", ["ValidateIterResult"] = "result[i] != Helpers.ShiftRightArithmeticNarrowingSaturateOdd(firstOp[i], secondOp[Helpers.NarrowIdx(i)], Imm, i)", ["GetIterResult"] = "Helpers.ShiftRightArithmeticNarrowingSaturateOdd(firstOp[i], secondOp[Helpers.NarrowIdx(i)], Imm, i)",}), ("SveVecImmUnOpTest.template",new Dictionary {["TestName"] = "Sve2_ShiftRightArithmeticNarrowingSaturateUnsignedEven_byte_short", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "ShiftRightArithmeticNarrowingSaturateUnsignedEven", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int16", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueMask"] = "Helpers.getMaskInt16()", ["Imm"] = "4", ["InvalidImm"] = "9", ["ValidateIterResult"] = "result[i] != Helpers.ShiftRightArithmeticNarrowingSaturateUnsignedEven(firstOp[Helpers.NarrowIdx(i)], Imm, i)", ["GetIterResult"] = "Helpers.ShiftRightArithmeticNarrowingSaturateUnsignedEven(firstOp[Helpers.NarrowIdx(i)], Imm, i)",}), ("SveVecImmUnOpTest.template",new Dictionary {["TestName"] = "Sve2_ShiftRightArithmeticNarrowingSaturateUnsignedEven_ushort_int", ["Isa"] = "Sve2", ["LoadIsa"] = "Sve2", ["Method"] = "ShiftRightArithmeticNarrowingSaturateUnsignedEven", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueMask"] = "Helpers.getMaskInt32()", ["Imm"] = "12", ["InvalidImm"] = "17", ["ValidateIterResult"] = "result[i] != Helpers.ShiftRightArithmeticNarrowingSaturateUnsignedEven(firstOp[Helpers.NarrowIdx(i)], Imm, i)", ["GetIterResult"] = "Helpers.ShiftRightArithmeticNarrowingSaturateUnsignedEven(firstOp[Helpers.NarrowIdx(i)], Imm, i)",}),