diff --git a/src/coreclr/jit/hwintrinsic.cpp b/src/coreclr/jit/hwintrinsic.cpp
index 9db2767f50796..4f016940840b2 100644
--- a/src/coreclr/jit/hwintrinsic.cpp
+++ b/src/coreclr/jit/hwintrinsic.cpp
@@ -1911,6 +1911,10 @@ GenTree* Compiler::impHWIntrinsic(NamedIntrinsic intrinsic,
switch (intrinsic)
{
+ case NI_Sve_CreateBreakAfterMask:
+ case NI_Sve_CreateBreakAfterPropagateMask:
+ case NI_Sve_CreateBreakBeforeMask:
+ case NI_Sve_CreateBreakBeforePropagateMask:
case NI_Sve_CreateMaskForFirstActiveElement:
case NI_Sve_CreateMaskForNextActiveElement:
case NI_Sve_GetActiveElementCount:
@@ -1933,6 +1937,26 @@ GenTree* Compiler::impHWIntrinsic(NamedIntrinsic intrinsic,
break;
}
+ switch (intrinsic)
+ {
+ case NI_Sve_CreateBreakAfterPropagateMask:
+ case NI_Sve_CreateBreakBeforePropagateMask:
+ {
+ GenTree* op3 = retNode->AsHWIntrinsic()->Op(3);
+
+ // HWInstrinsic requires a mask for op3
+ if (!varTypeIsMask(op3))
+ {
+ retNode->AsHWIntrinsic()->Op(3) =
+ gtNewSimdCvtVectorToMaskNode(TYP_MASK, op3, simdBaseJitType, simdSize);
+ }
+ break;
+ }
+
+ default:
+ break;
+ }
+
if (!varTypeIsMask(op1))
{
// Op1 input is a vector. HWInstrinsic requires a mask.
diff --git a/src/coreclr/jit/hwintrinsiccodegenarm64.cpp b/src/coreclr/jit/hwintrinsiccodegenarm64.cpp
index c568a3bad4977..2a27eef99c38e 100644
--- a/src/coreclr/jit/hwintrinsiccodegenarm64.cpp
+++ b/src/coreclr/jit/hwintrinsiccodegenarm64.cpp
@@ -2238,6 +2238,20 @@ void CodeGen::genHWIntrinsic(GenTreeHWIntrinsic* node)
break;
}
+ case NI_Sve_CreateBreakAfterMask:
+ case NI_Sve_CreateBreakBeforeMask:
+ {
+ GetEmitter()->emitInsSve_R_R_R(ins, emitSize, targetReg, op1Reg, op2Reg, INS_OPTS_SCALABLE_B);
+ break;
+ }
+
+ case NI_Sve_CreateBreakAfterPropagateMask:
+ case NI_Sve_CreateBreakBeforePropagateMask:
+ {
+ GetEmitter()->emitInsSve_R_R_R_R(ins, emitSize, targetReg, op1Reg, op2Reg, op3Reg, INS_OPTS_SCALABLE_B);
+ break;
+ }
+
case NI_Sve_CreateMaskForFirstActiveElement:
{
assert(isRMW);
diff --git a/src/coreclr/jit/hwintrinsiclistarm64sve.h b/src/coreclr/jit/hwintrinsiclistarm64sve.h
index 688691124eab6..6a18de1253114 100644
--- a/src/coreclr/jit/hwintrinsiclistarm64sve.h
+++ b/src/coreclr/jit/hwintrinsiclistarm64sve.h
@@ -39,6 +39,10 @@ HARDWARE_INTRINSIC(Sve, Count16BitElements,
HARDWARE_INTRINSIC(Sve, Count32BitElements, 0, 1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_cntw, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Scalar, HW_Flag_Scalable|HW_Flag_HasEnumOperand|HW_Flag_SpecialCodeGen|HW_Flag_NoFloatingPointUsed)
HARDWARE_INTRINSIC(Sve, Count64BitElements, 0, 1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_cntd, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Scalar, HW_Flag_Scalable|HW_Flag_HasEnumOperand|HW_Flag_SpecialCodeGen|HW_Flag_NoFloatingPointUsed)
HARDWARE_INTRINSIC(Sve, Count8BitElements, 0, 1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_cntb, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Scalar, HW_Flag_Scalable|HW_Flag_HasEnumOperand|HW_Flag_SpecialCodeGen|HW_Flag_NoFloatingPointUsed)
+HARDWARE_INTRINSIC(Sve, CreateBreakAfterMask, -1, 2, true, {INS_sve_brka, INS_sve_brka, INS_sve_brka, INS_sve_brka, INS_sve_brka, INS_sve_brka, INS_sve_brka, INS_sve_brka, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_ExplicitMaskedOperation|HW_Flag_ReturnsPerElementMask|HW_Flag_SpecialCodeGen)
+HARDWARE_INTRINSIC(Sve, CreateBreakAfterPropagateMask, -1, 3, true, {INS_sve_brkpa, INS_sve_brkpa, INS_sve_brkpa, INS_sve_brkpa, INS_sve_brkpa, INS_sve_brkpa, INS_sve_brkpa, INS_sve_brkpa, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_ExplicitMaskedOperation|HW_Flag_ReturnsPerElementMask|HW_Flag_SpecialCodeGen)
+HARDWARE_INTRINSIC(Sve, CreateBreakBeforeMask, -1, 2, true, {INS_sve_brkb, INS_sve_brkb, INS_sve_brkb, INS_sve_brkb, INS_sve_brkb, INS_sve_brkb, INS_sve_brkb, INS_sve_brkb, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_ExplicitMaskedOperation|HW_Flag_ReturnsPerElementMask|HW_Flag_SpecialCodeGen)
+HARDWARE_INTRINSIC(Sve, CreateBreakBeforePropagateMask, -1, 3, true, {INS_sve_brkpb, INS_sve_brkpb, INS_sve_brkpb, INS_sve_brkpb, INS_sve_brkpb, INS_sve_brkpb, INS_sve_brkpb, INS_sve_brkpb, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_ExplicitMaskedOperation|HW_Flag_ReturnsPerElementMask|HW_Flag_SpecialCodeGen)
HARDWARE_INTRINSIC(Sve, CreateFalseMaskByte, -1, 0, false, {INS_invalid, INS_sve_pfalse, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_ReturnsPerElementMask)
HARDWARE_INTRINSIC(Sve, CreateFalseMaskDouble, -1, 0, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_sve_pfalse}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_ReturnsPerElementMask)
HARDWARE_INTRINSIC(Sve, CreateFalseMaskInt16, -1, 0, false, {INS_invalid, INS_invalid, INS_sve_pfalse, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid}, HW_Category_SIMD, HW_Flag_Scalable|HW_Flag_ReturnsPerElementMask)
diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve.PlatformNotSupported.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve.PlatformNotSupported.cs
index 371da71f844ed..86517af978167 100644
--- a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve.PlatformNotSupported.cs
+++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve.PlatformNotSupported.cs
@@ -967,6 +967,199 @@ internal Arm64() { }
public static unsafe ulong Count8BitElements([ConstantExpected] SveMaskPattern pattern = SveMaskPattern.All) { throw new PlatformNotSupportedException(); }
+ ///
+ /// svbool_t svbrka[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKA Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakAfterMask(Vector mask, Vector srcMask) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrka[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKA Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakAfterMask(Vector mask, Vector srcMask) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrka[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKA Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakAfterMask(Vector mask, Vector srcMask) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrka[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKA Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakAfterMask(Vector mask, Vector srcMask) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrka[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKA Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakAfterMask(Vector mask, Vector srcMask) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrka[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKA Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakAfterMask(Vector mask, Vector srcMask) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrka[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKA Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakAfterMask(Vector mask, Vector srcMask) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrka[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKA Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakAfterMask(Vector mask, Vector srcMask) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrkpa[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPA Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakAfterPropagateMask(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrkpa[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPA Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakAfterPropagateMask(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrkpa[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPA Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakAfterPropagateMask(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrkpa[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPA Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakAfterPropagateMask(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrkpa[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPA Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakAfterPropagateMask(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrkpa[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPA Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakAfterPropagateMask(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrkpa[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPA Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakAfterPropagateMask(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrkpa[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPA Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakAfterPropagateMask(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrkb[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKB Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakBeforeMask(Vector mask, Vector srcMask) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrkb[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKB Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakBeforeMask(Vector mask, Vector srcMask) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrkb[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKB Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakBeforeMask(Vector mask, Vector srcMask) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrkb[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKB Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakBeforeMask(Vector mask, Vector srcMask) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrkb[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKB Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakBeforeMask(Vector mask, Vector srcMask) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrkb[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKB Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakBeforeMask(Vector mask, Vector srcMask) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrkb[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKB Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakBeforeMask(Vector mask, Vector srcMask) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrkb[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKB Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakBeforeMask(Vector mask, Vector srcMask) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrkpb[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPB Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakBeforePropagateMask(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrkpb[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPB Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakBeforePropagateMask(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrkpb[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPB Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakBeforePropagateMask(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrkpb[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPB Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakBeforePropagateMask(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrkpb[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPB Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakBeforePropagateMask(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrkpb[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPB Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakBeforePropagateMask(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrkpb[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPB Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakBeforePropagateMask(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); }
+
+ ///
+ /// svbool_t svbrkpb[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPB Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakBeforePropagateMask(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); }
+
+
/// Set all predicate elements to false
///
diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve.cs
index 39d8dde224aa9..fa6a76e39bb67 100644
--- a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve.cs
+++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve.cs
@@ -1025,6 +1025,199 @@ internal Arm64() { }
public static unsafe ulong Count8BitElements([ConstantExpected] SveMaskPattern pattern = SveMaskPattern.All) => Count8BitElements(pattern);
+ ///
+ /// svbool_t svbrka[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKA Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakAfterMask(Vector mask, Vector srcMask) => CreateBreakAfterMask(mask, srcMask);
+
+ ///
+ /// svbool_t svbrka[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKA Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakAfterMask(Vector mask, Vector srcMask) => CreateBreakAfterMask(mask, srcMask);
+
+ ///
+ /// svbool_t svbrka[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKA Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakAfterMask(Vector mask, Vector srcMask) => CreateBreakAfterMask(mask, srcMask);
+
+ ///
+ /// svbool_t svbrka[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKA Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakAfterMask(Vector mask, Vector srcMask) => CreateBreakAfterMask(mask, srcMask);
+
+ ///
+ /// svbool_t svbrka[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKA Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakAfterMask(Vector mask, Vector srcMask) => CreateBreakAfterMask(mask, srcMask);
+
+ ///
+ /// svbool_t svbrka[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKA Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakAfterMask(Vector mask, Vector srcMask) => CreateBreakAfterMask(mask, srcMask);
+
+ ///
+ /// svbool_t svbrka[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKA Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakAfterMask(Vector mask, Vector srcMask) => CreateBreakAfterMask(mask, srcMask);
+
+ ///
+ /// svbool_t svbrka[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKA Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakAfterMask(Vector mask, Vector srcMask) => CreateBreakAfterMask(mask, srcMask);
+
+ ///
+ /// svbool_t svbrkpa[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPA Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakAfterPropagateMask(Vector mask, Vector left, Vector right) => CreateBreakAfterPropagateMask(mask, left, right);
+
+ ///
+ /// svbool_t svbrkpa[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPA Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakAfterPropagateMask(Vector mask, Vector left, Vector right) => CreateBreakAfterPropagateMask(mask, left, right);
+
+ ///
+ /// svbool_t svbrkpa[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPA Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakAfterPropagateMask(Vector mask, Vector left, Vector right) => CreateBreakAfterPropagateMask(mask, left, right);
+
+ ///
+ /// svbool_t svbrkpa[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPA Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakAfterPropagateMask(Vector mask, Vector left, Vector right) => CreateBreakAfterPropagateMask(mask, left, right);
+
+ ///
+ /// svbool_t svbrkpa[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPA Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakAfterPropagateMask(Vector mask, Vector left, Vector right) => CreateBreakAfterPropagateMask(mask, left, right);
+
+ ///
+ /// svbool_t svbrkpa[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPA Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakAfterPropagateMask(Vector mask, Vector left, Vector right) => CreateBreakAfterPropagateMask(mask, left, right);
+
+ ///
+ /// svbool_t svbrkpa[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPA Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakAfterPropagateMask(Vector mask, Vector left, Vector right) => CreateBreakAfterPropagateMask(mask, left, right);
+
+ ///
+ /// svbool_t svbrkpa[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPA Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakAfterPropagateMask(Vector mask, Vector left, Vector right) => CreateBreakAfterPropagateMask(mask, left, right);
+
+ ///
+ /// svbool_t svbrkb[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKB Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakBeforeMask(Vector mask, Vector srcMask) => CreateBreakBeforeMask(mask, srcMask);
+
+ ///
+ /// svbool_t svbrkb[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKB Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakBeforeMask(Vector mask, Vector srcMask) => CreateBreakBeforeMask(mask, srcMask);
+
+ ///
+ /// svbool_t svbrkb[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKB Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakBeforeMask(Vector mask, Vector srcMask) => CreateBreakBeforeMask(mask, srcMask);
+
+ ///
+ /// svbool_t svbrkb[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKB Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakBeforeMask(Vector mask, Vector srcMask) => CreateBreakBeforeMask(mask, srcMask);
+
+ ///
+ /// svbool_t svbrkb[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKB Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakBeforeMask(Vector mask, Vector srcMask) => CreateBreakBeforeMask(mask, srcMask);
+
+ ///
+ /// svbool_t svbrkb[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKB Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakBeforeMask(Vector mask, Vector srcMask) => CreateBreakBeforeMask(mask, srcMask);
+
+ ///
+ /// svbool_t svbrkb[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKB Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakBeforeMask(Vector mask, Vector srcMask) => CreateBreakBeforeMask(mask, srcMask);
+
+ ///
+ /// svbool_t svbrkb[_b]_z(svbool_t pg, svbool_t op)
+ /// BRKB Presult.B, Pg/Z, Pop.B
+ ///
+ public static unsafe Vector CreateBreakBeforeMask(Vector mask, Vector srcMask) => CreateBreakBeforeMask(mask, srcMask);
+
+ ///
+ /// svbool_t svbrkpb[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPB Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakBeforePropagateMask(Vector mask, Vector left, Vector right) => CreateBreakBeforePropagateMask(mask, left, right);
+
+ ///
+ /// svbool_t svbrkpb[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPB Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakBeforePropagateMask(Vector mask, Vector left, Vector right) => CreateBreakBeforePropagateMask(mask, left, right);
+
+ ///
+ /// svbool_t svbrkpb[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPB Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakBeforePropagateMask(Vector mask, Vector left, Vector right) => CreateBreakBeforePropagateMask(mask, left, right);
+
+ ///
+ /// svbool_t svbrkpb[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPB Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakBeforePropagateMask(Vector mask, Vector left, Vector right) => CreateBreakBeforePropagateMask(mask, left, right);
+
+ ///
+ /// svbool_t svbrkpb[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPB Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakBeforePropagateMask(Vector mask, Vector left, Vector right) => CreateBreakBeforePropagateMask(mask, left, right);
+
+ ///
+ /// svbool_t svbrkpb[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPB Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakBeforePropagateMask(Vector mask, Vector left, Vector right) => CreateBreakBeforePropagateMask(mask, left, right);
+
+ ///
+ /// svbool_t svbrkpb[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPB Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakBeforePropagateMask(Vector mask, Vector left, Vector right) => CreateBreakBeforePropagateMask(mask, left, right);
+
+ ///
+ /// svbool_t svbrkpb[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2)
+ /// BRKPB Presult.B, Pg/Z, Pop1.B, Pop2.B
+ ///
+ public static unsafe Vector CreateBreakBeforePropagateMask(Vector mask, Vector left, Vector right) => CreateBreakBeforePropagateMask(mask, left, right);
+
+
/// Set all predicate elements to false
///
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 1904b956195d0..7827cdf52eb82 100644
--- a/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs
+++ b/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs
@@ -4329,6 +4329,39 @@ internal Arm64() { }
public static ulong Count64BitElements([ConstantExpected] SveMaskPattern pattern = SveMaskPattern.All) { throw null; }
public static ulong Count8BitElements([ConstantExpected] SveMaskPattern pattern = SveMaskPattern.All) { throw null; }
+ public static System.Numerics.Vector CreateBreakAfterMask(System.Numerics.Vector mask, System.Numerics.Vector srcMask) { throw null; }
+ public static System.Numerics.Vector CreateBreakAfterMask(System.Numerics.Vector mask, System.Numerics.Vector srcMask) { throw null; }
+ public static System.Numerics.Vector CreateBreakAfterMask(System.Numerics.Vector mask, System.Numerics.Vector srcMask) { throw null; }
+ public static System.Numerics.Vector CreateBreakAfterMask(System.Numerics.Vector mask, System.Numerics.Vector srcMask) { throw null; }
+ public static System.Numerics.Vector CreateBreakAfterMask(System.Numerics.Vector mask, System.Numerics.Vector srcMask) { throw null; }
+ public static System.Numerics.Vector CreateBreakAfterMask(System.Numerics.Vector mask, System.Numerics.Vector srcMask) { throw null; }
+ public static System.Numerics.Vector CreateBreakAfterMask(System.Numerics.Vector mask, System.Numerics.Vector srcMask) { throw null; }
+ public static System.Numerics.Vector CreateBreakAfterMask(System.Numerics.Vector mask, System.Numerics.Vector srcMask) { throw null; }
+ public static System.Numerics.Vector CreateBreakAfterPropagateMask(System.Numerics.Vector mask, System.Numerics.Vector left, System.Numerics.Vector right) { throw null; }
+ public static System.Numerics.Vector