From 5f668788609ac35c3d0274418ace84781b85bbee Mon Sep 17 00:00:00 2001 From: David Hartglass Date: Fri, 27 Mar 2026 14:55:35 -0700 Subject: [PATCH 1/8] initial impl without tests --- src/coreclr/jit/hwintrinsic.cpp | 20 + src/coreclr/jit/hwintrinsiccodegenarm64.cpp | 46 ++ src/coreclr/jit/hwintrinsiclistarm64sve.h | 20 + .../Arm/Sve2.PlatformNotSupported.cs | 540 ++++++++++++++++++ .../src/System/Runtime/Intrinsics/Arm/Sve2.cs | 540 ++++++++++++++++++ .../ref/System.Runtime.Intrinsics.cs | 80 +++ 6 files changed, 1246 insertions(+) diff --git a/src/coreclr/jit/hwintrinsic.cpp b/src/coreclr/jit/hwintrinsic.cpp index dff22e36bc4565..aed5d2f236e6d3 100644 --- a/src/coreclr/jit/hwintrinsic.cpp +++ b/src/coreclr/jit/hwintrinsic.cpp @@ -2447,6 +2447,26 @@ GenTree* Compiler::impHWIntrinsic(NamedIntrinsic intrinsic, case NI_Sve_CreateWhileLessThanOrEqualMaskUInt16: case NI_Sve_CreateWhileLessThanOrEqualMaskUInt32: case NI_Sve_CreateWhileLessThanOrEqualMaskUInt64: + case NI_Sve2_CreateWhileGreaterThanMaskByte: + case NI_Sve2_CreateWhileGreaterThanMaskDouble: + case NI_Sve2_CreateWhileGreaterThanMaskInt16: + case NI_Sve2_CreateWhileGreaterThanMaskInt32: + case NI_Sve2_CreateWhileGreaterThanMaskInt64: + case NI_Sve2_CreateWhileGreaterThanMaskSByte: + case NI_Sve2_CreateWhileGreaterThanMaskSingle: + case NI_Sve2_CreateWhileGreaterThanMaskUInt16: + case NI_Sve2_CreateWhileGreaterThanMaskUInt32: + case NI_Sve2_CreateWhileGreaterThanMaskUInt64: + case NI_Sve2_CreateWhileGreaterThanOrEqualMaskByte: + case NI_Sve2_CreateWhileGreaterThanOrEqualMaskDouble: + case NI_Sve2_CreateWhileGreaterThanOrEqualMaskInt16: + case NI_Sve2_CreateWhileGreaterThanOrEqualMaskInt32: + case NI_Sve2_CreateWhileGreaterThanOrEqualMaskInt64: + case NI_Sve2_CreateWhileGreaterThanOrEqualMaskSByte: + case NI_Sve2_CreateWhileGreaterThanOrEqualMaskSingle: + case NI_Sve2_CreateWhileGreaterThanOrEqualMaskUInt16: + case NI_Sve2_CreateWhileGreaterThanOrEqualMaskUInt32: + case NI_Sve2_CreateWhileGreaterThanOrEqualMaskUInt64: retNode->AsHWIntrinsic()->SetAuxiliaryType(JitType2PreciseVarType(sigReader.op1JitType)); break; diff --git a/src/coreclr/jit/hwintrinsiccodegenarm64.cpp b/src/coreclr/jit/hwintrinsiccodegenarm64.cpp index bba6a1630c015e..d289494413ae79 100644 --- a/src/coreclr/jit/hwintrinsiccodegenarm64.cpp +++ b/src/coreclr/jit/hwintrinsiccodegenarm64.cpp @@ -2174,6 +2174,52 @@ void CodeGen::genHWIntrinsic(GenTreeHWIntrinsic* node) break; } + case NI_Sve2_CreateWhileGreaterThanMaskByte: + case NI_Sve2_CreateWhileGreaterThanMaskDouble: + case NI_Sve2_CreateWhileGreaterThanMaskInt16: + case NI_Sve2_CreateWhileGreaterThanMaskInt32: + case NI_Sve2_CreateWhileGreaterThanMaskInt64: + case NI_Sve2_CreateWhileGreaterThanMaskSByte: + case NI_Sve2_CreateWhileGreaterThanMaskSingle: + case NI_Sve2_CreateWhileGreaterThanMaskUInt16: + case NI_Sve2_CreateWhileGreaterThanMaskUInt32: + case NI_Sve2_CreateWhileGreaterThanMaskUInt64: + { + // Emit size and instruction is based on the scalar operands. + var_types auxType = node->GetAuxiliaryType(); + emitSize = emitActualTypeSize(auxType); + if (varTypeIsUnsigned(auxType)) + { + ins = INS_sve_whilehi; + } + + GetEmitter()->emitIns_R_R_R(ins, emitSize, targetReg, op1Reg, op2Reg, opt); + break; + } + + case NI_Sve2_CreateWhileGreaterThanOrEqualMaskByte: + case NI_Sve2_CreateWhileGreaterThanOrEqualMaskDouble: + case NI_Sve2_CreateWhileGreaterThanOrEqualMaskInt16: + case NI_Sve2_CreateWhileGreaterThanOrEqualMaskInt32: + case NI_Sve2_CreateWhileGreaterThanOrEqualMaskInt64: + case NI_Sve2_CreateWhileGreaterThanOrEqualMaskSByte: + case NI_Sve2_CreateWhileGreaterThanOrEqualMaskSingle: + case NI_Sve2_CreateWhileGreaterThanOrEqualMaskUInt16: + case NI_Sve2_CreateWhileGreaterThanOrEqualMaskUInt32: + case NI_Sve2_CreateWhileGreaterThanOrEqualMaskUInt64: + { + // Emit size and instruction is based on the scalar operands. + var_types auxType = node->GetAuxiliaryType(); + emitSize = emitActualTypeSize(auxType); + if (varTypeIsUnsigned(auxType)) + { + ins = INS_sve_whilehs; + } + + GetEmitter()->emitIns_R_R_R(ins, emitSize, targetReg, op1Reg, op2Reg, opt); + break; + } + case NI_Sve_GatherPrefetch8Bit: case NI_Sve_GatherPrefetch16Bit: case NI_Sve_GatherPrefetch32Bit: diff --git a/src/coreclr/jit/hwintrinsiclistarm64sve.h b/src/coreclr/jit/hwintrinsiclistarm64sve.h index 84e490e6490188..736bba19d55dc5 100644 --- a/src/coreclr/jit/hwintrinsiclistarm64sve.h +++ b/src/coreclr/jit/hwintrinsiclistarm64sve.h @@ -358,6 +358,26 @@ HARDWARE_INTRINSIC(Sve2, ConvertToSingleOdd, HARDWARE_INTRINSIC(Sve2, ConvertToSingleOddRoundToOdd, -1, -1, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_fcvtxnt, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_BaseTypeFromFirstArg|HW_Flag_EmbeddedMaskedOperation|HW_Flag_LowMaskedOperation|HW_Flag_HasRMWSemantics) HARDWARE_INTRINSIC(Sve2, CountMatchingElements, -1, 3, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_histcnt, INS_sve_histcnt, INS_sve_histcnt, INS_sve_histcnt, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_BaseTypeFromFirstArg|HW_Flag_ExplicitMaskedOperation|HW_Flag_LowMaskedOperation|HW_Flag_ZeroingMaskedOperation) HARDWARE_INTRINSIC(Sve2, CountMatchingElementsIn128BitSegments, -1, 2, {INS_sve_histseg, INS_sve_histseg, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_BaseTypeFromFirstArg) +HARDWARE_INTRINSIC(Sve2, CreateWhileGreaterThanMaskByte, -1, 2, {INS_invalid, INS_sve_whilegt, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileGreaterThanMaskDouble, -1, 2, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_whilegt}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileGreaterThanMaskInt16, -1, 2, {INS_invalid, INS_invalid, INS_sve_whilegt, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileGreaterThanMaskInt32, -1, 2, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_whilegt, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileGreaterThanMaskInt64, -1, 2, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_whilegt, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileGreaterThanMaskSByte, -1, 2, {INS_sve_whilegt, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileGreaterThanMaskSingle, -1, 2, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_whilegt, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileGreaterThanMaskUInt16, -1, 2, {INS_invalid, INS_invalid, INS_invalid, INS_sve_whilegt, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileGreaterThanMaskUInt32, -1, 2, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_whilegt, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileGreaterThanMaskUInt64, -1, 2, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_whilegt, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileGreaterThanOrEqualMaskByte, -1, 2, {INS_invalid, INS_sve_whilege, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileGreaterThanOrEqualMaskDouble, -1, 2, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_whilege}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileGreaterThanOrEqualMaskInt16, -1, 2, {INS_invalid, INS_invalid, INS_sve_whilege, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileGreaterThanOrEqualMaskInt32, -1, 2, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_whilege, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileGreaterThanOrEqualMaskInt64, -1, 2, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_whilege, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileGreaterThanOrEqualMaskSByte, -1, 2, {INS_sve_whilege, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileGreaterThanOrEqualMaskSingle, -1, 2, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_whilege, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileGreaterThanOrEqualMaskUInt16, -1, 2, {INS_invalid, INS_invalid, INS_invalid, INS_sve_whilege, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileGreaterThanOrEqualMaskUInt32, -1, 2, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_whilege, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileGreaterThanOrEqualMaskUInt64, -1, 2, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_whilege, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) HARDWARE_INTRINSIC(Sve2, DotProductRotateComplex, -1, 4, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_cdot, INS_invalid, INS_sve_cdot, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_HasRMWSemantics|HW_Flag_SpecialCodeGen|HW_Flag_HasImmediateOperand) HARDWARE_INTRINSIC(Sve2, DotProductRotateComplexBySelectedIndex, -1, 5, {INS_sve_cdot, INS_invalid, INS_sve_cdot, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_HasRMWSemantics|HW_Flag_SpecialCodeGen|HW_Flag_HasImmediateOperand|HW_Flag_LowVectorOperation|HW_Flag_SpecialImport|HW_Flag_BaseTypeFromSecondArg) HARDWARE_INTRINSIC(Sve2, FusedAddHalving, -1, -1, {INS_sve_shadd, INS_sve_uhadd, INS_sve_shadd, INS_sve_uhadd, INS_sve_shadd, INS_sve_uhadd, INS_sve_shadd, INS_sve_uhadd, 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 1c127f42f7597a..6c8e3108cd062b 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 @@ -1232,6 +1232,546 @@ internal Arm64() { } public static Vector CountMatchingElementsIn128BitSegments(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + // While decrementing scalar is greater than + + /// + /// svbool_t svwhilegt_b8[_s32](int32_t op1, int32_t op2) + /// WHILEGT Presult.B, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskByte(int left, int right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilegt_b8[_s64](int64_t op1, int64_t op2) + /// WHILEGT Presult.B, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskByte(long left, long right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehi_b8[_u32](uint32_t op1, uint32_t op2) + /// WHILEHI Presult.B, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskByte(uint left, uint right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehi_b8[_u64](uint64_t op1, uint64_t op2) + /// WHILEHI Presult.B, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskByte(ulong left, ulong right) { throw new PlatformNotSupportedException(); } + + + // While decrementing scalar is greater than + + /// + /// svbool_t svwhilegt_b64[_s32](int32_t op1, int32_t op2) + /// WHILEGT Presult.D, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskDouble(int left, int right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilegt_b64[_s64](int64_t op1, int64_t op2) + /// WHILEGT Presult.D, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskDouble(long left, long right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehi_b64[_u32](uint32_t op1, uint32_t op2) + /// WHILEHI Presult.D, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskDouble(uint left, uint right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehi_b64[_u64](uint64_t op1, uint64_t op2) + /// WHILEHI Presult.D, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskDouble(ulong left, ulong right) { throw new PlatformNotSupportedException(); } + + + // While decrementing scalar is greater than + + /// + /// svbool_t svwhilegt_b16[_s32](int32_t op1, int32_t op2) + /// WHILEGT Presult.H, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskInt16(int left, int right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilegt_b16[_s64](int64_t op1, int64_t op2) + /// WHILEGT Presult.H, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskInt16(long left, long right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehi_b16[_u32](uint32_t op1, uint32_t op2) + /// WHILEHI Presult.H, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskInt16(uint left, uint right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehi_b16[_u64](uint64_t op1, uint64_t op2) + /// WHILEHI Presult.H, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskInt16(ulong left, ulong right) { throw new PlatformNotSupportedException(); } + + + // While decrementing scalar is greater than + + /// + /// svbool_t svwhilegt_b32[_s32](int32_t op1, int32_t op2) + /// WHILEGT Presult.S, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskInt32(int left, int right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilegt_b32[_s64](int64_t op1, int64_t op2) + /// WHILEGT Presult.S, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskInt32(long left, long right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehi_b32[_u32](uint32_t op1, uint32_t op2) + /// WHILEHI Presult.S, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskInt32(uint left, uint right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehi_b32[_u64](uint64_t op1, uint64_t op2) + /// WHILEHI Presult.S, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskInt32(ulong left, ulong right) { throw new PlatformNotSupportedException(); } + + + // While decrementing scalar is greater than + + /// + /// svbool_t svwhilegt_b64[_s32](int32_t op1, int32_t op2) + /// WHILEGT Presult.D, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskInt64(int left, int right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilegt_b64[_s64](int64_t op1, int64_t op2) + /// WHILEGT Presult.D, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskInt64(long left, long right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehi_b64[_u32](uint32_t op1, uint32_t op2) + /// WHILEHI Presult.D, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskInt64(uint left, uint right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehi_b64[_u64](uint64_t op1, uint64_t op2) + /// WHILEHI Presult.D, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskInt64(ulong left, ulong right) { throw new PlatformNotSupportedException(); } + + + // While decrementing scalar is greater than + + /// + /// svbool_t svwhilegt_b8[_s32](int32_t op1, int32_t op2) + /// WHILEGT Presult.B, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskSByte(int left, int right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilegt_b8[_s64](int64_t op1, int64_t op2) + /// WHILEGT Presult.B, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskSByte(long left, long right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehi_b8[_u32](uint32_t op1, uint32_t op2) + /// WHILEHI Presult.B, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskSByte(uint left, uint right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehi_b8[_u64](uint64_t op1, uint64_t op2) + /// WHILEHI Presult.B, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskSByte(ulong left, ulong right) { throw new PlatformNotSupportedException(); } + + + // While decrementing scalar is greater than + + /// + /// svbool_t svwhilegt_b32[_s32](int32_t op1, int32_t op2) + /// WHILEGT Presult.S, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskSingle(int left, int right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilegt_b32[_s64](int64_t op1, int64_t op2) + /// WHILEGT Presult.S, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskSingle(long left, long right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehi_b32[_u32](uint32_t op1, uint32_t op2) + /// WHILEHI Presult.S, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskSingle(uint left, uint right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehi_b32[_u64](uint64_t op1, uint64_t op2) + /// WHILEHI Presult.S, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskSingle(ulong left, ulong right) { throw new PlatformNotSupportedException(); } + + + // While decrementing scalar is greater than + + /// + /// svbool_t svwhilegt_b16[_s32](int32_t op1, int32_t op2) + /// WHILEGT Presult.H, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskUInt16(int left, int right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilegt_b16[_s64](int64_t op1, int64_t op2) + /// WHILEGT Presult.H, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskUInt16(long left, long right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehi_b16[_u32](uint32_t op1, uint32_t op2) + /// WHILEHI Presult.H, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskUInt16(uint left, uint right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehi_b16[_u64](uint64_t op1, uint64_t op2) + /// WHILEHI Presult.H, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskUInt16(ulong left, ulong right) { throw new PlatformNotSupportedException(); } + + + // While decrementing scalar is greater than + + /// + /// svbool_t svwhilegt_b32[_s32](int32_t op1, int32_t op2) + /// WHILEGT Presult.S, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskUInt32(int left, int right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilegt_b32[_s64](int64_t op1, int64_t op2) + /// WHILEGT Presult.S, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskUInt32(long left, long right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehi_b32[_u32](uint32_t op1, uint32_t op2) + /// WHILEHI Presult.S, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskUInt32(uint left, uint right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehi_b32[_u64](uint64_t op1, uint64_t op2) + /// WHILEHI Presult.S, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskUInt32(ulong left, ulong right) { throw new PlatformNotSupportedException(); } + + + // While decrementing scalar is greater than + + /// + /// svbool_t svwhilegt_b64[_s32](int32_t op1, int32_t op2) + /// WHILEGT Presult.D, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskUInt64(int left, int right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilegt_b64[_s64](int64_t op1, int64_t op2) + /// WHILEGT Presult.D, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskUInt64(long left, long right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehi_b64[_u32](uint32_t op1, uint32_t op2) + /// WHILEHI Presult.D, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskUInt64(uint left, uint right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehi_b64[_u64](uint64_t op1, uint64_t op2) + /// WHILEHI Presult.D, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskUInt64(ulong left, ulong right) { throw new PlatformNotSupportedException(); } + + + // While decrementing scalar is greater than or equal to + + /// + /// svbool_t svwhilege_b8[_s32](int32_t op1, int32_t op2) + /// WHILEGE Presult.B, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskByte(int left, int right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilege_b8[_s64](int64_t op1, int64_t op2) + /// WHILEGE Presult.B, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskByte(long left, long right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehs_b8[_u32](uint32_t op1, uint32_t op2) + /// WHILEHS Presult.B, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskByte(uint left, uint right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehs_b8[_u64](uint64_t op1, uint64_t op2) + /// WHILEHS Presult.B, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskByte(ulong left, ulong right) { throw new PlatformNotSupportedException(); } + + + // While decrementing scalar is greater than or equal to + + /// + /// svbool_t svwhilege_b64[_s32](int32_t op1, int32_t op2) + /// WHILEGE Presult.D, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskDouble(int left, int right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilege_b64[_s64](int64_t op1, int64_t op2) + /// WHILEGE Presult.D, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskDouble(long left, long right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehs_b64[_u32](uint32_t op1, uint32_t op2) + /// WHILEHS Presult.D, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskDouble(uint left, uint right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehs_b64[_u64](uint64_t op1, uint64_t op2) + /// WHILEHS Presult.D, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskDouble(ulong left, ulong right) { throw new PlatformNotSupportedException(); } + + + // While decrementing scalar is greater than or equal to + + /// + /// svbool_t svwhilege_b16[_s32](int32_t op1, int32_t op2) + /// WHILEGE Presult.H, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskInt16(int left, int right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilege_b16[_s64](int64_t op1, int64_t op2) + /// WHILEGE Presult.H, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskInt16(long left, long right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehs_b16[_u32](uint32_t op1, uint32_t op2) + /// WHILEHS Presult.H, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskInt16(uint left, uint right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehs_b16[_u64](uint64_t op1, uint64_t op2) + /// WHILEHS Presult.H, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskInt16(ulong left, ulong right) { throw new PlatformNotSupportedException(); } + + + // While decrementing scalar is greater than or equal to + + /// + /// svbool_t svwhilege_b32[_s32](int32_t op1, int32_t op2) + /// WHILEGE Presult.S, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskInt32(int left, int right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilege_b32[_s64](int64_t op1, int64_t op2) + /// WHILEGE Presult.S, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskInt32(long left, long right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehs_b32[_u32](uint32_t op1, uint32_t op2) + /// WHILEHS Presult.S, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskInt32(uint left, uint right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehs_b32[_u64](uint64_t op1, uint64_t op2) + /// WHILEHS Presult.S, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskInt32(ulong left, ulong right) { throw new PlatformNotSupportedException(); } + + + // While decrementing scalar is greater than or equal to + + /// + /// svbool_t svwhilege_b64[_s32](int32_t op1, int32_t op2) + /// WHILEGE Presult.D, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskInt64(int left, int right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilege_b64[_s64](int64_t op1, int64_t op2) + /// WHILEGE Presult.D, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskInt64(long left, long right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehs_b64[_u32](uint32_t op1, uint32_t op2) + /// WHILEHS Presult.D, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskInt64(uint left, uint right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehs_b64[_u64](uint64_t op1, uint64_t op2) + /// WHILEHS Presult.D, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskInt64(ulong left, ulong right) { throw new PlatformNotSupportedException(); } + + + // While decrementing scalar is greater than or equal to + + /// + /// svbool_t svwhilege_b8[_s32](int32_t op1, int32_t op2) + /// WHILEGE Presult.B, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskSByte(int left, int right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilege_b8[_s64](int64_t op1, int64_t op2) + /// WHILEGE Presult.B, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskSByte(long left, long right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehs_b8[_u32](uint32_t op1, uint32_t op2) + /// WHILEHS Presult.B, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskSByte(uint left, uint right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehs_b8[_u64](uint64_t op1, uint64_t op2) + /// WHILEHS Presult.B, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskSByte(ulong left, ulong right) { throw new PlatformNotSupportedException(); } + + + // While decrementing scalar is greater than or equal to + + /// + /// svbool_t svwhilege_b32[_s32](int32_t op1, int32_t op2) + /// WHILEGE Presult.S, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskSingle(int left, int right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilege_b32[_s64](int64_t op1, int64_t op2) + /// WHILEGE Presult.S, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskSingle(long left, long right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehs_b32[_u32](uint32_t op1, uint32_t op2) + /// WHILEHS Presult.S, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskSingle(uint left, uint right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehs_b32[_u64](uint64_t op1, uint64_t op2) + /// WHILEHS Presult.S, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskSingle(ulong left, ulong right) { throw new PlatformNotSupportedException(); } + + + // While decrementing scalar is greater than or equal to + + /// + /// svbool_t svwhilege_b16[_s32](int32_t op1, int32_t op2) + /// WHILEGE Presult.H, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskUInt16(int left, int right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilege_b16[_s64](int64_t op1, int64_t op2) + /// WHILEGE Presult.H, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskUInt16(long left, long right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehs_b16[_u32](uint32_t op1, uint32_t op2) + /// WHILEHS Presult.H, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskUInt16(uint left, uint right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehs_b16[_u64](uint64_t op1, uint64_t op2) + /// WHILEHS Presult.H, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskUInt16(ulong left, ulong right) { throw new PlatformNotSupportedException(); } + + + // While decrementing scalar is greater than or equal to + + /// + /// svbool_t svwhilege_b32[_s32](int32_t op1, int32_t op2) + /// WHILEGE Presult.S, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskUInt32(int left, int right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilege_b32[_s64](int64_t op1, int64_t op2) + /// WHILEGE Presult.S, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskUInt32(long left, long right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehs_b32[_u32](uint32_t op1, uint32_t op2) + /// WHILEHS Presult.S, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskUInt32(uint left, uint right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehs_b32[_u64](uint64_t op1, uint64_t op2) + /// WHILEHS Presult.S, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskUInt32(ulong left, ulong right) { throw new PlatformNotSupportedException(); } + + + // While decrementing scalar is greater than or equal to + + /// + /// svbool_t svwhilege_b64[_s32](int32_t op1, int32_t op2) + /// WHILEGE Presult.D, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskUInt64(int left, int right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilege_b64[_s64](int64_t op1, int64_t op2) + /// WHILEGE Presult.D, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskUInt64(long left, long right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehs_b64[_u32](uint32_t op1, uint32_t op2) + /// WHILEHS Presult.D, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskUInt64(uint left, uint right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilehs_b64[_u64](uint64_t op1, uint64_t op2) + /// WHILEHS Presult.D, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskUInt64(ulong left, ulong right) { throw new PlatformNotSupportedException(); } + + // Complex dot product /// 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 18d5abcc2b5746..a138264a24766d 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 @@ -1232,6 +1232,546 @@ internal Arm64() { } public static Vector CountMatchingElementsIn128BitSegments(Vector left, Vector right) => CountMatchingElementsIn128BitSegments(left, right); + // While decrementing scalar is greater than + + /// + /// svbool_t svwhilegt_b8[_s32](int32_t op1, int32_t op2) + /// WHILEGT Presult.B, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskByte(int left, int right) => CreateWhileGreaterThanMaskByte(left, right); + + /// + /// svbool_t svwhilegt_b8[_s64](int64_t op1, int64_t op2) + /// WHILEGT Presult.B, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskByte(long left, long right) => CreateWhileGreaterThanMaskByte(left, right); + + /// + /// svbool_t svwhilehi_b8[_u32](uint32_t op1, uint32_t op2) + /// WHILEHI Presult.B, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskByte(uint left, uint right) => CreateWhileGreaterThanMaskByte(left, right); + + /// + /// svbool_t svwhilehi_b8[_u64](uint64_t op1, uint64_t op2) + /// WHILEHI Presult.B, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskByte(ulong left, ulong right) => CreateWhileGreaterThanMaskByte(left, right); + + + // While decrementing scalar is greater than + + /// + /// svbool_t svwhilegt_b64[_s32](int32_t op1, int32_t op2) + /// WHILEGT Presult.D, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskDouble(int left, int right) => CreateWhileGreaterThanMaskDouble(left, right); + + /// + /// svbool_t svwhilegt_b64[_s64](int64_t op1, int64_t op2) + /// WHILEGT Presult.D, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskDouble(long left, long right) => CreateWhileGreaterThanMaskDouble(left, right); + + /// + /// svbool_t svwhilehi_b64[_u32](uint32_t op1, uint32_t op2) + /// WHILEHI Presult.D, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskDouble(uint left, uint right) => CreateWhileGreaterThanMaskDouble(left, right); + + /// + /// svbool_t svwhilehi_b64[_u64](uint64_t op1, uint64_t op2) + /// WHILEHI Presult.D, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskDouble(ulong left, ulong right) => CreateWhileGreaterThanMaskDouble(left, right); + + + // While decrementing scalar is greater than + + /// + /// svbool_t svwhilegt_b16[_s32](int32_t op1, int32_t op2) + /// WHILEGT Presult.H, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskInt16(int left, int right) => CreateWhileGreaterThanMaskInt16(left, right); + + /// + /// svbool_t svwhilegt_b16[_s64](int64_t op1, int64_t op2) + /// WHILEGT Presult.H, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskInt16(long left, long right) => CreateWhileGreaterThanMaskInt16(left, right); + + /// + /// svbool_t svwhilehi_b16[_u32](uint32_t op1, uint32_t op2) + /// WHILEHI Presult.H, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskInt16(uint left, uint right) => CreateWhileGreaterThanMaskInt16(left, right); + + /// + /// svbool_t svwhilehi_b16[_u64](uint64_t op1, uint64_t op2) + /// WHILEHI Presult.H, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskInt16(ulong left, ulong right) => CreateWhileGreaterThanMaskInt16(left, right); + + + // While decrementing scalar is greater than + + /// + /// svbool_t svwhilegt_b32[_s32](int32_t op1, int32_t op2) + /// WHILEGT Presult.S, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskInt32(int left, int right) => CreateWhileGreaterThanMaskInt32(left, right); + + /// + /// svbool_t svwhilegt_b32[_s64](int64_t op1, int64_t op2) + /// WHILEGT Presult.S, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskInt32(long left, long right) => CreateWhileGreaterThanMaskInt32(left, right); + + /// + /// svbool_t svwhilehi_b32[_u32](uint32_t op1, uint32_t op2) + /// WHILEHI Presult.S, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskInt32(uint left, uint right) => CreateWhileGreaterThanMaskInt32(left, right); + + /// + /// svbool_t svwhilehi_b32[_u64](uint64_t op1, uint64_t op2) + /// WHILEHI Presult.S, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskInt32(ulong left, ulong right) => CreateWhileGreaterThanMaskInt32(left, right); + + + // While decrementing scalar is greater than + + /// + /// svbool_t svwhilegt_b64[_s32](int32_t op1, int32_t op2) + /// WHILEGT Presult.D, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskInt64(int left, int right) => CreateWhileGreaterThanMaskInt64(left, right); + + /// + /// svbool_t svwhilegt_b64[_s64](int64_t op1, int64_t op2) + /// WHILEGT Presult.D, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskInt64(long left, long right) => CreateWhileGreaterThanMaskInt64(left, right); + + /// + /// svbool_t svwhilehi_b64[_u32](uint32_t op1, uint32_t op2) + /// WHILEHI Presult.D, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskInt64(uint left, uint right) => CreateWhileGreaterThanMaskInt64(left, right); + + /// + /// svbool_t svwhilehi_b64[_u64](uint64_t op1, uint64_t op2) + /// WHILEHI Presult.D, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskInt64(ulong left, ulong right) => CreateWhileGreaterThanMaskInt64(left, right); + + + // While decrementing scalar is greater than + + /// + /// svbool_t svwhilegt_b8[_s32](int32_t op1, int32_t op2) + /// WHILEGT Presult.B, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskSByte(int left, int right) => CreateWhileGreaterThanMaskSByte(left, right); + + /// + /// svbool_t svwhilegt_b8[_s64](int64_t op1, int64_t op2) + /// WHILEGT Presult.B, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskSByte(long left, long right) => CreateWhileGreaterThanMaskSByte(left, right); + + /// + /// svbool_t svwhilehi_b8[_u32](uint32_t op1, uint32_t op2) + /// WHILEHI Presult.B, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskSByte(uint left, uint right) => CreateWhileGreaterThanMaskSByte(left, right); + + /// + /// svbool_t svwhilehi_b8[_u64](uint64_t op1, uint64_t op2) + /// WHILEHI Presult.B, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskSByte(ulong left, ulong right) => CreateWhileGreaterThanMaskSByte(left, right); + + + // While decrementing scalar is greater than + + /// + /// svbool_t svwhilegt_b32[_s32](int32_t op1, int32_t op2) + /// WHILEGT Presult.S, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskSingle(int left, int right) => CreateWhileGreaterThanMaskSingle(left, right); + + /// + /// svbool_t svwhilegt_b32[_s64](int64_t op1, int64_t op2) + /// WHILEGT Presult.S, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskSingle(long left, long right) => CreateWhileGreaterThanMaskSingle(left, right); + + /// + /// svbool_t svwhilehi_b32[_u32](uint32_t op1, uint32_t op2) + /// WHILEHI Presult.S, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskSingle(uint left, uint right) => CreateWhileGreaterThanMaskSingle(left, right); + + /// + /// svbool_t svwhilehi_b32[_u64](uint64_t op1, uint64_t op2) + /// WHILEHI Presult.S, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskSingle(ulong left, ulong right) => CreateWhileGreaterThanMaskSingle(left, right); + + + // While decrementing scalar is greater than + + /// + /// svbool_t svwhilegt_b16[_s32](int32_t op1, int32_t op2) + /// WHILEGT Presult.H, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskUInt16(int left, int right) => CreateWhileGreaterThanMaskUInt16(left, right); + + /// + /// svbool_t svwhilegt_b16[_s64](int64_t op1, int64_t op2) + /// WHILEGT Presult.H, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskUInt16(long left, long right) => CreateWhileGreaterThanMaskUInt16(left, right); + + /// + /// svbool_t svwhilehi_b16[_u32](uint32_t op1, uint32_t op2) + /// WHILEHI Presult.H, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskUInt16(uint left, uint right) => CreateWhileGreaterThanMaskUInt16(left, right); + + /// + /// svbool_t svwhilehi_b16[_u64](uint64_t op1, uint64_t op2) + /// WHILEHI Presult.H, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskUInt16(ulong left, ulong right) => CreateWhileGreaterThanMaskUInt16(left, right); + + + // While decrementing scalar is greater than + + /// + /// svbool_t svwhilegt_b32[_s32](int32_t op1, int32_t op2) + /// WHILEGT Presult.S, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskUInt32(int left, int right) => CreateWhileGreaterThanMaskUInt32(left, right); + + /// + /// svbool_t svwhilegt_b32[_s64](int64_t op1, int64_t op2) + /// WHILEGT Presult.S, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskUInt32(long left, long right) => CreateWhileGreaterThanMaskUInt32(left, right); + + /// + /// svbool_t svwhilehi_b32[_u32](uint32_t op1, uint32_t op2) + /// WHILEHI Presult.S, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskUInt32(uint left, uint right) => CreateWhileGreaterThanMaskUInt32(left, right); + + /// + /// svbool_t svwhilehi_b32[_u64](uint64_t op1, uint64_t op2) + /// WHILEHI Presult.S, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskUInt32(ulong left, ulong right) => CreateWhileGreaterThanMaskUInt32(left, right); + + + // While decrementing scalar is greater than + + /// + /// svbool_t svwhilegt_b64[_s32](int32_t op1, int32_t op2) + /// WHILEGT Presult.D, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskUInt64(int left, int right) => CreateWhileGreaterThanMaskUInt64(left, right); + + /// + /// svbool_t svwhilegt_b64[_s64](int64_t op1, int64_t op2) + /// WHILEGT Presult.D, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskUInt64(long left, long right) => CreateWhileGreaterThanMaskUInt64(left, right); + + /// + /// svbool_t svwhilehi_b64[_u32](uint32_t op1, uint32_t op2) + /// WHILEHI Presult.D, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanMaskUInt64(uint left, uint right) => CreateWhileGreaterThanMaskUInt64(left, right); + + /// + /// svbool_t svwhilehi_b64[_u64](uint64_t op1, uint64_t op2) + /// WHILEHI Presult.D, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanMaskUInt64(ulong left, ulong right) => CreateWhileGreaterThanMaskUInt64(left, right); + + + // While decrementing scalar is greater than or equal to + + /// + /// svbool_t svwhilege_b8[_s32](int32_t op1, int32_t op2) + /// WHILEGE Presult.B, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskByte(int left, int right) => CreateWhileGreaterThanOrEqualMaskByte(left, right); + + /// + /// svbool_t svwhilege_b8[_s64](int64_t op1, int64_t op2) + /// WHILEGE Presult.B, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskByte(long left, long right) => CreateWhileGreaterThanOrEqualMaskByte(left, right); + + /// + /// svbool_t svwhilehs_b8[_u32](uint32_t op1, uint32_t op2) + /// WHILEHS Presult.B, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskByte(uint left, uint right) => CreateWhileGreaterThanOrEqualMaskByte(left, right); + + /// + /// svbool_t svwhilehs_b8[_u64](uint64_t op1, uint64_t op2) + /// WHILEHS Presult.B, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskByte(ulong left, ulong right) => CreateWhileGreaterThanOrEqualMaskByte(left, right); + + + // While decrementing scalar is greater than or equal to + + /// + /// svbool_t svwhilege_b64[_s32](int32_t op1, int32_t op2) + /// WHILEGE Presult.D, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskDouble(int left, int right) => CreateWhileGreaterThanOrEqualMaskDouble(left, right); + + /// + /// svbool_t svwhilege_b64[_s64](int64_t op1, int64_t op2) + /// WHILEGE Presult.D, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskDouble(long left, long right) => CreateWhileGreaterThanOrEqualMaskDouble(left, right); + + /// + /// svbool_t svwhilehs_b64[_u32](uint32_t op1, uint32_t op2) + /// WHILEHS Presult.D, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskDouble(uint left, uint right) => CreateWhileGreaterThanOrEqualMaskDouble(left, right); + + /// + /// svbool_t svwhilehs_b64[_u64](uint64_t op1, uint64_t op2) + /// WHILEHS Presult.D, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskDouble(ulong left, ulong right) => CreateWhileGreaterThanOrEqualMaskDouble(left, right); + + + // While decrementing scalar is greater than or equal to + + /// + /// svbool_t svwhilege_b16[_s32](int32_t op1, int32_t op2) + /// WHILEGE Presult.H, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskInt16(int left, int right) => CreateWhileGreaterThanOrEqualMaskInt16(left, right); + + /// + /// svbool_t svwhilege_b16[_s64](int64_t op1, int64_t op2) + /// WHILEGE Presult.H, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskInt16(long left, long right) => CreateWhileGreaterThanOrEqualMaskInt16(left, right); + + /// + /// svbool_t svwhilehs_b16[_u32](uint32_t op1, uint32_t op2) + /// WHILEHS Presult.H, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskInt16(uint left, uint right) => CreateWhileGreaterThanOrEqualMaskInt16(left, right); + + /// + /// svbool_t svwhilehs_b16[_u64](uint64_t op1, uint64_t op2) + /// WHILEHS Presult.H, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskInt16(ulong left, ulong right) => CreateWhileGreaterThanOrEqualMaskInt16(left, right); + + + // While decrementing scalar is greater than or equal to + + /// + /// svbool_t svwhilege_b32[_s32](int32_t op1, int32_t op2) + /// WHILEGE Presult.S, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskInt32(int left, int right) => CreateWhileGreaterThanOrEqualMaskInt32(left, right); + + /// + /// svbool_t svwhilege_b32[_s64](int64_t op1, int64_t op2) + /// WHILEGE Presult.S, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskInt32(long left, long right) => CreateWhileGreaterThanOrEqualMaskInt32(left, right); + + /// + /// svbool_t svwhilehs_b32[_u32](uint32_t op1, uint32_t op2) + /// WHILEHS Presult.S, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskInt32(uint left, uint right) => CreateWhileGreaterThanOrEqualMaskInt32(left, right); + + /// + /// svbool_t svwhilehs_b32[_u64](uint64_t op1, uint64_t op2) + /// WHILEHS Presult.S, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskInt32(ulong left, ulong right) => CreateWhileGreaterThanOrEqualMaskInt32(left, right); + + + // While decrementing scalar is greater than or equal to + + /// + /// svbool_t svwhilege_b64[_s32](int32_t op1, int32_t op2) + /// WHILEGE Presult.D, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskInt64(int left, int right) => CreateWhileGreaterThanOrEqualMaskInt64(left, right); + + /// + /// svbool_t svwhilege_b64[_s64](int64_t op1, int64_t op2) + /// WHILEGE Presult.D, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskInt64(long left, long right) => CreateWhileGreaterThanOrEqualMaskInt64(left, right); + + /// + /// svbool_t svwhilehs_b64[_u32](uint32_t op1, uint32_t op2) + /// WHILEHS Presult.D, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskInt64(uint left, uint right) => CreateWhileGreaterThanOrEqualMaskInt64(left, right); + + /// + /// svbool_t svwhilehs_b64[_u64](uint64_t op1, uint64_t op2) + /// WHILEHS Presult.D, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskInt64(ulong left, ulong right) => CreateWhileGreaterThanOrEqualMaskInt64(left, right); + + + // While decrementing scalar is greater than or equal to + + /// + /// svbool_t svwhilege_b8[_s32](int32_t op1, int32_t op2) + /// WHILEGE Presult.B, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskSByte(int left, int right) => CreateWhileGreaterThanOrEqualMaskSByte(left, right); + + /// + /// svbool_t svwhilege_b8[_s64](int64_t op1, int64_t op2) + /// WHILEGE Presult.B, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskSByte(long left, long right) => CreateWhileGreaterThanOrEqualMaskSByte(left, right); + + /// + /// svbool_t svwhilehs_b8[_u32](uint32_t op1, uint32_t op2) + /// WHILEHS Presult.B, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskSByte(uint left, uint right) => CreateWhileGreaterThanOrEqualMaskSByte(left, right); + + /// + /// svbool_t svwhilehs_b8[_u64](uint64_t op1, uint64_t op2) + /// WHILEHS Presult.B, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskSByte(ulong left, ulong right) => CreateWhileGreaterThanOrEqualMaskSByte(left, right); + + + // While decrementing scalar is greater than or equal to + + /// + /// svbool_t svwhilege_b32[_s32](int32_t op1, int32_t op2) + /// WHILEGE Presult.S, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskSingle(int left, int right) => CreateWhileGreaterThanOrEqualMaskSingle(left, right); + + /// + /// svbool_t svwhilege_b32[_s64](int64_t op1, int64_t op2) + /// WHILEGE Presult.S, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskSingle(long left, long right) => CreateWhileGreaterThanOrEqualMaskSingle(left, right); + + /// + /// svbool_t svwhilehs_b32[_u32](uint32_t op1, uint32_t op2) + /// WHILEHS Presult.S, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskSingle(uint left, uint right) => CreateWhileGreaterThanOrEqualMaskSingle(left, right); + + /// + /// svbool_t svwhilehs_b32[_u64](uint64_t op1, uint64_t op2) + /// WHILEHS Presult.S, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskSingle(ulong left, ulong right) => CreateWhileGreaterThanOrEqualMaskSingle(left, right); + + + // While decrementing scalar is greater than or equal to + + /// + /// svbool_t svwhilege_b16[_s32](int32_t op1, int32_t op2) + /// WHILEGE Presult.H, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskUInt16(int left, int right) => CreateWhileGreaterThanOrEqualMaskUInt16(left, right); + + /// + /// svbool_t svwhilege_b16[_s64](int64_t op1, int64_t op2) + /// WHILEGE Presult.H, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskUInt16(long left, long right) => CreateWhileGreaterThanOrEqualMaskUInt16(left, right); + + /// + /// svbool_t svwhilehs_b16[_u32](uint32_t op1, uint32_t op2) + /// WHILEHS Presult.H, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskUInt16(uint left, uint right) => CreateWhileGreaterThanOrEqualMaskUInt16(left, right); + + /// + /// svbool_t svwhilehs_b16[_u64](uint64_t op1, uint64_t op2) + /// WHILEHS Presult.H, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskUInt16(ulong left, ulong right) => CreateWhileGreaterThanOrEqualMaskUInt16(left, right); + + + // While decrementing scalar is greater than or equal to + + /// + /// svbool_t svwhilege_b32[_s32](int32_t op1, int32_t op2) + /// WHILEGE Presult.S, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskUInt32(int left, int right) => CreateWhileGreaterThanOrEqualMaskUInt32(left, right); + + /// + /// svbool_t svwhilege_b32[_s64](int64_t op1, int64_t op2) + /// WHILEGE Presult.S, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskUInt32(long left, long right) => CreateWhileGreaterThanOrEqualMaskUInt32(left, right); + + /// + /// svbool_t svwhilehs_b32[_u32](uint32_t op1, uint32_t op2) + /// WHILEHS Presult.S, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskUInt32(uint left, uint right) => CreateWhileGreaterThanOrEqualMaskUInt32(left, right); + + /// + /// svbool_t svwhilehs_b32[_u64](uint64_t op1, uint64_t op2) + /// WHILEHS Presult.S, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskUInt32(ulong left, ulong right) => CreateWhileGreaterThanOrEqualMaskUInt32(left, right); + + + // While decrementing scalar is greater than or equal to + + /// + /// svbool_t svwhilege_b64[_s32](int32_t op1, int32_t op2) + /// WHILEGE Presult.D, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskUInt64(int left, int right) => CreateWhileGreaterThanOrEqualMaskUInt64(left, right); + + /// + /// svbool_t svwhilege_b64[_s64](int64_t op1, int64_t op2) + /// WHILEGE Presult.D, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskUInt64(long left, long right) => CreateWhileGreaterThanOrEqualMaskUInt64(left, right); + + /// + /// svbool_t svwhilehs_b64[_u32](uint32_t op1, uint32_t op2) + /// WHILEHS Presult.D, Wop1, Wop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskUInt64(uint left, uint right) => CreateWhileGreaterThanOrEqualMaskUInt64(left, right); + + /// + /// svbool_t svwhilehs_b64[_u64](uint64_t op1, uint64_t op2) + /// WHILEHS Presult.D, Xop1, Xop2 + /// + public static Vector CreateWhileGreaterThanOrEqualMaskUInt64(ulong left, ulong right) => CreateWhileGreaterThanOrEqualMaskUInt64(left, right); + + // Complex dot product /// 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 de7788351ca6da..3cf407ac576d3a 100644 --- a/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs +++ b/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs @@ -7473,6 +7473,86 @@ internal Arm64() { } public static System.Numerics.Vector CountMatchingElements(System.Numerics.Vector mask, System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector CountMatchingElementsIn128BitSegments(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector CountMatchingElementsIn128BitSegments(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskByte(int left, int right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskByte(long left, long right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskByte(uint left, uint right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskByte(ulong left, ulong right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskDouble(int left, int right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskDouble(long left, long right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskDouble(uint left, uint right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskDouble(ulong left, ulong right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskInt16(int left, int right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskInt16(long left, long right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskInt16(uint left, uint right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskInt16(ulong left, ulong right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskInt32(int left, int right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskInt32(long left, long right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskInt32(uint left, uint right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskInt32(ulong left, ulong right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskInt64(int left, int right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskInt64(long left, long right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskInt64(uint left, uint right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskInt64(ulong left, ulong right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskSByte(int left, int right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskSByte(long left, long right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskSByte(uint left, uint right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskSByte(ulong left, ulong right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskSingle(int left, int right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskSingle(long left, long right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskSingle(uint left, uint right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskSingle(ulong left, ulong right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskUInt16(int left, int right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskUInt16(long left, long right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskUInt16(uint left, uint right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskUInt16(ulong left, ulong right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskUInt32(int left, int right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskUInt32(long left, long right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskUInt32(uint left, uint right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskUInt32(ulong left, ulong right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskUInt64(int left, int right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskUInt64(long left, long right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskUInt64(uint left, uint right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanMaskUInt64(ulong left, ulong right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskByte(int left, int right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskByte(long left, long right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskByte(uint left, uint right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskByte(ulong left, ulong right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskDouble(int left, int right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskDouble(long left, long right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskDouble(uint left, uint right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskDouble(ulong left, ulong right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskInt16(int left, int right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskInt16(long left, long right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskInt16(uint left, uint right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskInt16(ulong left, ulong right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskInt32(int left, int right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskInt32(long left, long right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskInt32(uint left, uint right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskInt32(ulong left, ulong right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskInt64(int left, int right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskInt64(long left, long right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskInt64(uint left, uint right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskInt64(ulong left, ulong right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskSByte(int left, int right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskSByte(long left, long right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskSByte(uint left, uint right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskSByte(ulong left, ulong right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskSingle(int left, int right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskSingle(long left, long right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskSingle(uint left, uint right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskSingle(ulong left, ulong right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskUInt16(int left, int right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskUInt16(long left, long right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskUInt16(uint left, uint right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskUInt16(ulong left, ulong right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskUInt32(int left, int right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskUInt32(long left, long right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskUInt32(uint left, uint right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskUInt32(ulong left, ulong right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskUInt64(int left, int right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskUInt64(long left, long right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskUInt64(uint left, uint right) { throw null; } + public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskUInt64(ulong left, ulong right) { throw null; } public static System.Numerics.Vector DotProductRotateComplex(System.Numerics.Vector addend, System.Numerics.Vector left, System.Numerics.Vector right, [ConstantExpected(Min = 0, Max = (byte)(3))] byte rotation) { throw null; } public static System.Numerics.Vector DotProductRotateComplex(System.Numerics.Vector addend, System.Numerics.Vector left, System.Numerics.Vector right, [ConstantExpected(Min = 0, Max = (byte)(3))] byte rotation) { throw null; } public static System.Numerics.Vector DotProductRotateComplexBySelectedIndex(System.Numerics.Vector addend, System.Numerics.Vector left, System.Numerics.Vector right, [ConstantExpected(Min = 0, Max = (byte)(3))] byte rightIndex, [ConstantExpected(Min = 0, Max = (byte)(3))] byte rotation) { throw null; } From db3e3af9bb60c8586ca84b2f623560a9aa2f687a Mon Sep 17 00:00:00 2001 From: David Hartglass Date: Fri, 27 Mar 2026 17:25:46 -0700 Subject: [PATCH 2/8] tests for createWhileGreater* --- .../GenerateHWIntrinsicTests/Arm/Sve2Tests.cs | 81 +++++++++++++++++++ .../HardwareIntrinsics/Arm/Shared/Helpers.cs | 40 +++++++++ 2 files changed, 121 insertions(+) diff --git a/src/tests/Common/GenerateHWIntrinsicTests/Arm/Sve2Tests.cs b/src/tests/Common/GenerateHWIntrinsicTests/Arm/Sve2Tests.cs index a39293f8d7f325..4ab7e7349a0fb6 100644 --- a/src/tests/Common/GenerateHWIntrinsicTests/Arm/Sve2Tests.cs +++ b/src/tests/Common/GenerateHWIntrinsicTests/Arm/Sve2Tests.cs @@ -236,6 +236,87 @@ static class Sve2Tests (Templates.SveVecBinOpDifferentRetType, new Dictionary { ["TestName"] = "Sve2_CountMatchingElementsIn128BitSegments_sbyte", ["Method"] = "CountMatchingElementsIn128BitSegments", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.CountMatchingElementsIn128BitSegments(left, right, i) != result[i]", ["GetIterResult"] = "Helpers.CountMatchingElementsIn128BitSegments(left, right, i)"}), (Templates.SveVecBinOpDifferentRetType, new Dictionary { ["TestName"] = "Sve2_CountMatchingElementsIn128BitSegments_byte", ["Method"] = "CountMatchingElementsIn128BitSegments", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.CountMatchingElementsIn128BitSegments(left, right, i) != result[i]", ["GetIterResult"] = "Helpers.CountMatchingElementsIn128BitSegments(left, right, i)"}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskByte_Int32", ["Method"] = "CreateWhileGreaterThanMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(Byte)Helpers.WhileGreaterThanMask(left + (Int32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskByte_Int64", ["Method"] = "CreateWhileGreaterThanMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(Byte)Helpers.WhileGreaterThanMask(left + (Int64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskByte_UInt32", ["Method"] = "CreateWhileGreaterThanMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(Byte)Helpers.WhileGreaterThanMask(left + (UInt32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskByte_UInt64", ["Method"] = "CreateWhileGreaterThanMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(Byte)Helpers.WhileGreaterThanMask(left + (UInt64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskDouble_Int32", ["Method"] = "CreateWhileGreaterThanMaskDouble", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "BitConverter.Int64BitsToDouble(Helpers.WhileGreaterThanMask(left + (Int32)i, right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskDouble_Int64", ["Method"] = "CreateWhileGreaterThanMaskDouble", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "BitConverter.Int64BitsToDouble(Helpers.WhileGreaterThanMask(left + (Int64)i, right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskDouble_UInt32",["Method"] = "CreateWhileGreaterThanMaskDouble", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "BitConverter.Int64BitsToDouble(Helpers.WhileGreaterThanMask(left + (UInt32)i, right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskDouble_UInt64",["Method"] = "CreateWhileGreaterThanMaskDouble", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "BitConverter.UInt64BitsToDouble(Helpers.WhileGreaterThanMask(left + (UInt64)i, right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt16_Int32", ["Method"] = "CreateWhileGreaterThanMaskInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(Int16)Helpers.WhileGreaterThanMask(left + (Int32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt16_Int64", ["Method"] = "CreateWhileGreaterThanMaskInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(Int16)Helpers.WhileGreaterThanMask(left + (Int64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt16_UInt32", ["Method"] = "CreateWhileGreaterThanMaskInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(Int16)Helpers.WhileGreaterThanMask(left + (UInt32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt16_UInt64", ["Method"] = "CreateWhileGreaterThanMaskInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(Int16)Helpers.WhileGreaterThanMask(left + (UInt64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt32_Int32", ["Method"] = "CreateWhileGreaterThanMaskInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(Int32)Helpers.WhileGreaterThanMask(left + (Int32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt32_Int64", ["Method"] = "CreateWhileGreaterThanMaskInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(Int32)Helpers.WhileGreaterThanMask(left + (Int64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt32_UInt32", ["Method"] = "CreateWhileGreaterThanMaskInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(Int32)Helpers.WhileGreaterThanMask(left + (UInt32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt32_UInt64", ["Method"] = "CreateWhileGreaterThanMaskInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(Int32)Helpers.WhileGreaterThanMask(left + (UInt64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt64_Int32", ["Method"] = "CreateWhileGreaterThanMaskInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(Int64)Helpers.WhileGreaterThanMask(left + (Int32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt64_Int64", ["Method"] = "CreateWhileGreaterThanMaskInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(Int64)Helpers.WhileGreaterThanMask(left + (Int64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt64_UInt32", ["Method"] = "CreateWhileGreaterThanMaskInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(Int64)Helpers.WhileGreaterThanMask(left + (UInt32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt64_UInt64", ["Method"] = "CreateWhileGreaterThanMaskInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(Int64)Helpers.WhileGreaterThanMask(left + (UInt64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskSByte_Int32", ["Method"] = "CreateWhileGreaterThanMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(SByte)Helpers.WhileGreaterThanMask(left + (Int32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskSByte_Int64", ["Method"] = "CreateWhileGreaterThanMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(SByte)Helpers.WhileGreaterThanMask(left + (Int64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskSByte_UInt32", ["Method"] = "CreateWhileGreaterThanMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(SByte)Helpers.WhileGreaterThanMask(left + (UInt32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskSByte_UInt64", ["Method"] = "CreateWhileGreaterThanMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(SByte)Helpers.WhileGreaterThanMask(left + (UInt64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskSingle_Int32", ["Method"] = "CreateWhileGreaterThanMaskSingle", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "BitConverter.Int32BitsToSingle(Helpers.WhileGreaterThanMask(left + (Int32)i, right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskSingle_Int64", ["Method"] = "CreateWhileGreaterThanMaskSingle", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "BitConverter.Int32BitsToSingle((int)Helpers.WhileGreaterThanMask(left + (Int64)i, right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskSingle_UInt32", ["Method"] = "CreateWhileGreaterThanMaskSingle", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "BitConverter.UInt32BitsToSingle(Helpers.WhileGreaterThanMask(left + (UInt32)i, right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskSingle_UInt64", ["Method"] = "CreateWhileGreaterThanMaskSingle", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "BitConverter.Int32BitsToSingle((int)Helpers.WhileGreaterThanMask(left + (UInt64)i, right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt16_Int32", ["Method"] = "CreateWhileGreaterThanMaskUInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(UInt16)Helpers.WhileGreaterThanMask(left + (Int32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt16_Int64", ["Method"] = "CreateWhileGreaterThanMaskUInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(UInt16)Helpers.WhileGreaterThanMask(left + (Int64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt16_UInt32", ["Method"] = "CreateWhileGreaterThanMaskUInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(UInt16)Helpers.WhileGreaterThanMask(left + (UInt32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt16_UInt64", ["Method"] = "CreateWhileGreaterThanMaskUInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(UInt16)Helpers.WhileGreaterThanMask(left + (UInt64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt32_Int32", ["Method"] = "CreateWhileGreaterThanMaskUInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(UInt32)Helpers.WhileGreaterThanMask(left + (Int32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt32_Int64", ["Method"] = "CreateWhileGreaterThanMaskUInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(UInt32)Helpers.WhileGreaterThanMask(left + (Int64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt32_UInt32", ["Method"] = "CreateWhileGreaterThanMaskUInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(UInt32)Helpers.WhileGreaterThanMask(left + (UInt32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt32_UInt64", ["Method"] = "CreateWhileGreaterThanMaskUInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(UInt32)Helpers.WhileGreaterThanMask(left + (UInt64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt64_Int32", ["Method"] = "CreateWhileGreaterThanMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanMask(left + (Int32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt64_Int64", ["Method"] = "CreateWhileGreaterThanMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanMask(left + (Int64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt64_UInt32", ["Method"] = "CreateWhileGreaterThanMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanMask(left + (UInt32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt64_UInt64", ["Method"] = "CreateWhileGreaterThanMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanMask(left + (UInt64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskByte_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(Byte)Helpers.WhileGreaterThanOrEqualMask(left + (Int32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskByte_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(Byte)Helpers.WhileGreaterThanOrEqualMask(left + (Int64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskByte_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(Byte)Helpers.WhileGreaterThanOrEqualMask(left + (UInt32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskByte_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(Byte)Helpers.WhileGreaterThanOrEqualMask(left + (UInt64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskDouble_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskDouble", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "BitConverter.Int64BitsToDouble(Helpers.WhileGreaterThanOrEqualMask(left + (Int32)i, right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskDouble_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskDouble", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "BitConverter.Int64BitsToDouble(Helpers.WhileGreaterThanOrEqualMask(left + (Int64)i, right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskDouble_UInt32",["Method"] = "CreateWhileGreaterThanOrEqualMaskDouble", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "BitConverter.Int64BitsToDouble(Helpers.WhileGreaterThanOrEqualMask(left + (UInt32)i, right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskDouble_UInt64",["Method"] = "CreateWhileGreaterThanOrEqualMaskDouble", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "BitConverter.UInt64BitsToDouble(Helpers.WhileGreaterThanOrEqualMask(left + (UInt64)i, right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt16_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(Int16)Helpers.WhileGreaterThanOrEqualMask(left + (Int32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt16_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(Int16)Helpers.WhileGreaterThanOrEqualMask(left + (Int64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt16_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(Int16)Helpers.WhileGreaterThanOrEqualMask(left + (UInt32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt16_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(Int16)Helpers.WhileGreaterThanOrEqualMask(left + (UInt64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt32_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(Int32)Helpers.WhileGreaterThanOrEqualMask(left + (Int32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt32_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(Int32)Helpers.WhileGreaterThanOrEqualMask(left + (Int64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt32_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(Int32)Helpers.WhileGreaterThanOrEqualMask(left + (UInt32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt32_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(Int32)Helpers.WhileGreaterThanOrEqualMask(left + (UInt64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt64_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(Int64)Helpers.WhileGreaterThanOrEqualMask(left + (Int32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt64_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(Int64)Helpers.WhileGreaterThanOrEqualMask(left + (Int64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt64_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(Int64)Helpers.WhileGreaterThanOrEqualMask(left + (UInt32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt64_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(Int64)Helpers.WhileGreaterThanOrEqualMask(left + (UInt64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskSByte_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(SByte)Helpers.WhileGreaterThanOrEqualMask(left + (Int32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskSByte_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(SByte)Helpers.WhileGreaterThanOrEqualMask(left + (Int64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskSByte_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(SByte)Helpers.WhileGreaterThanOrEqualMask(left + (UInt32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskSByte_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(SByte)Helpers.WhileGreaterThanOrEqualMask(left + (UInt64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskSingle_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskSingle", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "BitConverter.Int32BitsToSingle(Helpers.WhileGreaterThanOrEqualMask(left + (Int32)i, right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskSingle_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskSingle", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "BitConverter.Int32BitsToSingle((int)Helpers.WhileGreaterThanOrEqualMask(left + (Int64)i, right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskSingle_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskSingle", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "BitConverter.UInt32BitsToSingle(Helpers.WhileGreaterThanOrEqualMask(left + (UInt32)i, right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskSingle_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskSingle", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "BitConverter.Int32BitsToSingle((int)Helpers.WhileGreaterThanOrEqualMask(left + (UInt64)i, right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt16_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(UInt16)Helpers.WhileGreaterThanOrEqualMask(left + (Int32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt16_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(UInt16)Helpers.WhileGreaterThanOrEqualMask(left + (Int64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt16_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(UInt16)Helpers.WhileGreaterThanOrEqualMask(left + (UInt32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt16_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(UInt16)Helpers.WhileGreaterThanOrEqualMask(left + (UInt64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt32_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(UInt32)Helpers.WhileGreaterThanOrEqualMask(left + (Int32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt32_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(UInt32)Helpers.WhileGreaterThanOrEqualMask(left + (Int64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt32_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(UInt32)Helpers.WhileGreaterThanOrEqualMask(left + (UInt32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt32_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(UInt32)Helpers.WhileGreaterThanOrEqualMask(left + (UInt64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt64_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanOrEqualMask(left + (Int32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt64_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanOrEqualMask(left + (Int64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt64_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanOrEqualMask(left + (UInt32)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt64_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanOrEqualMask(left + (UInt64)i, right) != result[i]",}), + (Templates.SveVecImmTernOpFirstArgTest, new Dictionary { ["TestName"] = "Sve2_DotProductRotateComplex_int_sbyte_0", ["Method"] = "DotProductRotateComplex", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "SByte", ["Op3VectorType"] = "Vector", ["Op3BaseType"] = "SByte", ["Op4BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp3"] = "TestLibrary.Generator.GetSByte()", ["Imm"] = "0", ["InvalidImm"] = "4", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.DotProductRotateComplex(first[i], second, 4 * i, third, Imm) != result[i]", ["GetIterResult"] = "Helpers.DotProductRotateComplex(first[i], second, 4 * i, third, Imm)"}), (Templates.SveVecImmTernOpFirstArgTest, new Dictionary { ["TestName"] = "Sve2_DotProductRotateComplex_int_sbyte_1", ["Method"] = "DotProductRotateComplex", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "SByte", ["Op3VectorType"] = "Vector", ["Op3BaseType"] = "SByte", ["Op4BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp3"] = "TestLibrary.Generator.GetSByte()", ["Imm"] = "1", ["InvalidImm"] = "4", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.DotProductRotateComplex(first[i], second, 4 * i, third, Imm) != result[i]", ["GetIterResult"] = "Helpers.DotProductRotateComplex(first[i], second, 4 * i, third, Imm)"}), (Templates.SveVecImmTernOpFirstArgTest, new Dictionary { ["TestName"] = "Sve2_DotProductRotateComplex_int_sbyte_2", ["Method"] = "DotProductRotateComplex", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "SByte", ["Op3VectorType"] = "Vector", ["Op3BaseType"] = "SByte", ["Op4BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp3"] = "TestLibrary.Generator.GetSByte()", ["Imm"] = "2", ["InvalidImm"] = "4", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.DotProductRotateComplex(first[i], second, 4 * i, third, Imm) != result[i]", ["GetIterResult"] = "Helpers.DotProductRotateComplex(first[i], second, 4 * i, third, Imm)"}), diff --git a/src/tests/JIT/HardwareIntrinsics/Arm/Shared/Helpers.cs b/src/tests/JIT/HardwareIntrinsics/Arm/Shared/Helpers.cs index 52589b3c069dcd..39bda4df7cd7e8 100644 --- a/src/tests/JIT/HardwareIntrinsics/Arm/Shared/Helpers.cs +++ b/src/tests/JIT/HardwareIntrinsics/Arm/Shared/Helpers.cs @@ -6299,6 +6299,46 @@ public static ulong WhileLessThanOrEqualMask(ulong op1, ulong op2) return (ulong)((op1 <= op2) ? 1 : 0); } + public static int WhileGreaterThanMask(int op1, int op2) + { + return (op1 > op2) ? 1 : 0; + } + + public static uint WhileGreaterThanMask(uint op1, uint op2) + { + return (uint)((op1 > op2) ? 1 : 0); + } + + public static long WhileGreaterThanMask(long op1, long op2) + { + return (op1 > op2) ? 1 : 0; + } + + public static ulong WhileGreaterThanMask(ulong op1, ulong op2) + { + return (ulong)((op1 > op2) ? 1 : 0); + } + + public static int WhileGreaterThanOrEqualMask(int op1, int op2) + { + return (op1 >= op2) ? 1 : 0; + } + + public static uint WhileGreaterThanOrEqualMask(uint op1, uint op2) + { + return (uint)((op1 >= op2) ? 1 : 0); + } + + public static long WhileGreaterThanOrEqualMask(long op1, long op2) + { + return (op1 >= op2) ? 1 : 0; + } + + public static ulong WhileGreaterThanOrEqualMask(ulong op1, ulong op2) + { + return (ulong)((op1 >= op2) ? 1 : 0); + } + public static ulong MaskBothSet(byte[] op1, byte[] op2) { ulong acc = 0; From 6dfcbc2c445a404f693d1feae6fbaeed643cc837 Mon Sep 17 00:00:00 2001 From: David Hartglass Date: Mon, 30 Mar 2026 14:49:12 -0700 Subject: [PATCH 3/8] combine the createWhile* cases together --- src/coreclr/jit/hwintrinsiccodegenarm64.cpp | 70 ++++++++------------- 1 file changed, 26 insertions(+), 44 deletions(-) diff --git a/src/coreclr/jit/hwintrinsiccodegenarm64.cpp b/src/coreclr/jit/hwintrinsiccodegenarm64.cpp index d289494413ae79..5cbc65f671096d 100644 --- a/src/coreclr/jit/hwintrinsiccodegenarm64.cpp +++ b/src/coreclr/jit/hwintrinsiccodegenarm64.cpp @@ -267,6 +267,28 @@ void CodeGen::HWIntrinsicImmOpHelper::EmitCaseEnd() } //------------------------------------------------------------------------ +//------------------------------------------------------------------------ +// Emit helper for SVE+SVE2 WHILE* intrinsics - these set the width +// (emitSize) based on the scalar operand +// +static void genEmitCreateWhileMask(emitter* emit, + GenTreeHWIntrinsic* node, + instruction ins, + instruction unsignedIns, + regNumber targetReg, + regNumber op1Reg, + regNumber op2Reg, + insOpts opt) +{ + var_types auxType = node->GetAuxiliaryType(); + emitAttr emitSize = emitActualTypeSize(auxType); + if (varTypeIsUnsigned(auxType)) + { + ins = unsignedIns; + } + emit->emitIns_R_R_R(ins, emitSize, targetReg, op1Reg, op2Reg, opt); +} + // genHWIntrinsic: Generates the code for a given hardware intrinsic node. // // Arguments: @@ -2138,18 +2160,8 @@ void CodeGen::genHWIntrinsic(GenTreeHWIntrinsic* node) case NI_Sve_CreateWhileLessThanMaskUInt16: case NI_Sve_CreateWhileLessThanMaskUInt32: case NI_Sve_CreateWhileLessThanMaskUInt64: - { - // Emit size and instruction is based on the scalar operands. - var_types auxType = node->GetAuxiliaryType(); - emitSize = emitActualTypeSize(auxType); - if (varTypeIsUnsigned(auxType)) - { - ins = INS_sve_whilelo; - } - - GetEmitter()->emitIns_R_R_R(ins, emitSize, targetReg, op1Reg, op2Reg, opt); + genEmitCreateWhileMask(GetEmitter(), node, ins, INS_sve_whilelo, targetReg, op1Reg, op2Reg, opt); break; - } case NI_Sve_CreateWhileLessThanOrEqualMaskByte: case NI_Sve_CreateWhileLessThanOrEqualMaskDouble: @@ -2161,18 +2173,8 @@ void CodeGen::genHWIntrinsic(GenTreeHWIntrinsic* node) case NI_Sve_CreateWhileLessThanOrEqualMaskUInt16: case NI_Sve_CreateWhileLessThanOrEqualMaskUInt32: case NI_Sve_CreateWhileLessThanOrEqualMaskUInt64: - { - // Emit size and instruction is based on the scalar operands. - var_types auxType = node->GetAuxiliaryType(); - emitSize = emitActualTypeSize(auxType); - if (varTypeIsUnsigned(auxType)) - { - ins = INS_sve_whilels; - } - - GetEmitter()->emitIns_R_R_R(ins, emitSize, targetReg, op1Reg, op2Reg, opt); + genEmitCreateWhileMask(GetEmitter(), node, ins, INS_sve_whilels, targetReg, op1Reg, op2Reg, opt); break; - } case NI_Sve2_CreateWhileGreaterThanMaskByte: case NI_Sve2_CreateWhileGreaterThanMaskDouble: @@ -2184,18 +2186,8 @@ void CodeGen::genHWIntrinsic(GenTreeHWIntrinsic* node) case NI_Sve2_CreateWhileGreaterThanMaskUInt16: case NI_Sve2_CreateWhileGreaterThanMaskUInt32: case NI_Sve2_CreateWhileGreaterThanMaskUInt64: - { - // Emit size and instruction is based on the scalar operands. - var_types auxType = node->GetAuxiliaryType(); - emitSize = emitActualTypeSize(auxType); - if (varTypeIsUnsigned(auxType)) - { - ins = INS_sve_whilehi; - } - - GetEmitter()->emitIns_R_R_R(ins, emitSize, targetReg, op1Reg, op2Reg, opt); + genEmitCreateWhileMask(GetEmitter(), node, ins, INS_sve_whilehi, targetReg, op1Reg, op2Reg, opt); break; - } case NI_Sve2_CreateWhileGreaterThanOrEqualMaskByte: case NI_Sve2_CreateWhileGreaterThanOrEqualMaskDouble: @@ -2207,18 +2199,8 @@ void CodeGen::genHWIntrinsic(GenTreeHWIntrinsic* node) case NI_Sve2_CreateWhileGreaterThanOrEqualMaskUInt16: case NI_Sve2_CreateWhileGreaterThanOrEqualMaskUInt32: case NI_Sve2_CreateWhileGreaterThanOrEqualMaskUInt64: - { - // Emit size and instruction is based on the scalar operands. - var_types auxType = node->GetAuxiliaryType(); - emitSize = emitActualTypeSize(auxType); - if (varTypeIsUnsigned(auxType)) - { - ins = INS_sve_whilehs; - } - - GetEmitter()->emitIns_R_R_R(ins, emitSize, targetReg, op1Reg, op2Reg, opt); + genEmitCreateWhileMask(GetEmitter(), node, ins, INS_sve_whilehs, targetReg, op1Reg, op2Reg, opt); break; - } case NI_Sve_GatherPrefetch8Bit: case NI_Sve_GatherPrefetch16Bit: From 3faf84f4c7c3049ec0b96bca241dcdbeaec59c09 Mon Sep 17 00:00:00 2001 From: David Hartglass Date: Fri, 3 Apr 2026 09:50:53 -0700 Subject: [PATCH 4/8] stash --- src/coreclr/jit/hwintrinsiccodegenarm64.cpp | 15 +++++ src/coreclr/jit/hwintrinsiclistarm64sve.h | 10 +++ .../Arm/Sve2.PlatformNotSupported.cs | 63 +++++++++++++++++++ .../src/System/Runtime/Intrinsics/Arm/Sve2.cs | 63 +++++++++++++++++++ .../ref/System.Runtime.Intrinsics.cs | 10 +++ 5 files changed, 161 insertions(+) diff --git a/src/coreclr/jit/hwintrinsiccodegenarm64.cpp b/src/coreclr/jit/hwintrinsiccodegenarm64.cpp index 5cbc65f671096d..b08224fe910e8c 100644 --- a/src/coreclr/jit/hwintrinsiccodegenarm64.cpp +++ b/src/coreclr/jit/hwintrinsiccodegenarm64.cpp @@ -2202,6 +2202,21 @@ void CodeGen::genHWIntrinsic(GenTreeHWIntrinsic* node) genEmitCreateWhileMask(GetEmitter(), node, ins, INS_sve_whilehs, targetReg, op1Reg, op2Reg, opt); break; + case NI_Sve2_CreateWhileReadAfterWriteMaskByte: + case NI_Sve2_CreateWhileReadAfterWriteMaskDouble: + case NI_Sve2_CreateWhileReadAfterWriteMaskInt16: + case NI_Sve2_CreateWhileReadAfterWriteMaskInt32: + case NI_Sve2_CreateWhileReadAfterWriteMaskInt64: + case NI_Sve2_CreateWhileReadAfterWriteMaskSByte: + case NI_Sve2_CreateWhileReadAfterWriteMaskSingle: + case NI_Sve2_CreateWhileReadAfterWriteMaskUInt16: + case NI_Sve2_CreateWhileReadAfterWriteMaskUInt32: + case NI_Sve2_CreateWhileReadAfterWriteMaskUInt64: + // WHILERW operands are always pointers (64-bit), so emitSize is always EA_8BYTE. + // No signed/unsigned instruction variant exists. + GetEmitter()->emitIns_R_R_R(ins, EA_8BYTE, targetReg, op1Reg, op2Reg, opt); + break; + case NI_Sve_GatherPrefetch8Bit: case NI_Sve_GatherPrefetch16Bit: case NI_Sve_GatherPrefetch32Bit: diff --git a/src/coreclr/jit/hwintrinsiclistarm64sve.h b/src/coreclr/jit/hwintrinsiclistarm64sve.h index 736bba19d55dc5..a636c5901c804e 100644 --- a/src/coreclr/jit/hwintrinsiclistarm64sve.h +++ b/src/coreclr/jit/hwintrinsiclistarm64sve.h @@ -378,6 +378,16 @@ HARDWARE_INTRINSIC(Sve2, CreateWhileGreaterThanOrEqualMaskSingle, HARDWARE_INTRINSIC(Sve2, CreateWhileGreaterThanOrEqualMaskUInt16, -1, 2, {INS_invalid, INS_invalid, INS_invalid, INS_sve_whilege, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) HARDWARE_INTRINSIC(Sve2, CreateWhileGreaterThanOrEqualMaskUInt32, -1, 2, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_whilege, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) HARDWARE_INTRINSIC(Sve2, CreateWhileGreaterThanOrEqualMaskUInt64, -1, 2, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_whilege, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileReadAfterWriteMaskByte, -1, 2, {INS_invalid, INS_sve_whilerw, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileReadAfterWriteMaskDouble, -1, 2, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_whilerw}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileReadAfterWriteMaskInt16, -1, 2, {INS_invalid, INS_invalid, INS_sve_whilerw, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileReadAfterWriteMaskInt32, -1, 2, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_whilerw, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileReadAfterWriteMaskInt64, -1, 2, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_whilerw, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileReadAfterWriteMaskSByte, -1, 2, {INS_sve_whilerw, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileReadAfterWriteMaskSingle, -1, 2, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_whilerw, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileReadAfterWriteMaskUInt16, -1, 2, {INS_invalid, INS_invalid, INS_invalid, INS_sve_whilerw, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileReadAfterWriteMaskUInt32, -1, 2, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_whilerw, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) +HARDWARE_INTRINSIC(Sve2, CreateWhileReadAfterWriteMaskUInt64, -1, 2, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_whilerw, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_SpecialCodeGen|HW_Flag_ReturnsPerElementMask) HARDWARE_INTRINSIC(Sve2, DotProductRotateComplex, -1, 4, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_cdot, INS_invalid, INS_sve_cdot, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_HasRMWSemantics|HW_Flag_SpecialCodeGen|HW_Flag_HasImmediateOperand) HARDWARE_INTRINSIC(Sve2, DotProductRotateComplexBySelectedIndex, -1, 5, {INS_sve_cdot, INS_invalid, INS_sve_cdot, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_HasRMWSemantics|HW_Flag_SpecialCodeGen|HW_Flag_HasImmediateOperand|HW_Flag_LowVectorOperation|HW_Flag_SpecialImport|HW_Flag_BaseTypeFromSecondArg) HARDWARE_INTRINSIC(Sve2, FusedAddHalving, -1, -1, {INS_sve_shadd, INS_sve_uhadd, INS_sve_shadd, INS_sve_uhadd, INS_sve_shadd, INS_sve_uhadd, INS_sve_shadd, INS_sve_uhadd, 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 6c8e3108cd062b..492f4c19ca8547 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 @@ -1772,6 +1772,69 @@ internal Arm64() { } public static Vector CreateWhileGreaterThanOrEqualMaskUInt64(ulong left, ulong right) { throw new PlatformNotSupportedException(); } + // While read-after-write ordering + + /// + /// svbool_t svwhilerw[_u8](const uint8_t *op1, const uint8_t *op2) + /// WHILERW Presult.B, Xop1, Xop2 + /// + public static unsafe Vector CreateWhileReadAfterWriteMaskByte(byte* left, byte* right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilerw[_f64](const float64_t *op1, const float64_t *op2) + /// WHILERW Presult.D, Xop1, Xop2 + /// + public static unsafe Vector CreateWhileReadAfterWriteMaskDouble(double* left, double* right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilerw[_s16](const int16_t *op1, const int16_t *op2) + /// WHILERW Presult.H, Xop1, Xop2 + /// + public static unsafe Vector CreateWhileReadAfterWriteMaskInt16(short* left, short* right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilerw[_s32](const int32_t *op1, const int32_t *op2) + /// WHILERW Presult.S, Xop1, Xop2 + /// + public static unsafe Vector CreateWhileReadAfterWriteMaskInt32(int* left, int* right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilerw[_s64](const int64_t *op1, const int64_t *op2) + /// WHILERW Presult.D, Xop1, Xop2 + /// + public static unsafe Vector CreateWhileReadAfterWriteMaskInt64(long* left, long* right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilerw[_s8](const int8_t *op1, const int8_t *op2) + /// WHILERW Presult.B, Xop1, Xop2 + /// + public static unsafe Vector CreateWhileReadAfterWriteMaskSByte(sbyte* left, sbyte* right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilerw[_f32](const float32_t *op1, const float32_t *op2) + /// WHILERW Presult.S, Xop1, Xop2 + /// + public static unsafe Vector CreateWhileReadAfterWriteMaskSingle(float* left, float* right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilerw[_u16](const uint16_t *op1, const uint16_t *op2) + /// WHILERW Presult.H, Xop1, Xop2 + /// + public static unsafe Vector CreateWhileReadAfterWriteMaskUInt16(ushort* left, ushort* right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilerw[_u32](const uint32_t *op1, const uint32_t *op2) + /// WHILERW Presult.S, Xop1, Xop2 + /// + public static unsafe Vector CreateWhileReadAfterWriteMaskUInt32(uint* left, uint* right) { throw new PlatformNotSupportedException(); } + + /// + /// svbool_t svwhilerw[_u64](const uint64_t *op1, const uint64_t *op2) + /// WHILERW Presult.D, Xop1, Xop2 + /// + public static unsafe Vector CreateWhileReadAfterWriteMaskUInt64(ulong* left, ulong* right) { throw new PlatformNotSupportedException(); } + + // Complex dot product /// 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 a138264a24766d..a1bb87b2f912db 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 @@ -1772,6 +1772,69 @@ internal Arm64() { } public static Vector CreateWhileGreaterThanOrEqualMaskUInt64(ulong left, ulong right) => CreateWhileGreaterThanOrEqualMaskUInt64(left, right); + // While free of read-after-write conflicts + + /// + /// svbool_t svwhilerw[_u8](const uint8_t *op1, const uint8_t *op2) + /// WHILERW Presult.B, Xop1, Xop2 + /// + public static unsafe Vector CreateWhileReadAfterWriteMaskByte(byte* left, byte* right) => CreateWhileReadAfterWriteMaskByte(left, right); + + /// + /// svbool_t svwhilerw[_f64](const float64_t *op1, const float64_t *op2) + /// WHILERW Presult.D, Xop1, Xop2 + /// + public static unsafe Vector CreateWhileReadAfterWriteMaskDouble(double* left, double* right) => CreateWhileReadAfterWriteMaskDouble(left, right); + + /// + /// svbool_t svwhilerw[_s16](const int16_t *op1, const int16_t *op2) + /// WHILERW Presult.H, Xop1, Xop2 + /// + public static unsafe Vector CreateWhileReadAfterWriteMaskInt16(short* left, short* right) => CreateWhileReadAfterWriteMaskInt16(left, right); + + /// + /// svbool_t svwhilerw[_s32](const int32_t *op1, const int32_t *op2) + /// WHILERW Presult.S, Xop1, Xop2 + /// + public static unsafe Vector CreateWhileReadAfterWriteMaskInt32(int* left, int* right) => CreateWhileReadAfterWriteMaskInt32(left, right); + + /// + /// svbool_t svwhilerw[_s64](const int64_t *op1, const int64_t *op2) + /// WHILERW Presult.D, Xop1, Xop2 + /// + public static unsafe Vector CreateWhileReadAfterWriteMaskInt64(long* left, long* right) => CreateWhileReadAfterWriteMaskInt64(left, right); + + /// + /// svbool_t svwhilerw[_s8](const int8_t *op1, const int8_t *op2) + /// WHILERW Presult.B, Xop1, Xop2 + /// + public static unsafe Vector CreateWhileReadAfterWriteMaskSByte(sbyte* left, sbyte* right) => CreateWhileReadAfterWriteMaskSByte(left, right); + + /// + /// svbool_t svwhilerw[_f32](const float32_t *op1, const float32_t *op2) + /// WHILERW Presult.S, Xop1, Xop2 + /// + public static unsafe Vector CreateWhileReadAfterWriteMaskSingle(float* left, float* right) => CreateWhileReadAfterWriteMaskSingle(left, right); + + /// + /// svbool_t svwhilerw[_u16](const uint16_t *op1, const uint16_t *op2) + /// WHILERW Presult.H, Xop1, Xop2 + /// + public static unsafe Vector CreateWhileReadAfterWriteMaskUInt16(ushort* left, ushort* right) => CreateWhileReadAfterWriteMaskUInt16(left, right); + + /// + /// svbool_t svwhilerw[_u32](const uint32_t *op1, const uint32_t *op2) + /// WHILERW Presult.S, Xop1, Xop2 + /// + public static unsafe Vector CreateWhileReadAfterWriteMaskUInt32(uint* left, uint* right) => CreateWhileReadAfterWriteMaskUInt32(left, right); + + /// + /// svbool_t svwhilerw[_u64](const uint64_t *op1, const uint64_t *op2) + /// WHILERW Presult.D, Xop1, Xop2 + /// + public static unsafe Vector CreateWhileReadAfterWriteMaskUInt64(ulong* left, ulong* right) => CreateWhileReadAfterWriteMaskUInt64(left, right); + + // Complex dot product /// 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 3cf407ac576d3a..f7992fdedf357f 100644 --- a/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs +++ b/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs @@ -7553,6 +7553,16 @@ internal Arm64() { } public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskUInt64(long left, long right) { throw null; } public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskUInt64(uint left, uint right) { throw null; } public static System.Numerics.Vector CreateWhileGreaterThanOrEqualMaskUInt64(ulong left, ulong right) { throw null; } + public static unsafe System.Numerics.Vector CreateWhileReadAfterWriteMaskByte(byte* left, byte* right) { throw null; } + public static unsafe System.Numerics.Vector CreateWhileReadAfterWriteMaskDouble(double* left, double* right) { throw null; } + public static unsafe System.Numerics.Vector CreateWhileReadAfterWriteMaskInt16(short* left, short* right) { throw null; } + public static unsafe System.Numerics.Vector CreateWhileReadAfterWriteMaskInt32(int* left, int* right) { throw null; } + public static unsafe System.Numerics.Vector CreateWhileReadAfterWriteMaskInt64(long* left, long* right) { throw null; } + public static unsafe System.Numerics.Vector CreateWhileReadAfterWriteMaskSByte(sbyte* left, sbyte* right) { throw null; } + public static unsafe System.Numerics.Vector CreateWhileReadAfterWriteMaskSingle(float* left, float* right) { throw null; } + public static unsafe System.Numerics.Vector CreateWhileReadAfterWriteMaskUInt16(ushort* left, ushort* right) { throw null; } + public static unsafe System.Numerics.Vector CreateWhileReadAfterWriteMaskUInt32(uint* left, uint* right) { throw null; } + public static unsafe System.Numerics.Vector CreateWhileReadAfterWriteMaskUInt64(ulong* left, ulong* right) { throw null; } public static System.Numerics.Vector DotProductRotateComplex(System.Numerics.Vector addend, System.Numerics.Vector left, System.Numerics.Vector right, [ConstantExpected(Min = 0, Max = (byte)(3))] byte rotation) { throw null; } public static System.Numerics.Vector DotProductRotateComplex(System.Numerics.Vector addend, System.Numerics.Vector left, System.Numerics.Vector right, [ConstantExpected(Min = 0, Max = (byte)(3))] byte rotation) { throw null; } public static System.Numerics.Vector DotProductRotateComplexBySelectedIndex(System.Numerics.Vector addend, System.Numerics.Vector left, System.Numerics.Vector right, [ConstantExpected(Min = 0, Max = (byte)(3))] byte rightIndex, [ConstantExpected(Min = 0, Max = (byte)(3))] byte rotation) { throw null; } From 1bb92c60fd7c54d375377b3be8d7bd85871fa380 Mon Sep 17 00:00:00 2001 From: David Hartglass Date: Fri, 3 Apr 2026 13:20:17 -0700 Subject: [PATCH 5/8] testcase for RAW mask byte --- .../Arm/Sve2/CreateWhileRWMask.cs | 65 +++++++++++++++++++ .../HardwareIntrinsics/Arm/Sve2/Sve2_r.csproj | 1 + .../Arm/Sve2/Sve2_ro.csproj | 1 + 3 files changed, 67 insertions(+) create mode 100644 src/tests/JIT/HardwareIntrinsics/Arm/Sve2/CreateWhileRWMask.cs diff --git a/src/tests/JIT/HardwareIntrinsics/Arm/Sve2/CreateWhileRWMask.cs b/src/tests/JIT/HardwareIntrinsics/Arm/Sve2/CreateWhileRWMask.cs new file mode 100644 index 00000000000000..7983a7a430d15e --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/Arm/Sve2/CreateWhileRWMask.cs @@ -0,0 +1,65 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Numerics; +using System.Runtime.CompilerServices; +using System.Runtime.Intrinsics; +using System.Runtime.Intrinsics.Arm; +using Xunit; + +namespace JIT.HardwareIntrinsics.Arm._Sve2 +{ + public static partial class Program + { + [Fact] + public static unsafe void CreateWhileReadAfterWriteMaskByte_SameAddress() + { + if (!Sve2.IsSupported) + { + return; + } + + // When pointers are idential, all elements of returned mask are "1" + byte* ptr = stackalloc byte[Vector.Count]; + Vector mask = Sve2.CreateWhileReadAfterWriteMaskByte(ptr, ptr); + + for (int i = 0; i < Vector.Count; i++) + { + if (mask.GetElement(i) == 0) + { + throw new Exception( + $"CreateWhileReadAfterWriteMaskByte(ptr, ptr): Expected all elements true, but element {i} was false."); + } + } + } + + [Fact] + public static unsafe void CreateWhileReadAfterWriteMaskByte_OffsetByOne() + { + if (!Sve2.IsSupported) + { + return; + } + + // When pointers differ by one element, first element of returned mask is "1", the rest are "0" + byte* ptr = stackalloc byte[Vector.Count + 1]; + Vector mask = Sve2.CreateWhileReadAfterWriteMaskByte(ptr, ptr + 1); + + if (mask.GetElement(0) == 0) + { + throw new Exception( + $"CreateWhileReadAfterWriteMaskByte(ptr, ptr+1): Expected element 0 to be true, but was false."); + } + + for (int i = 1; i < Vector.Count; i++) + { + if (mask.GetElement(i) != 0) + { + throw new Exception( + $"CreateWhileReadAfterWriteMaskByte(ptr, ptr+1): Expected element {i} to be false, but was true."); + } + } + } + } +} diff --git a/src/tests/JIT/HardwareIntrinsics/Arm/Sve2/Sve2_r.csproj b/src/tests/JIT/HardwareIntrinsics/Arm/Sve2/Sve2_r.csproj index a7c38137553dec..e1c01e091d1252 100644 --- a/src/tests/JIT/HardwareIntrinsics/Arm/Sve2/Sve2_r.csproj +++ b/src/tests/JIT/HardwareIntrinsics/Arm/Sve2/Sve2_r.csproj @@ -8,6 +8,7 @@ + diff --git a/src/tests/JIT/HardwareIntrinsics/Arm/Sve2/Sve2_ro.csproj b/src/tests/JIT/HardwareIntrinsics/Arm/Sve2/Sve2_ro.csproj index 10acace4133a8b..e5ec04e52ab716 100644 --- a/src/tests/JIT/HardwareIntrinsics/Arm/Sve2/Sve2_ro.csproj +++ b/src/tests/JIT/HardwareIntrinsics/Arm/Sve2/Sve2_ro.csproj @@ -8,6 +8,7 @@ + From c516f900cfb1c1b885c0591aaad83038a76304e2 Mon Sep 17 00:00:00 2001 From: David Hartglass Date: Mon, 27 Apr 2026 12:15:39 -0700 Subject: [PATCH 6/8] have whileRWMaskTests use templates instead --- .../logs/test-report-2026-04-23-193554.md | 1830 +++++++++++++++++ .../ci-pipeline-monitor/scripts/monitor.db | Bin 0 -> 1236992 bytes .../GenerateHWIntrinsicTests/Arm/Sve2Tests.cs | 13 +- .../GenerateHWIntrinsicTests/Arm/Templates.cs | 1 + .../Shared/SveCreateWhileRWMaskTest.template | 151 ++ .../Arm/Sve2/CreateWhileRWMask.cs | 65 - .../HardwareIntrinsics/Arm/Sve2/Sve2_r.csproj | 1 - .../Arm/Sve2/Sve2_ro.csproj | 1 - 8 files changed, 1994 insertions(+), 68 deletions(-) create mode 100644 .github/skills/ci-pipeline-monitor/logs/test-report-2026-04-23-193554.md create mode 100644 .github/skills/ci-pipeline-monitor/scripts/monitor.db create mode 100644 src/tests/JIT/HardwareIntrinsics/Arm/Shared/SveCreateWhileRWMaskTest.template delete mode 100644 src/tests/JIT/HardwareIntrinsics/Arm/Sve2/CreateWhileRWMask.cs diff --git a/.github/skills/ci-pipeline-monitor/logs/test-report-2026-04-23-193554.md b/.github/skills/ci-pipeline-monitor/logs/test-report-2026-04-23-193554.md new file mode 100644 index 00000000000000..d593278b03fa82 --- /dev/null +++ b/.github/skills/ci-pipeline-monitor/logs/test-report-2026-04-23-193554.md @@ -0,0 +1,1830 @@ +================================================================================ +CI Pipeline Monitor — Test Report +Date: 2026-04-23 +Org: dnceng-public +Project: public +Branch: refs/heads/main +Pipelines: 23 total (21 monitored, 2 skipped) +================================================================================ + +================================================================================ +Pipeline Summary +================================================================================ + +Result: 6 PASS, 10 FAIL, 5 INCONCLUSIVE (of 21 monitored) + + ✅ runtime-coreclr ilasm 20260418.1 + https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385542 + + ✅ runtime-coreclr jitstress-isas-arm 20260418.1 + https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385544 + + ✅ runtime-coreclr jitstress-isas-avx512 20260418.1 + https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385561 + + ✅ runtime-coreclr jitstress-isas-x86 20260418.1 + https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385562 + + ✅ runtime-coreclr jitstress2-jitstressregs 20260419.1 + https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386178 + + ✅ runtime-coreclr superpmi-replay 20260423.1 + https://dev.azure.com/dnceng-public/public/_build/results?buildId=1392584 + + ❌ runtime-coreclr gcstress-extra 20260419.1 + https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386264 + - [9] JIT.SIMD.0.1 (#126819, https://github.com/dotnet/runtime/issues/126819) + - [10] JIT/jit64/regress/vsw/373472/test_il/test_il.dll (#127128, https://github.com/dotnet/runtime/issues/127128) + - [11] JIT.performance.0.1 (#127138, https://github.com/dotnet/runtime/issues/127138) + - [11] Regression_o_2.0.1 (#127138, https://github.com/dotnet/runtime/issues/127138) + + ❌ runtime-coreclr jitstress-random 20260419.1 + https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386206 + - [4] HardwareIntrinsics_General_ro (#127141, https://github.com/dotnet/runtime/issues/127141) + + ❌ runtime-coreclr jitstressregs-x86 20260419.1 + https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386227 + - [7] JIT.performance (#127131, https://github.com/dotnet/runtime/issues/127131) + - [7] JIT/Directed/tls/TestTLSWithLoadedDlls/TestTLSWithLoadedDlls.cmd (#127131, https://github.com/dotnet/runtime/issues/127131) + - [7] JIT/Performance/CodeQuality/BenchmarksGame/spectralnorm/spectralnorm-3/spectralnorm-3.dll (#127131, https://github.com/dotnet/runtime/issues/127131) + - [7] JIT/Regression/CLR-x86-JIT/V1.1-M1-Beta1/b143840/b143840/b143840.cmd (#127131, https://github.com/dotnet/runtime/issues/127131) + - [7] Regression_PdbOnly_ro (#127131, https://github.com/dotnet/runtime/issues/127131) + - [7] ... and 11 more (#127131, https://github.com/dotnet/runtime/issues/127131) + + ❌ runtime-coreclr libraries-jitstress 20260423.1 + https://dev.azure.com/dnceng-public/public/_build/results?buildId=1392586 + - [5] System.Diagnostics.Tests.ProcessWaitingTests.ProcessSafeHandle_WaitForExitOrKillOnCancellationAsync_KillsOnCancellation (#127287, https://github.com/dotnet/runtime/issues/127287) + + ❌ runtime-coreclr libraries-jitstress-random 20260418.1 + https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385513 + - [1] System.Net.NameResolution.Tests.GetHostByNameTest.DnsObsoleteBeginEndGetHostByName_EmptyString_ReturnsHostName (#126641, https://github.com/dotnet/runtime/issues/126641) + - [1] System.Net.NameResolution.Tests.GetHostByNameTest.DnsObsoleteGetHostByName_EmptyString_ReturnsHostName (#126641, https://github.com/dotnet/runtime/issues/126641) + - [1] System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntryAsync_HostString_Ok (#126641, https://github.com/dotnet/runtime/issues/126641) + - [1] System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntry_HostString_Ok (#126641, https://github.com/dotnet/runtime/issues/126641) + - [1] System.Net.NameResolution.Tests.GetHostEntryTest.GetHostEntry_DisableIPv6_ExcludesIPv6Addresses (#126641, https://github.com/dotnet/runtime/issues/126641) + - [2] System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.Exp_AllLengths (#127127, https://github.com/dotnet/runtime/issues/127127) + - [2] System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.Exp_InPlace (#127127, https://github.com/dotnet/runtime/issues/127127) + - [2] System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.Exp_SpecialValues (#127127, https://github.com/dotnet/runtime/issues/127127) + - [2] System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.IndexOfMaxMagnitude_FirstNaNReturned (#127127, https://github.com/dotnet/runtime/issues/127127) + - [2] System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.IndexOfMaxMagnitude_Negative0LesserThanPositive0 (#127127, https://github.com/dotnet/runtime/issues/127127) + - [3] System.Linq.Tests.SequenceTests.EndOutOfRange_Throws (#127125, https://github.com/dotnet/runtime/issues/127125) + - [3] System.Linq.Tests.SequenceTests.Numbers_ProduceExpectedSequence (#127125, https://github.com/dotnet/runtime/issues/127125) + - [3] System.Linq.Tests.SequenceTests.Step1_MatchesRange (#127125, https://github.com/dotnet/runtime/issues/127125) + - [2] ... and 90 more (#127127, https://github.com/dotnet/runtime/issues/127127) + + ❌ runtime-coreclr libraries-jitstress2-jitstressregs 20260418.1 + https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385246 + - [1] System.Net.NameResolution.Tests.GetHostByNameTest.DnsObsoleteBeginEndGetHostByName_EmptyString_ReturnsHostName (#126641, https://github.com/dotnet/runtime/issues/126641) + - [1] System.Net.NameResolution.Tests.GetHostByNameTest.DnsObsoleteGetHostByName_EmptyString_ReturnsHostName (#126641, https://github.com/dotnet/runtime/issues/126641) + - [1] System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntryAsync_HostString_Ok (#126641, https://github.com/dotnet/runtime/issues/126641) + - [1] System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntry_HostString_Ok (#126641, https://github.com/dotnet/runtime/issues/126641) + - [1] System.Net.NameResolution.Tests.GetHostEntryTest.GetHostEntry_DisableIPv6_ExcludesIPv6Addresses (#126641, https://github.com/dotnet/runtime/issues/126641) + - [12] ComInterfaceGenerator.Unit.Tests (#125685, https://github.com/dotnet/runtime/issues/125685) + - [12] IntrinsicsInSystemPrivateCoreLib.Tests (#125685, https://github.com/dotnet/runtime/issues/125685) + - [12] JSImportGenerator.Unit.Tests (#125685, https://github.com/dotnet/runtime/issues/125685) + - [12] LibraryImportGenerator.Unit.Tests (#125685, https://github.com/dotnet/runtime/issues/125685) + - [12] Microsoft.Extensions.Configuration.Binder.SourceGeneration.Tests (#125685, https://github.com/dotnet/runtime/issues/125685) + - [13] System.Diagnostics.Metrics.Tests.MetricsTests.PassingVariableTagsParametersTest (#125312, https://github.com/dotnet/runtime/issues/125312) + - [14] System.Diagnostics.Tests.StartAndForgetTests.StartAndForget_StartsProcessAndReturnsValidPid (#127107, https://github.com/dotnet/runtime/issues/127107) + - [12] ... and 4 more (#125685, https://github.com/dotnet/runtime/issues/125685) + + ❌ runtime-coreclr libraries-jitstressregs 20260419.1 + https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385979 + - [1] System.Net.NameResolution.Tests.GetHostByNameTest.DnsObsoleteBeginEndGetHostByName_EmptyString_ReturnsHostName (#126641, https://github.com/dotnet/runtime/issues/126641) + - [1] System.Net.NameResolution.Tests.GetHostByNameTest.DnsObsoleteGetHostByName_EmptyString_ReturnsHostName (#126641, https://github.com/dotnet/runtime/issues/126641) + - [1] System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntryAsync_HostString_Ok (#126641, https://github.com/dotnet/runtime/issues/126641) + - [1] System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntry_HostString_Ok (#126641, https://github.com/dotnet/runtime/issues/126641) + - [1] System.Net.NameResolution.Tests.GetHostEntryTest.GetHostEntry_DisableIPv6_ExcludesIPv6Addresses (#126641, https://github.com/dotnet/runtime/issues/126641) + - [15] [New] System.Threading.Tasks.Tests.TaskRtTests_Core.RunTCSCompletionStateTests (JIT codegen bug in register-stressed path corrupts Task continuation object type) + - [15] [New] System.Threading.Tasks.Tests.TaskRtTests_Core.RunTCSCompletionStateTests_SetCancel (JIT codegen bug in register-stressed path corrupts Task continuation object type) + - [16] System.Threading.Tests.BarrierTests.RunBarrierTest7a (#127130, https://github.com/dotnet/runtime/issues/127130) + + ❌ runtime-coreclr libraries-pgo 20260419.1 + https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386172 + - [1] System.Net.NameResolution.Functional.Tests (#126641, https://github.com/dotnet/runtime/issues/126641) + - [1] System.Net.NameResolution.Tests.GetHostByNameTest.DnsObsoleteBeginEndGetHostByName_EmptyString_ReturnsHostName (#126641, https://github.com/dotnet/runtime/issues/126641) + - [1] System.Net.NameResolution.Tests.GetHostByNameTest.DnsObsoleteGetHostByName_EmptyString_ReturnsHostName (#126641, https://github.com/dotnet/runtime/issues/126641) + - [1] System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntryAsync_HostString_Ok (#126641, https://github.com/dotnet/runtime/issues/126641) + - [1] System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntry_HostString_Ok (#126641, https://github.com/dotnet/runtime/issues/126641) + - [17] System.Linq.Parallel.Tests (#118595, https://github.com/dotnet/runtime/issues/118595) + - [18] System.Runtime.Tests (#127142, https://github.com/dotnet/runtime/issues/127142) + - [20] [New] System.Threading.Overlapped.Tests (Overlapped test crash with IOException when EventWaitHandle.Set fails in IO comp) + - [1] ... and 1 more (#126641, https://github.com/dotnet/runtime/issues/126641) + + ❌ runtime-coreclr pgostress 20260417.1 + https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385207 + - [8] [New] Regression_4 (JIT assertion in fgbasic.cpp:5228 during CopyToAsync OSR compilation under pgost) + + ❌ runtime-jit-experimental 20260419.1 + https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386276 + - [6] Loader/binding/tracing/BinderTracingTest.ResolutionFlow/BinderTracingTest.ResolutionFlow.cmd (#104670, https://github.com/dotnet/runtime/issues/104670) + + ⚠️ [runtime-coreclr gcstress0x3-gcstress0xc 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386096): INCONCLUSIVE (Build failed but no test failures detected via Test Results API) + ⚠️ [runtime-coreclr jitstress 20260422.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1392498): INCONCLUSIVE (Build failed but no test failures detected via Test Results API) + ⚠️ [runtime-coreclr jitstressregs 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385996): INCONCLUSIVE (Build failed but no test failures detected via Test Results API) + ⚠️ [runtime-coreclr pgo 20260423.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1392614): INCONCLUSIVE (Build failed but no test failures detected via Test Results API) + ⚠️ [runtime-coreclr superpmi-asmdiffs-checked-release 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385995): INCONCLUSIVE (Build failed but no test failures detected via Test Results API) + ⏭️ runtime-coreclr jitrollingbuild: SKIPPED (private) + ⏭️ runtime-coreclr superpmi-collect: SKIPPED (private) + +Notes: +- ✅ = all tests passed +- ❌ = one or more test failures +- ⚠️ = inconclusive (build failed but no test failures detected via Test Results API) +- ⏭️ = skipped (see reason per pipeline above) +- [New] = no matching GitHub issue found — may need a new issue filed. + +================================================================================ +Failure Details +================================================================================ + +The following unique test failures were found across all failing pipelines. +Each failure category is listed once with all affected pipelines. + +-------------------------------------------------------------------------------- +FAILURE 1: DNS NameResolution tests fail with Name or service not known (linux x64, arm, arm64, windows x64, x86) +-------------------------------------------------------------------------------- +GitHub Issue: #126641 (https://github.com/dotnet/runtime/issues/126641) — OPEN +Labels: area-System.Net, tracking-external-issue, blocking-clean-ci +Failing since: None (build None) + +Work item: System.Net.NameResolution.Tests + +Title: Test Failure: System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntry_HostString_Ok +Labels: area-System.Net, tracking-external-issue, blocking-clean-ci +Milestone: 11.0.0 + +Body (paste as-is into GitHub issue): +<<< +**Summary:** + DNS NameResolution tests fail with SocketException on Helix machines where hostname is not in /etc/hosts. + +**Failed in (4):** +- [runtime-coreclr libraries-jitstress-random 20260418.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385513) +- [runtime-coreclr libraries-jitstress2-jitstressregs 20260418.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385246) +- [runtime-coreclr libraries-jitstressregs 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385979) +- [runtime-coreclr libraries-pgo 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386172) + +**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/2a59dcb1-64f6-4588-8431-4275d54279cc/workitems/System.Net.NameResolution.Functional.Tests/console) +**Source:** [runtime-coreclr libraries-jitstress-random / net11.0-linux-Release-x64-jitstress_random_1-AzureLinux.3.Amd64.Open / System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntry_HostString_Ok](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385513&view=ms.vss-test-web.build-test-results-tab) + +**Failed tests:** +``` +runtime-coreclr libraries-jitstress-random +- net11.0-linux-Release-x64-jitstress_random_1-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-jitstress_random_2-AzureLinux.3.Amd64.Open +runtime-coreclr libraries-jitstress2-jitstressregs +- net11.0-linux-Release-x64-jitstress2_jitstressregs0x10-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-jitstress2_jitstressregs0x1000-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-jitstress2_jitstressregs0x2000-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-jitstress2_jitstressregs0x80-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-jitstress2_jitstressregs1-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-jitstress2_jitstressregs2-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-jitstress2_jitstressregs3-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-jitstress2_jitstressregs4-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-jitstress2_jitstressregs8-AzureLinux.3.Amd64.Open +runtime-coreclr libraries-jitstressregs +- net11.0-linux-Release-x64-jitstressregs0x10-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-jitstressregs0x1000-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-jitstressregs0x2000-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-jitstressregs0x80-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-jitstressregs1-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-jitstressregs2-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-jitstressregs3-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-jitstressregs4-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-jitstressregs8-AzureLinux.3.Amd64.Open +runtime-coreclr libraries-pgo +- net11.0-linux-Release-x64-defaultpgo-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-fullpgo-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-fullpgo_methodprofiling-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-fullpgo_random_gdv-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-fullpgo_random_gdv_edge-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-fullpgo_random_gdv_methodprofiling_only-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-jitosr_stress-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-jitosr_stress_random-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-jitrlcse-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-syntheticpgo-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-syntheticpgo_blend-AzureLinux.3.Amd64.Open +- net11.0-windows-Release-x64-jitosr_stress_random-Windows.10.Amd64.Open + - System.Net.NameResolution.Functional.Tests + - System.Net.NameResolution.Tests.GetHostByNameTest.DnsObsoleteBeginEndGetHostByName_EmptyString_ReturnsHostName + - System.Net.NameResolution.Tests.GetHostByNameTest.DnsObsoleteGetHostByName_EmptyString_ReturnsHostName + - System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntryAsync_HostString_Ok + - System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntry_HostString_Ok + - ... and 1 more +``` + +**Error Message:** +``` +System.Net.Sockets.SocketException (00000005, 0xFFFDFFFF): Name or service not known +``` + +**Stack Trace:** +``` +at System.Net.Dns.GetHostEntryOrAddressesCore(String hostName, Boolean justAddresses, AddressFamily addressFamily, Nullable1 activityOrDefault) + at System.Net.Dns.GetHostEntry(String hostNameOrAddress, AddressFamily family) + at System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntry_HostString_Ok(String hostName) +``` + +**Analysis:** +Infrastructure/environment problem. Hostname not in /etc/hosts on Helix machines causes getaddrinfo to fail. Not a code defect. Affects 4 library stress pipelines with 156 test failures. +>>> + +-------------------------------------------------------------------------------- +FAILURE 2: JitStress-random causes widespread Half (float16) miscompilation (linux x64, windows x64, x86) +-------------------------------------------------------------------------------- +GitHub Issue: #127127 (https://github.com/dotnet/runtime/issues/127127) — OPEN +Labels: area-System.Numerics.Tensors, JitStress, blocking-clean-ci-optional +Failing since: None (build None) + +Work item: System.Numerics.Tensors.Tests + +Title: Test Failure: System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.SpanDestinationFunctions_AllLengths +Labels: area-System.Numerics.Tensors, JitStress, blocking-clean-ci-optional +Milestone: 11.0.0 + +Body (paste as-is into GitHub issue): +<<< +**Summary:** + Under jitstress-random, the JIT produces incorrect code for Half (float16) operations across HalfTests, HalfGenericTensorPrimitives, and SByteTests_GenericMath. + +**Failed in (1):** +- [runtime-coreclr libraries-jitstress-random 20260418.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385513) + +**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/2a59dcb1-64f6-4588-8431-4275d54279cc/workitems/System.Numerics.Tensors.Tests/console) +**Source:** [runtime-coreclr libraries-jitstress-random / net11.0-linux-Release-x64-jitstress_random_1-AzureLinux.3.Amd64.Open / System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.SpanDestinationFunctions_AllLengths](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385513&view=ms.vss-test-web.build-test-results-tab) + +**Failed tests:** +``` +- net11.0-linux-Release-x64-jitstress_random_1-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-jitstress_random_2-AzureLinux.3.Amd64.Open +- net11.0-windows-Release-x64-jitstress_random_1-Windows.10.Amd64.Open +- net11.0-windows-Release-x64-jitstress_random_2-Windows.10.Amd64.Open +- net11.0-windows-Release-x86-jitstress_random_1-Windows.10.Amd64.Open +- net11.0-windows-Release-x86-jitstress_random_2-Windows.10.Amd64.Open + - System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.Exp_AllLengths + - System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.Exp_InPlace + - System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.Exp_SpecialValues + - System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.IndexOfMaxMagnitude_FirstNaNReturned + - System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.IndexOfMaxMagnitude_Negative0LesserThanPositive0 + - ... and 90 more +``` + +**Error Message:** +``` + System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.SpanDestinationFunctions_AllLengths(tensorPrimitivesMethod: SpanDestinationDelegate { Method = Void Exp10M1[Half](System.ReadOnlySpan`1[System.Half], System.Span`1[System.Half]), Target = null }, expectedMethod: Func`2 { Method = System.Half Exp10M1(System.Half), Target = null }, tolerance: null) [FAIL] + Assert.All() Failure: 7 out of 257 items in the collection did not pass. +``` + +**Stack Trace:** +``` +at System.Tests.HalfTests_GenericMath.AssertBitwiseEqual(Half expected, Half actual) + at System.Numerics.Tensors.Tests.GenericFloatingPointNumberTensorPrimitivesTests1.SpanDestinationFunctions_AllLengths(...) +``` + +**Analysis:** +JIT codegen bug under random stress modes. Produces wildly wrong numerical results for Half arithmetic. All platforms affected. Not a library defect. +>>> + +-------------------------------------------------------------------------------- +FAILURE 3: JitStress-random miscompiles Sequence overflow/boundary arithmetic (linux x64, windows x64, x86) +-------------------------------------------------------------------------------- +GitHub Issue: #127125 (https://github.com/dotnet/runtime/issues/127125) — OPEN +Labels: area-System.Linq, JitStress, blocking-clean-ci-optional +Failing since: None (build None) + +Work item: System.Linq.AsyncEnumerable.Tests + +Title: Test Failure: System.Linq.Tests.SequenceTests.Numbers_ProduceExpectedSequence +Labels: area-System.Linq, JitStress, blocking-clean-ci-optional +Milestone: 11.0.0 + +Body (paste as-is into GitHub issue): +<<< +**Summary:** + Under jitstress-random, the JIT miscompiles checked/unchecked arithmetic in Linq Sequence. + +**Failed in (1):** +- [runtime-coreclr libraries-jitstress-random 20260418.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385513) + +**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/2a59dcb1-64f6-4588-8431-4275d54279cc/workitems/System.Linq.AsyncEnumerable.Tests/console) +**Source:** [runtime-coreclr libraries-jitstress-random / net11.0-linux-Release-x64-jitstress_random_1-AzureLinux.3.Amd64.Open / System.Linq.Tests.SequenceTests.Numbers_ProduceExpectedSequence](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385513&view=ms.vss-test-web.build-test-results-tab) + +**Failed tests:** +``` +- net11.0-linux-Release-x64-jitstress_random_1-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-jitstress_random_2-AzureLinux.3.Amd64.Open +- net11.0-windows-Release-x64-jitstress_random_1-Windows.10.Amd64.Open +- net11.0-windows-Release-x64-jitstress_random_2-Windows.10.Amd64.Open + - System.Linq.Tests.SequenceTests.EndOutOfRange_Throws + - System.Linq.Tests.SequenceTests.Numbers_ProduceExpectedSequence + - System.Linq.Tests.SequenceTests.Step1_MatchesRange +``` + +**Error Message:** +``` + System.Linq.Tests.SequenceTests.Numbers_ProduceExpectedSequence [FAIL] + Assert.Equal() Failure: Collections differ + ↓ (pos 3) + Expected: [0, 1, 2, 0, 4] + Actual: [0, 1, 2, 3, 4] + ↑ (pos 3) + Stack Trace: + --- End of stack trace from previous location --- + --- End of stack trace from previous location --- + Assert.Equal() Failure: Values differ + Expected: 2 + Actual: 125 + Stack Trace: +``` + +**Stack Trace:** +``` +at System.Linq.Tests.SequenceTests.Numbers_ProduceExpectedSequence() +``` + +**Analysis:** +JIT fails to handle overflow/truncation for small integer types. Same JIT stress root cause as the Half failures. +>>> + +-------------------------------------------------------------------------------- +FAILURE 4: JIT LSRA assertion refPosition->RegOptional() in Vector512.DotByte under jitstress-random (osx arm64) +-------------------------------------------------------------------------------- +GitHub Issue: #127141 (https://github.com/dotnet/runtime/issues/127141) — OPEN +Assigned to: @@dhartglassMSFT +Labels: area-CodeGen-coreclr, untriaged +Failing since: None (build None) + +Work item: HardwareIntrinsics_General_ro + +Title: Test Failure: HardwareIntrinsics_General_ro +Labels: area-CodeGen-coreclr, untriaged +Milestone: 11.0.0 + +Body (paste as-is into GitHub issue): +<<< +**Summary:** + JIT assert in LSRA during Vector512.DotByte compilation under jitstress_random_2 on osx arm64. + +**Failed in (1):** +- [runtime-coreclr jitstress-random 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386206) + +**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/f6a720ab-8cc5-4e76-b5a4-eb87d6a2ddf1/workitems/HardwareIntrinsics_General_ro/console) +**Source:** [runtime-coreclr jitstress-random / coreclr osx arm64 Checked jitstress_random_2 @ OSX.26.Arm64.Open / HardwareIntrinsics_General_ro](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386206&view=ms.vss-test-web.build-test-results-tab) + +**Failed tests:** +``` +- coreclr osx arm64 Checked jitstress_random_2 @ OSX.26.Arm64.Open + - HardwareIntrinsics_General_ro +``` + +**Error Message:** +``` +Assert failure(PID 25723 [0x0000647b], Thread: 313971 [0x4ca73]): Assertion failed 'refPosition->RegOptional()' in 'JIT.HardwareIntrinsics.General._Vector512.VectorBinaryOpTest__DotByte:RunClsVarScenario():this' during 'LSRA build intervals' (IL size 49; hash 0x186ed855; FullOpts) + + File: /Users/runner/work/1/s/src/coreclr/jit/lsra.cpp:13676 + Image: /private/tmp/helix/working/B96E0A35/p/corerun +``` + +**Stack Trace:** +``` +N/A +``` + +**Analysis:** +JIT register allocator bug. Hits assertion refPosition->RegOptional() in LSRA build intervals under DOTNET_JitStress=2a. +>>> + +-------------------------------------------------------------------------------- +FAILURE 5: ProcessSafeHandle_WaitForExitOrKillOnCancellationAsync_KillsOnCancellation flaky (linux arm, arm64) +-------------------------------------------------------------------------------- +GitHub Issue: #127287 (https://github.com/dotnet/runtime/issues/127287) — OPEN +Assigned to: @@adamsitnik +Labels: area-System.Diagnostics.Process, blocking-clean-ci, Known Build Error +Failing since: None (build None) + +Work item: System.Diagnostics.Process.Tests + +Title: Test Failure: System.Diagnostics.Tests.ProcessWaitingTests.ProcessSafeHandle_WaitForExitOrKillOnCancellationAsync_KillsOnCancellation +Labels: area-System.Diagnostics.Process, blocking-clean-ci, Known Build Error +Milestone: 11.0.0 + +Body (paste as-is into GitHub issue): +<<< +**Summary:** + ProcessWaitingTests.KillsOnCancellation fails intermittently under jitstress on Linux ARM. + +**Failed in (1):** +- [runtime-coreclr libraries-jitstress 20260423.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1392586) + +**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/5e340bb6-12d2-40d2-99b5-9c258099aa10/workitems/System.Diagnostics.Process.Tests/console) +**Source:** [runtime-coreclr libraries-jitstress / net11.0-linux-Release-arm-jitstress1_tiered-(Debian.13.Arm32.Open)AzureLinux.3.Arm64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-13-helix-arm32v7 / System.Diagnostics.Tests.ProcessWaitingTests.ProcessSafeHandle_WaitForExitOrKillOnCancellationAsync_KillsOnCancellation](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1392586&view=ms.vss-test-web.build-test-results-tab) + +**Failed tests:** +``` +- net11.0-linux-Release-arm-jitstress1_tiered-(Debian.13.Arm32.Open)AzureLinux.3.Arm64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-13-helix-arm32v7 +- net11.0-linux-Release-arm64-jitminopts-AzureLinux.3.Arm64.Open + - System.Diagnostics.Tests.ProcessWaitingTests.ProcessSafeHandle_WaitForExitOrKillOnCancellationAsync_KillsOnCancellation +``` + +**Error Message:** +``` +Assert.True() Failure +Expected: True +Actual: False +``` + +**Stack Trace:** +``` +at System.Diagnostics.Tests.ProcessWaitingTests.ProcessSafeHandle_WaitForExitOrKillOnCancellationAsync_KillsOnCancellation() in /_/src/libraries/System.Diagnostics.Process/tests/ProcessWaitingTests.cs:line 729 +``` + +**Analysis:** +Known flaky test under stress. Process not killed in time. High hit count (32 in 7 days). Assigned to @adamsitnik. +>>> + +-------------------------------------------------------------------------------- +FAILURE 6: BinderTracingTest.ResolutionFlow times out under jitoptrepeat (windows x64) +-------------------------------------------------------------------------------- +GitHub Issue: #104670 (https://github.com/dotnet/runtime/issues/104670) — OPEN +Assigned to: @@mdh1418 +Labels: area-assemblyloading, blocking-clean-ci, Known Build Error +Failing since: None (build None) + +Work item: Loader + +Title: Test Failure: Loader/binding/tracing/BinderTracingTest.ResolutionFlow/BinderTracingTest.ResolutionFlow.cmd +Labels: area-assemblyloading, blocking-clean-ci, Known Build Error +Milestone: 11.0.0 + +Body (paste as-is into GitHub issue): +<<< +**Summary:** + BinderTracingTest.ResolutionFlow times out after 600s under jitoptrepeat on Windows x64. + +**Failed in (1):** +- [runtime-jit-experimental 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386276) + +**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/759cd63f-bac1-4a55-821d-029ed9763b82/workitems/Loader/console) +**Source:** [runtime-jit-experimental / coreclr windows x64 Checked jitoptrepeat @ Windows.10.Amd64.Open / Loader/binding/tracing/BinderTracingTest.ResolutionFlow/BinderTracingTest.ResolutionFlow.cmd](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386276&view=ms.vss-test-web.build-test-results-tab) + +**Failed tests:** +``` +- coreclr windows x64 Checked jitoptrepeat @ Windows.10.Amd64.Open + - Loader/binding/tracing/BinderTracingTest.ResolutionFlow/BinderTracingTest.ResolutionFlow.cmd +``` + +**Error Message:** +``` +cmdLine:C:\h\w\B05A094E\w\B2B509BA\e\Loader\Loader\../binding/tracing/BinderTracingTest.ResolutionFlow/BinderTracingTest.ResolutionFlow.cmd Timed Out (timeout in milliseconds: 600000 from variable __TestTimeout, start: 4/20/2026 12:34:33 AM, end: 4/20/2026 12:44:33 AM) + + + +Return code: -100 + +Raw output file: C:\h\w\B05A094E\w\B2B509BA\uploads\binding\tracing\BinderTracingTest.ResolutionFlow\output.txt + +Raw output: + +BEGIN EXECUTION + + "C:\h\w\B05A094E\p\corerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false" -p "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true" BinderTracingTest.ResolutionFlow.dll + +[12:34:34 AM] Running AssemblyLoadContextResolving_ReturnNull... + +[12:34:35 AM] Invoking AssemblyLoadContextResolving_ReturnNull... + +[12:34:35 AM] Validating bind operation for AssemblyToLoad_Subdirectory... + +ValidateBindOperation Started + +ValidateBindOperation Finished + +Test AssemblyLoadContextResolving_ReturnNull finished. + +[12:34:35 AM] Running AssemblyLoadContextResolving_LoadAssembly... + +[12:34:35 AM] Invoking AssemblyLoadContextResolving_LoadAssembly... + +[12:34:35 AM] Validating bind operation for AssemblyToLoad_Subdirectory... + +ValidateBindOperation Started + +ValidateBindOperation Started + +ValidateBindOperation Finished + +ValidateBindOperation Finished + +Test AssemblyLoadContextResolving_LoadAssembly finished. + +[12:34:35 AM] Running AssemblyLoadContextResolving_NameMismatch... + +[12:34:35 AM] Invoking AssemblyLoadContextResolving_NameMismatch... + +[12:34:36 AM] Validating bind operation for AssemblyToLoad_Subdirectory... + +Waiting for bind events for AssemblyToLoad_Subdirectory (0ms waited) Sleeping for 50ms + +ValidateBindOperation Started + +ValidateBindOperation Started + +ValidateBindOperation Finished + +ValidateBindOperation Finished + +Test AssemblyLoadContextResolving_NameMismatch finished. + +[12:34:36 AM] Running AssemblyLoadContextResolving_MultipleHandlers... + +[12:34:36 AM] Invoking AssemblyLoadContextResolving_MultipleHandlers... + +[12:34:36 AM] Validating bind operation for AssemblyToLoad_Subdirectory... + +ValidateBindOperation Started + +ValidateBindOperation Started + +ValidateBindOperation Finished + +ValidateBindOperation Finished + +Test AssemblyLoadContextResolving_MultipleHandlers finished. + +[12:34:36 AM] Running AppDomainAssemblyResolve_ReturnNull... + +[12:34:36 AM] Invoking AppDomainAssemblyResolve_ReturnNull... + +[12:34:36 AM] Validating bind operation for AssemblyToLoad_Subdirectory... + +Waiting for bind events for AssemblyToLoad_Subdirectory (0ms waited) Sleeping for 50ms + +ValidateBindOperation Started + +ValidateBindOperation Finished + +Test AppDomainAssemblyResolve_ReturnNull finished. + +[12:34:36 AM] Running AppDomainAssemblyResolve_LoadAssembly... + +[12:34:36 AM] Invoking AppDomainAssemblyResolve_LoadAssembly... + +[12:34:36 AM] Validating bind operation for AssemblyToLoad_Subdirectory... + +Waiting for bind events for AssemblyToLoad_Subdirectory (0ms waited) Sleeping for 50ms + +ValidateBindOperation Started + +ValidateBindOperation Started + +ValidateBindOperation Finished + +ValidateBindOperation Finished + +Test AppDomainAssemblyResolve_LoadAssembly finished. + +[12:34:36 AM] Running AppDomainAssemblyResolve_NameMismatch... + +[12:34:36 AM] Invoking AppDomainAssemblyResolve_NameMismatch... + +[12:34:36 AM] Validating bind operation for AssemblyToLoad_Subdirectory... + +Waiting for bind events for AssemblyToLoad_Subdirectory (0ms waited) Sleeping for 50ms + +ValidateBindOperation Started + +ValidateBindOperation Started + +ValidateBindOperation Finished + +ValidateBindOperation Finished + +Test AppDomainAssemblyResolve_NameMismatch finished. + +[12:34:36 AM] Running AppDomainAssemblyResolve_MultipleHandlers... + +[12:34:36 AM] Invoking AppDomainAssemblyResolve_MultipleHandlers... + +[12:34:36 AM] Validating bind operation for AssemblyToLoad_Subdirectory... + +Waiting for bind events for AssemblyToLoad_Subdirectory (0ms waited) Sleeping for 50ms + +ValidateBindOperation Started + +ValidateBindOperation Started + +ValidateBindOperation Finished + +ValidateBindOperation Finished + +Test AppDomainAssemblyResolve_MultipleHandlers finished. + +[12:34:36 AM] Launching process for AssemblyLoadFromResolveHandler_LoadDependency... + +Started subprocess 'C:\h\w\B05A094E\p\corerun.exe' with PID 3008 for AssemblyLoadFromResolveHandler_LoadDependency... + +[12:34:37 AM] Running AssemblyLoadFromResolveHandler_LoadDependency... + +[12:34:38 AM] Invoking AssemblyLoadFromResolveHandler_LoadDependency... + +[12:34:38 AM] Validating bind operation for AssemblyToLoadDependency, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null... + +Waiting for bind events for AssemblyToLoadDependency (0ms waited) Sleeping for 50ms + +ValidateBindOperation Started + +ValidateBindOperation Finished + +Test AssemblyLoadFromResolveHandler_LoadDependency finished. + + + +[12:34:38 AM] Launching process for AssemblyLoadFromResolveHandler_NotTracked... + +Started subprocess 'C:\h\w\B05A094E\p\corerun.exe' with PID 6024 for AssemblyLoadFromResolveHandler_NotTracked... + +[12:34:39 AM] Running AssemblyLoadFromResolveHandler_NotTracked... + +[12:34:40 AM] Invoking AssemblyLoadFromResolveHandler_NotTracked... + +[12:34:40 AM] Validating bind operation for AssemblyToLoad_Subdirectory... + +Waiting for bind events for AssemblyToLoad_Subdirectory (0ms waited) Sleeping for 50ms + +ValidateBindOperation Started + +ValidateBindOperation Finished + +Test AssemblyLoadFromResolveHandler_NotTracked finished. + + + +cmdLine:C:\h\w\B05A094E\w\B2B509BA\e\Loader\Loader\../binding/tracing/BinderTracingTest.ResolutionFlow/BinderTracingTest.ResolutionFlow.cmd Timed Out (timeout in milliseconds: 600000 from variable __TestTimeout, start: 4/20/2026 12:34:33 AM, end: 4/20/2026 12:44:33 AM) + +Test Harness Exitcode is : -100 + +To run the test: + +Set up CORE_ROOT and run. + +> C:\h\w\B05A094E\w\B2B509BA\e\Loader\Loader\../binding/tracing/BinderTracingTest.ResolutionFlow/BinderTracingTest.ResolutionFlow.cmd + +Xunit.Sdk.TrueException: + + + +cmdLine:C:\h\w\B05A094E\w\B2B509BA\e\Loader\Loader\../binding/tracing/BinderTracingTest.ResolutionFlow/BinderTracingTest.ResolutionFlow.cmd Timed Out (timeout in milliseconds: 600000 from variable __TestTimeout, start: 4/20/2026 12:34:33 AM, end: 4/20/2026 12:44:33 AM) + + + +Return code: -100 + +Raw output file: C:\h\w\B05A094E\w\B2B509BA\uploads\binding\tracing\BinderTracingTest.ResolutionFlow\output.txt + +Raw output: + +BEGIN EXECUTION + + "C:\h\w\B05A094E\p\corerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false" -p "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true" BinderTracingTest.ResolutionFlow.dll + +[12:34:34 AM] Running AssemblyLoadContextResolving_ReturnNull... + +[12:34:35 AM] Invoking AssemblyLoadContextResolving_ReturnNull... + +[12:34:35 AM] Validating bind operation for AssemblyToLoad_Subdirectory... + +ValidateBindOperation Started + +ValidateBindOperation Finished + +Test AssemblyLoadContextResolving_ReturnNull finished. + +[12:34:35 AM] Running AssemblyLoadContextResolving_LoadAssembly... + +[12:34:35 AM] Invoking AssemblyLoadContextResolving_LoadAssembly... + +[12:34:35 AM] Validating bind operation for AssemblyToLoad_Subdirectory... + +ValidateBindOperation Started + +ValidateBindOperation Started + +ValidateBindOperation Finished + +ValidateBindOperation Finished + +Test AssemblyLoadContextResolving_LoadAssembly finished. + +[12:34:35 AM] Running AssemblyLoadContextResolving_NameMismatch... + +[12:34:35 AM] Invoking AssemblyLoadContextResolving_NameMismatch... + +[12:34:36 AM] Validating bind operation for AssemblyToLoad_Subdirectory... + +Waiting for bind events for AssemblyToLoad_Subdirectory (0ms waited) Sleeping for 50ms + +ValidateBindOperation Started + +ValidateBindOperation Started + +ValidateBindOperation Finished + +ValidateBindOperation Finished + +Test AssemblyLoadContextResolving_NameMismatch finished. + +[12:34:36 AM] Running AssemblyLoadContextResolving_MultipleHandlers... + +[12:34:36 AM] Invoking AssemblyLoadContextResolving_MultipleHandlers... + +[12:34:36 AM] Validating bind operation for AssemblyToLoad_Subdirectory... + +ValidateBindOperation Started + +ValidateBindOperation Started + +ValidateBindOperation Finished + +ValidateBindOperation Finished + +Test AssemblyLoadContextResolving_MultipleHandlers finished. + +[12:34:36 AM] Running AppDomainAssemblyResolve_ReturnNull... + +[12:34:36 AM] Invoking AppDomainAssemblyResolve_ReturnNull... + +[12:34:36 AM] Validating bind operation for AssemblyToLoad_Subdirectory... + +Waiting for bind events for AssemblyToLoad_Subdirectory (0ms waited) Sleeping for 50ms + +ValidateBindOperation Started + +ValidateBindOperation Finished + +Test AppDomainAssemblyResolve_ReturnNull finished. + +[12:34:36 AM] Running AppDomainAssemblyResolve_LoadAssembly... + +[12:34:36 AM] Invoking AppDomainAssemblyResolve_LoadAssembly... + +[12:34:36 AM] Validating bind operation for AssemblyToLoad_Subdirectory... + +Waiting for bind events for AssemblyToLoad_Subdirectory (0ms waited) Sleeping for 50ms + +ValidateBindOperation Started + +ValidateBindOperation Started + +ValidateBindOperation Finished + +ValidateBindOperation Finished + +Test AppDomainAssemblyResolve_LoadAssembly finished. + +[12:34:36 AM] Running AppDomainAssemblyResolve_NameMismatch... + +[12:34:36 AM] Invoking AppDomainAssemblyResolve_NameMismatch... + +[12:34:36 AM] Validating bind operation for AssemblyToLoad_Subdirectory... + +Waiting for bind events for AssemblyToLoad_Subdirectory (0ms waited) Sleeping for 50ms + +ValidateBindOperation Started + +ValidateBindOperation Started + +ValidateBindOperation Finished + +ValidateBindOperation Finished + +Test AppDomainAssemblyResolve_NameMismatch finished. + +[12:34:36 AM] Running AppDomainAssemblyResolve_MultipleHandlers... + +[12:34:36 AM] Invoking AppDomainAssemblyResolve_MultipleHandlers... + +[12:34:36 AM] Validating bind operation for AssemblyToLoad_Subdirectory... + +Waiting for bind events for AssemblyToLoad_Subdirectory (0ms waited) Sleeping for 50ms + +ValidateBindOperation Started + +ValidateBindOperation Started + +ValidateBindOperation Finished + +ValidateBindOperation Finished + +Test AppDomainAssemblyResolve_MultipleHandlers finished. + +[12:34:36 AM] Launching process for AssemblyLoadFromResolveHandler_LoadDependency... + +Started subprocess 'C:\h\w\B05A094E\p\corerun.exe' with PID 3008 for AssemblyLoadFromResolveHandler_LoadDependency... + +[12:34:37 AM] Running AssemblyLoadFromResolveHandler_LoadDependency... + +[12:34:38 AM] Invoking AssemblyLoadFromResolveHandler_LoadDependency... + +[12:34:38 AM] Validating bind operation for AssemblyToLoadDependency, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null... + +Waiting for bind events for AssemblyToLoadDependency (0ms waited) Sleeping for 50ms + +ValidateBindOperation Started + +ValidateBindOperation Finished + +Test AssemblyLoadFromResolveHandler_LoadDependency finished. + + + +[12:34:38 AM] Launching process for AssemblyLoadFromResolveHandler_NotTracked... + +Started subprocess 'C:\h\w\B05A094E\p\corerun.exe' with PID 6024 for AssemblyLoadFromResolveHandler_NotTracked... + +[12:34:39 AM] Running AssemblyLoadFromResolveHandler_NotTracked... + +[12:34:40 AM] Invoking AssemblyLoadFromResolveHandler_NotTracked... + +[12:34:40 AM] Validating bind operation for AssemblyToLoad_Subdirectory... + +Waiting for bind events for AssemblyToLoad_Subdirectory (0ms waited) Sleeping for 50ms + +ValidateBindOperation Started + +ValidateBindOperation Finished + +Test AssemblyLoadFromResolveHandler_NotTracked finished. + + + +cmdLine:C:\h\w\B05A094E\w\B2B509BA\e\Loader\Loader\../binding/tracing/BinderTracingTest.ResolutionFlow/BinderTracingTest.ResolutionFlow.cmd Timed Out (timeout in milliseconds: 600000 from variable __TestTimeout, start: 4/20/2026 12:34:33 AM, end: 4/20/2026 12:44:33 AM) + +Test Harness Exitcode is : -100 + +To run the test: + +Set up CORE_ROOT and run. + +> C:\h\w\B05A094E\w\B2B509BA\e\Loader\Loader\../binding/tracing/BinderTracingTest.ResolutionFlow/BinderTracingTest.ResolutionFlow.cmd + + at Xunit.Assert.True(Nullable`1 condition, String userMessage) in /_/src/arcade/src/Microsoft.DotNet.XUnitAssert/src/BooleanAsserts.cs:line 135 + + at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String assemblyPath, String testPathPrefix) + + at Program.<
$>g__TestExecutor353|0_354(StreamWriter tempLogSw, StreamWriter statsCsvSw, <>c__DisplayClass0_0&) + +00:44:35.060 Failed test: Loader/binding/tracing/BinderTracingTest.ResolutionFlow/BinderTracingTest.ResolutionFlow.cmd + +00:44:35.068 Running test: Loader/classloader/DefaultInterfaceMethods/regressions/github60486/github60486.cmd + + + +Return code: 0 + +Raw output file: C:\h\w\B05A094E\w\B2B509BA\uploads\classloader\DefaultInterfaceMethods\regressions\github60486\output.txt + +Raw output: + +BEGIN EXECUTION + + "C:\h\w\B05A094E\p\corerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false" -p "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true" github60486.dll + +Expected: 100 + +Actual: 100 +``` + +**Stack Trace:** +``` +N/A +``` + +**Analysis:** +Long-standing timeout since July 2024. JitOptRepeat doubles JIT compilation work. Assigned to @mdh1418. +>>> + +-------------------------------------------------------------------------------- +FAILURE 7: Lock.TryEnterSlow HasAnySpinners assertion failure under jitstressregs8_x86_noavx (windows x86) +-------------------------------------------------------------------------------- +GitHub Issue: #127131 (https://github.com/dotnet/runtime/issues/127131) — OPEN +Assigned to: @@jakobbotsch +Labels: area-CodeGen-coreclr, blocking-clean-ci-optional +Failing since: None (build None) + +Work item: multiple + +Title: Test Failure: baseservices/exceptions/regressions/V1/SEH/VJ/HandlerException/HandlerException.cmd +Labels: area-CodeGen-coreclr, blocking-clean-ci-optional +Milestone: 11.0.0 + +Body (paste as-is into GitHub issue): +<<< +**Summary:** + Lock.TryEnterSlow fires HasAnySpinners assertion under JitStressRegs=8 x86 noavx affecting all tests that acquire locks. + +**Failed in (1):** +- [runtime-coreclr jitstressregs-x86 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386227) + +**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/e3fb166c-a4b1-4b42-8945-801c217f142b/workitems/baseservices-exceptions/console) +**Source:** [runtime-coreclr jitstressregs-x86 / coreclr linux x64 Checked jitstressregs8_x86_noavx @ AzureLinux.3.Amd64.Open / baseservices/exceptions/regressions/V1/SEH/VJ/HandlerException/HandlerException.cmd](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386227&view=ms.vss-test-web.build-test-results-tab) + +**Failed tests:** +``` +- coreclr linux x64 Checked jitstressregs8_x86_noavx @ AzureLinux.3.Amd64.Open +- coreclr windows x86 Checked jitstressregs8_x86_noavx @ Windows.10.Amd64.Open + - JIT.performance + - JIT/Directed/tls/TestTLSWithLoadedDlls/TestTLSWithLoadedDlls.cmd + - JIT/Performance/CodeQuality/BenchmarksGame/spectralnorm/spectralnorm-3/spectralnorm-3.dll + - JIT/Regression/CLR-x86-JIT/V1.1-M1-Beta1/b143840/b143840/b143840.cmd + - Regression_PdbOnly_ro + - ... and 11 more +``` + +**Error Message:** +``` +Process terminated. +Assertion failed. +state.HasAnySpinners + at System.Threading.Lock.TryEnterSlow(Int32 timeoutMs, Int32 currentThreadId) + at System.Threading.Lock.Enter() + at System.Threading.Monitor.Enter(Object obj) +``` + +**Stack Trace:** +``` +at System.Threading.Lock.TryEnterSlow(Int32 timeoutMs, Int32 currentThreadId) + at System.Threading.Lock.Enter() + at System.Console.g__EnsureInitialized|26_0() +``` + +**Analysis:** +All 17 rows share the same root cause: Debug.Assert in Lock.TryEnterSlow where state.HasAnySpinners is false. Fires on any code path acquiring a managed Lock (Console.WriteLine, Monitor.Enter, etc). Assigned to @jakobbotsch. +>>> + +-------------------------------------------------------------------------------- +FAILURE 8: JIT assertion 'block->bbCodeOffs <= succBlock->bbCodeOffs' in CopyToAsync Tier1-OSR under pgostress (linux arm64, x64; osx arm64, x64) +-------------------------------------------------------------------------------- +GitHub Issue: NEW — needs issue filed +Labels: area-CodeGen-coreclr, JitStress, blocking-clean-ci-optional +Failing since: None (build None) + +Work item: Regression_4 + +Title: Test Failure: Regression_4 +Labels: area-CodeGen-coreclr, JitStress, blocking-clean-ci-optional +Milestone: 11.0.0 + +Body (paste as-is into GitHub issue): +<<< +**Summary:** + JIT assertion in fgbasic.cpp:5228 during CopyToAsync OSR compilation under pgostress. + +**Failed in (1):** +- [runtime-coreclr pgostress 20260417.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385207) + +**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/f0cfd45a-b7c9-45c2-81d4-a2c5a5920602/workitems/Regression_4/console) +**Source:** [runtime-coreclr pgostress / coreclr linux arm64 Checked fullpgo_methodprofiling @ AzureLinux.3.Arm64.Open / Regression_4](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385207&view=ms.vss-test-web.build-test-results-tab) + +**Failed tests:** +``` +- coreclr linux arm64 Checked fullpgo_methodprofiling @ AzureLinux.3.Arm64.Open +- coreclr linux x64 Checked fullpgo @ AzureLinux.3.Amd64.Open +- coreclr linux x64 Checked fullpgo_methodprofiling @ AzureLinux.3.Amd64.Open +- coreclr linux x64 Checked fullpgo_methodprofiling_always_optimized @ AzureLinux.3.Amd64.Open +- coreclr linux x64 Checked fullpgo_random_gdv @ AzureLinux.3.Amd64.Open +- coreclr linux x64 Checked syntheticpgo_blend @ AzureLinux.3.Amd64.Open +- coreclr osx arm64 Checked fullpgo @ OSX.26.Arm64.Open +- coreclr osx arm64 Checked fullpgo_methodprofiling @ OSX.26.Arm64.Open +- coreclr osx arm64 Checked fullpgo_methodprofiling_always_optimized @ OSX.26.Arm64.Open +- coreclr osx arm64 Checked fullpgo_random_gdv @ OSX.26.Arm64.Open +- coreclr osx arm64 Checked syntheticpgo_blend @ OSX.26.Arm64.Open + - Regression_4 +``` + +**Error Message:** +``` +Assert failure(PID 7044 [0x00001b84], Thread: 7087 [0x1baf]): Assertion failed 'block->bbCodeOffs <= succBlock->bbCodeOffs' in 'System.IO.Stream:g__Core|30_0(System.IO.Stream,System.IO.Stream,int,System.Threading.CancellationToken)' during 'Global local var liveness' (IL size 90; hash 0x9b4f85ef; Tier1-OSR) + + File: /__w/1/s/src/coreclr/jit/fgbasic.cpp:5228 + Image: /datadisks/disk1/work/B99B096A/p/corerun +``` + +**Stack Trace:** +``` +N/A +``` + +**Analysis:** +Deterministic JIT bug in flow graph basic block ordering during Tier1-OSR compilation under PGO stress. All 11 legs crash identically. Prior similar issue #88348 was fixed in .NET 8 but this is a new regression in a different compilation tier. +>>> + +-------------------------------------------------------------------------------- +FAILURE 9: GCStress VM assertion pMT->Validate() in Object::ValidateInner during SIMD tests (linux arm64) +-------------------------------------------------------------------------------- +GitHub Issue: #126819 (https://github.com/dotnet/runtime/issues/126819) — OPEN +Assigned to: @@jakobbotsch +Labels: area-CodeGen-coreclr, GCStress +Failing since: None (build None) + +Work item: JIT.SIMD.0.1 + +Title: Test Failure: JIT.SIMD.0.1 +Labels: area-CodeGen-coreclr, GCStress +Milestone: 11.0.0 + +Body (paste as-is into GitHub issue): +<<< +**Summary:** + GCStress heap validation finds corrupted MethodTable pointer during SIMD Vector3Interop test. + +**Failed in (1):** +- [runtime-coreclr gcstress-extra 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386264) + +**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/7b70689a-fc74-4bc6-91c7-3370a94d6e51/workitems/JIT.SIMD.0.1/console) +**Source:** [runtime-coreclr gcstress-extra / coreclr linux arm64 Checked gcstress0xc_jitstress2 @ AzureLinux.3.Arm64.Open / JIT.SIMD.0.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386264&view=ms.vss-test-web.build-test-results-tab) + +**Failed tests:** +``` +- coreclr linux arm64 Checked gcstress0xc_disabler2r_jitstress2 @ AzureLinux.3.Arm64.Open +- coreclr linux arm64 Checked gcstress0xc_jitstress2 @ AzureLinux.3.Arm64.Open +- coreclr linux x64 Checked gcstress0xc_disabler2r_jitstress2 @ AzureLinux.3.Amd64.Open +- coreclr linux x64 Checked gcstress0xc_jitstress2 @ AzureLinux.3.Amd64.Open +- coreclr osx arm64 Checked gcstress0xc_disabler2r_jitstress2 @ OSX.26.Arm64.Open + - JIT.SIMD.0.1 +``` + +**Error Message:** +``` +ASSERT FAILED + Expression: !CREATE_CHECK_STRING(pMT && pMT->Validate()) + Location: /__w/1/s/src/coreclr/vm/object.cpp:548 + Function: ValidateInner +``` + +**Stack Trace:** +``` +N/A +``` + +**Analysis:** +GC stress found invalid MethodTable pointer on object during stress-induced GC in Vector3Interop_r test. Same assertion signature as #126819. Likely JIT codegen issue producing incorrect GC info. +>>> + +-------------------------------------------------------------------------------- +FAILURE 10: jit64/regress/vsw/373472/test_il returns 1 instead of 100 under gcstress0xc_jitstress (windows x86, linux arm64) +-------------------------------------------------------------------------------- +GitHub Issue: #127128 (https://github.com/dotnet/runtime/issues/127128) — OPEN +Labels: area-CodeGen-coreclr, GCStress, JitStress +Failing since: None (build None) + +Work item: JIT/jit64/regress/vsw/373472/test_il/test_il.dll + +Title: Test Failure: JIT/jit64/regress/vsw/373472/test_il/test_il.dll +Labels: area-CodeGen-coreclr, GCStress, JitStress +Milestone: 11.0.0 + +Body (paste as-is into GitHub issue): +<<< +**Summary:** + test_il StrideTest.Test3() returns 1 instead of 100 under gcstress0xc + jitstress. + +**Failed in (1):** +- [runtime-coreclr gcstress-extra 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386264) + +**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/9eb0f01e-dfb0-4288-a1fa-a429dff99229/workitems/jit64_5.0.1/console) +**Source:** [runtime-coreclr gcstress-extra / coreclr windows x86 Checked gcstress0xc_jitstress1 @ Windows.10.Amd64.Open / JIT/jit64/regress/vsw/373472/test_il/test_il.dll](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386264&view=ms.vss-test-web.build-test-results-tab) + +**Failed tests:** +``` +- coreclr windows x86 Checked gcstress0xc_jitstress1 @ Windows.10.Amd64.Open +- coreclr windows x86 Checked gcstress0xc_jitstress2 @ Windows.10.Amd64.Open + - JIT/jit64/regress/vsw/373472/test_il/test_il.dll +``` + +**Error Message:** +``` +Assert.Equal() Failure: Values differ +Expected: 100 +Actual: 1 +``` + +**Stack Trace:** +``` +N/A +``` + +**Analysis:** +JIT codegen correctness issue under GC stress + JIT stress modes. Tracked by #127128. +>>> + +-------------------------------------------------------------------------------- +FAILURE 11: JIT assertion WasMorphed() in morph.cpp during Morph - Global under gcstress MinOpts (windows x64, x86) +-------------------------------------------------------------------------------- +GitHub Issue: #127138 (https://github.com/dotnet/runtime/issues/127138) — CLOSED +Assigned to: @@tannergooding +Labels: area-CodeGen-coreclr, GCStress +Failing since: None (build None) + +Work item: multiple + +Title: Test Failure: Regression_o_2.0.1 +Labels: area-CodeGen-coreclr, GCStress +Milestone: 11.0.0 + +Body (paste as-is into GitHub issue): +<<< +**Summary:** + JIT assertion WasMorphed() in morph.cpp under gcstress MinOpts. + +**Failed in (1):** +- [runtime-coreclr gcstress-extra 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386264) + +**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/a2cbb443-5558-4580-9a97-1cea826a9fdb/workitems/Regression_o_2.0.1/console) +**Source:** [runtime-coreclr gcstress-extra / coreclr windows x86 Checked gcstress0xc_jitminopts_heapverify1 @ Windows.10.Amd64.Open / Regression_o_2.0.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386264&view=ms.vss-test-web.build-test-results-tab) + +**Failed tests:** +``` +- coreclr windows x64 Checked gcstress0xc_jitminopts_heapverify1 @ Windows.10.Amd64.Open +- coreclr windows x86 Checked gcstress0xc_jitminopts_heapverify1 @ Windows.10.Amd64.Open + - JIT.performance.0.1 + - Regression_o_2.0.1 +``` + +**Error Message:** +``` +Assert failure(PID 4752 [0x00001290], Thread: 1188 [0x04a4]): Assertion failed '(*use)->WasMorphed()' in 'Runtime_110326.Runtime_110326B:Method0()' during 'Morph - Global' (IL size 228; hash 0x68a1313d; MinOpts) + + + + File: D:\a\_work\1\s\src\coreclr\jit\morph.cpp:13978 + + Image: C:\h\w\A903097C\p\corerun.exe + + + +App Exit Code: -1073740286 + +Expected: 100 + +Actual: -1073740286 + +END EXECUTION - FAILED + +FAILED + +[XUnitLogChecker]: 23:07:34.56: The full run will be done. + +[XUnitLogChecker]: 23:07:34.56: Item 'Regression_o_2' did not finish running. Checking and fixing the log... + +[XUnitLogChecker] +``` + +**Stack Trace:** +``` +N/A +``` + +**Analysis:** +Both Regression_o_2 and JIT.performance.0.1 hit the same JIT assertion. Issue #127138 was already fixed by @tannergooding on 2026-04-20. Build predates fix. +>>> + +-------------------------------------------------------------------------------- +FAILURE 12: AccessViolation in XxHashShared.MergeAccumulators under jitstress2-jitstressregs (windows x64) +-------------------------------------------------------------------------------- +GitHub Issue: #125685 (https://github.com/dotnet/runtime/issues/125685) — CLOSED +Assigned to: @@jakobbotsch +Labels: area-CodeGen-coreclr, JitStress +Failing since: None (build None) + +Work item: multiple + +Title: Test Failure: ComInterfaceGenerator.Unit.Tests +Labels: area-CodeGen-coreclr, JitStress +Milestone: 11.0.0 + +Body (paste as-is into GitHub issue): +<<< +**Summary:** + AccessViolation in XxHash128 hash computation used by Roslyn SourceText.GetContentHash under jitstress2_jitstressregs. + +**Failed in (1):** +- [runtime-coreclr libraries-jitstress2-jitstressregs 20260418.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385246) + +**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/992911d8-0a39-4553-9c47-ed0ae5eaedec/workitems/ComInterfaceGenerator.Unit.Tests/console) +**Source:** [runtime-coreclr libraries-jitstress2-jitstressregs / net11.0-windows-Release-x64-jitstress2_jitstressregs8-Windows.10.Amd64.Open / ComInterfaceGenerator.Unit.Tests](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385246&view=ms.vss-test-web.build-test-results-tab) + +**Failed tests:** +``` +- net11.0-windows-Release-x64-jitstress2_jitstressregs8-Windows.10.Amd64.Open + - ComInterfaceGenerator.Unit.Tests + - IntrinsicsInSystemPrivateCoreLib.Tests + - JSImportGenerator.Unit.Tests + - LibraryImportGenerator.Unit.Tests + - Microsoft.Extensions.Configuration.Binder.SourceGeneration.Tests + - ... and 4 more +``` + +**Error Message:** +``` +Fatal error. + +System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. + + at System.IO.Hashing.XxHashShared.MergeAccumulators(UInt64*, Byte*, UInt64) + + at System.IO.Hashing.XxHash128.GetCurrentHashAsHash128() + + at System.IO.Hashing.XxHash128.GetCurrentHashCore(System.Span`1) + + at System.IO.Hashing.NonCryptographicHashAlgorithm.GetHashAndResetCore(System.Span`1) + + at System.IO.Hashing.NonCryptographicHashAlgorithm.GetHashAndReset() + + at Microsoft.CodeAnalysis.Text.SourceText.g__computeContentHash|52_0() + + at Microsoft.CodeAnalysis.Host.TemporaryStorageService.WriteToTemporaryStorage(Microsoft.CodeAnalysis.Text.SourceText, System.Threading.CancellationToken) + + at Microsoft.CodeAnalysis.Host.TemporaryStorageService+d__13.MoveNext() + + at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.CodeAnalysis.Host.TemporaryStorageService+d__13, Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](d__13 ByRef) + + at Microsoft.CodeAnalysis.Host.TemporaryStorageService.WriteToTemporaryStorageAsync(Microsoft.CodeAnalysis.Text.SourceText, System.Threading.CancellationToken) + + at Microsoft.CodeAnalysis.Host.TemporaryStorageService+d__11.MoveNext() + + at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.CodeAnalysis.Host.TemporaryStorageService+d__11, Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](d__11 ByRef) + + at Microsoft.CodeAnalysis.Host.TemporaryStorageService.Microsoft.CodeAnalysis.Host.ITemporaryStorageServiceInternal.WriteToTemporaryStorageAsync(Microsoft.CodeAnalysis.Text.SourceText, System.Threading.CancellationToken) + + at Microsoft.CodeAnalysis.RecoverableTextAndVersion+RecoverableText+d__12.MoveNext() + + at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.CodeAnalysis.RecoverableTextAndVersion+RecoverableText+d__12, Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](d__12 ByRef) + + at Microsoft.CodeAnalysis.RecoverableTextAndVersion+RecoverableText+d__28.MoveNext() + + at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.CodeAnalysis.RecoverableTextAndVersion+RecoverableText+d__28, Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](d__28 ByRef) + + at Microsoft.CodeAnalysis.RecoverableTextAndVersion+RecoverableText.SaveAllAsync(Microsoft.CodeAnalysis.Collections.ImmutableSegmentedList`1>, System.Threading.CancellationToken) + + at Microsoft.CodeAnalysis.Threading.AsyncBatchingWorkQueue`1+<>c__DisplayClass2_0+<b__0>d[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].MoveNext() + + at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.CodeAnalysis.Threading.AsyncBatchingWorkQueue`1+<>c__DisplayClass2_0+<b__0>d[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](<b__0>d> ByRef) + + at Microsoft.CodeAnalysis.Threading.AsyncBatchingWorkQueue`1+<>c__DisplayClass2_0[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].b__0(Microsoft.CodeAnalysis.Collections.ImmutableSegmentedList`1>, System.Threading.CancellationToken) + + at Microsoft.CodeAnalysis.Threading.AsyncBatchingWorkQueue`2+d__18[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.CodeAnalysis.Threading.VoidResult, Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].MoveNext() + + at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.CodeAnalysis.Threading.AsyncBatchingWorkQueue`2+d__18[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.CodeAnalysis.Threading.VoidResult, Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](d__18,Microsoft.CodeAnalysis.Threading.VoidResult> ByRef) + + at Microsoft.CodeAnalysis.Threading.AsyncBatchingWorkQueue`2[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.CodeAnalysis.Threading.VoidResult, Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].ProcessNextBatchAsync() + + at Microsoft.CodeAnalysis.Threading.AsyncBatchingWorkQueue`2+<g__ContinueAfterDelayAsync|16_1>d[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.CodeAnalysis.Threading.VoidResult, Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].MoveNext() + + at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) + + at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.ValueTuple`2[[System.Boolean, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.CodeAnalysis.Threading.VoidResult, Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.CodeAnalysis.Threading.AsyncBatchingWorkQueue`2+<g__ContinueAfterDelayAsync|16_1>d[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.CodeAnalysis.Threading.VoidResult, Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].MoveNext(System.Threading.Thread) + + at System.Threading.ThreadPoolWorkQueue.Dispatch() + + at System.Threading.PortableThreadPool+WorkerThread.WorkerDoWork(System.Threading.PortableThreadPool) + + at System.Threading.PortableThreadPool+WorkerThread.WorkerThreadStart() + + at System.Threading.Thread.StartCallback(System.Threading.Thread*) + +----- end Sat 04/18/2026 10:37:57.27 ----- exit code -1073741819 ---------------------------------------------------------- + +----- start =============== XUnitLogChecker Output ===================================================== +``` + +**Stack Trace:** +``` +at System.IO.Hashing.XxHashShared.MergeAccumulators(UInt64*, Byte*, UInt64) + at System.IO.Hashing.XxHash128.GetCurrentHashAsHash128() + at System.IO.Hashing.XxHash128.GetCurrentHashCore(System.Span1) +``` + +**Analysis:** +Multiple source generator test assemblies crash via Roslyn SourceText hashing. Issue #125685 was closed 2026-04-19 by @jakobbotsch. Build 1385246 ran 2026-04-18 — predates fix. Should not recur. +>>> + +-------------------------------------------------------------------------------- +FAILURE 13: MetricsTests.PassingVariableTagsParametersTest tag corruption under jitstress (linux x64) +-------------------------------------------------------------------------------- +GitHub Issue: #125312 (https://github.com/dotnet/runtime/issues/125312) — CLOSED +Assigned to: @@jakobbotsch +Labels: area-CodeGen-coreclr, JitStress, blocking-clean-ci-optional +Failing since: None (build None) + +Work item: System.Diagnostics.Metrics.Tests + +Title: Test Failure: System.Diagnostics.Metrics.Tests.MetricsTests.PassingVariableTagsParametersTest +Labels: area-CodeGen-coreclr, JitStress, blocking-clean-ci-optional +Milestone: 11.0.0 + +Body (paste as-is into GitHub issue): +<<< +**Summary:** + Metrics tag collection corrupted under jitstress2_jitstressregs — empty strings instead of K2/V2. + +**Failed in (1):** +- [runtime-coreclr libraries-jitstress2-jitstressregs 20260418.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385246) + +**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/2f1cc3ff-c357-4661-8528-9d2dfff18810/workitems/System.Diagnostics.DiagnosticSource.Tests/console) +**Source:** [runtime-coreclr libraries-jitstress2-jitstressregs / net11.0-linux-Release-x64-jitstress2_jitstressregs0x80-AzureLinux.3.Amd64.Open / System.Diagnostics.Metrics.Tests.MetricsTests.PassingVariableTagsParametersTest](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385246&view=ms.vss-test-web.build-test-results-tab) + +**Failed tests:** +``` +- net11.0-linux-Release-x64-jitstress2_jitstressregs0x80-AzureLinux.3.Amd64.Open +- net11.0-linux-Release-x64-jitstress2_jitstressregs2-AzureLinux.3.Amd64.Open + - System.Diagnostics.Metrics.Tests.MetricsTests.PassingVariableTagsParametersTest +``` + +**Error Message:** +``` +Assert.Equal() Failure: Collections differ +Expected: [[K1, V1], [K2, V2], [K3, V3], [K4, V4]] +Actual: [[K1, V1], [, ], [K3, V3], [K4, V4]] +``` + +**Stack Trace:** +``` +N/A +``` + +**Analysis:** +JIT codegen bug in register stress path. Issue #125312 closed 2026-04-20. Build predates fix. +>>> + +-------------------------------------------------------------------------------- +FAILURE 14: StartAndForget_StartsProcessAndReturnsValidPid — process exits before verification (linux x64) +-------------------------------------------------------------------------------- +GitHub Issue: #127107 (https://github.com/dotnet/runtime/issues/127107) — CLOSED +Assigned to: @@adamsitnik +Labels: area-System.Diagnostics.Process, Known Build Error +Failing since: None (build None) + +Work item: System.Diagnostics.Process.Tests + +Title: Test Failure: System.Diagnostics.Tests.StartAndForgetTests.StartAndForget_StartsProcessAndReturnsValidPid +Labels: area-System.Diagnostics.Process, Known Build Error +Milestone: 11.0.0 + +Body (paste as-is into GitHub issue): +<<< +**Summary:** + Race condition — process exits before GetProcessById verification. + +**Failed in (1):** +- [runtime-coreclr libraries-jitstress2-jitstressregs 20260418.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385246) + +**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/51973331-d55e-4134-8e7f-3bcfa4ed694f/workitems/System.Diagnostics.Process.Tests/console) +**Source:** [runtime-coreclr libraries-jitstress2-jitstressregs / net11.0-linux-Release-x64-jitstress2_jitstressregs0x1000-AzureLinux.3.Amd64.Open / System.Diagnostics.Tests.StartAndForgetTests.StartAndForget_StartsProcessAndReturnsValidPid](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385246&view=ms.vss-test-web.build-test-results-tab) + +**Failed tests:** +``` +- net11.0-linux-Release-x64-jitstress2_jitstressregs0x1000-AzureLinux.3.Amd64.Open + - System.Diagnostics.Tests.StartAndForgetTests.StartAndForget_StartsProcessAndReturnsValidPid +``` + +**Error Message:** +``` +System.ArgumentException : Process with an Id of 16939 is not running. + at System.Diagnostics.Process.GetProcessById(Int32 processId) + at System.Diagnostics.Tests.StartAndForgetTests.StartAndForget_StartsProcessAndReturnsValidPid(Boolean useProcessStartInfo) +``` + +**Stack Trace:** +``` +N/A +``` + +**Analysis:** +Known flaky test. Issue #127107 closed 2026-04-20 by @adamsitnik. +>>> + +-------------------------------------------------------------------------------- +FAILURE 15: Task.RunContinuations InvalidCastException under jitstressregs8 on x86 (windows x86) +-------------------------------------------------------------------------------- +GitHub Issue: NEW — needs issue filed +Labels: area-CodeGen-coreclr, JitStress +Failing since: None (build None) + +Work item: System.Threading.Tasks.Tests + +Title: Test Failure: System.Threading.Tasks.Tests.TaskRtTests_Core.RunTCSCompletionStateTests +Labels: area-CodeGen-coreclr, JitStress +Milestone: 11.0.0 + +Body (paste as-is into GitHub issue): +<<< +**Summary:** + JIT codegen bug in register-stressed path corrupts Task continuation object type check. + +**Failed in (1):** +- [runtime-coreclr libraries-jitstressregs 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385979) + +**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/053f66b1-9d1a-4971-ab63-679de5331913/workitems/System.Threading.Tasks.Tests/console) +**Source:** [runtime-coreclr libraries-jitstressregs / net11.0-windows-Release-x86-jitstressregs8-Windows.10.Amd64.Open / System.Threading.Tasks.Tests.TaskRtTests_Core.RunTCSCompletionStateTests_SetCancel](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385979&view=ms.vss-test-web.build-test-results-tab) + +**Failed tests:** +``` +- net11.0-windows-Release-x86-jitstressregs8-Windows.10.Amd64.Open + - System.Threading.Tasks.Tests.TaskRtTests_Core.RunTCSCompletionStateTests + - System.Threading.Tasks.Tests.TaskRtTests_Core.RunTCSCompletionStateTests_SetCancel +``` + +**Error Message:** +``` +System.AggregateException : One or more errors occurred. (Unable to cast object of type System.Object to type System.Collections.Generic.List1[System.Object].) +---- System.InvalidCastException : Unable to cast object of type System.Object to type System.Collections.Generic.List1[System.Object]. + at System.Threading.Tasks.Task.RunContinuations(Object continuationObject) +``` + +**Stack Trace:** +``` +at System.Threading.Tasks.Task.RunContinuations(Object continuationObject) + at System.Threading.Tasks.Task.FinishContinuations() + at System.Threading.Tasks.Task.CancellationCleanupLogic() +``` + +**Analysis:** +Under JitStressRegs=8 on x86, Task.RunContinuations fails casting continuation object. Register stress corrupts the value or type check. No existing issue found. +>>> + +-------------------------------------------------------------------------------- +FAILURE 16: BarrierTests.RunBarrierTest7a fails under jitstressregs8 — participant count mismatch (windows x86) +-------------------------------------------------------------------------------- +GitHub Issue: #127130 (https://github.com/dotnet/runtime/issues/127130) — OPEN +Assigned to: @@jakobbotsch +Labels: area-CodeGen-coreclr, JitStress, blocking-clean-ci-optional +Failing since: None (build None) + +Work item: System.Threading.Tests + +Title: Test Failure: System.Threading.Tests.BarrierTests.RunBarrierTest7a +Labels: area-CodeGen-coreclr, JitStress, blocking-clean-ci-optional +Milestone: 11.0.0 + +Body (paste as-is into GitHub issue): +<<< +**Summary:** + Barrier participant count corrupted under JitStressRegs=8 on x86. + +**Failed in (1):** +- [runtime-coreclr libraries-jitstressregs 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385979) + +**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/053f66b1-9d1a-4971-ab63-679de5331913/workitems/System.Threading.Tests/console) +**Source:** [runtime-coreclr libraries-jitstressregs / net11.0-windows-Release-x86-jitstressregs8-Windows.10.Amd64.Open / System.Threading.Tests.BarrierTests.RunBarrierTest7a](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385979&view=ms.vss-test-web.build-test-results-tab) + +**Failed tests:** +``` +- net11.0-windows-Release-x86-jitstressregs8-Windows.10.Amd64.Open + - System.Threading.Tests.BarrierTests.RunBarrierTest7a +``` + +**Error Message:** +``` +System.AggregateException : One or more errors occurred. (The participantCount argument must be less than or equal the number of participants. (Parameter participantCount)) +---- System.ArgumentOutOfRangeException : The participantCount argument must be less than or equal the number of participants. +``` + +**Stack Trace:** +``` +at System.Threading.Barrier.RemoveParticipants(Int32 participantCount) + at System.Threading.Tests.BarrierTests.<>c__DisplayClass18_0.b__0() +``` + +**Analysis:** +JIT codegen bug corrupting participant count tracking. Issue #127130 is open, assigned to @jakobbotsch. +>>> + +-------------------------------------------------------------------------------- +FAILURE 17: JIT assert Inconsistent profile data in fgprofile.cpp during PGO stress (linux arm64, x64; windows x64) +-------------------------------------------------------------------------------- +GitHub Issue: #118595 (https://github.com/dotnet/runtime/issues/118595) — OPEN +Assigned to: @@AndyAyersMS +Labels: area-CodeGen-coreclr, JitStress +Failing since: None (build None) + +Work item: System.Linq.Parallel.Tests + +Title: Test Failure: System.Linq.Parallel.Tests +Labels: area-CodeGen-coreclr, JitStress +Milestone: 11.0.0 + +Body (paste as-is into GitHub issue): +<<< +**Summary:** + JIT asserts Inconsistent profile data in fgprofile.cpp:4821 under TieredPGO + random GDV stress. + +**Failed in (1):** +- [runtime-coreclr libraries-pgo 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386172) + +**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/7feaa0a2-fb04-4e39-b091-681f877e252d/workitems/System.Linq.Parallel.Tests/console) +**Source:** [runtime-coreclr libraries-pgo / net11.0-linux-Release-arm-fullpgo_random_gdv_edge-(Debian.13.Arm32.Open)AzureLinux.3.Arm64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-13-helix-arm32v7 / System.Linq.Parallel.Tests](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386172&view=ms.vss-test-web.build-test-results-tab) + +**Failed tests:** +``` +- net11.0-linux-Release-arm-fullpgo_random_gdv_edge-(Debian.13.Arm32.Open)AzureLinux.3.Arm64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-13-helix-arm32v7 +- net11.0-linux-Release-arm64-fullpgo_random_gdv_edge-AzureLinux.3.Arm64.Open +- net11.0-linux-Release-x64-fullpgo_random_gdv_edge-AzureLinux.3.Amd64.Open +- net11.0-windows-Release-x64-fullpgo_random_gdv_edge-Windows.10.Amd64.Open + - System.Linq.Parallel.Tests +``` + +**Error Message:** +``` +Assert failure(PID 37 [0x00000025], Thread: 43 [0x002b]): Assertion failed '!"Inconsistent profile data"' in 'Xunit.Sdk.CollectionTracker`1+BufferedEnumerator[int]:MoveNext():bool:this' during 'Optimize control flow' (IL size 33; hash 0x7873684e; Tier1) + + File: /__w/1/s/src/coreclr/jit/fgprofile.cpp:4821 + Image: /root/helix/work/correlation/dotnet +``` + +**Stack Trace:** +``` +N/A +``` + +**Analysis:** +Known issue #118595 assigned to @AndyAyersMS. Fires deterministically on same method hash across platforms. Test assemblies are incidental. +>>> + +-------------------------------------------------------------------------------- +FAILURE 18: JIT assert in lower.cpp:5675 during Tier1-OSR for UInt128Tests (linux arm64, x64) +-------------------------------------------------------------------------------- +GitHub Issue: #127142 (https://github.com/dotnet/runtime/issues/127142) — OPEN +Assigned to: @@dhartglassMSFT +Labels: area-CodeGen-coreclr, JitStress +Failing since: None (build None) + +Work item: System.Runtime.Tests + +Title: Test Failure: System.Runtime.Tests +Labels: area-CodeGen-coreclr, JitStress +Milestone: 11.0.0 + +Body (paste as-is into GitHub issue): +<<< +**Summary:** + JIT assertion in lower.cpp:5675 during Tier1-OSR compilation under PGO stress. + +**Failed in (1):** +- [runtime-coreclr libraries-pgo 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386172) + +**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/51fdb3d4-8e62-41d8-b6a7-a9981159cfd5/workitems/System.Runtime.Tests/console) +**Source:** [runtime-coreclr libraries-pgo / net11.0-linux-Release-x64-jitosr_stress-AzureLinux.3.Amd64.Open / System.Runtime.Tests](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386172&view=ms.vss-test-web.build-test-results-tab) + +**Failed tests:** +``` +- net11.0-linux-Release-x64-jitosr_stress-AzureLinux.3.Amd64.Open +- net11.0-windows-Release-x64-jitosr_stress-Windows.10.Amd64.Open + - System.Runtime.Tests +``` + +**Error Message:** +``` +Assert failure(PID 5416 [0x00001528], Thread: 6073 [0x17b9]): Assertion failed 'varDsc->CanBeReplacedWithItsField(m_compiler) || varDsc->lvDoNotEnregister || !varDsc->lvPromoted' in 'System.Tests.UInt128Tests_GenericMath:DivideModeTest()' during 'Lowering nodeinfo' (IL size 957; hash 0x0e5ed17e; Tier1-OSR) + + File: /__w/1/s/src/coreclr/jit/lower.cpp:5675 + Image: /datadisks/disk1/work/B07C0985/p/dotnet +``` + +**Stack Trace:** +``` +N/A +``` + +**Analysis:** +Separate from #118595. Fires during Lowering for 128-bit integer math in OSR path. No existing issue found. +>>> + +-------------------------------------------------------------------------------- +FAILURE 19: JIT assert nEdges == nSucc during Profile incorporation in OSR (windows x64) +-------------------------------------------------------------------------------- +GitHub Issue: #126725 (https://github.com/dotnet/runtime/issues/126725) — OPEN +Assigned to: @@AndyAyersMS +Labels: area-CodeGen-coreclr, JitStress +Failing since: None (build None) + +Work item: System.Net.NameResolution.Functional.Tests + +Title: Test Failure: System.Net.NameResolution.Functional.Tests +Labels: area-CodeGen-coreclr, JitStress +Milestone: 11.0.0 + +Body (paste as-is into GitHub issue): +<<< +**Summary:** + JIT assertion nEdges==nSucc during Profile incorporation at Tier1-OSR. + +**Failed in (1):** +- [runtime-coreclr libraries-pgo 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386172) + +**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/fb35cdf7-22c8-4045-aa35-47007c2e8172/workitems/System.Net.NameResolution.Functional.Tests/console) +**Source:** [runtime-coreclr libraries-pgo / net11.0-windows-Release-x64-jitosr_stress_random-Windows.10.Amd64.Open / System.Net.NameResolution.Functional.Tests](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386172&view=ms.vss-test-web.build-test-results-tab) + +**Failed tests:** +``` +- net11.0-windows-Release-x64-jitosr_stress_random-Windows.10.Amd64.Open + - System.Net.NameResolution.Functional.Tests +``` + +**Error Message:** +``` +Assert failure(PID 8108 [0x00001fac], Thread: 3824 [0x0ef0]): Assertion failed 'nEdges == nSucc' in 'System.Net.Dns:g__CompleteAsync|40_0[System.__Canon](System.Threading.Tasks.Task,System.String,bool,int,bool,long,System.Threading.CancellationToken):System.__Canon' during 'Profile incorporation' (IL size 465; hash 0x89a77caa; Tier1-OSR) + + + + File: D:\a\_work\1\s\src\coreclr\jit\fgprofile.cpp:3920 + + Image: C:\h\w\B0A4090D\p\dotnet.exe + + + +----- end Sun 04/19/2026 18:36:54.37 ----- exit code -1073740286 --------------------------------------------------------- +``` + +**Stack Trace:** +``` +N/A +``` + +**Analysis:** +Edge/successor count mismatch under jitosr_stress_random PGO mode. Tracked by #126725, assigned to @AndyAyersMS. +>>> + +-------------------------------------------------------------------------------- +FAILURE 20: System.Threading.Overlapped.Tests crash with IOException handle is invalid on Windows ARM64 (windows arm64) +-------------------------------------------------------------------------------- +GitHub Issue: NEW — needs issue filed +Labels: area-System.Threading, JitStress +Failing since: None (build None) + +Work item: System.Threading.Overlapped.Tests + +Title: Test Failure: System.Threading.Overlapped.Tests +Labels: area-System.Threading, JitStress +Milestone: 11.0.0 + +Body (paste as-is into GitHub issue): +<<< +**Summary:** + Overlapped test crash with IOException when EventWaitHandle.Set fails in IO completion callback on Windows ARM64. + +**Failed in (1):** +- [runtime-coreclr libraries-pgo 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386172) + +**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/fad3e607-64d5-40a9-bfd8-f73370f7b2a9/workitems/System.Threading.Overlapped.Tests/console) +**Source:** [runtime-coreclr libraries-pgo / net11.0-windows-Release-arm64-defaultpgo-Windows.11.Arm64.Open / System.Threading.Overlapped.Tests](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386172&view=ms.vss-test-web.build-test-results-tab) + +**Failed tests:** +``` +- net11.0-windows-Release-arm64-defaultpgo-Windows.11.Arm64.Open + - System.Threading.Overlapped.Tests +``` + +**Error Message:** +``` +Unhandled exception. System.IO.IOException: The handle is invalid. + at System.Threading.EventWaitHandle.Set() + at AsyncHelper.Callback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* _overlapped) + at System.Threading.PortableThreadPool.IOCompletionPoller.Event.Invoke() +``` + +**Stack Trace:** +``` +at System.Threading.EventWaitHandle.Set() + at AsyncHelper.Callback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* _overlapped) + at System.Threading.PortableThreadPool.IOCompletionPoller.Event.Invoke() + at System.Threading.ThreadPoolTypedWorkItemQueue.System.Threading.IThreadPoolWorkItem.Execute() +``` + +**Analysis:** +Race condition or premature disposal of event handle. Exit code 0xE0434352 = CLR unhandled exception. Under defaultpgo stress. No existing issue found. +>>> + +================================================================================ +GitHub Issue Summary +================================================================================ + + #126641 (https://github.com/dotnet/runtime/issues/126641) + DNS NameResolution tests fail with Name or service not known + State: OPEN | Pipelines affected: 4 + + #127127 (https://github.com/dotnet/runtime/issues/127127) + JitStress-random causes widespread Half (float16) miscompilation + State: OPEN | Pipelines affected: 1 + + #127125 (https://github.com/dotnet/runtime/issues/127125) + JitStress-random miscompiles Sequence overflow/boundary arithmetic + State: OPEN | Pipelines affected: 1 + + #127141 (https://github.com/dotnet/runtime/issues/127141) + JIT LSRA assertion refPosition->RegOptional() in Vector512.DotByte under jitstress-random + State: OPEN | Assigned: @@dhartglassMSFT | Pipelines affected: 1 + + #127287 (https://github.com/dotnet/runtime/issues/127287) + ProcessSafeHandle_WaitForExitOrKillOnCancellationAsync_KillsOnCancellation flaky + State: OPEN | Assigned: @@adamsitnik | Pipelines affected: 1 + + #104670 (https://github.com/dotnet/runtime/issues/104670) + BinderTracingTest.ResolutionFlow times out under jitoptrepeat + State: OPEN | Assigned: @@mdh1418 | Pipelines affected: 1 + + #127131 (https://github.com/dotnet/runtime/issues/127131) + Lock.TryEnterSlow HasAnySpinners assertion failure under jitstressregs8_x86_noavx + State: OPEN | Assigned: @@jakobbotsch | Pipelines affected: 1 + + #126819 (https://github.com/dotnet/runtime/issues/126819) + GCStress VM assertion pMT->Validate() in Object::ValidateInner during SIMD tests + State: OPEN | Assigned: @@jakobbotsch | Pipelines affected: 1 + + #127128 (https://github.com/dotnet/runtime/issues/127128) + jit64/regress/vsw/373472/test_il returns 1 instead of 100 under gcstress0xc_jitstress + State: OPEN | Pipelines affected: 1 + + #127138 (https://github.com/dotnet/runtime/issues/127138) + JIT assertion WasMorphed() in morph.cpp during Morph - Global under gcstress MinOpts + State: CLOSED | Assigned: @@tannergooding | Pipelines affected: 1 + + #125685 (https://github.com/dotnet/runtime/issues/125685) + AccessViolation in XxHashShared.MergeAccumulators under jitstress2-jitstressregs + State: CLOSED | Assigned: @@jakobbotsch | Pipelines affected: 1 + + #125312 (https://github.com/dotnet/runtime/issues/125312) + MetricsTests.PassingVariableTagsParametersTest tag corruption under jitstress + State: CLOSED | Assigned: @@jakobbotsch | Pipelines affected: 1 + + #127107 (https://github.com/dotnet/runtime/issues/127107) + StartAndForget_StartsProcessAndReturnsValidPid — process exits before verification + State: CLOSED | Assigned: @@adamsitnik | Pipelines affected: 1 + + #127130 (https://github.com/dotnet/runtime/issues/127130) + BarrierTests.RunBarrierTest7a fails under jitstressregs8 — participant count mismatch + State: OPEN | Assigned: @@jakobbotsch | Pipelines affected: 1 + + #118595 (https://github.com/dotnet/runtime/issues/118595) + JIT assert Inconsistent profile data in fgprofile.cpp during PGO stress + State: OPEN | Assigned: @@AndyAyersMS | Pipelines affected: 1 + + #127142 (https://github.com/dotnet/runtime/issues/127142) + JIT assert in lower.cpp:5675 during Tier1-OSR for UInt128Tests + State: OPEN | Assigned: @@dhartglassMSFT | Pipelines affected: 1 + + #126725 (https://github.com/dotnet/runtime/issues/126725) + JIT assert nEdges == nSucc during Profile incorporation in OSR + State: OPEN | Assigned: @@AndyAyersMS | Pipelines affected: 1 + + [New] Test Failure: Regression_4 + No matching GitHub issue found. Affects 1 pipeline(s). + Suggested labels: area-CodeGen-coreclr, JitStress, blocking-clean-ci-optional + + [New] Test Failure: System.Threading.Tasks.Tests.TaskRtTests_Core.RunTCSCompletionStateTests + No matching GitHub issue found. Affects 1 pipeline(s). + Suggested labels: area-CodeGen-coreclr, JitStress + + [New] Test Failure: System.Threading.Overlapped.Tests + No matching GitHub issue found. Affects 1 pipeline(s). + Suggested labels: area-System.Threading, JitStress + +================================================================================ +Action Items +================================================================================ + +### 🆕 Issues to File + +- [NEW] Regression_4 (11 test(s), 1 pipeline(s)) + See FAILURE 8 above for pre-formatted issue body. + +- [NEW] System.Threading.Tasks.Tests.TaskRtTests_Core.RunTCSCompletionStateTests (2 test(s), 1 pipeline(s)) + See FAILURE 15 above for pre-formatted issue body. + +- [NEW] System.Threading.Overlapped.Tests (1 test(s), 1 pipeline(s)) + See FAILURE 20 above for pre-formatted issue body. + +### 🔥 High Impact Failures + +- System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntry_HostString_Ok — #126641 (155 test(s), 4 pipeline(s)) + https://github.com/dotnet/runtime/issues/126641 + +- System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.SpanDestinationFunctions_AllLengths — #127127 (257 test(s), 1 pipeline(s)) + https://github.com/dotnet/runtime/issues/127127 + +- baseservices/exceptions/regressions/V1/SEH/VJ/HandlerException/HandlerException.cmd — #127131 (17 test(s), 1 pipeline(s)) + https://github.com/dotnet/runtime/issues/127131 + +- System.Linq.Tests.SequenceTests.Numbers_ProduceExpectedSequence — #127125 (10 test(s), 1 pipeline(s)) + https://github.com/dotnet/runtime/issues/127125 + +- ComInterfaceGenerator.Unit.Tests — #125685 (9 test(s), 1 pipeline(s)) + https://github.com/dotnet/runtime/issues/125685 + +### 👁️ Needs Review + +- Unresolved validation warnings — see debug log for details. + +================================================================================ +End of report. Generated by ci-pipeline-monitor skill. +================================================================================ diff --git a/.github/skills/ci-pipeline-monitor/scripts/monitor.db b/.github/skills/ci-pipeline-monitor/scripts/monitor.db new file mode 100644 index 0000000000000000000000000000000000000000..f7997cd2970750bb2d04491a908792db71d07a00 GIT binary patch literal 1236992 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 {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt64_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanOrEqualMask(left + (UInt32)i, right) != result[i]",}), (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt64_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanOrEqualMask(left + (UInt64)i, right) != result[i]",}), - (Templates.SveVecImmTernOpFirstArgTest, new Dictionary { ["TestName"] = "Sve2_DotProductRotateComplex_int_sbyte_0", ["Method"] = "DotProductRotateComplex", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "SByte", ["Op3VectorType"] = "Vector", ["Op3BaseType"] = "SByte", ["Op4BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp3"] = "TestLibrary.Generator.GetSByte()", ["Imm"] = "0", ["InvalidImm"] = "4", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.DotProductRotateComplex(first[i], second, 4 * i, third, Imm) != result[i]", ["GetIterResult"] = "Helpers.DotProductRotateComplex(first[i], second, 4 * i, third, Imm)"}), + (Templates.SveCreateWhileRWMaskTest, new Dictionary { ["TestName"] = "Sve2_CreateWhileReadAfterWriteMaskByte", ["Method"] = "CreateWhileReadAfterWriteMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "Byte" }), + (Templates.SveCreateWhileRWMaskTest, new Dictionary { ["TestName"] = "Sve2_CreateWhileReadAfterWriteMaskSByte", ["Method"] = "CreateWhileReadAfterWriteMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "SByte" }), + (Templates.SveCreateWhileRWMaskTest, new Dictionary { ["TestName"] = "Sve2_CreateWhileReadAfterWriteMaskInt16", ["Method"] = "CreateWhileReadAfterWriteMaskInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1BaseType"] = "Int16" }), + (Templates.SveCreateWhileRWMaskTest, new Dictionary { ["TestName"] = "Sve2_CreateWhileReadAfterWriteMaskInt32", ["Method"] = "CreateWhileReadAfterWriteMaskInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1BaseType"] = "Int32" }), + (Templates.SveCreateWhileRWMaskTest, new Dictionary { ["TestName"] = "Sve2_CreateWhileReadAfterWriteMaskInt64", ["Method"] = "CreateWhileReadAfterWriteMaskInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1BaseType"] = "Int64" }), + (Templates.SveCreateWhileRWMaskTest, new Dictionary { ["TestName"] = "Sve2_CreateWhileReadAfterWriteMaskUInt16", ["Method"] = "CreateWhileReadAfterWriteMaskUInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1BaseType"] = "UInt16" }), + (Templates.SveCreateWhileRWMaskTest, new Dictionary { ["TestName"] = "Sve2_CreateWhileReadAfterWriteMaskUInt32", ["Method"] = "CreateWhileReadAfterWriteMaskUInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1BaseType"] = "UInt32" }), + (Templates.SveCreateWhileRWMaskTest, new Dictionary { ["TestName"] = "Sve2_CreateWhileReadAfterWriteMaskUInt64", ["Method"] = "CreateWhileReadAfterWriteMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "UInt64" }), + (Templates.SveCreateWhileRWMaskTest, new Dictionary { ["TestName"] = "Sve2_CreateWhileReadAfterWriteMaskSingle", ["Method"] = "CreateWhileReadAfterWriteMaskSingle", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1BaseType"] = "Single" }), + (Templates.SveCreateWhileRWMaskTest, new Dictionary { ["TestName"] = "Sve2_CreateWhileReadAfterWriteMaskDouble", ["Method"] = "CreateWhileReadAfterWriteMaskDouble", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1BaseType"] = "Double" }), + + (Templates.SveVecImmTernOpFirstArgTest,new Dictionary { ["TestName"] = "Sve2_DotProductRotateComplex_int_sbyte_0", ["Method"] = "DotProductRotateComplex", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "SByte", ["Op3VectorType"] = "Vector", ["Op3BaseType"] = "SByte", ["Op4BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp3"] = "TestLibrary.Generator.GetSByte()", ["Imm"] = "0", ["InvalidImm"] = "4", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.DotProductRotateComplex(first[i], second, 4 * i, third, Imm) != result[i]", ["GetIterResult"] = "Helpers.DotProductRotateComplex(first[i], second, 4 * i, third, Imm)"}), (Templates.SveVecImmTernOpFirstArgTest, new Dictionary { ["TestName"] = "Sve2_DotProductRotateComplex_int_sbyte_1", ["Method"] = "DotProductRotateComplex", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "SByte", ["Op3VectorType"] = "Vector", ["Op3BaseType"] = "SByte", ["Op4BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp3"] = "TestLibrary.Generator.GetSByte()", ["Imm"] = "1", ["InvalidImm"] = "4", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.DotProductRotateComplex(first[i], second, 4 * i, third, Imm) != result[i]", ["GetIterResult"] = "Helpers.DotProductRotateComplex(first[i], second, 4 * i, third, Imm)"}), (Templates.SveVecImmTernOpFirstArgTest, new Dictionary { ["TestName"] = "Sve2_DotProductRotateComplex_int_sbyte_2", ["Method"] = "DotProductRotateComplex", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "SByte", ["Op3VectorType"] = "Vector", ["Op3BaseType"] = "SByte", ["Op4BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp3"] = "TestLibrary.Generator.GetSByte()", ["Imm"] = "2", ["InvalidImm"] = "4", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.DotProductRotateComplex(first[i], second, 4 * i, third, Imm) != result[i]", ["GetIterResult"] = "Helpers.DotProductRotateComplex(first[i], second, 4 * i, third, Imm)"}), (Templates.SveVecImmTernOpFirstArgTest, new Dictionary { ["TestName"] = "Sve2_DotProductRotateComplex_int_sbyte_3", ["Method"] = "DotProductRotateComplex", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "SByte", ["Op3VectorType"] = "Vector", ["Op3BaseType"] = "SByte", ["Op4BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp3"] = "TestLibrary.Generator.GetSByte()", ["Imm"] = "3", ["InvalidImm"] = "4", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.DotProductRotateComplex(first[i], second, 4 * i, third, Imm) != result[i]", ["GetIterResult"] = "Helpers.DotProductRotateComplex(first[i], second, 4 * i, third, Imm)"}), diff --git a/src/tests/Common/GenerateHWIntrinsicTests/Arm/Templates.cs b/src/tests/Common/GenerateHWIntrinsicTests/Arm/Templates.cs index f88b2bb93c01d9..d4b700be3b2f63 100644 --- a/src/tests/Common/GenerateHWIntrinsicTests/Arm/Templates.cs +++ b/src/tests/Common/GenerateHWIntrinsicTests/Arm/Templates.cs @@ -412,4 +412,5 @@ static class Templates public static TemplateConfig VectorLookup_2Test = new TemplateConfig("VectorLookup_2Test.template"); public static TemplateConfig VectorLookup_3Test = new TemplateConfig("VectorLookup_3Test.template"); public static TemplateConfig VectorLookup_4Test = new TemplateConfig("VectorLookup_4Test.template"); + public static TemplateConfig SveCreateWhileRWMaskTest = new TemplateConfig("SveCreateWhileRWMaskTest.template"); } diff --git a/src/tests/JIT/HardwareIntrinsics/Arm/Shared/SveCreateWhileRWMaskTest.template b/src/tests/JIT/HardwareIntrinsics/Arm/Shared/SveCreateWhileRWMaskTest.template new file mode 100644 index 00000000000000..f9a646c8b41463 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/Arm/Shared/SveCreateWhileRWMaskTest.template @@ -0,0 +1,151 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +/****************************************************************************** + * This file is auto-generated from a template file by the GenerateTests.csx * + * script in tests\src\JIT\HardwareIntrinsics\Arm\Shared. In order to make * + * changes, please update the corresponding template and run according to the * + * directions listed in the file. * + ******************************************************************************/ + +using System; +using System.Numerics; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Runtime.Intrinsics; +using System.Runtime.Intrinsics.Arm; +using Xunit; + +namespace {Namespace} +{ + public static partial class Program + { + [Fact] + public static void {TestName}() + { + var test = new CreateWhileRWMaskTest__{TestName}(); + + if (test.IsSupported) + { + // Validates that same-address produces an all-true mask + test.RunSameAddressScenario(); + + // Validates calling via reflection works + test.RunReflectionScenario(); + + // Validates that an offset of one element produces a single-true mask + test.RunOffsetByOneScenario(); + } + else + { + // Validates we throw on unsupported hardware + test.RunUnsupportedScenario(); + } + + if (!test.Succeeded) + { + throw new Exception("One or more scenarios did not complete as expected."); + } + } + } + + public sealed unsafe class CreateWhileRWMaskTest__{TestName} + { + public bool IsSupported => {Isa}.IsSupported; + + public bool Succeeded { get; set; } = true; + + public void RunSameAddressScenario() + { + TestLibrary.TestFramework.BeginScenario(nameof(RunSameAddressScenario)); + + {Op1BaseType}* ptr = stackalloc {Op1BaseType}[{RetVectorType}<{RetBaseType}>.Count]; + {RetVectorType}<{RetBaseType}> mask = {Isa}.{Method}(ptr, ptr); + + for (int i = 0; i < {RetVectorType}<{RetBaseType}>.Count; i++) + { + if (mask.GetElement(i) == 0) + { + TestLibrary.TestFramework.LogInformation( + $"{nameof({Isa})}.{nameof({Isa}.{Method})}(ptr, ptr): Expected all elements true, but element {i} was false."); + Succeeded = false; + return; + } + } + } + + public void RunReflectionScenario() + { + TestLibrary.TestFramework.BeginScenario(nameof(RunReflectionScenario)); + + {Op1BaseType}* ptr = stackalloc {Op1BaseType}[{RetVectorType}<{RetBaseType}>.Count]; + var result = typeof({Isa}).GetMethod(nameof({Isa}.{Method}), new Type[] { typeof({Op1BaseType}*), typeof({Op1BaseType}*) }) + .Invoke(null, new object[] { + Pointer.Box(ptr, typeof({Op1BaseType}*)), + Pointer.Box(ptr, typeof({Op1BaseType}*)) + }); + + {RetVectorType}<{RetBaseType}> mask = ({RetVectorType}<{RetBaseType}>)result; + + for (int i = 0; i < {RetVectorType}<{RetBaseType}>.Count; i++) + { + if (mask.GetElement(i) == 0) + { + TestLibrary.TestFramework.LogInformation( + $"{nameof({Isa})}.{nameof({Isa}.{Method})}(ptr, ptr) via reflection: Expected all elements true, but element {i} was false."); + Succeeded = false; + return; + } + } + } + + public void RunOffsetByOneScenario() + { + TestLibrary.TestFramework.BeginScenario(nameof(RunOffsetByOneScenario)); + + {Op1BaseType}* ptr = stackalloc {Op1BaseType}[{RetVectorType}<{RetBaseType}>.Count + 1]; + {RetVectorType}<{RetBaseType}> mask = {Isa}.{Method}(ptr, ptr + 1); + + if (mask.GetElement(0) == 0) + { + TestLibrary.TestFramework.LogInformation( + $"{nameof({Isa})}.{nameof({Isa}.{Method})}(ptr, ptr+1): Expected element 0 to be true, but was false."); + Succeeded = false; + return; + } + + for (int i = 1; i < {RetVectorType}<{RetBaseType}>.Count; i++) + { + if (mask.GetElement(i) != 0) + { + TestLibrary.TestFramework.LogInformation( + $"{nameof({Isa})}.{nameof({Isa}.{Method})}(ptr, ptr+1): Expected element {i} to be false, but was true."); + Succeeded = false; + return; + } + } + } + + public void RunUnsupportedScenario() + { + TestLibrary.TestFramework.BeginScenario(nameof(RunUnsupportedScenario)); + + bool succeeded = false; + + try + { + RunSameAddressScenario(); + } + catch (PlatformNotSupportedException) + { + succeeded = true; + } + + if (!succeeded) + { + Succeeded = false; + } + } + } +} diff --git a/src/tests/JIT/HardwareIntrinsics/Arm/Sve2/CreateWhileRWMask.cs b/src/tests/JIT/HardwareIntrinsics/Arm/Sve2/CreateWhileRWMask.cs deleted file mode 100644 index 7983a7a430d15e..00000000000000 --- a/src/tests/JIT/HardwareIntrinsics/Arm/Sve2/CreateWhileRWMask.cs +++ /dev/null @@ -1,65 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Numerics; -using System.Runtime.CompilerServices; -using System.Runtime.Intrinsics; -using System.Runtime.Intrinsics.Arm; -using Xunit; - -namespace JIT.HardwareIntrinsics.Arm._Sve2 -{ - public static partial class Program - { - [Fact] - public static unsafe void CreateWhileReadAfterWriteMaskByte_SameAddress() - { - if (!Sve2.IsSupported) - { - return; - } - - // When pointers are idential, all elements of returned mask are "1" - byte* ptr = stackalloc byte[Vector.Count]; - Vector mask = Sve2.CreateWhileReadAfterWriteMaskByte(ptr, ptr); - - for (int i = 0; i < Vector.Count; i++) - { - if (mask.GetElement(i) == 0) - { - throw new Exception( - $"CreateWhileReadAfterWriteMaskByte(ptr, ptr): Expected all elements true, but element {i} was false."); - } - } - } - - [Fact] - public static unsafe void CreateWhileReadAfterWriteMaskByte_OffsetByOne() - { - if (!Sve2.IsSupported) - { - return; - } - - // When pointers differ by one element, first element of returned mask is "1", the rest are "0" - byte* ptr = stackalloc byte[Vector.Count + 1]; - Vector mask = Sve2.CreateWhileReadAfterWriteMaskByte(ptr, ptr + 1); - - if (mask.GetElement(0) == 0) - { - throw new Exception( - $"CreateWhileReadAfterWriteMaskByte(ptr, ptr+1): Expected element 0 to be true, but was false."); - } - - for (int i = 1; i < Vector.Count; i++) - { - if (mask.GetElement(i) != 0) - { - throw new Exception( - $"CreateWhileReadAfterWriteMaskByte(ptr, ptr+1): Expected element {i} to be false, but was true."); - } - } - } - } -} diff --git a/src/tests/JIT/HardwareIntrinsics/Arm/Sve2/Sve2_r.csproj b/src/tests/JIT/HardwareIntrinsics/Arm/Sve2/Sve2_r.csproj index e1c01e091d1252..a7c38137553dec 100644 --- a/src/tests/JIT/HardwareIntrinsics/Arm/Sve2/Sve2_r.csproj +++ b/src/tests/JIT/HardwareIntrinsics/Arm/Sve2/Sve2_r.csproj @@ -8,7 +8,6 @@ - diff --git a/src/tests/JIT/HardwareIntrinsics/Arm/Sve2/Sve2_ro.csproj b/src/tests/JIT/HardwareIntrinsics/Arm/Sve2/Sve2_ro.csproj index e5ec04e52ab716..10acace4133a8b 100644 --- a/src/tests/JIT/HardwareIntrinsics/Arm/Sve2/Sve2_ro.csproj +++ b/src/tests/JIT/HardwareIntrinsics/Arm/Sve2/Sve2_ro.csproj @@ -8,7 +8,6 @@ - From 731643c95b6f0afd13b9be08d8ec8c5d4d3db38a Mon Sep 17 00:00:00 2001 From: David Hartglass Date: Mon, 27 Apr 2026 13:15:36 -0700 Subject: [PATCH 7/8] remove accidentally added files --- .../logs/test-report-2026-04-23-193554.md | 1830 ----------------- .../ci-pipeline-monitor/scripts/monitor.db | Bin 1236992 -> 0 bytes 2 files changed, 1830 deletions(-) delete mode 100644 .github/skills/ci-pipeline-monitor/logs/test-report-2026-04-23-193554.md delete mode 100644 .github/skills/ci-pipeline-monitor/scripts/monitor.db diff --git a/.github/skills/ci-pipeline-monitor/logs/test-report-2026-04-23-193554.md b/.github/skills/ci-pipeline-monitor/logs/test-report-2026-04-23-193554.md deleted file mode 100644 index d593278b03fa82..00000000000000 --- a/.github/skills/ci-pipeline-monitor/logs/test-report-2026-04-23-193554.md +++ /dev/null @@ -1,1830 +0,0 @@ -================================================================================ -CI Pipeline Monitor — Test Report -Date: 2026-04-23 -Org: dnceng-public -Project: public -Branch: refs/heads/main -Pipelines: 23 total (21 monitored, 2 skipped) -================================================================================ - -================================================================================ -Pipeline Summary -================================================================================ - -Result: 6 PASS, 10 FAIL, 5 INCONCLUSIVE (of 21 monitored) - - ✅ runtime-coreclr ilasm 20260418.1 - https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385542 - - ✅ runtime-coreclr jitstress-isas-arm 20260418.1 - https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385544 - - ✅ runtime-coreclr jitstress-isas-avx512 20260418.1 - https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385561 - - ✅ runtime-coreclr jitstress-isas-x86 20260418.1 - https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385562 - - ✅ runtime-coreclr jitstress2-jitstressregs 20260419.1 - https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386178 - - ✅ runtime-coreclr superpmi-replay 20260423.1 - https://dev.azure.com/dnceng-public/public/_build/results?buildId=1392584 - - ❌ runtime-coreclr gcstress-extra 20260419.1 - https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386264 - - [9] JIT.SIMD.0.1 (#126819, https://github.com/dotnet/runtime/issues/126819) - - [10] JIT/jit64/regress/vsw/373472/test_il/test_il.dll (#127128, https://github.com/dotnet/runtime/issues/127128) - - [11] JIT.performance.0.1 (#127138, https://github.com/dotnet/runtime/issues/127138) - - [11] Regression_o_2.0.1 (#127138, https://github.com/dotnet/runtime/issues/127138) - - ❌ runtime-coreclr jitstress-random 20260419.1 - https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386206 - - [4] HardwareIntrinsics_General_ro (#127141, https://github.com/dotnet/runtime/issues/127141) - - ❌ runtime-coreclr jitstressregs-x86 20260419.1 - https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386227 - - [7] JIT.performance (#127131, https://github.com/dotnet/runtime/issues/127131) - - [7] JIT/Directed/tls/TestTLSWithLoadedDlls/TestTLSWithLoadedDlls.cmd (#127131, https://github.com/dotnet/runtime/issues/127131) - - [7] JIT/Performance/CodeQuality/BenchmarksGame/spectralnorm/spectralnorm-3/spectralnorm-3.dll (#127131, https://github.com/dotnet/runtime/issues/127131) - - [7] JIT/Regression/CLR-x86-JIT/V1.1-M1-Beta1/b143840/b143840/b143840.cmd (#127131, https://github.com/dotnet/runtime/issues/127131) - - [7] Regression_PdbOnly_ro (#127131, https://github.com/dotnet/runtime/issues/127131) - - [7] ... and 11 more (#127131, https://github.com/dotnet/runtime/issues/127131) - - ❌ runtime-coreclr libraries-jitstress 20260423.1 - https://dev.azure.com/dnceng-public/public/_build/results?buildId=1392586 - - [5] System.Diagnostics.Tests.ProcessWaitingTests.ProcessSafeHandle_WaitForExitOrKillOnCancellationAsync_KillsOnCancellation (#127287, https://github.com/dotnet/runtime/issues/127287) - - ❌ runtime-coreclr libraries-jitstress-random 20260418.1 - https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385513 - - [1] System.Net.NameResolution.Tests.GetHostByNameTest.DnsObsoleteBeginEndGetHostByName_EmptyString_ReturnsHostName (#126641, https://github.com/dotnet/runtime/issues/126641) - - [1] System.Net.NameResolution.Tests.GetHostByNameTest.DnsObsoleteGetHostByName_EmptyString_ReturnsHostName (#126641, https://github.com/dotnet/runtime/issues/126641) - - [1] System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntryAsync_HostString_Ok (#126641, https://github.com/dotnet/runtime/issues/126641) - - [1] System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntry_HostString_Ok (#126641, https://github.com/dotnet/runtime/issues/126641) - - [1] System.Net.NameResolution.Tests.GetHostEntryTest.GetHostEntry_DisableIPv6_ExcludesIPv6Addresses (#126641, https://github.com/dotnet/runtime/issues/126641) - - [2] System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.Exp_AllLengths (#127127, https://github.com/dotnet/runtime/issues/127127) - - [2] System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.Exp_InPlace (#127127, https://github.com/dotnet/runtime/issues/127127) - - [2] System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.Exp_SpecialValues (#127127, https://github.com/dotnet/runtime/issues/127127) - - [2] System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.IndexOfMaxMagnitude_FirstNaNReturned (#127127, https://github.com/dotnet/runtime/issues/127127) - - [2] System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.IndexOfMaxMagnitude_Negative0LesserThanPositive0 (#127127, https://github.com/dotnet/runtime/issues/127127) - - [3] System.Linq.Tests.SequenceTests.EndOutOfRange_Throws (#127125, https://github.com/dotnet/runtime/issues/127125) - - [3] System.Linq.Tests.SequenceTests.Numbers_ProduceExpectedSequence (#127125, https://github.com/dotnet/runtime/issues/127125) - - [3] System.Linq.Tests.SequenceTests.Step1_MatchesRange (#127125, https://github.com/dotnet/runtime/issues/127125) - - [2] ... and 90 more (#127127, https://github.com/dotnet/runtime/issues/127127) - - ❌ runtime-coreclr libraries-jitstress2-jitstressregs 20260418.1 - https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385246 - - [1] System.Net.NameResolution.Tests.GetHostByNameTest.DnsObsoleteBeginEndGetHostByName_EmptyString_ReturnsHostName (#126641, https://github.com/dotnet/runtime/issues/126641) - - [1] System.Net.NameResolution.Tests.GetHostByNameTest.DnsObsoleteGetHostByName_EmptyString_ReturnsHostName (#126641, https://github.com/dotnet/runtime/issues/126641) - - [1] System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntryAsync_HostString_Ok (#126641, https://github.com/dotnet/runtime/issues/126641) - - [1] System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntry_HostString_Ok (#126641, https://github.com/dotnet/runtime/issues/126641) - - [1] System.Net.NameResolution.Tests.GetHostEntryTest.GetHostEntry_DisableIPv6_ExcludesIPv6Addresses (#126641, https://github.com/dotnet/runtime/issues/126641) - - [12] ComInterfaceGenerator.Unit.Tests (#125685, https://github.com/dotnet/runtime/issues/125685) - - [12] IntrinsicsInSystemPrivateCoreLib.Tests (#125685, https://github.com/dotnet/runtime/issues/125685) - - [12] JSImportGenerator.Unit.Tests (#125685, https://github.com/dotnet/runtime/issues/125685) - - [12] LibraryImportGenerator.Unit.Tests (#125685, https://github.com/dotnet/runtime/issues/125685) - - [12] Microsoft.Extensions.Configuration.Binder.SourceGeneration.Tests (#125685, https://github.com/dotnet/runtime/issues/125685) - - [13] System.Diagnostics.Metrics.Tests.MetricsTests.PassingVariableTagsParametersTest (#125312, https://github.com/dotnet/runtime/issues/125312) - - [14] System.Diagnostics.Tests.StartAndForgetTests.StartAndForget_StartsProcessAndReturnsValidPid (#127107, https://github.com/dotnet/runtime/issues/127107) - - [12] ... and 4 more (#125685, https://github.com/dotnet/runtime/issues/125685) - - ❌ runtime-coreclr libraries-jitstressregs 20260419.1 - https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385979 - - [1] System.Net.NameResolution.Tests.GetHostByNameTest.DnsObsoleteBeginEndGetHostByName_EmptyString_ReturnsHostName (#126641, https://github.com/dotnet/runtime/issues/126641) - - [1] System.Net.NameResolution.Tests.GetHostByNameTest.DnsObsoleteGetHostByName_EmptyString_ReturnsHostName (#126641, https://github.com/dotnet/runtime/issues/126641) - - [1] System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntryAsync_HostString_Ok (#126641, https://github.com/dotnet/runtime/issues/126641) - - [1] System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntry_HostString_Ok (#126641, https://github.com/dotnet/runtime/issues/126641) - - [1] System.Net.NameResolution.Tests.GetHostEntryTest.GetHostEntry_DisableIPv6_ExcludesIPv6Addresses (#126641, https://github.com/dotnet/runtime/issues/126641) - - [15] [New] System.Threading.Tasks.Tests.TaskRtTests_Core.RunTCSCompletionStateTests (JIT codegen bug in register-stressed path corrupts Task continuation object type) - - [15] [New] System.Threading.Tasks.Tests.TaskRtTests_Core.RunTCSCompletionStateTests_SetCancel (JIT codegen bug in register-stressed path corrupts Task continuation object type) - - [16] System.Threading.Tests.BarrierTests.RunBarrierTest7a (#127130, https://github.com/dotnet/runtime/issues/127130) - - ❌ runtime-coreclr libraries-pgo 20260419.1 - https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386172 - - [1] System.Net.NameResolution.Functional.Tests (#126641, https://github.com/dotnet/runtime/issues/126641) - - [1] System.Net.NameResolution.Tests.GetHostByNameTest.DnsObsoleteBeginEndGetHostByName_EmptyString_ReturnsHostName (#126641, https://github.com/dotnet/runtime/issues/126641) - - [1] System.Net.NameResolution.Tests.GetHostByNameTest.DnsObsoleteGetHostByName_EmptyString_ReturnsHostName (#126641, https://github.com/dotnet/runtime/issues/126641) - - [1] System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntryAsync_HostString_Ok (#126641, https://github.com/dotnet/runtime/issues/126641) - - [1] System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntry_HostString_Ok (#126641, https://github.com/dotnet/runtime/issues/126641) - - [17] System.Linq.Parallel.Tests (#118595, https://github.com/dotnet/runtime/issues/118595) - - [18] System.Runtime.Tests (#127142, https://github.com/dotnet/runtime/issues/127142) - - [20] [New] System.Threading.Overlapped.Tests (Overlapped test crash with IOException when EventWaitHandle.Set fails in IO comp) - - [1] ... and 1 more (#126641, https://github.com/dotnet/runtime/issues/126641) - - ❌ runtime-coreclr pgostress 20260417.1 - https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385207 - - [8] [New] Regression_4 (JIT assertion in fgbasic.cpp:5228 during CopyToAsync OSR compilation under pgost) - - ❌ runtime-jit-experimental 20260419.1 - https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386276 - - [6] Loader/binding/tracing/BinderTracingTest.ResolutionFlow/BinderTracingTest.ResolutionFlow.cmd (#104670, https://github.com/dotnet/runtime/issues/104670) - - ⚠️ [runtime-coreclr gcstress0x3-gcstress0xc 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386096): INCONCLUSIVE (Build failed but no test failures detected via Test Results API) - ⚠️ [runtime-coreclr jitstress 20260422.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1392498): INCONCLUSIVE (Build failed but no test failures detected via Test Results API) - ⚠️ [runtime-coreclr jitstressregs 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385996): INCONCLUSIVE (Build failed but no test failures detected via Test Results API) - ⚠️ [runtime-coreclr pgo 20260423.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1392614): INCONCLUSIVE (Build failed but no test failures detected via Test Results API) - ⚠️ [runtime-coreclr superpmi-asmdiffs-checked-release 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385995): INCONCLUSIVE (Build failed but no test failures detected via Test Results API) - ⏭️ runtime-coreclr jitrollingbuild: SKIPPED (private) - ⏭️ runtime-coreclr superpmi-collect: SKIPPED (private) - -Notes: -- ✅ = all tests passed -- ❌ = one or more test failures -- ⚠️ = inconclusive (build failed but no test failures detected via Test Results API) -- ⏭️ = skipped (see reason per pipeline above) -- [New] = no matching GitHub issue found — may need a new issue filed. - -================================================================================ -Failure Details -================================================================================ - -The following unique test failures were found across all failing pipelines. -Each failure category is listed once with all affected pipelines. - --------------------------------------------------------------------------------- -FAILURE 1: DNS NameResolution tests fail with Name or service not known (linux x64, arm, arm64, windows x64, x86) --------------------------------------------------------------------------------- -GitHub Issue: #126641 (https://github.com/dotnet/runtime/issues/126641) — OPEN -Labels: area-System.Net, tracking-external-issue, blocking-clean-ci -Failing since: None (build None) - -Work item: System.Net.NameResolution.Tests - -Title: Test Failure: System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntry_HostString_Ok -Labels: area-System.Net, tracking-external-issue, blocking-clean-ci -Milestone: 11.0.0 - -Body (paste as-is into GitHub issue): -<<< -**Summary:** - DNS NameResolution tests fail with SocketException on Helix machines where hostname is not in /etc/hosts. - -**Failed in (4):** -- [runtime-coreclr libraries-jitstress-random 20260418.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385513) -- [runtime-coreclr libraries-jitstress2-jitstressregs 20260418.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385246) -- [runtime-coreclr libraries-jitstressregs 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385979) -- [runtime-coreclr libraries-pgo 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386172) - -**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/2a59dcb1-64f6-4588-8431-4275d54279cc/workitems/System.Net.NameResolution.Functional.Tests/console) -**Source:** [runtime-coreclr libraries-jitstress-random / net11.0-linux-Release-x64-jitstress_random_1-AzureLinux.3.Amd64.Open / System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntry_HostString_Ok](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385513&view=ms.vss-test-web.build-test-results-tab) - -**Failed tests:** -``` -runtime-coreclr libraries-jitstress-random -- net11.0-linux-Release-x64-jitstress_random_1-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-jitstress_random_2-AzureLinux.3.Amd64.Open -runtime-coreclr libraries-jitstress2-jitstressregs -- net11.0-linux-Release-x64-jitstress2_jitstressregs0x10-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-jitstress2_jitstressregs0x1000-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-jitstress2_jitstressregs0x2000-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-jitstress2_jitstressregs0x80-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-jitstress2_jitstressregs1-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-jitstress2_jitstressregs2-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-jitstress2_jitstressregs3-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-jitstress2_jitstressregs4-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-jitstress2_jitstressregs8-AzureLinux.3.Amd64.Open -runtime-coreclr libraries-jitstressregs -- net11.0-linux-Release-x64-jitstressregs0x10-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-jitstressregs0x1000-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-jitstressregs0x2000-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-jitstressregs0x80-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-jitstressregs1-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-jitstressregs2-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-jitstressregs3-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-jitstressregs4-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-jitstressregs8-AzureLinux.3.Amd64.Open -runtime-coreclr libraries-pgo -- net11.0-linux-Release-x64-defaultpgo-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-fullpgo-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-fullpgo_methodprofiling-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-fullpgo_random_gdv-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-fullpgo_random_gdv_edge-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-fullpgo_random_gdv_methodprofiling_only-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-jitosr_stress-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-jitosr_stress_random-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-jitrlcse-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-syntheticpgo-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-syntheticpgo_blend-AzureLinux.3.Amd64.Open -- net11.0-windows-Release-x64-jitosr_stress_random-Windows.10.Amd64.Open - - System.Net.NameResolution.Functional.Tests - - System.Net.NameResolution.Tests.GetHostByNameTest.DnsObsoleteBeginEndGetHostByName_EmptyString_ReturnsHostName - - System.Net.NameResolution.Tests.GetHostByNameTest.DnsObsoleteGetHostByName_EmptyString_ReturnsHostName - - System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntryAsync_HostString_Ok - - System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntry_HostString_Ok - - ... and 1 more -``` - -**Error Message:** -``` -System.Net.Sockets.SocketException (00000005, 0xFFFDFFFF): Name or service not known -``` - -**Stack Trace:** -``` -at System.Net.Dns.GetHostEntryOrAddressesCore(String hostName, Boolean justAddresses, AddressFamily addressFamily, Nullable1 activityOrDefault) - at System.Net.Dns.GetHostEntry(String hostNameOrAddress, AddressFamily family) - at System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntry_HostString_Ok(String hostName) -``` - -**Analysis:** -Infrastructure/environment problem. Hostname not in /etc/hosts on Helix machines causes getaddrinfo to fail. Not a code defect. Affects 4 library stress pipelines with 156 test failures. ->>> - --------------------------------------------------------------------------------- -FAILURE 2: JitStress-random causes widespread Half (float16) miscompilation (linux x64, windows x64, x86) --------------------------------------------------------------------------------- -GitHub Issue: #127127 (https://github.com/dotnet/runtime/issues/127127) — OPEN -Labels: area-System.Numerics.Tensors, JitStress, blocking-clean-ci-optional -Failing since: None (build None) - -Work item: System.Numerics.Tensors.Tests - -Title: Test Failure: System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.SpanDestinationFunctions_AllLengths -Labels: area-System.Numerics.Tensors, JitStress, blocking-clean-ci-optional -Milestone: 11.0.0 - -Body (paste as-is into GitHub issue): -<<< -**Summary:** - Under jitstress-random, the JIT produces incorrect code for Half (float16) operations across HalfTests, HalfGenericTensorPrimitives, and SByteTests_GenericMath. - -**Failed in (1):** -- [runtime-coreclr libraries-jitstress-random 20260418.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385513) - -**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/2a59dcb1-64f6-4588-8431-4275d54279cc/workitems/System.Numerics.Tensors.Tests/console) -**Source:** [runtime-coreclr libraries-jitstress-random / net11.0-linux-Release-x64-jitstress_random_1-AzureLinux.3.Amd64.Open / System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.SpanDestinationFunctions_AllLengths](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385513&view=ms.vss-test-web.build-test-results-tab) - -**Failed tests:** -``` -- net11.0-linux-Release-x64-jitstress_random_1-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-jitstress_random_2-AzureLinux.3.Amd64.Open -- net11.0-windows-Release-x64-jitstress_random_1-Windows.10.Amd64.Open -- net11.0-windows-Release-x64-jitstress_random_2-Windows.10.Amd64.Open -- net11.0-windows-Release-x86-jitstress_random_1-Windows.10.Amd64.Open -- net11.0-windows-Release-x86-jitstress_random_2-Windows.10.Amd64.Open - - System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.Exp_AllLengths - - System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.Exp_InPlace - - System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.Exp_SpecialValues - - System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.IndexOfMaxMagnitude_FirstNaNReturned - - System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.IndexOfMaxMagnitude_Negative0LesserThanPositive0 - - ... and 90 more -``` - -**Error Message:** -``` - System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.SpanDestinationFunctions_AllLengths(tensorPrimitivesMethod: SpanDestinationDelegate { Method = Void Exp10M1[Half](System.ReadOnlySpan`1[System.Half], System.Span`1[System.Half]), Target = null }, expectedMethod: Func`2 { Method = System.Half Exp10M1(System.Half), Target = null }, tolerance: null) [FAIL] - Assert.All() Failure: 7 out of 257 items in the collection did not pass. -``` - -**Stack Trace:** -``` -at System.Tests.HalfTests_GenericMath.AssertBitwiseEqual(Half expected, Half actual) - at System.Numerics.Tensors.Tests.GenericFloatingPointNumberTensorPrimitivesTests1.SpanDestinationFunctions_AllLengths(...) -``` - -**Analysis:** -JIT codegen bug under random stress modes. Produces wildly wrong numerical results for Half arithmetic. All platforms affected. Not a library defect. ->>> - --------------------------------------------------------------------------------- -FAILURE 3: JitStress-random miscompiles Sequence overflow/boundary arithmetic (linux x64, windows x64, x86) --------------------------------------------------------------------------------- -GitHub Issue: #127125 (https://github.com/dotnet/runtime/issues/127125) — OPEN -Labels: area-System.Linq, JitStress, blocking-clean-ci-optional -Failing since: None (build None) - -Work item: System.Linq.AsyncEnumerable.Tests - -Title: Test Failure: System.Linq.Tests.SequenceTests.Numbers_ProduceExpectedSequence -Labels: area-System.Linq, JitStress, blocking-clean-ci-optional -Milestone: 11.0.0 - -Body (paste as-is into GitHub issue): -<<< -**Summary:** - Under jitstress-random, the JIT miscompiles checked/unchecked arithmetic in Linq Sequence. - -**Failed in (1):** -- [runtime-coreclr libraries-jitstress-random 20260418.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385513) - -**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/2a59dcb1-64f6-4588-8431-4275d54279cc/workitems/System.Linq.AsyncEnumerable.Tests/console) -**Source:** [runtime-coreclr libraries-jitstress-random / net11.0-linux-Release-x64-jitstress_random_1-AzureLinux.3.Amd64.Open / System.Linq.Tests.SequenceTests.Numbers_ProduceExpectedSequence](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385513&view=ms.vss-test-web.build-test-results-tab) - -**Failed tests:** -``` -- net11.0-linux-Release-x64-jitstress_random_1-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-jitstress_random_2-AzureLinux.3.Amd64.Open -- net11.0-windows-Release-x64-jitstress_random_1-Windows.10.Amd64.Open -- net11.0-windows-Release-x64-jitstress_random_2-Windows.10.Amd64.Open - - System.Linq.Tests.SequenceTests.EndOutOfRange_Throws - - System.Linq.Tests.SequenceTests.Numbers_ProduceExpectedSequence - - System.Linq.Tests.SequenceTests.Step1_MatchesRange -``` - -**Error Message:** -``` - System.Linq.Tests.SequenceTests.Numbers_ProduceExpectedSequence [FAIL] - Assert.Equal() Failure: Collections differ - ↓ (pos 3) - Expected: [0, 1, 2, 0, 4] - Actual: [0, 1, 2, 3, 4] - ↑ (pos 3) - Stack Trace: - --- End of stack trace from previous location --- - --- End of stack trace from previous location --- - Assert.Equal() Failure: Values differ - Expected: 2 - Actual: 125 - Stack Trace: -``` - -**Stack Trace:** -``` -at System.Linq.Tests.SequenceTests.Numbers_ProduceExpectedSequence() -``` - -**Analysis:** -JIT fails to handle overflow/truncation for small integer types. Same JIT stress root cause as the Half failures. ->>> - --------------------------------------------------------------------------------- -FAILURE 4: JIT LSRA assertion refPosition->RegOptional() in Vector512.DotByte under jitstress-random (osx arm64) --------------------------------------------------------------------------------- -GitHub Issue: #127141 (https://github.com/dotnet/runtime/issues/127141) — OPEN -Assigned to: @@dhartglassMSFT -Labels: area-CodeGen-coreclr, untriaged -Failing since: None (build None) - -Work item: HardwareIntrinsics_General_ro - -Title: Test Failure: HardwareIntrinsics_General_ro -Labels: area-CodeGen-coreclr, untriaged -Milestone: 11.0.0 - -Body (paste as-is into GitHub issue): -<<< -**Summary:** - JIT assert in LSRA during Vector512.DotByte compilation under jitstress_random_2 on osx arm64. - -**Failed in (1):** -- [runtime-coreclr jitstress-random 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386206) - -**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/f6a720ab-8cc5-4e76-b5a4-eb87d6a2ddf1/workitems/HardwareIntrinsics_General_ro/console) -**Source:** [runtime-coreclr jitstress-random / coreclr osx arm64 Checked jitstress_random_2 @ OSX.26.Arm64.Open / HardwareIntrinsics_General_ro](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386206&view=ms.vss-test-web.build-test-results-tab) - -**Failed tests:** -``` -- coreclr osx arm64 Checked jitstress_random_2 @ OSX.26.Arm64.Open - - HardwareIntrinsics_General_ro -``` - -**Error Message:** -``` -Assert failure(PID 25723 [0x0000647b], Thread: 313971 [0x4ca73]): Assertion failed 'refPosition->RegOptional()' in 'JIT.HardwareIntrinsics.General._Vector512.VectorBinaryOpTest__DotByte:RunClsVarScenario():this' during 'LSRA build intervals' (IL size 49; hash 0x186ed855; FullOpts) - - File: /Users/runner/work/1/s/src/coreclr/jit/lsra.cpp:13676 - Image: /private/tmp/helix/working/B96E0A35/p/corerun -``` - -**Stack Trace:** -``` -N/A -``` - -**Analysis:** -JIT register allocator bug. Hits assertion refPosition->RegOptional() in LSRA build intervals under DOTNET_JitStress=2a. ->>> - --------------------------------------------------------------------------------- -FAILURE 5: ProcessSafeHandle_WaitForExitOrKillOnCancellationAsync_KillsOnCancellation flaky (linux arm, arm64) --------------------------------------------------------------------------------- -GitHub Issue: #127287 (https://github.com/dotnet/runtime/issues/127287) — OPEN -Assigned to: @@adamsitnik -Labels: area-System.Diagnostics.Process, blocking-clean-ci, Known Build Error -Failing since: None (build None) - -Work item: System.Diagnostics.Process.Tests - -Title: Test Failure: System.Diagnostics.Tests.ProcessWaitingTests.ProcessSafeHandle_WaitForExitOrKillOnCancellationAsync_KillsOnCancellation -Labels: area-System.Diagnostics.Process, blocking-clean-ci, Known Build Error -Milestone: 11.0.0 - -Body (paste as-is into GitHub issue): -<<< -**Summary:** - ProcessWaitingTests.KillsOnCancellation fails intermittently under jitstress on Linux ARM. - -**Failed in (1):** -- [runtime-coreclr libraries-jitstress 20260423.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1392586) - -**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/5e340bb6-12d2-40d2-99b5-9c258099aa10/workitems/System.Diagnostics.Process.Tests/console) -**Source:** [runtime-coreclr libraries-jitstress / net11.0-linux-Release-arm-jitstress1_tiered-(Debian.13.Arm32.Open)AzureLinux.3.Arm64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-13-helix-arm32v7 / System.Diagnostics.Tests.ProcessWaitingTests.ProcessSafeHandle_WaitForExitOrKillOnCancellationAsync_KillsOnCancellation](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1392586&view=ms.vss-test-web.build-test-results-tab) - -**Failed tests:** -``` -- net11.0-linux-Release-arm-jitstress1_tiered-(Debian.13.Arm32.Open)AzureLinux.3.Arm64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-13-helix-arm32v7 -- net11.0-linux-Release-arm64-jitminopts-AzureLinux.3.Arm64.Open - - System.Diagnostics.Tests.ProcessWaitingTests.ProcessSafeHandle_WaitForExitOrKillOnCancellationAsync_KillsOnCancellation -``` - -**Error Message:** -``` -Assert.True() Failure -Expected: True -Actual: False -``` - -**Stack Trace:** -``` -at System.Diagnostics.Tests.ProcessWaitingTests.ProcessSafeHandle_WaitForExitOrKillOnCancellationAsync_KillsOnCancellation() in /_/src/libraries/System.Diagnostics.Process/tests/ProcessWaitingTests.cs:line 729 -``` - -**Analysis:** -Known flaky test under stress. Process not killed in time. High hit count (32 in 7 days). Assigned to @adamsitnik. ->>> - --------------------------------------------------------------------------------- -FAILURE 6: BinderTracingTest.ResolutionFlow times out under jitoptrepeat (windows x64) --------------------------------------------------------------------------------- -GitHub Issue: #104670 (https://github.com/dotnet/runtime/issues/104670) — OPEN -Assigned to: @@mdh1418 -Labels: area-assemblyloading, blocking-clean-ci, Known Build Error -Failing since: None (build None) - -Work item: Loader - -Title: Test Failure: Loader/binding/tracing/BinderTracingTest.ResolutionFlow/BinderTracingTest.ResolutionFlow.cmd -Labels: area-assemblyloading, blocking-clean-ci, Known Build Error -Milestone: 11.0.0 - -Body (paste as-is into GitHub issue): -<<< -**Summary:** - BinderTracingTest.ResolutionFlow times out after 600s under jitoptrepeat on Windows x64. - -**Failed in (1):** -- [runtime-jit-experimental 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386276) - -**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/759cd63f-bac1-4a55-821d-029ed9763b82/workitems/Loader/console) -**Source:** [runtime-jit-experimental / coreclr windows x64 Checked jitoptrepeat @ Windows.10.Amd64.Open / Loader/binding/tracing/BinderTracingTest.ResolutionFlow/BinderTracingTest.ResolutionFlow.cmd](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386276&view=ms.vss-test-web.build-test-results-tab) - -**Failed tests:** -``` -- coreclr windows x64 Checked jitoptrepeat @ Windows.10.Amd64.Open - - Loader/binding/tracing/BinderTracingTest.ResolutionFlow/BinderTracingTest.ResolutionFlow.cmd -``` - -**Error Message:** -``` -cmdLine:C:\h\w\B05A094E\w\B2B509BA\e\Loader\Loader\../binding/tracing/BinderTracingTest.ResolutionFlow/BinderTracingTest.ResolutionFlow.cmd Timed Out (timeout in milliseconds: 600000 from variable __TestTimeout, start: 4/20/2026 12:34:33 AM, end: 4/20/2026 12:44:33 AM) - - - -Return code: -100 - -Raw output file: C:\h\w\B05A094E\w\B2B509BA\uploads\binding\tracing\BinderTracingTest.ResolutionFlow\output.txt - -Raw output: - -BEGIN EXECUTION - - "C:\h\w\B05A094E\p\corerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false" -p "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true" BinderTracingTest.ResolutionFlow.dll - -[12:34:34 AM] Running AssemblyLoadContextResolving_ReturnNull... - -[12:34:35 AM] Invoking AssemblyLoadContextResolving_ReturnNull... - -[12:34:35 AM] Validating bind operation for AssemblyToLoad_Subdirectory... - -ValidateBindOperation Started - -ValidateBindOperation Finished - -Test AssemblyLoadContextResolving_ReturnNull finished. - -[12:34:35 AM] Running AssemblyLoadContextResolving_LoadAssembly... - -[12:34:35 AM] Invoking AssemblyLoadContextResolving_LoadAssembly... - -[12:34:35 AM] Validating bind operation for AssemblyToLoad_Subdirectory... - -ValidateBindOperation Started - -ValidateBindOperation Started - -ValidateBindOperation Finished - -ValidateBindOperation Finished - -Test AssemblyLoadContextResolving_LoadAssembly finished. - -[12:34:35 AM] Running AssemblyLoadContextResolving_NameMismatch... - -[12:34:35 AM] Invoking AssemblyLoadContextResolving_NameMismatch... - -[12:34:36 AM] Validating bind operation for AssemblyToLoad_Subdirectory... - -Waiting for bind events for AssemblyToLoad_Subdirectory (0ms waited) Sleeping for 50ms - -ValidateBindOperation Started - -ValidateBindOperation Started - -ValidateBindOperation Finished - -ValidateBindOperation Finished - -Test AssemblyLoadContextResolving_NameMismatch finished. - -[12:34:36 AM] Running AssemblyLoadContextResolving_MultipleHandlers... - -[12:34:36 AM] Invoking AssemblyLoadContextResolving_MultipleHandlers... - -[12:34:36 AM] Validating bind operation for AssemblyToLoad_Subdirectory... - -ValidateBindOperation Started - -ValidateBindOperation Started - -ValidateBindOperation Finished - -ValidateBindOperation Finished - -Test AssemblyLoadContextResolving_MultipleHandlers finished. - -[12:34:36 AM] Running AppDomainAssemblyResolve_ReturnNull... - -[12:34:36 AM] Invoking AppDomainAssemblyResolve_ReturnNull... - -[12:34:36 AM] Validating bind operation for AssemblyToLoad_Subdirectory... - -Waiting for bind events for AssemblyToLoad_Subdirectory (0ms waited) Sleeping for 50ms - -ValidateBindOperation Started - -ValidateBindOperation Finished - -Test AppDomainAssemblyResolve_ReturnNull finished. - -[12:34:36 AM] Running AppDomainAssemblyResolve_LoadAssembly... - -[12:34:36 AM] Invoking AppDomainAssemblyResolve_LoadAssembly... - -[12:34:36 AM] Validating bind operation for AssemblyToLoad_Subdirectory... - -Waiting for bind events for AssemblyToLoad_Subdirectory (0ms waited) Sleeping for 50ms - -ValidateBindOperation Started - -ValidateBindOperation Started - -ValidateBindOperation Finished - -ValidateBindOperation Finished - -Test AppDomainAssemblyResolve_LoadAssembly finished. - -[12:34:36 AM] Running AppDomainAssemblyResolve_NameMismatch... - -[12:34:36 AM] Invoking AppDomainAssemblyResolve_NameMismatch... - -[12:34:36 AM] Validating bind operation for AssemblyToLoad_Subdirectory... - -Waiting for bind events for AssemblyToLoad_Subdirectory (0ms waited) Sleeping for 50ms - -ValidateBindOperation Started - -ValidateBindOperation Started - -ValidateBindOperation Finished - -ValidateBindOperation Finished - -Test AppDomainAssemblyResolve_NameMismatch finished. - -[12:34:36 AM] Running AppDomainAssemblyResolve_MultipleHandlers... - -[12:34:36 AM] Invoking AppDomainAssemblyResolve_MultipleHandlers... - -[12:34:36 AM] Validating bind operation for AssemblyToLoad_Subdirectory... - -Waiting for bind events for AssemblyToLoad_Subdirectory (0ms waited) Sleeping for 50ms - -ValidateBindOperation Started - -ValidateBindOperation Started - -ValidateBindOperation Finished - -ValidateBindOperation Finished - -Test AppDomainAssemblyResolve_MultipleHandlers finished. - -[12:34:36 AM] Launching process for AssemblyLoadFromResolveHandler_LoadDependency... - -Started subprocess 'C:\h\w\B05A094E\p\corerun.exe' with PID 3008 for AssemblyLoadFromResolveHandler_LoadDependency... - -[12:34:37 AM] Running AssemblyLoadFromResolveHandler_LoadDependency... - -[12:34:38 AM] Invoking AssemblyLoadFromResolveHandler_LoadDependency... - -[12:34:38 AM] Validating bind operation for AssemblyToLoadDependency, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null... - -Waiting for bind events for AssemblyToLoadDependency (0ms waited) Sleeping for 50ms - -ValidateBindOperation Started - -ValidateBindOperation Finished - -Test AssemblyLoadFromResolveHandler_LoadDependency finished. - - - -[12:34:38 AM] Launching process for AssemblyLoadFromResolveHandler_NotTracked... - -Started subprocess 'C:\h\w\B05A094E\p\corerun.exe' with PID 6024 for AssemblyLoadFromResolveHandler_NotTracked... - -[12:34:39 AM] Running AssemblyLoadFromResolveHandler_NotTracked... - -[12:34:40 AM] Invoking AssemblyLoadFromResolveHandler_NotTracked... - -[12:34:40 AM] Validating bind operation for AssemblyToLoad_Subdirectory... - -Waiting for bind events for AssemblyToLoad_Subdirectory (0ms waited) Sleeping for 50ms - -ValidateBindOperation Started - -ValidateBindOperation Finished - -Test AssemblyLoadFromResolveHandler_NotTracked finished. - - - -cmdLine:C:\h\w\B05A094E\w\B2B509BA\e\Loader\Loader\../binding/tracing/BinderTracingTest.ResolutionFlow/BinderTracingTest.ResolutionFlow.cmd Timed Out (timeout in milliseconds: 600000 from variable __TestTimeout, start: 4/20/2026 12:34:33 AM, end: 4/20/2026 12:44:33 AM) - -Test Harness Exitcode is : -100 - -To run the test: - -Set up CORE_ROOT and run. - -> C:\h\w\B05A094E\w\B2B509BA\e\Loader\Loader\../binding/tracing/BinderTracingTest.ResolutionFlow/BinderTracingTest.ResolutionFlow.cmd - -Xunit.Sdk.TrueException: - - - -cmdLine:C:\h\w\B05A094E\w\B2B509BA\e\Loader\Loader\../binding/tracing/BinderTracingTest.ResolutionFlow/BinderTracingTest.ResolutionFlow.cmd Timed Out (timeout in milliseconds: 600000 from variable __TestTimeout, start: 4/20/2026 12:34:33 AM, end: 4/20/2026 12:44:33 AM) - - - -Return code: -100 - -Raw output file: C:\h\w\B05A094E\w\B2B509BA\uploads\binding\tracing\BinderTracingTest.ResolutionFlow\output.txt - -Raw output: - -BEGIN EXECUTION - - "C:\h\w\B05A094E\p\corerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false" -p "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true" BinderTracingTest.ResolutionFlow.dll - -[12:34:34 AM] Running AssemblyLoadContextResolving_ReturnNull... - -[12:34:35 AM] Invoking AssemblyLoadContextResolving_ReturnNull... - -[12:34:35 AM] Validating bind operation for AssemblyToLoad_Subdirectory... - -ValidateBindOperation Started - -ValidateBindOperation Finished - -Test AssemblyLoadContextResolving_ReturnNull finished. - -[12:34:35 AM] Running AssemblyLoadContextResolving_LoadAssembly... - -[12:34:35 AM] Invoking AssemblyLoadContextResolving_LoadAssembly... - -[12:34:35 AM] Validating bind operation for AssemblyToLoad_Subdirectory... - -ValidateBindOperation Started - -ValidateBindOperation Started - -ValidateBindOperation Finished - -ValidateBindOperation Finished - -Test AssemblyLoadContextResolving_LoadAssembly finished. - -[12:34:35 AM] Running AssemblyLoadContextResolving_NameMismatch... - -[12:34:35 AM] Invoking AssemblyLoadContextResolving_NameMismatch... - -[12:34:36 AM] Validating bind operation for AssemblyToLoad_Subdirectory... - -Waiting for bind events for AssemblyToLoad_Subdirectory (0ms waited) Sleeping for 50ms - -ValidateBindOperation Started - -ValidateBindOperation Started - -ValidateBindOperation Finished - -ValidateBindOperation Finished - -Test AssemblyLoadContextResolving_NameMismatch finished. - -[12:34:36 AM] Running AssemblyLoadContextResolving_MultipleHandlers... - -[12:34:36 AM] Invoking AssemblyLoadContextResolving_MultipleHandlers... - -[12:34:36 AM] Validating bind operation for AssemblyToLoad_Subdirectory... - -ValidateBindOperation Started - -ValidateBindOperation Started - -ValidateBindOperation Finished - -ValidateBindOperation Finished - -Test AssemblyLoadContextResolving_MultipleHandlers finished. - -[12:34:36 AM] Running AppDomainAssemblyResolve_ReturnNull... - -[12:34:36 AM] Invoking AppDomainAssemblyResolve_ReturnNull... - -[12:34:36 AM] Validating bind operation for AssemblyToLoad_Subdirectory... - -Waiting for bind events for AssemblyToLoad_Subdirectory (0ms waited) Sleeping for 50ms - -ValidateBindOperation Started - -ValidateBindOperation Finished - -Test AppDomainAssemblyResolve_ReturnNull finished. - -[12:34:36 AM] Running AppDomainAssemblyResolve_LoadAssembly... - -[12:34:36 AM] Invoking AppDomainAssemblyResolve_LoadAssembly... - -[12:34:36 AM] Validating bind operation for AssemblyToLoad_Subdirectory... - -Waiting for bind events for AssemblyToLoad_Subdirectory (0ms waited) Sleeping for 50ms - -ValidateBindOperation Started - -ValidateBindOperation Started - -ValidateBindOperation Finished - -ValidateBindOperation Finished - -Test AppDomainAssemblyResolve_LoadAssembly finished. - -[12:34:36 AM] Running AppDomainAssemblyResolve_NameMismatch... - -[12:34:36 AM] Invoking AppDomainAssemblyResolve_NameMismatch... - -[12:34:36 AM] Validating bind operation for AssemblyToLoad_Subdirectory... - -Waiting for bind events for AssemblyToLoad_Subdirectory (0ms waited) Sleeping for 50ms - -ValidateBindOperation Started - -ValidateBindOperation Started - -ValidateBindOperation Finished - -ValidateBindOperation Finished - -Test AppDomainAssemblyResolve_NameMismatch finished. - -[12:34:36 AM] Running AppDomainAssemblyResolve_MultipleHandlers... - -[12:34:36 AM] Invoking AppDomainAssemblyResolve_MultipleHandlers... - -[12:34:36 AM] Validating bind operation for AssemblyToLoad_Subdirectory... - -Waiting for bind events for AssemblyToLoad_Subdirectory (0ms waited) Sleeping for 50ms - -ValidateBindOperation Started - -ValidateBindOperation Started - -ValidateBindOperation Finished - -ValidateBindOperation Finished - -Test AppDomainAssemblyResolve_MultipleHandlers finished. - -[12:34:36 AM] Launching process for AssemblyLoadFromResolveHandler_LoadDependency... - -Started subprocess 'C:\h\w\B05A094E\p\corerun.exe' with PID 3008 for AssemblyLoadFromResolveHandler_LoadDependency... - -[12:34:37 AM] Running AssemblyLoadFromResolveHandler_LoadDependency... - -[12:34:38 AM] Invoking AssemblyLoadFromResolveHandler_LoadDependency... - -[12:34:38 AM] Validating bind operation for AssemblyToLoadDependency, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null... - -Waiting for bind events for AssemblyToLoadDependency (0ms waited) Sleeping for 50ms - -ValidateBindOperation Started - -ValidateBindOperation Finished - -Test AssemblyLoadFromResolveHandler_LoadDependency finished. - - - -[12:34:38 AM] Launching process for AssemblyLoadFromResolveHandler_NotTracked... - -Started subprocess 'C:\h\w\B05A094E\p\corerun.exe' with PID 6024 for AssemblyLoadFromResolveHandler_NotTracked... - -[12:34:39 AM] Running AssemblyLoadFromResolveHandler_NotTracked... - -[12:34:40 AM] Invoking AssemblyLoadFromResolveHandler_NotTracked... - -[12:34:40 AM] Validating bind operation for AssemblyToLoad_Subdirectory... - -Waiting for bind events for AssemblyToLoad_Subdirectory (0ms waited) Sleeping for 50ms - -ValidateBindOperation Started - -ValidateBindOperation Finished - -Test AssemblyLoadFromResolveHandler_NotTracked finished. - - - -cmdLine:C:\h\w\B05A094E\w\B2B509BA\e\Loader\Loader\../binding/tracing/BinderTracingTest.ResolutionFlow/BinderTracingTest.ResolutionFlow.cmd Timed Out (timeout in milliseconds: 600000 from variable __TestTimeout, start: 4/20/2026 12:34:33 AM, end: 4/20/2026 12:44:33 AM) - -Test Harness Exitcode is : -100 - -To run the test: - -Set up CORE_ROOT and run. - -> C:\h\w\B05A094E\w\B2B509BA\e\Loader\Loader\../binding/tracing/BinderTracingTest.ResolutionFlow/BinderTracingTest.ResolutionFlow.cmd - - at Xunit.Assert.True(Nullable`1 condition, String userMessage) in /_/src/arcade/src/Microsoft.DotNet.XUnitAssert/src/BooleanAsserts.cs:line 135 - - at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String assemblyPath, String testPathPrefix) - - at Program.<
$>g__TestExecutor353|0_354(StreamWriter tempLogSw, StreamWriter statsCsvSw, <>c__DisplayClass0_0&) - -00:44:35.060 Failed test: Loader/binding/tracing/BinderTracingTest.ResolutionFlow/BinderTracingTest.ResolutionFlow.cmd - -00:44:35.068 Running test: Loader/classloader/DefaultInterfaceMethods/regressions/github60486/github60486.cmd - - - -Return code: 0 - -Raw output file: C:\h\w\B05A094E\w\B2B509BA\uploads\classloader\DefaultInterfaceMethods\regressions\github60486\output.txt - -Raw output: - -BEGIN EXECUTION - - "C:\h\w\B05A094E\p\corerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false" -p "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true" github60486.dll - -Expected: 100 - -Actual: 100 -``` - -**Stack Trace:** -``` -N/A -``` - -**Analysis:** -Long-standing timeout since July 2024. JitOptRepeat doubles JIT compilation work. Assigned to @mdh1418. ->>> - --------------------------------------------------------------------------------- -FAILURE 7: Lock.TryEnterSlow HasAnySpinners assertion failure under jitstressregs8_x86_noavx (windows x86) --------------------------------------------------------------------------------- -GitHub Issue: #127131 (https://github.com/dotnet/runtime/issues/127131) — OPEN -Assigned to: @@jakobbotsch -Labels: area-CodeGen-coreclr, blocking-clean-ci-optional -Failing since: None (build None) - -Work item: multiple - -Title: Test Failure: baseservices/exceptions/regressions/V1/SEH/VJ/HandlerException/HandlerException.cmd -Labels: area-CodeGen-coreclr, blocking-clean-ci-optional -Milestone: 11.0.0 - -Body (paste as-is into GitHub issue): -<<< -**Summary:** - Lock.TryEnterSlow fires HasAnySpinners assertion under JitStressRegs=8 x86 noavx affecting all tests that acquire locks. - -**Failed in (1):** -- [runtime-coreclr jitstressregs-x86 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386227) - -**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/e3fb166c-a4b1-4b42-8945-801c217f142b/workitems/baseservices-exceptions/console) -**Source:** [runtime-coreclr jitstressregs-x86 / coreclr linux x64 Checked jitstressregs8_x86_noavx @ AzureLinux.3.Amd64.Open / baseservices/exceptions/regressions/V1/SEH/VJ/HandlerException/HandlerException.cmd](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386227&view=ms.vss-test-web.build-test-results-tab) - -**Failed tests:** -``` -- coreclr linux x64 Checked jitstressregs8_x86_noavx @ AzureLinux.3.Amd64.Open -- coreclr windows x86 Checked jitstressregs8_x86_noavx @ Windows.10.Amd64.Open - - JIT.performance - - JIT/Directed/tls/TestTLSWithLoadedDlls/TestTLSWithLoadedDlls.cmd - - JIT/Performance/CodeQuality/BenchmarksGame/spectralnorm/spectralnorm-3/spectralnorm-3.dll - - JIT/Regression/CLR-x86-JIT/V1.1-M1-Beta1/b143840/b143840/b143840.cmd - - Regression_PdbOnly_ro - - ... and 11 more -``` - -**Error Message:** -``` -Process terminated. -Assertion failed. -state.HasAnySpinners - at System.Threading.Lock.TryEnterSlow(Int32 timeoutMs, Int32 currentThreadId) - at System.Threading.Lock.Enter() - at System.Threading.Monitor.Enter(Object obj) -``` - -**Stack Trace:** -``` -at System.Threading.Lock.TryEnterSlow(Int32 timeoutMs, Int32 currentThreadId) - at System.Threading.Lock.Enter() - at System.Console.g__EnsureInitialized|26_0() -``` - -**Analysis:** -All 17 rows share the same root cause: Debug.Assert in Lock.TryEnterSlow where state.HasAnySpinners is false. Fires on any code path acquiring a managed Lock (Console.WriteLine, Monitor.Enter, etc). Assigned to @jakobbotsch. ->>> - --------------------------------------------------------------------------------- -FAILURE 8: JIT assertion 'block->bbCodeOffs <= succBlock->bbCodeOffs' in CopyToAsync Tier1-OSR under pgostress (linux arm64, x64; osx arm64, x64) --------------------------------------------------------------------------------- -GitHub Issue: NEW — needs issue filed -Labels: area-CodeGen-coreclr, JitStress, blocking-clean-ci-optional -Failing since: None (build None) - -Work item: Regression_4 - -Title: Test Failure: Regression_4 -Labels: area-CodeGen-coreclr, JitStress, blocking-clean-ci-optional -Milestone: 11.0.0 - -Body (paste as-is into GitHub issue): -<<< -**Summary:** - JIT assertion in fgbasic.cpp:5228 during CopyToAsync OSR compilation under pgostress. - -**Failed in (1):** -- [runtime-coreclr pgostress 20260417.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385207) - -**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/f0cfd45a-b7c9-45c2-81d4-a2c5a5920602/workitems/Regression_4/console) -**Source:** [runtime-coreclr pgostress / coreclr linux arm64 Checked fullpgo_methodprofiling @ AzureLinux.3.Arm64.Open / Regression_4](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385207&view=ms.vss-test-web.build-test-results-tab) - -**Failed tests:** -``` -- coreclr linux arm64 Checked fullpgo_methodprofiling @ AzureLinux.3.Arm64.Open -- coreclr linux x64 Checked fullpgo @ AzureLinux.3.Amd64.Open -- coreclr linux x64 Checked fullpgo_methodprofiling @ AzureLinux.3.Amd64.Open -- coreclr linux x64 Checked fullpgo_methodprofiling_always_optimized @ AzureLinux.3.Amd64.Open -- coreclr linux x64 Checked fullpgo_random_gdv @ AzureLinux.3.Amd64.Open -- coreclr linux x64 Checked syntheticpgo_blend @ AzureLinux.3.Amd64.Open -- coreclr osx arm64 Checked fullpgo @ OSX.26.Arm64.Open -- coreclr osx arm64 Checked fullpgo_methodprofiling @ OSX.26.Arm64.Open -- coreclr osx arm64 Checked fullpgo_methodprofiling_always_optimized @ OSX.26.Arm64.Open -- coreclr osx arm64 Checked fullpgo_random_gdv @ OSX.26.Arm64.Open -- coreclr osx arm64 Checked syntheticpgo_blend @ OSX.26.Arm64.Open - - Regression_4 -``` - -**Error Message:** -``` -Assert failure(PID 7044 [0x00001b84], Thread: 7087 [0x1baf]): Assertion failed 'block->bbCodeOffs <= succBlock->bbCodeOffs' in 'System.IO.Stream:g__Core|30_0(System.IO.Stream,System.IO.Stream,int,System.Threading.CancellationToken)' during 'Global local var liveness' (IL size 90; hash 0x9b4f85ef; Tier1-OSR) - - File: /__w/1/s/src/coreclr/jit/fgbasic.cpp:5228 - Image: /datadisks/disk1/work/B99B096A/p/corerun -``` - -**Stack Trace:** -``` -N/A -``` - -**Analysis:** -Deterministic JIT bug in flow graph basic block ordering during Tier1-OSR compilation under PGO stress. All 11 legs crash identically. Prior similar issue #88348 was fixed in .NET 8 but this is a new regression in a different compilation tier. ->>> - --------------------------------------------------------------------------------- -FAILURE 9: GCStress VM assertion pMT->Validate() in Object::ValidateInner during SIMD tests (linux arm64) --------------------------------------------------------------------------------- -GitHub Issue: #126819 (https://github.com/dotnet/runtime/issues/126819) — OPEN -Assigned to: @@jakobbotsch -Labels: area-CodeGen-coreclr, GCStress -Failing since: None (build None) - -Work item: JIT.SIMD.0.1 - -Title: Test Failure: JIT.SIMD.0.1 -Labels: area-CodeGen-coreclr, GCStress -Milestone: 11.0.0 - -Body (paste as-is into GitHub issue): -<<< -**Summary:** - GCStress heap validation finds corrupted MethodTable pointer during SIMD Vector3Interop test. - -**Failed in (1):** -- [runtime-coreclr gcstress-extra 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386264) - -**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/7b70689a-fc74-4bc6-91c7-3370a94d6e51/workitems/JIT.SIMD.0.1/console) -**Source:** [runtime-coreclr gcstress-extra / coreclr linux arm64 Checked gcstress0xc_jitstress2 @ AzureLinux.3.Arm64.Open / JIT.SIMD.0.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386264&view=ms.vss-test-web.build-test-results-tab) - -**Failed tests:** -``` -- coreclr linux arm64 Checked gcstress0xc_disabler2r_jitstress2 @ AzureLinux.3.Arm64.Open -- coreclr linux arm64 Checked gcstress0xc_jitstress2 @ AzureLinux.3.Arm64.Open -- coreclr linux x64 Checked gcstress0xc_disabler2r_jitstress2 @ AzureLinux.3.Amd64.Open -- coreclr linux x64 Checked gcstress0xc_jitstress2 @ AzureLinux.3.Amd64.Open -- coreclr osx arm64 Checked gcstress0xc_disabler2r_jitstress2 @ OSX.26.Arm64.Open - - JIT.SIMD.0.1 -``` - -**Error Message:** -``` -ASSERT FAILED - Expression: !CREATE_CHECK_STRING(pMT && pMT->Validate()) - Location: /__w/1/s/src/coreclr/vm/object.cpp:548 - Function: ValidateInner -``` - -**Stack Trace:** -``` -N/A -``` - -**Analysis:** -GC stress found invalid MethodTable pointer on object during stress-induced GC in Vector3Interop_r test. Same assertion signature as #126819. Likely JIT codegen issue producing incorrect GC info. ->>> - --------------------------------------------------------------------------------- -FAILURE 10: jit64/regress/vsw/373472/test_il returns 1 instead of 100 under gcstress0xc_jitstress (windows x86, linux arm64) --------------------------------------------------------------------------------- -GitHub Issue: #127128 (https://github.com/dotnet/runtime/issues/127128) — OPEN -Labels: area-CodeGen-coreclr, GCStress, JitStress -Failing since: None (build None) - -Work item: JIT/jit64/regress/vsw/373472/test_il/test_il.dll - -Title: Test Failure: JIT/jit64/regress/vsw/373472/test_il/test_il.dll -Labels: area-CodeGen-coreclr, GCStress, JitStress -Milestone: 11.0.0 - -Body (paste as-is into GitHub issue): -<<< -**Summary:** - test_il StrideTest.Test3() returns 1 instead of 100 under gcstress0xc + jitstress. - -**Failed in (1):** -- [runtime-coreclr gcstress-extra 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386264) - -**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/9eb0f01e-dfb0-4288-a1fa-a429dff99229/workitems/jit64_5.0.1/console) -**Source:** [runtime-coreclr gcstress-extra / coreclr windows x86 Checked gcstress0xc_jitstress1 @ Windows.10.Amd64.Open / JIT/jit64/regress/vsw/373472/test_il/test_il.dll](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386264&view=ms.vss-test-web.build-test-results-tab) - -**Failed tests:** -``` -- coreclr windows x86 Checked gcstress0xc_jitstress1 @ Windows.10.Amd64.Open -- coreclr windows x86 Checked gcstress0xc_jitstress2 @ Windows.10.Amd64.Open - - JIT/jit64/regress/vsw/373472/test_il/test_il.dll -``` - -**Error Message:** -``` -Assert.Equal() Failure: Values differ -Expected: 100 -Actual: 1 -``` - -**Stack Trace:** -``` -N/A -``` - -**Analysis:** -JIT codegen correctness issue under GC stress + JIT stress modes. Tracked by #127128. ->>> - --------------------------------------------------------------------------------- -FAILURE 11: JIT assertion WasMorphed() in morph.cpp during Morph - Global under gcstress MinOpts (windows x64, x86) --------------------------------------------------------------------------------- -GitHub Issue: #127138 (https://github.com/dotnet/runtime/issues/127138) — CLOSED -Assigned to: @@tannergooding -Labels: area-CodeGen-coreclr, GCStress -Failing since: None (build None) - -Work item: multiple - -Title: Test Failure: Regression_o_2.0.1 -Labels: area-CodeGen-coreclr, GCStress -Milestone: 11.0.0 - -Body (paste as-is into GitHub issue): -<<< -**Summary:** - JIT assertion WasMorphed() in morph.cpp under gcstress MinOpts. - -**Failed in (1):** -- [runtime-coreclr gcstress-extra 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386264) - -**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/a2cbb443-5558-4580-9a97-1cea826a9fdb/workitems/Regression_o_2.0.1/console) -**Source:** [runtime-coreclr gcstress-extra / coreclr windows x86 Checked gcstress0xc_jitminopts_heapverify1 @ Windows.10.Amd64.Open / Regression_o_2.0.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386264&view=ms.vss-test-web.build-test-results-tab) - -**Failed tests:** -``` -- coreclr windows x64 Checked gcstress0xc_jitminopts_heapverify1 @ Windows.10.Amd64.Open -- coreclr windows x86 Checked gcstress0xc_jitminopts_heapverify1 @ Windows.10.Amd64.Open - - JIT.performance.0.1 - - Regression_o_2.0.1 -``` - -**Error Message:** -``` -Assert failure(PID 4752 [0x00001290], Thread: 1188 [0x04a4]): Assertion failed '(*use)->WasMorphed()' in 'Runtime_110326.Runtime_110326B:Method0()' during 'Morph - Global' (IL size 228; hash 0x68a1313d; MinOpts) - - - - File: D:\a\_work\1\s\src\coreclr\jit\morph.cpp:13978 - - Image: C:\h\w\A903097C\p\corerun.exe - - - -App Exit Code: -1073740286 - -Expected: 100 - -Actual: -1073740286 - -END EXECUTION - FAILED - -FAILED - -[XUnitLogChecker]: 23:07:34.56: The full run will be done. - -[XUnitLogChecker]: 23:07:34.56: Item 'Regression_o_2' did not finish running. Checking and fixing the log... - -[XUnitLogChecker] -``` - -**Stack Trace:** -``` -N/A -``` - -**Analysis:** -Both Regression_o_2 and JIT.performance.0.1 hit the same JIT assertion. Issue #127138 was already fixed by @tannergooding on 2026-04-20. Build predates fix. ->>> - --------------------------------------------------------------------------------- -FAILURE 12: AccessViolation in XxHashShared.MergeAccumulators under jitstress2-jitstressregs (windows x64) --------------------------------------------------------------------------------- -GitHub Issue: #125685 (https://github.com/dotnet/runtime/issues/125685) — CLOSED -Assigned to: @@jakobbotsch -Labels: area-CodeGen-coreclr, JitStress -Failing since: None (build None) - -Work item: multiple - -Title: Test Failure: ComInterfaceGenerator.Unit.Tests -Labels: area-CodeGen-coreclr, JitStress -Milestone: 11.0.0 - -Body (paste as-is into GitHub issue): -<<< -**Summary:** - AccessViolation in XxHash128 hash computation used by Roslyn SourceText.GetContentHash under jitstress2_jitstressregs. - -**Failed in (1):** -- [runtime-coreclr libraries-jitstress2-jitstressregs 20260418.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385246) - -**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/992911d8-0a39-4553-9c47-ed0ae5eaedec/workitems/ComInterfaceGenerator.Unit.Tests/console) -**Source:** [runtime-coreclr libraries-jitstress2-jitstressregs / net11.0-windows-Release-x64-jitstress2_jitstressregs8-Windows.10.Amd64.Open / ComInterfaceGenerator.Unit.Tests](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385246&view=ms.vss-test-web.build-test-results-tab) - -**Failed tests:** -``` -- net11.0-windows-Release-x64-jitstress2_jitstressregs8-Windows.10.Amd64.Open - - ComInterfaceGenerator.Unit.Tests - - IntrinsicsInSystemPrivateCoreLib.Tests - - JSImportGenerator.Unit.Tests - - LibraryImportGenerator.Unit.Tests - - Microsoft.Extensions.Configuration.Binder.SourceGeneration.Tests - - ... and 4 more -``` - -**Error Message:** -``` -Fatal error. - -System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. - - at System.IO.Hashing.XxHashShared.MergeAccumulators(UInt64*, Byte*, UInt64) - - at System.IO.Hashing.XxHash128.GetCurrentHashAsHash128() - - at System.IO.Hashing.XxHash128.GetCurrentHashCore(System.Span`1) - - at System.IO.Hashing.NonCryptographicHashAlgorithm.GetHashAndResetCore(System.Span`1) - - at System.IO.Hashing.NonCryptographicHashAlgorithm.GetHashAndReset() - - at Microsoft.CodeAnalysis.Text.SourceText.g__computeContentHash|52_0() - - at Microsoft.CodeAnalysis.Host.TemporaryStorageService.WriteToTemporaryStorage(Microsoft.CodeAnalysis.Text.SourceText, System.Threading.CancellationToken) - - at Microsoft.CodeAnalysis.Host.TemporaryStorageService+d__13.MoveNext() - - at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.CodeAnalysis.Host.TemporaryStorageService+d__13, Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](d__13 ByRef) - - at Microsoft.CodeAnalysis.Host.TemporaryStorageService.WriteToTemporaryStorageAsync(Microsoft.CodeAnalysis.Text.SourceText, System.Threading.CancellationToken) - - at Microsoft.CodeAnalysis.Host.TemporaryStorageService+d__11.MoveNext() - - at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.CodeAnalysis.Host.TemporaryStorageService+d__11, Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](d__11 ByRef) - - at Microsoft.CodeAnalysis.Host.TemporaryStorageService.Microsoft.CodeAnalysis.Host.ITemporaryStorageServiceInternal.WriteToTemporaryStorageAsync(Microsoft.CodeAnalysis.Text.SourceText, System.Threading.CancellationToken) - - at Microsoft.CodeAnalysis.RecoverableTextAndVersion+RecoverableText+d__12.MoveNext() - - at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.CodeAnalysis.RecoverableTextAndVersion+RecoverableText+d__12, Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](d__12 ByRef) - - at Microsoft.CodeAnalysis.RecoverableTextAndVersion+RecoverableText+d__28.MoveNext() - - at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.CodeAnalysis.RecoverableTextAndVersion+RecoverableText+d__28, Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](d__28 ByRef) - - at Microsoft.CodeAnalysis.RecoverableTextAndVersion+RecoverableText.SaveAllAsync(Microsoft.CodeAnalysis.Collections.ImmutableSegmentedList`1>, System.Threading.CancellationToken) - - at Microsoft.CodeAnalysis.Threading.AsyncBatchingWorkQueue`1+<>c__DisplayClass2_0+<b__0>d[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].MoveNext() - - at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.CodeAnalysis.Threading.AsyncBatchingWorkQueue`1+<>c__DisplayClass2_0+<b__0>d[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](<b__0>d> ByRef) - - at Microsoft.CodeAnalysis.Threading.AsyncBatchingWorkQueue`1+<>c__DisplayClass2_0[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].b__0(Microsoft.CodeAnalysis.Collections.ImmutableSegmentedList`1>, System.Threading.CancellationToken) - - at Microsoft.CodeAnalysis.Threading.AsyncBatchingWorkQueue`2+d__18[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.CodeAnalysis.Threading.VoidResult, Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].MoveNext() - - at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.CodeAnalysis.Threading.AsyncBatchingWorkQueue`2+d__18[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.CodeAnalysis.Threading.VoidResult, Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](d__18,Microsoft.CodeAnalysis.Threading.VoidResult> ByRef) - - at Microsoft.CodeAnalysis.Threading.AsyncBatchingWorkQueue`2[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.CodeAnalysis.Threading.VoidResult, Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].ProcessNextBatchAsync() - - at Microsoft.CodeAnalysis.Threading.AsyncBatchingWorkQueue`2+<g__ContinueAfterDelayAsync|16_1>d[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.CodeAnalysis.Threading.VoidResult, Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].MoveNext() - - at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) - - at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.ValueTuple`2[[System.Boolean, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.CodeAnalysis.Threading.VoidResult, Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.CodeAnalysis.Threading.AsyncBatchingWorkQueue`2+<g__ContinueAfterDelayAsync|16_1>d[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.CodeAnalysis.Threading.VoidResult, Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], Microsoft.CodeAnalysis.Workspaces, Version=5.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].MoveNext(System.Threading.Thread) - - at System.Threading.ThreadPoolWorkQueue.Dispatch() - - at System.Threading.PortableThreadPool+WorkerThread.WorkerDoWork(System.Threading.PortableThreadPool) - - at System.Threading.PortableThreadPool+WorkerThread.WorkerThreadStart() - - at System.Threading.Thread.StartCallback(System.Threading.Thread*) - ------ end Sat 04/18/2026 10:37:57.27 ----- exit code -1073741819 ---------------------------------------------------------- - ------ start =============== XUnitLogChecker Output ===================================================== -``` - -**Stack Trace:** -``` -at System.IO.Hashing.XxHashShared.MergeAccumulators(UInt64*, Byte*, UInt64) - at System.IO.Hashing.XxHash128.GetCurrentHashAsHash128() - at System.IO.Hashing.XxHash128.GetCurrentHashCore(System.Span1) -``` - -**Analysis:** -Multiple source generator test assemblies crash via Roslyn SourceText hashing. Issue #125685 was closed 2026-04-19 by @jakobbotsch. Build 1385246 ran 2026-04-18 — predates fix. Should not recur. ->>> - --------------------------------------------------------------------------------- -FAILURE 13: MetricsTests.PassingVariableTagsParametersTest tag corruption under jitstress (linux x64) --------------------------------------------------------------------------------- -GitHub Issue: #125312 (https://github.com/dotnet/runtime/issues/125312) — CLOSED -Assigned to: @@jakobbotsch -Labels: area-CodeGen-coreclr, JitStress, blocking-clean-ci-optional -Failing since: None (build None) - -Work item: System.Diagnostics.Metrics.Tests - -Title: Test Failure: System.Diagnostics.Metrics.Tests.MetricsTests.PassingVariableTagsParametersTest -Labels: area-CodeGen-coreclr, JitStress, blocking-clean-ci-optional -Milestone: 11.0.0 - -Body (paste as-is into GitHub issue): -<<< -**Summary:** - Metrics tag collection corrupted under jitstress2_jitstressregs — empty strings instead of K2/V2. - -**Failed in (1):** -- [runtime-coreclr libraries-jitstress2-jitstressregs 20260418.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385246) - -**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/2f1cc3ff-c357-4661-8528-9d2dfff18810/workitems/System.Diagnostics.DiagnosticSource.Tests/console) -**Source:** [runtime-coreclr libraries-jitstress2-jitstressregs / net11.0-linux-Release-x64-jitstress2_jitstressregs0x80-AzureLinux.3.Amd64.Open / System.Diagnostics.Metrics.Tests.MetricsTests.PassingVariableTagsParametersTest](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385246&view=ms.vss-test-web.build-test-results-tab) - -**Failed tests:** -``` -- net11.0-linux-Release-x64-jitstress2_jitstressregs0x80-AzureLinux.3.Amd64.Open -- net11.0-linux-Release-x64-jitstress2_jitstressregs2-AzureLinux.3.Amd64.Open - - System.Diagnostics.Metrics.Tests.MetricsTests.PassingVariableTagsParametersTest -``` - -**Error Message:** -``` -Assert.Equal() Failure: Collections differ -Expected: [[K1, V1], [K2, V2], [K3, V3], [K4, V4]] -Actual: [[K1, V1], [, ], [K3, V3], [K4, V4]] -``` - -**Stack Trace:** -``` -N/A -``` - -**Analysis:** -JIT codegen bug in register stress path. Issue #125312 closed 2026-04-20. Build predates fix. ->>> - --------------------------------------------------------------------------------- -FAILURE 14: StartAndForget_StartsProcessAndReturnsValidPid — process exits before verification (linux x64) --------------------------------------------------------------------------------- -GitHub Issue: #127107 (https://github.com/dotnet/runtime/issues/127107) — CLOSED -Assigned to: @@adamsitnik -Labels: area-System.Diagnostics.Process, Known Build Error -Failing since: None (build None) - -Work item: System.Diagnostics.Process.Tests - -Title: Test Failure: System.Diagnostics.Tests.StartAndForgetTests.StartAndForget_StartsProcessAndReturnsValidPid -Labels: area-System.Diagnostics.Process, Known Build Error -Milestone: 11.0.0 - -Body (paste as-is into GitHub issue): -<<< -**Summary:** - Race condition — process exits before GetProcessById verification. - -**Failed in (1):** -- [runtime-coreclr libraries-jitstress2-jitstressregs 20260418.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385246) - -**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/51973331-d55e-4134-8e7f-3bcfa4ed694f/workitems/System.Diagnostics.Process.Tests/console) -**Source:** [runtime-coreclr libraries-jitstress2-jitstressregs / net11.0-linux-Release-x64-jitstress2_jitstressregs0x1000-AzureLinux.3.Amd64.Open / System.Diagnostics.Tests.StartAndForgetTests.StartAndForget_StartsProcessAndReturnsValidPid](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385246&view=ms.vss-test-web.build-test-results-tab) - -**Failed tests:** -``` -- net11.0-linux-Release-x64-jitstress2_jitstressregs0x1000-AzureLinux.3.Amd64.Open - - System.Diagnostics.Tests.StartAndForgetTests.StartAndForget_StartsProcessAndReturnsValidPid -``` - -**Error Message:** -``` -System.ArgumentException : Process with an Id of 16939 is not running. - at System.Diagnostics.Process.GetProcessById(Int32 processId) - at System.Diagnostics.Tests.StartAndForgetTests.StartAndForget_StartsProcessAndReturnsValidPid(Boolean useProcessStartInfo) -``` - -**Stack Trace:** -``` -N/A -``` - -**Analysis:** -Known flaky test. Issue #127107 closed 2026-04-20 by @adamsitnik. ->>> - --------------------------------------------------------------------------------- -FAILURE 15: Task.RunContinuations InvalidCastException under jitstressregs8 on x86 (windows x86) --------------------------------------------------------------------------------- -GitHub Issue: NEW — needs issue filed -Labels: area-CodeGen-coreclr, JitStress -Failing since: None (build None) - -Work item: System.Threading.Tasks.Tests - -Title: Test Failure: System.Threading.Tasks.Tests.TaskRtTests_Core.RunTCSCompletionStateTests -Labels: area-CodeGen-coreclr, JitStress -Milestone: 11.0.0 - -Body (paste as-is into GitHub issue): -<<< -**Summary:** - JIT codegen bug in register-stressed path corrupts Task continuation object type check. - -**Failed in (1):** -- [runtime-coreclr libraries-jitstressregs 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385979) - -**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/053f66b1-9d1a-4971-ab63-679de5331913/workitems/System.Threading.Tasks.Tests/console) -**Source:** [runtime-coreclr libraries-jitstressregs / net11.0-windows-Release-x86-jitstressregs8-Windows.10.Amd64.Open / System.Threading.Tasks.Tests.TaskRtTests_Core.RunTCSCompletionStateTests_SetCancel](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385979&view=ms.vss-test-web.build-test-results-tab) - -**Failed tests:** -``` -- net11.0-windows-Release-x86-jitstressregs8-Windows.10.Amd64.Open - - System.Threading.Tasks.Tests.TaskRtTests_Core.RunTCSCompletionStateTests - - System.Threading.Tasks.Tests.TaskRtTests_Core.RunTCSCompletionStateTests_SetCancel -``` - -**Error Message:** -``` -System.AggregateException : One or more errors occurred. (Unable to cast object of type System.Object to type System.Collections.Generic.List1[System.Object].) ----- System.InvalidCastException : Unable to cast object of type System.Object to type System.Collections.Generic.List1[System.Object]. - at System.Threading.Tasks.Task.RunContinuations(Object continuationObject) -``` - -**Stack Trace:** -``` -at System.Threading.Tasks.Task.RunContinuations(Object continuationObject) - at System.Threading.Tasks.Task.FinishContinuations() - at System.Threading.Tasks.Task.CancellationCleanupLogic() -``` - -**Analysis:** -Under JitStressRegs=8 on x86, Task.RunContinuations fails casting continuation object. Register stress corrupts the value or type check. No existing issue found. ->>> - --------------------------------------------------------------------------------- -FAILURE 16: BarrierTests.RunBarrierTest7a fails under jitstressregs8 — participant count mismatch (windows x86) --------------------------------------------------------------------------------- -GitHub Issue: #127130 (https://github.com/dotnet/runtime/issues/127130) — OPEN -Assigned to: @@jakobbotsch -Labels: area-CodeGen-coreclr, JitStress, blocking-clean-ci-optional -Failing since: None (build None) - -Work item: System.Threading.Tests - -Title: Test Failure: System.Threading.Tests.BarrierTests.RunBarrierTest7a -Labels: area-CodeGen-coreclr, JitStress, blocking-clean-ci-optional -Milestone: 11.0.0 - -Body (paste as-is into GitHub issue): -<<< -**Summary:** - Barrier participant count corrupted under JitStressRegs=8 on x86. - -**Failed in (1):** -- [runtime-coreclr libraries-jitstressregs 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385979) - -**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/053f66b1-9d1a-4971-ab63-679de5331913/workitems/System.Threading.Tests/console) -**Source:** [runtime-coreclr libraries-jitstressregs / net11.0-windows-Release-x86-jitstressregs8-Windows.10.Amd64.Open / System.Threading.Tests.BarrierTests.RunBarrierTest7a](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1385979&view=ms.vss-test-web.build-test-results-tab) - -**Failed tests:** -``` -- net11.0-windows-Release-x86-jitstressregs8-Windows.10.Amd64.Open - - System.Threading.Tests.BarrierTests.RunBarrierTest7a -``` - -**Error Message:** -``` -System.AggregateException : One or more errors occurred. (The participantCount argument must be less than or equal the number of participants. (Parameter participantCount)) ----- System.ArgumentOutOfRangeException : The participantCount argument must be less than or equal the number of participants. -``` - -**Stack Trace:** -``` -at System.Threading.Barrier.RemoveParticipants(Int32 participantCount) - at System.Threading.Tests.BarrierTests.<>c__DisplayClass18_0.b__0() -``` - -**Analysis:** -JIT codegen bug corrupting participant count tracking. Issue #127130 is open, assigned to @jakobbotsch. ->>> - --------------------------------------------------------------------------------- -FAILURE 17: JIT assert Inconsistent profile data in fgprofile.cpp during PGO stress (linux arm64, x64; windows x64) --------------------------------------------------------------------------------- -GitHub Issue: #118595 (https://github.com/dotnet/runtime/issues/118595) — OPEN -Assigned to: @@AndyAyersMS -Labels: area-CodeGen-coreclr, JitStress -Failing since: None (build None) - -Work item: System.Linq.Parallel.Tests - -Title: Test Failure: System.Linq.Parallel.Tests -Labels: area-CodeGen-coreclr, JitStress -Milestone: 11.0.0 - -Body (paste as-is into GitHub issue): -<<< -**Summary:** - JIT asserts Inconsistent profile data in fgprofile.cpp:4821 under TieredPGO + random GDV stress. - -**Failed in (1):** -- [runtime-coreclr libraries-pgo 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386172) - -**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/7feaa0a2-fb04-4e39-b091-681f877e252d/workitems/System.Linq.Parallel.Tests/console) -**Source:** [runtime-coreclr libraries-pgo / net11.0-linux-Release-arm-fullpgo_random_gdv_edge-(Debian.13.Arm32.Open)AzureLinux.3.Arm64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-13-helix-arm32v7 / System.Linq.Parallel.Tests](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386172&view=ms.vss-test-web.build-test-results-tab) - -**Failed tests:** -``` -- net11.0-linux-Release-arm-fullpgo_random_gdv_edge-(Debian.13.Arm32.Open)AzureLinux.3.Arm64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-13-helix-arm32v7 -- net11.0-linux-Release-arm64-fullpgo_random_gdv_edge-AzureLinux.3.Arm64.Open -- net11.0-linux-Release-x64-fullpgo_random_gdv_edge-AzureLinux.3.Amd64.Open -- net11.0-windows-Release-x64-fullpgo_random_gdv_edge-Windows.10.Amd64.Open - - System.Linq.Parallel.Tests -``` - -**Error Message:** -``` -Assert failure(PID 37 [0x00000025], Thread: 43 [0x002b]): Assertion failed '!"Inconsistent profile data"' in 'Xunit.Sdk.CollectionTracker`1+BufferedEnumerator[int]:MoveNext():bool:this' during 'Optimize control flow' (IL size 33; hash 0x7873684e; Tier1) - - File: /__w/1/s/src/coreclr/jit/fgprofile.cpp:4821 - Image: /root/helix/work/correlation/dotnet -``` - -**Stack Trace:** -``` -N/A -``` - -**Analysis:** -Known issue #118595 assigned to @AndyAyersMS. Fires deterministically on same method hash across platforms. Test assemblies are incidental. ->>> - --------------------------------------------------------------------------------- -FAILURE 18: JIT assert in lower.cpp:5675 during Tier1-OSR for UInt128Tests (linux arm64, x64) --------------------------------------------------------------------------------- -GitHub Issue: #127142 (https://github.com/dotnet/runtime/issues/127142) — OPEN -Assigned to: @@dhartglassMSFT -Labels: area-CodeGen-coreclr, JitStress -Failing since: None (build None) - -Work item: System.Runtime.Tests - -Title: Test Failure: System.Runtime.Tests -Labels: area-CodeGen-coreclr, JitStress -Milestone: 11.0.0 - -Body (paste as-is into GitHub issue): -<<< -**Summary:** - JIT assertion in lower.cpp:5675 during Tier1-OSR compilation under PGO stress. - -**Failed in (1):** -- [runtime-coreclr libraries-pgo 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386172) - -**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/51fdb3d4-8e62-41d8-b6a7-a9981159cfd5/workitems/System.Runtime.Tests/console) -**Source:** [runtime-coreclr libraries-pgo / net11.0-linux-Release-x64-jitosr_stress-AzureLinux.3.Amd64.Open / System.Runtime.Tests](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386172&view=ms.vss-test-web.build-test-results-tab) - -**Failed tests:** -``` -- net11.0-linux-Release-x64-jitosr_stress-AzureLinux.3.Amd64.Open -- net11.0-windows-Release-x64-jitosr_stress-Windows.10.Amd64.Open - - System.Runtime.Tests -``` - -**Error Message:** -``` -Assert failure(PID 5416 [0x00001528], Thread: 6073 [0x17b9]): Assertion failed 'varDsc->CanBeReplacedWithItsField(m_compiler) || varDsc->lvDoNotEnregister || !varDsc->lvPromoted' in 'System.Tests.UInt128Tests_GenericMath:DivideModeTest()' during 'Lowering nodeinfo' (IL size 957; hash 0x0e5ed17e; Tier1-OSR) - - File: /__w/1/s/src/coreclr/jit/lower.cpp:5675 - Image: /datadisks/disk1/work/B07C0985/p/dotnet -``` - -**Stack Trace:** -``` -N/A -``` - -**Analysis:** -Separate from #118595. Fires during Lowering for 128-bit integer math in OSR path. No existing issue found. ->>> - --------------------------------------------------------------------------------- -FAILURE 19: JIT assert nEdges == nSucc during Profile incorporation in OSR (windows x64) --------------------------------------------------------------------------------- -GitHub Issue: #126725 (https://github.com/dotnet/runtime/issues/126725) — OPEN -Assigned to: @@AndyAyersMS -Labels: area-CodeGen-coreclr, JitStress -Failing since: None (build None) - -Work item: System.Net.NameResolution.Functional.Tests - -Title: Test Failure: System.Net.NameResolution.Functional.Tests -Labels: area-CodeGen-coreclr, JitStress -Milestone: 11.0.0 - -Body (paste as-is into GitHub issue): -<<< -**Summary:** - JIT assertion nEdges==nSucc during Profile incorporation at Tier1-OSR. - -**Failed in (1):** -- [runtime-coreclr libraries-pgo 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386172) - -**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/fb35cdf7-22c8-4045-aa35-47007c2e8172/workitems/System.Net.NameResolution.Functional.Tests/console) -**Source:** [runtime-coreclr libraries-pgo / net11.0-windows-Release-x64-jitosr_stress_random-Windows.10.Amd64.Open / System.Net.NameResolution.Functional.Tests](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386172&view=ms.vss-test-web.build-test-results-tab) - -**Failed tests:** -``` -- net11.0-windows-Release-x64-jitosr_stress_random-Windows.10.Amd64.Open - - System.Net.NameResolution.Functional.Tests -``` - -**Error Message:** -``` -Assert failure(PID 8108 [0x00001fac], Thread: 3824 [0x0ef0]): Assertion failed 'nEdges == nSucc' in 'System.Net.Dns:g__CompleteAsync|40_0[System.__Canon](System.Threading.Tasks.Task,System.String,bool,int,bool,long,System.Threading.CancellationToken):System.__Canon' during 'Profile incorporation' (IL size 465; hash 0x89a77caa; Tier1-OSR) - - - - File: D:\a\_work\1\s\src\coreclr\jit\fgprofile.cpp:3920 - - Image: C:\h\w\B0A4090D\p\dotnet.exe - - - ------ end Sun 04/19/2026 18:36:54.37 ----- exit code -1073740286 --------------------------------------------------------- -``` - -**Stack Trace:** -``` -N/A -``` - -**Analysis:** -Edge/successor count mismatch under jitosr_stress_random PGO mode. Tracked by #126725, assigned to @AndyAyersMS. ->>> - --------------------------------------------------------------------------------- -FAILURE 20: System.Threading.Overlapped.Tests crash with IOException handle is invalid on Windows ARM64 (windows arm64) --------------------------------------------------------------------------------- -GitHub Issue: NEW — needs issue filed -Labels: area-System.Threading, JitStress -Failing since: None (build None) - -Work item: System.Threading.Overlapped.Tests - -Title: Test Failure: System.Threading.Overlapped.Tests -Labels: area-System.Threading, JitStress -Milestone: 11.0.0 - -Body (paste as-is into GitHub issue): -<<< -**Summary:** - Overlapped test crash with IOException when EventWaitHandle.Set fails in IO completion callback on Windows ARM64. - -**Failed in (1):** -- [runtime-coreclr libraries-pgo 20260419.1](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386172) - -**Console Log:** [Console Log](https://helix.dot.net/api/2019-06-17/jobs/fad3e607-64d5-40a9-bfd8-f73370f7b2a9/workitems/System.Threading.Overlapped.Tests/console) -**Source:** [runtime-coreclr libraries-pgo / net11.0-windows-Release-arm64-defaultpgo-Windows.11.Arm64.Open / System.Threading.Overlapped.Tests](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1386172&view=ms.vss-test-web.build-test-results-tab) - -**Failed tests:** -``` -- net11.0-windows-Release-arm64-defaultpgo-Windows.11.Arm64.Open - - System.Threading.Overlapped.Tests -``` - -**Error Message:** -``` -Unhandled exception. System.IO.IOException: The handle is invalid. - at System.Threading.EventWaitHandle.Set() - at AsyncHelper.Callback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* _overlapped) - at System.Threading.PortableThreadPool.IOCompletionPoller.Event.Invoke() -``` - -**Stack Trace:** -``` -at System.Threading.EventWaitHandle.Set() - at AsyncHelper.Callback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* _overlapped) - at System.Threading.PortableThreadPool.IOCompletionPoller.Event.Invoke() - at System.Threading.ThreadPoolTypedWorkItemQueue.System.Threading.IThreadPoolWorkItem.Execute() -``` - -**Analysis:** -Race condition or premature disposal of event handle. Exit code 0xE0434352 = CLR unhandled exception. Under defaultpgo stress. No existing issue found. ->>> - -================================================================================ -GitHub Issue Summary -================================================================================ - - #126641 (https://github.com/dotnet/runtime/issues/126641) - DNS NameResolution tests fail with Name or service not known - State: OPEN | Pipelines affected: 4 - - #127127 (https://github.com/dotnet/runtime/issues/127127) - JitStress-random causes widespread Half (float16) miscompilation - State: OPEN | Pipelines affected: 1 - - #127125 (https://github.com/dotnet/runtime/issues/127125) - JitStress-random miscompiles Sequence overflow/boundary arithmetic - State: OPEN | Pipelines affected: 1 - - #127141 (https://github.com/dotnet/runtime/issues/127141) - JIT LSRA assertion refPosition->RegOptional() in Vector512.DotByte under jitstress-random - State: OPEN | Assigned: @@dhartglassMSFT | Pipelines affected: 1 - - #127287 (https://github.com/dotnet/runtime/issues/127287) - ProcessSafeHandle_WaitForExitOrKillOnCancellationAsync_KillsOnCancellation flaky - State: OPEN | Assigned: @@adamsitnik | Pipelines affected: 1 - - #104670 (https://github.com/dotnet/runtime/issues/104670) - BinderTracingTest.ResolutionFlow times out under jitoptrepeat - State: OPEN | Assigned: @@mdh1418 | Pipelines affected: 1 - - #127131 (https://github.com/dotnet/runtime/issues/127131) - Lock.TryEnterSlow HasAnySpinners assertion failure under jitstressregs8_x86_noavx - State: OPEN | Assigned: @@jakobbotsch | Pipelines affected: 1 - - #126819 (https://github.com/dotnet/runtime/issues/126819) - GCStress VM assertion pMT->Validate() in Object::ValidateInner during SIMD tests - State: OPEN | Assigned: @@jakobbotsch | Pipelines affected: 1 - - #127128 (https://github.com/dotnet/runtime/issues/127128) - jit64/regress/vsw/373472/test_il returns 1 instead of 100 under gcstress0xc_jitstress - State: OPEN | Pipelines affected: 1 - - #127138 (https://github.com/dotnet/runtime/issues/127138) - JIT assertion WasMorphed() in morph.cpp during Morph - Global under gcstress MinOpts - State: CLOSED | Assigned: @@tannergooding | Pipelines affected: 1 - - #125685 (https://github.com/dotnet/runtime/issues/125685) - AccessViolation in XxHashShared.MergeAccumulators under jitstress2-jitstressregs - State: CLOSED | Assigned: @@jakobbotsch | Pipelines affected: 1 - - #125312 (https://github.com/dotnet/runtime/issues/125312) - MetricsTests.PassingVariableTagsParametersTest tag corruption under jitstress - State: CLOSED | Assigned: @@jakobbotsch | Pipelines affected: 1 - - #127107 (https://github.com/dotnet/runtime/issues/127107) - StartAndForget_StartsProcessAndReturnsValidPid — process exits before verification - State: CLOSED | Assigned: @@adamsitnik | Pipelines affected: 1 - - #127130 (https://github.com/dotnet/runtime/issues/127130) - BarrierTests.RunBarrierTest7a fails under jitstressregs8 — participant count mismatch - State: OPEN | Assigned: @@jakobbotsch | Pipelines affected: 1 - - #118595 (https://github.com/dotnet/runtime/issues/118595) - JIT assert Inconsistent profile data in fgprofile.cpp during PGO stress - State: OPEN | Assigned: @@AndyAyersMS | Pipelines affected: 1 - - #127142 (https://github.com/dotnet/runtime/issues/127142) - JIT assert in lower.cpp:5675 during Tier1-OSR for UInt128Tests - State: OPEN | Assigned: @@dhartglassMSFT | Pipelines affected: 1 - - #126725 (https://github.com/dotnet/runtime/issues/126725) - JIT assert nEdges == nSucc during Profile incorporation in OSR - State: OPEN | Assigned: @@AndyAyersMS | Pipelines affected: 1 - - [New] Test Failure: Regression_4 - No matching GitHub issue found. Affects 1 pipeline(s). - Suggested labels: area-CodeGen-coreclr, JitStress, blocking-clean-ci-optional - - [New] Test Failure: System.Threading.Tasks.Tests.TaskRtTests_Core.RunTCSCompletionStateTests - No matching GitHub issue found. Affects 1 pipeline(s). - Suggested labels: area-CodeGen-coreclr, JitStress - - [New] Test Failure: System.Threading.Overlapped.Tests - No matching GitHub issue found. Affects 1 pipeline(s). - Suggested labels: area-System.Threading, JitStress - -================================================================================ -Action Items -================================================================================ - -### 🆕 Issues to File - -- [NEW] Regression_4 (11 test(s), 1 pipeline(s)) - See FAILURE 8 above for pre-formatted issue body. - -- [NEW] System.Threading.Tasks.Tests.TaskRtTests_Core.RunTCSCompletionStateTests (2 test(s), 1 pipeline(s)) - See FAILURE 15 above for pre-formatted issue body. - -- [NEW] System.Threading.Overlapped.Tests (1 test(s), 1 pipeline(s)) - See FAILURE 20 above for pre-formatted issue body. - -### 🔥 High Impact Failures - -- System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntry_HostString_Ok — #126641 (155 test(s), 4 pipeline(s)) - https://github.com/dotnet/runtime/issues/126641 - -- System.Numerics.Tensors.Tests.HalfGenericTensorPrimitives.SpanDestinationFunctions_AllLengths — #127127 (257 test(s), 1 pipeline(s)) - https://github.com/dotnet/runtime/issues/127127 - -- baseservices/exceptions/regressions/V1/SEH/VJ/HandlerException/HandlerException.cmd — #127131 (17 test(s), 1 pipeline(s)) - https://github.com/dotnet/runtime/issues/127131 - -- System.Linq.Tests.SequenceTests.Numbers_ProduceExpectedSequence — #127125 (10 test(s), 1 pipeline(s)) - https://github.com/dotnet/runtime/issues/127125 - -- ComInterfaceGenerator.Unit.Tests — #125685 (9 test(s), 1 pipeline(s)) - https://github.com/dotnet/runtime/issues/125685 - -### 👁️ Needs Review - -- Unresolved validation warnings — see debug log for details. - -================================================================================ -End of report. Generated by ci-pipeline-monitor skill. -================================================================================ diff --git a/.github/skills/ci-pipeline-monitor/scripts/monitor.db b/.github/skills/ci-pipeline-monitor/scripts/monitor.db deleted file mode 100644 index f7997cd2970750bb2d04491a908792db71d07a00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1236992 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 Date: Tue, 28 Apr 2026 10:43:53 -0700 Subject: [PATCH 8/8] fix validator in test --- .../GenerateHWIntrinsicTests/Arm/Sve2Tests.cs | 160 +++++++++--------- 1 file changed, 80 insertions(+), 80 deletions(-) diff --git a/src/tests/Common/GenerateHWIntrinsicTests/Arm/Sve2Tests.cs b/src/tests/Common/GenerateHWIntrinsicTests/Arm/Sve2Tests.cs index 3b0ba3073e3983..209a50431f081c 100644 --- a/src/tests/Common/GenerateHWIntrinsicTests/Arm/Sve2Tests.cs +++ b/src/tests/Common/GenerateHWIntrinsicTests/Arm/Sve2Tests.cs @@ -236,86 +236,86 @@ static class Sve2Tests (Templates.SveVecBinOpDifferentRetType, new Dictionary { ["TestName"] = "Sve2_CountMatchingElementsIn128BitSegments_sbyte", ["Method"] = "CountMatchingElementsIn128BitSegments", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "SByte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.CountMatchingElementsIn128BitSegments(left, right, i) != result[i]", ["GetIterResult"] = "Helpers.CountMatchingElementsIn128BitSegments(left, right, i)"}), (Templates.SveVecBinOpDifferentRetType, new Dictionary { ["TestName"] = "Sve2_CountMatchingElementsIn128BitSegments_byte", ["Method"] = "CountMatchingElementsIn128BitSegments", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ConvertFunc"] = "", ["ValidateIterResult"] = "Helpers.CountMatchingElementsIn128BitSegments(left, right, i) != result[i]", ["GetIterResult"] = "Helpers.CountMatchingElementsIn128BitSegments(left, right, i)"}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskByte_Int32", ["Method"] = "CreateWhileGreaterThanMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(Byte)Helpers.WhileGreaterThanMask(left + (Int32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskByte_Int64", ["Method"] = "CreateWhileGreaterThanMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(Byte)Helpers.WhileGreaterThanMask(left + (Int64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskByte_UInt32", ["Method"] = "CreateWhileGreaterThanMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(Byte)Helpers.WhileGreaterThanMask(left + (UInt32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskByte_UInt64", ["Method"] = "CreateWhileGreaterThanMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(Byte)Helpers.WhileGreaterThanMask(left + (UInt64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskDouble_Int32", ["Method"] = "CreateWhileGreaterThanMaskDouble", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "BitConverter.Int64BitsToDouble(Helpers.WhileGreaterThanMask(left + (Int32)i, right)) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskDouble_Int64", ["Method"] = "CreateWhileGreaterThanMaskDouble", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "BitConverter.Int64BitsToDouble(Helpers.WhileGreaterThanMask(left + (Int64)i, right)) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskDouble_UInt32",["Method"] = "CreateWhileGreaterThanMaskDouble", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "BitConverter.Int64BitsToDouble(Helpers.WhileGreaterThanMask(left + (UInt32)i, right)) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskDouble_UInt64",["Method"] = "CreateWhileGreaterThanMaskDouble", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "BitConverter.UInt64BitsToDouble(Helpers.WhileGreaterThanMask(left + (UInt64)i, right)) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt16_Int32", ["Method"] = "CreateWhileGreaterThanMaskInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(Int16)Helpers.WhileGreaterThanMask(left + (Int32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt16_Int64", ["Method"] = "CreateWhileGreaterThanMaskInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(Int16)Helpers.WhileGreaterThanMask(left + (Int64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt16_UInt32", ["Method"] = "CreateWhileGreaterThanMaskInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(Int16)Helpers.WhileGreaterThanMask(left + (UInt32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt16_UInt64", ["Method"] = "CreateWhileGreaterThanMaskInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(Int16)Helpers.WhileGreaterThanMask(left + (UInt64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt32_Int32", ["Method"] = "CreateWhileGreaterThanMaskInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(Int32)Helpers.WhileGreaterThanMask(left + (Int32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt32_Int64", ["Method"] = "CreateWhileGreaterThanMaskInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(Int32)Helpers.WhileGreaterThanMask(left + (Int64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt32_UInt32", ["Method"] = "CreateWhileGreaterThanMaskInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(Int32)Helpers.WhileGreaterThanMask(left + (UInt32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt32_UInt64", ["Method"] = "CreateWhileGreaterThanMaskInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(Int32)Helpers.WhileGreaterThanMask(left + (UInt64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt64_Int32", ["Method"] = "CreateWhileGreaterThanMaskInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(Int64)Helpers.WhileGreaterThanMask(left + (Int32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt64_Int64", ["Method"] = "CreateWhileGreaterThanMaskInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(Int64)Helpers.WhileGreaterThanMask(left + (Int64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt64_UInt32", ["Method"] = "CreateWhileGreaterThanMaskInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(Int64)Helpers.WhileGreaterThanMask(left + (UInt32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt64_UInt64", ["Method"] = "CreateWhileGreaterThanMaskInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(Int64)Helpers.WhileGreaterThanMask(left + (UInt64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskSByte_Int32", ["Method"] = "CreateWhileGreaterThanMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(SByte)Helpers.WhileGreaterThanMask(left + (Int32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskSByte_Int64", ["Method"] = "CreateWhileGreaterThanMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(SByte)Helpers.WhileGreaterThanMask(left + (Int64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskSByte_UInt32", ["Method"] = "CreateWhileGreaterThanMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(SByte)Helpers.WhileGreaterThanMask(left + (UInt32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskSByte_UInt64", ["Method"] = "CreateWhileGreaterThanMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(SByte)Helpers.WhileGreaterThanMask(left + (UInt64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskSingle_Int32", ["Method"] = "CreateWhileGreaterThanMaskSingle", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "BitConverter.Int32BitsToSingle(Helpers.WhileGreaterThanMask(left + (Int32)i, right)) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskSingle_Int64", ["Method"] = "CreateWhileGreaterThanMaskSingle", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "BitConverter.Int32BitsToSingle((int)Helpers.WhileGreaterThanMask(left + (Int64)i, right)) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskSingle_UInt32", ["Method"] = "CreateWhileGreaterThanMaskSingle", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "BitConverter.UInt32BitsToSingle(Helpers.WhileGreaterThanMask(left + (UInt32)i, right)) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskSingle_UInt64", ["Method"] = "CreateWhileGreaterThanMaskSingle", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "BitConverter.Int32BitsToSingle((int)Helpers.WhileGreaterThanMask(left + (UInt64)i, right)) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt16_Int32", ["Method"] = "CreateWhileGreaterThanMaskUInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(UInt16)Helpers.WhileGreaterThanMask(left + (Int32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt16_Int64", ["Method"] = "CreateWhileGreaterThanMaskUInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(UInt16)Helpers.WhileGreaterThanMask(left + (Int64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt16_UInt32", ["Method"] = "CreateWhileGreaterThanMaskUInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(UInt16)Helpers.WhileGreaterThanMask(left + (UInt32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt16_UInt64", ["Method"] = "CreateWhileGreaterThanMaskUInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(UInt16)Helpers.WhileGreaterThanMask(left + (UInt64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt32_Int32", ["Method"] = "CreateWhileGreaterThanMaskUInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(UInt32)Helpers.WhileGreaterThanMask(left + (Int32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt32_Int64", ["Method"] = "CreateWhileGreaterThanMaskUInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(UInt32)Helpers.WhileGreaterThanMask(left + (Int64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt32_UInt32", ["Method"] = "CreateWhileGreaterThanMaskUInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(UInt32)Helpers.WhileGreaterThanMask(left + (UInt32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt32_UInt64", ["Method"] = "CreateWhileGreaterThanMaskUInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(UInt32)Helpers.WhileGreaterThanMask(left + (UInt64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt64_Int32", ["Method"] = "CreateWhileGreaterThanMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanMask(left + (Int32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt64_Int64", ["Method"] = "CreateWhileGreaterThanMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanMask(left + (Int64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt64_UInt32", ["Method"] = "CreateWhileGreaterThanMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanMask(left + (UInt32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt64_UInt64", ["Method"] = "CreateWhileGreaterThanMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanMask(left + (UInt64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskByte_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(Byte)Helpers.WhileGreaterThanOrEqualMask(left + (Int32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskByte_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(Byte)Helpers.WhileGreaterThanOrEqualMask(left + (Int64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskByte_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(Byte)Helpers.WhileGreaterThanOrEqualMask(left + (UInt32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskByte_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(Byte)Helpers.WhileGreaterThanOrEqualMask(left + (UInt64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskDouble_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskDouble", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "BitConverter.Int64BitsToDouble(Helpers.WhileGreaterThanOrEqualMask(left + (Int32)i, right)) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskDouble_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskDouble", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "BitConverter.Int64BitsToDouble(Helpers.WhileGreaterThanOrEqualMask(left + (Int64)i, right)) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskDouble_UInt32",["Method"] = "CreateWhileGreaterThanOrEqualMaskDouble", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "BitConverter.Int64BitsToDouble(Helpers.WhileGreaterThanOrEqualMask(left + (UInt32)i, right)) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskDouble_UInt64",["Method"] = "CreateWhileGreaterThanOrEqualMaskDouble", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "BitConverter.UInt64BitsToDouble(Helpers.WhileGreaterThanOrEqualMask(left + (UInt64)i, right)) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt16_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(Int16)Helpers.WhileGreaterThanOrEqualMask(left + (Int32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt16_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(Int16)Helpers.WhileGreaterThanOrEqualMask(left + (Int64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt16_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(Int16)Helpers.WhileGreaterThanOrEqualMask(left + (UInt32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt16_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(Int16)Helpers.WhileGreaterThanOrEqualMask(left + (UInt64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt32_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(Int32)Helpers.WhileGreaterThanOrEqualMask(left + (Int32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt32_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(Int32)Helpers.WhileGreaterThanOrEqualMask(left + (Int64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt32_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(Int32)Helpers.WhileGreaterThanOrEqualMask(left + (UInt32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt32_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(Int32)Helpers.WhileGreaterThanOrEqualMask(left + (UInt64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt64_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(Int64)Helpers.WhileGreaterThanOrEqualMask(left + (Int32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt64_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(Int64)Helpers.WhileGreaterThanOrEqualMask(left + (Int64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt64_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(Int64)Helpers.WhileGreaterThanOrEqualMask(left + (UInt32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt64_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(Int64)Helpers.WhileGreaterThanOrEqualMask(left + (UInt64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskSByte_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(SByte)Helpers.WhileGreaterThanOrEqualMask(left + (Int32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskSByte_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(SByte)Helpers.WhileGreaterThanOrEqualMask(left + (Int64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskSByte_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(SByte)Helpers.WhileGreaterThanOrEqualMask(left + (UInt32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskSByte_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(SByte)Helpers.WhileGreaterThanOrEqualMask(left + (UInt64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskSingle_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskSingle", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "BitConverter.Int32BitsToSingle(Helpers.WhileGreaterThanOrEqualMask(left + (Int32)i, right)) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskSingle_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskSingle", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "BitConverter.Int32BitsToSingle((int)Helpers.WhileGreaterThanOrEqualMask(left + (Int64)i, right)) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskSingle_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskSingle", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "BitConverter.UInt32BitsToSingle(Helpers.WhileGreaterThanOrEqualMask(left + (UInt32)i, right)) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskSingle_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskSingle", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "BitConverter.Int32BitsToSingle((int)Helpers.WhileGreaterThanOrEqualMask(left + (UInt64)i, right)) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt16_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(UInt16)Helpers.WhileGreaterThanOrEqualMask(left + (Int32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt16_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(UInt16)Helpers.WhileGreaterThanOrEqualMask(left + (Int64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt16_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(UInt16)Helpers.WhileGreaterThanOrEqualMask(left + (UInt32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt16_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(UInt16)Helpers.WhileGreaterThanOrEqualMask(left + (UInt64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt32_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(UInt32)Helpers.WhileGreaterThanOrEqualMask(left + (Int32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt32_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(UInt32)Helpers.WhileGreaterThanOrEqualMask(left + (Int64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt32_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(UInt32)Helpers.WhileGreaterThanOrEqualMask(left + (UInt32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt32_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(UInt32)Helpers.WhileGreaterThanOrEqualMask(left + (UInt64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt64_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanOrEqualMask(left + (Int32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt64_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanOrEqualMask(left + (Int64)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt64_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanOrEqualMask(left + (UInt32)i, right) != result[i]",}), - (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt64_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanOrEqualMask(left + (UInt64)i, right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskByte_Int32", ["Method"] = "CreateWhileGreaterThanMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(Byte)Helpers.WhileGreaterThanMask(left - (Int32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskByte_Int64", ["Method"] = "CreateWhileGreaterThanMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(Byte)Helpers.WhileGreaterThanMask(left - (Int64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskByte_UInt32", ["Method"] = "CreateWhileGreaterThanMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(Byte)Helpers.WhileGreaterThanMask(left - (UInt32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskByte_UInt64", ["Method"] = "CreateWhileGreaterThanMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(Byte)Helpers.WhileGreaterThanMask(left - (UInt64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskDouble_Int32", ["Method"] = "CreateWhileGreaterThanMaskDouble", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "BitConverter.Int64BitsToDouble(Helpers.WhileGreaterThanMask(left - (Int32)(RetElementCount - 1 - i), right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskDouble_Int64", ["Method"] = "CreateWhileGreaterThanMaskDouble", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "BitConverter.Int64BitsToDouble(Helpers.WhileGreaterThanMask(left - (Int64)(RetElementCount - 1 - i), right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskDouble_UInt32",["Method"] = "CreateWhileGreaterThanMaskDouble", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "BitConverter.Int64BitsToDouble(Helpers.WhileGreaterThanMask(left - (UInt32)(RetElementCount - 1 - i), right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskDouble_UInt64",["Method"] = "CreateWhileGreaterThanMaskDouble", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "BitConverter.UInt64BitsToDouble(Helpers.WhileGreaterThanMask(left - (UInt64)(RetElementCount - 1 - i), right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt16_Int32", ["Method"] = "CreateWhileGreaterThanMaskInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(Int16)Helpers.WhileGreaterThanMask(left - (Int32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt16_Int64", ["Method"] = "CreateWhileGreaterThanMaskInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(Int16)Helpers.WhileGreaterThanMask(left - (Int64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt16_UInt32", ["Method"] = "CreateWhileGreaterThanMaskInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(Int16)Helpers.WhileGreaterThanMask(left - (UInt32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt16_UInt64", ["Method"] = "CreateWhileGreaterThanMaskInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(Int16)Helpers.WhileGreaterThanMask(left - (UInt64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt32_Int32", ["Method"] = "CreateWhileGreaterThanMaskInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(Int32)Helpers.WhileGreaterThanMask(left - (Int32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt32_Int64", ["Method"] = "CreateWhileGreaterThanMaskInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(Int32)Helpers.WhileGreaterThanMask(left - (Int64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt32_UInt32", ["Method"] = "CreateWhileGreaterThanMaskInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(Int32)Helpers.WhileGreaterThanMask(left - (UInt32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt32_UInt64", ["Method"] = "CreateWhileGreaterThanMaskInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(Int32)Helpers.WhileGreaterThanMask(left - (UInt64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt64_Int32", ["Method"] = "CreateWhileGreaterThanMaskInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(Int64)Helpers.WhileGreaterThanMask(left - (Int32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt64_Int64", ["Method"] = "CreateWhileGreaterThanMaskInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(Int64)Helpers.WhileGreaterThanMask(left - (Int64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt64_UInt32", ["Method"] = "CreateWhileGreaterThanMaskInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(Int64)Helpers.WhileGreaterThanMask(left - (UInt32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskInt64_UInt64", ["Method"] = "CreateWhileGreaterThanMaskInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(Int64)Helpers.WhileGreaterThanMask(left - (UInt64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskSByte_Int32", ["Method"] = "CreateWhileGreaterThanMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(SByte)Helpers.WhileGreaterThanMask(left - (Int32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskSByte_Int64", ["Method"] = "CreateWhileGreaterThanMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(SByte)Helpers.WhileGreaterThanMask(left - (Int64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskSByte_UInt32", ["Method"] = "CreateWhileGreaterThanMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(SByte)Helpers.WhileGreaterThanMask(left - (UInt32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskSByte_UInt64", ["Method"] = "CreateWhileGreaterThanMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(SByte)Helpers.WhileGreaterThanMask(left - (UInt64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskSingle_Int32", ["Method"] = "CreateWhileGreaterThanMaskSingle", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "BitConverter.Int32BitsToSingle(Helpers.WhileGreaterThanMask(left - (Int32)(RetElementCount - 1 - i), right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskSingle_Int64", ["Method"] = "CreateWhileGreaterThanMaskSingle", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "BitConverter.Int32BitsToSingle((int)Helpers.WhileGreaterThanMask(left - (Int64)(RetElementCount - 1 - i), right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskSingle_UInt32", ["Method"] = "CreateWhileGreaterThanMaskSingle", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "BitConverter.UInt32BitsToSingle(Helpers.WhileGreaterThanMask(left - (UInt32)(RetElementCount - 1 - i), right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskSingle_UInt64", ["Method"] = "CreateWhileGreaterThanMaskSingle", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "BitConverter.Int32BitsToSingle((int)Helpers.WhileGreaterThanMask(left - (UInt64)(RetElementCount - 1 - i), right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt16_Int32", ["Method"] = "CreateWhileGreaterThanMaskUInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(UInt16)Helpers.WhileGreaterThanMask(left - (Int32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt16_Int64", ["Method"] = "CreateWhileGreaterThanMaskUInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(UInt16)Helpers.WhileGreaterThanMask(left - (Int64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt16_UInt32", ["Method"] = "CreateWhileGreaterThanMaskUInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(UInt16)Helpers.WhileGreaterThanMask(left - (UInt32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt16_UInt64", ["Method"] = "CreateWhileGreaterThanMaskUInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(UInt16)Helpers.WhileGreaterThanMask(left - (UInt64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt32_Int32", ["Method"] = "CreateWhileGreaterThanMaskUInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(UInt32)Helpers.WhileGreaterThanMask(left - (Int32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt32_Int64", ["Method"] = "CreateWhileGreaterThanMaskUInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(UInt32)Helpers.WhileGreaterThanMask(left - (Int64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt32_UInt32", ["Method"] = "CreateWhileGreaterThanMaskUInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(UInt32)Helpers.WhileGreaterThanMask(left - (UInt32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt32_UInt64", ["Method"] = "CreateWhileGreaterThanMaskUInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(UInt32)Helpers.WhileGreaterThanMask(left - (UInt64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt64_Int32", ["Method"] = "CreateWhileGreaterThanMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanMask(left - (Int32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt64_Int64", ["Method"] = "CreateWhileGreaterThanMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanMask(left - (Int64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt64_UInt32", ["Method"] = "CreateWhileGreaterThanMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanMask(left - (UInt32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanMaskUInt64_UInt64", ["Method"] = "CreateWhileGreaterThanMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanMask(left - (UInt64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskByte_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(Byte)Helpers.WhileGreaterThanOrEqualMask(left - (Int32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskByte_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(Byte)Helpers.WhileGreaterThanOrEqualMask(left - (Int64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskByte_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(Byte)Helpers.WhileGreaterThanOrEqualMask(left - (UInt32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskByte_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(Byte)Helpers.WhileGreaterThanOrEqualMask(left - (UInt64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskDouble_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskDouble", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "BitConverter.Int64BitsToDouble(Helpers.WhileGreaterThanOrEqualMask(left - (Int32)(RetElementCount - 1 - i), right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskDouble_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskDouble", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "BitConverter.Int64BitsToDouble(Helpers.WhileGreaterThanOrEqualMask(left - (Int64)(RetElementCount - 1 - i), right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskDouble_UInt32",["Method"] = "CreateWhileGreaterThanOrEqualMaskDouble", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "BitConverter.Int64BitsToDouble(Helpers.WhileGreaterThanOrEqualMask(left - (UInt32)(RetElementCount - 1 - i), right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskDouble_UInt64",["Method"] = "CreateWhileGreaterThanOrEqualMaskDouble", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "BitConverter.UInt64BitsToDouble(Helpers.WhileGreaterThanOrEqualMask(left - (UInt64)(RetElementCount - 1 - i), right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt16_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(Int16)Helpers.WhileGreaterThanOrEqualMask(left - (Int32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt16_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(Int16)Helpers.WhileGreaterThanOrEqualMask(left - (Int64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt16_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(Int16)Helpers.WhileGreaterThanOrEqualMask(left - (UInt32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt16_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(Int16)Helpers.WhileGreaterThanOrEqualMask(left - (UInt64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt32_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(Int32)Helpers.WhileGreaterThanOrEqualMask(left - (Int32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt32_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(Int32)Helpers.WhileGreaterThanOrEqualMask(left - (Int64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt32_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(Int32)Helpers.WhileGreaterThanOrEqualMask(left - (UInt32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt32_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(Int32)Helpers.WhileGreaterThanOrEqualMask(left - (UInt64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt64_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(Int64)Helpers.WhileGreaterThanOrEqualMask(left - (Int32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt64_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(Int64)Helpers.WhileGreaterThanOrEqualMask(left - (Int64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt64_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(Int64)Helpers.WhileGreaterThanOrEqualMask(left - (UInt32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskInt64_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(Int64)Helpers.WhileGreaterThanOrEqualMask(left - (UInt64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskSByte_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(SByte)Helpers.WhileGreaterThanOrEqualMask(left - (Int32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskSByte_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(SByte)Helpers.WhileGreaterThanOrEqualMask(left - (Int64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskSByte_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(SByte)Helpers.WhileGreaterThanOrEqualMask(left - (UInt32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskSByte_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(SByte)Helpers.WhileGreaterThanOrEqualMask(left - (UInt64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskSingle_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskSingle", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "BitConverter.Int32BitsToSingle(Helpers.WhileGreaterThanOrEqualMask(left - (Int32)(RetElementCount - 1 - i), right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskSingle_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskSingle", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "BitConverter.Int32BitsToSingle((int)Helpers.WhileGreaterThanOrEqualMask(left - (Int64)(RetElementCount - 1 - i), right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskSingle_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskSingle", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "BitConverter.UInt32BitsToSingle(Helpers.WhileGreaterThanOrEqualMask(left - (UInt32)(RetElementCount - 1 - i), right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskSingle_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskSingle", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "BitConverter.Int32BitsToSingle((int)Helpers.WhileGreaterThanOrEqualMask(left - (UInt64)(RetElementCount - 1 - i), right)) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt16_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(UInt16)Helpers.WhileGreaterThanOrEqualMask(left - (Int32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt16_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(UInt16)Helpers.WhileGreaterThanOrEqualMask(left - (Int64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt16_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(UInt16)Helpers.WhileGreaterThanOrEqualMask(left - (UInt32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt16_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(UInt16)Helpers.WhileGreaterThanOrEqualMask(left - (UInt64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt32_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(UInt32)Helpers.WhileGreaterThanOrEqualMask(left - (Int32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt32_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(UInt32)Helpers.WhileGreaterThanOrEqualMask(left - (Int64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt32_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(UInt32)Helpers.WhileGreaterThanOrEqualMask(left - (UInt32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt32_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt32", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(UInt32)Helpers.WhileGreaterThanOrEqualMask(left - (UInt64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt64_Int32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "Int32", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanOrEqualMask(left - (Int32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt64_Int64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "Int64", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanOrEqualMask(left - (Int64)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt64_UInt32", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "UInt32", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanOrEqualMask(left - (UInt32)(RetElementCount - 1 - i), right) != result[i]",}), + (Templates.ScalarBinOpRetVecTest,new Dictionary {["TestName"] = "Sve2_CreateWhileGreaterThanOrEqualMaskUInt64_UInt64", ["Method"] = "CreateWhileGreaterThanOrEqualMaskUInt64", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1BaseType"] = "UInt64", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "(UInt64)Helpers.WhileGreaterThanOrEqualMask(left - (UInt64)(RetElementCount - 1 - i), right) != result[i]",}), (Templates.SveCreateWhileRWMaskTest, new Dictionary { ["TestName"] = "Sve2_CreateWhileReadAfterWriteMaskByte", ["Method"] = "CreateWhileReadAfterWriteMaskByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1BaseType"] = "Byte" }), (Templates.SveCreateWhileRWMaskTest, new Dictionary { ["TestName"] = "Sve2_CreateWhileReadAfterWriteMaskSByte", ["Method"] = "CreateWhileReadAfterWriteMaskSByte", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1BaseType"] = "SByte" }),