Open
Description
During implementation, the naming of the default value arguments changed from what was reviewed. Original API approval was in #98184
This issue should either approve the differences, or they should be rejected and a PR to fix up the code should be raised.
The implemented APIs need changing to match what was approved.
Approved APIs:
namespace System.Runtime.Intrinsics.Arm;
/// VectorT Summary
public abstract partial class Sve : AdvSimd /// Feature: FEAT_SVE Category: mask
{
/// T: sbyte, short, int, long, byte, ushort, uint, ulong
public static unsafe Vector<T> CreateBreakAfterMask(Vector<T> totalMask, Vector<T> fromMask); // BRKA // predicated
/// T: sbyte, short, int, long, byte, ushort, uint, ulong
public static unsafe Vector<T> CreateBreakBeforeMask(Vector<T> totalMask, Vector<T> fromMask); // BRKB // predicated
/// T: byte, ushort, uint, ulong
public static unsafe Vector<T> CreateMaskForNextActiveElement(Vector<T> totalMask, Vector<T> fromMask); // PNEXT
/// T: sbyte, short, int, long, byte, ushort, uint, ulong
public static unsafe Vector<T> CreateMaskForFirstActiveElement(Vector<T> totalMask, Vector<T> fromMask); // PFIRST
public static unsafe Vector<T> CreateMaskForNextActiveElement(Vector<T> totalMask, Vector<T> fromMask); // PNEXT
public static unsafe Vector<T> CreateMaskForFirstActiveElement(Vector<T> totalMask, Vector<T> fromMask); // PFIRST
public static unsafe bool TestAnyTrue(Vector<T> mask, Vector<T> rightMask); // PTEST
public static unsafe bool TestFirstTrue(Vector<T> leftMask, Vector<T> rightMask); // PTEST
public static unsafe bool TestLastTrue(Vector<T> leftMask, Vector<T> rightMask); // PTEST
}
Currently implemented:
namespace System.Runtime.Intrinsics.Arm;
/// VectorT Summary
public abstract partial class Sve : AdvSimd /// Feature: FEAT_SVE Category: mask
{
/// T: sbyte, short, int, long, byte, ushort, uint, ulong
public static unsafe Vector<T> CreateBreakAfterMask(Vector<T> mask, Vector<T> srcMask); // BRKA // predicated
/// T: sbyte, short, int, long, byte, ushort, uint, ulong
public static unsafe Vector<T> CreateBreakBeforeMask(Vector<T> mask, Vector<T> srcMask); // BRKB // predicated
/// T: byte, ushort, uint, ulong
public static unsafe Vector<T> CreateMaskForNextActiveElement(Vector<T> mask, Vector<T> srcMask); // PNEXT
/// T: sbyte, short, int, long, byte, ushort, uint, ulong
public static unsafe Vector<T> CreateMaskForFirstActiveElement(Vector<T> mask, Vector<T> srcMask); // PFIRST
public static unsafe Vector<T> CreateMaskForNextActiveElement(Vector<T> totalMask, Vector<T> srcMask); // PNEXT
public static unsafe Vector<T> CreateMaskForFirstActiveElement(Vector<T> totalMask, Vector<T> srcMask); // PFIRST]
public static unsafe bool TestAnyTrue(Vector<T> mask, Vector<T> srcMask); // PTEST
public static unsafe bool TestFirstTrue(Vector<T> mask, Vector<T> srcMask); // PTEST
public static unsafe bool TestLastTrue(Vector<T> mask, Vector<T> srcMask); // PTEST
}