Closed
Description
namespace System.Runtime.Intrinsics.Arm
/// VectorT Summary
public abstract class Sve : AdvSimd /// Feature: FEAT_SVE Category: counting
{
public static unsafe ulong Count16BitElements(); // CNTH
public static unsafe ulong Count16BitElements(enum SveMaskPattern pattern); // CNTH
public static unsafe ulong Count32BitElements(); // CNTW
public static unsafe ulong Count32BitElements(enum SveMaskPattern pattern); // CNTW
public static unsafe ulong Count64BitElements(); // CNTD
public static unsafe ulong Count64BitElements(enum SveMaskPattern pattern); // CNTD
public static unsafe ulong Count8BitElements(); // CNTB
public static unsafe ulong Count8BitElements(enum SveMaskPattern pattern); // CNTB
/// T: byte, ushort, uint, ulong
public static unsafe ulong GetActiveElementCount(Vector<T> mask, Vector<T> from); // CNTP
/// T: [byte, sbyte], [ushort, short], [uint, int], [ulong, long]
public static unsafe Vector<T> LeadingSignCount(Vector<T2> value); // CLS // predicated, MOVPRFX
/// T: [byte, sbyte], [ushort, short], [uint, int], [ulong, long]
public static unsafe Vector<T> LeadingZeroCount(Vector<T2> value); // CLZ // predicated, MOVPRFX
/// T: byte, ushort, uint, ulong
public static unsafe Vector<T> LeadingZeroCount(Vector<T> value); // CLZ // predicated, MOVPRFX
/// T: [uint, float], [ulong, double], [byte, sbyte], [ushort, short], [uint, int], [ulong, long]
public static unsafe Vector<T> PopCount(Vector<T2> value); // CNT // predicated, MOVPRFX
/// T: byte, ushort, uint, ulong
public static unsafe Vector<T> PopCount(Vector<T> value); // CNT // predicated, MOVPRFX
/// T: byte, ushort, uint, ulong
public static unsafe int SaturatingDecrementByActiveElementCount(int op, Vector<T> from); // SQDECP
/// T: byte, ushort, uint, ulong
public static unsafe long SaturatingDecrementByActiveElementCount(long op, Vector<T> from); // SQDECP
/// T: byte, ushort, uint, ulong
public static unsafe uint SaturatingDecrementByActiveElementCount(uint op, Vector<T> from); // UQDECP
/// T: byte, ushort, uint, ulong
public static unsafe ulong SaturatingDecrementByActiveElementCount(ulong op, Vector<T> from); // UQDECP
/// T: short, int, long, ushort, uint, ulong
public static unsafe Vector<T> SaturatingDecrementByActiveElementCount(Vector<T> op, Vector<T> from); // SQDECP or UQDECP // MOVPRFX
public static unsafe int SaturatingDecrementByteElementCount(int op, ulong imm_factor); // SQDECB
public static unsafe long SaturatingDecrementByteElementCount(long op, ulong imm_factor); // SQDECB
public static unsafe uint SaturatingDecrementByteElementCount(uint op, ulong imm_factor); // UQDECB
public static unsafe ulong SaturatingDecrementByteElementCount(ulong op, ulong imm_factor); // UQDECB
public static unsafe int SaturatingDecrementByteElementCount(int op, enum SveMaskPattern pattern, ulong imm_factor); // SQDECB
public static unsafe long SaturatingDecrementByteElementCount(long op, enum SveMaskPattern pattern, ulong imm_factor); // SQDECB
public static unsafe uint SaturatingDecrementByteElementCount(uint op, enum SveMaskPattern pattern, ulong imm_factor); // UQDECB
public static unsafe ulong SaturatingDecrementByteElementCount(ulong op, enum SveMaskPattern pattern, ulong imm_factor); // UQDECB
public static unsafe int SaturatingDecrementInt16ElementCount(int op, ulong imm_factor); // SQDECH
public static unsafe long SaturatingDecrementInt16ElementCount(long op, ulong imm_factor); // SQDECH
public static unsafe uint SaturatingDecrementInt16ElementCount(uint op, ulong imm_factor); // UQDECH
public static unsafe ulong SaturatingDecrementInt16ElementCount(ulong op, ulong imm_factor); // UQDECH
public static unsafe int SaturatingDecrementInt16ElementCount(int op, enum SveMaskPattern pattern, ulong imm_factor); // SQDECH
public static unsafe long SaturatingDecrementInt16ElementCount(long op, enum SveMaskPattern pattern, ulong imm_factor); // SQDECH
public static unsafe uint SaturatingDecrementInt16ElementCount(uint op, enum SveMaskPattern pattern, ulong imm_factor); // UQDECH
public static unsafe ulong SaturatingDecrementInt16ElementCount(ulong op, enum SveMaskPattern pattern, ulong imm_factor); // UQDECH
/// T: short, ushort
public static unsafe Vector<T> SaturatingDecrementInt16ElementCount(Vector<T> op, ulong imm_factor); // SQDECH or UQDECH // MOVPRFX
/// T: short, ushort
public static unsafe Vector<T> SaturatingDecrementInt16ElementCount(Vector<T> op, enum SveMaskPattern pattern, ulong imm_factor); // SQDECH or UQDECH // MOVPRFX
public static unsafe int SaturatingDecrementInt32ElementCount(int op, ulong imm_factor); // SQDECW
public static unsafe long SaturatingDecrementInt32ElementCount(long op, ulong imm_factor); // SQDECW
public static unsafe uint SaturatingDecrementInt32ElementCount(uint op, ulong imm_factor); // UQDECW
public static unsafe ulong SaturatingDecrementInt32ElementCount(ulong op, ulong imm_factor); // UQDECW
public static unsafe int SaturatingDecrementInt32ElementCount(int op, enum SveMaskPattern pattern, ulong imm_factor); // SQDECW
public static unsafe long SaturatingDecrementInt32ElementCount(long op, enum SveMaskPattern pattern, ulong imm_factor); // SQDECW
public static unsafe uint SaturatingDecrementInt32ElementCount(uint op, enum SveMaskPattern pattern, ulong imm_factor); // UQDECW
public static unsafe ulong SaturatingDecrementInt32ElementCount(ulong op, enum SveMaskPattern pattern, ulong imm_factor); // UQDECW
/// T: int, uint
public static unsafe Vector<T> SaturatingDecrementInt32ElementCount(Vector<T> op, ulong imm_factor); // SQDECW or UQDECW // MOVPRFX
/// T: int, uint
public static unsafe Vector<T> SaturatingDecrementInt32ElementCount(Vector<T> op, enum SveMaskPattern pattern, ulong imm_factor); // SQDECW or UQDECW // MOVPRFX
public static unsafe int SaturatingDecrementInt64ElementCount(int op, ulong imm_factor); // SQDECD
public static unsafe long SaturatingDecrementInt64ElementCount(long op, ulong imm_factor); // SQDECD
public static unsafe uint SaturatingDecrementInt64ElementCount(uint op, ulong imm_factor); // UQDECD
public static unsafe ulong SaturatingDecrementInt64ElementCount(ulong op, ulong imm_factor); // UQDECD
public static unsafe int SaturatingDecrementInt64ElementCount(int op, enum SveMaskPattern pattern, ulong imm_factor); // SQDECD
public static unsafe long SaturatingDecrementInt64ElementCount(long op, enum SveMaskPattern pattern, ulong imm_factor); // SQDECD
public static unsafe uint SaturatingDecrementInt64ElementCount(uint op, enum SveMaskPattern pattern, ulong imm_factor); // UQDECD
public static unsafe ulong SaturatingDecrementInt64ElementCount(ulong op, enum SveMaskPattern pattern, ulong imm_factor); // UQDECD
/// T: long, ulong
public static unsafe Vector<T> SaturatingDecrementInt64ElementCount(Vector<T> op, ulong imm_factor); // SQDECD or UQDECD // MOVPRFX
/// T: long, ulong
public static unsafe Vector<T> SaturatingDecrementInt64ElementCount(Vector<T> op, enum SveMaskPattern pattern, ulong imm_factor); // SQDECD or UQDECD // MOVPRFX
/// T: byte, ushort, uint, ulong
public static unsafe int SaturatingIncrementByActiveElementCount(int op, Vector<T> from); // SQINCP
/// T: byte, ushort, uint, ulong
public static unsafe long SaturatingIncrementByActiveElementCount(long op, Vector<T> from); // SQINCP
/// T: byte, ushort, uint, ulong
public static unsafe uint SaturatingIncrementByActiveElementCount(uint op, Vector<T> from); // UQINCP
/// T: byte, ushort, uint, ulong
public static unsafe ulong SaturatingIncrementByActiveElementCount(ulong op, Vector<T> from); // UQINCP
/// T: short, int, long, ushort, uint, ulong
public static unsafe Vector<T> SaturatingIncrementByActiveElementCount(Vector<T> op, Vector<T> from); // SQINCP or UQINCP // MOVPRFX
public static unsafe int SaturatingIncrementByteElementCount(int op, ulong imm_factor); // SQINCB
public static unsafe long SaturatingIncrementByteElementCount(long op, ulong imm_factor); // SQINCB
public static unsafe uint SaturatingIncrementByteElementCount(uint op, ulong imm_factor); // UQINCB
public static unsafe ulong SaturatingIncrementByteElementCount(ulong op, ulong imm_factor); // UQINCB
public static unsafe int SaturatingIncrementByteElementCount(int op, enum SveMaskPattern pattern, ulong imm_factor); // SQINCB
public static unsafe long SaturatingIncrementByteElementCount(long op, enum SveMaskPattern pattern, ulong imm_factor); // SQINCB
public static unsafe uint SaturatingIncrementByteElementCount(uint op, enum SveMaskPattern pattern, ulong imm_factor); // UQINCB
public static unsafe ulong SaturatingIncrementByteElementCount(ulong op, enum SveMaskPattern pattern, ulong imm_factor); // UQINCB
public static unsafe int SaturatingIncrementInt16ElementCount(int op, ulong imm_factor); // SQINCH
public static unsafe long SaturatingIncrementInt16ElementCount(long op, ulong imm_factor); // SQINCH
public static unsafe uint SaturatingIncrementInt16ElementCount(uint op, ulong imm_factor); // UQINCH
public static unsafe ulong SaturatingIncrementInt16ElementCount(ulong op, ulong imm_factor); // UQINCH
public static unsafe int SaturatingIncrementInt16ElementCount(int op, enum SveMaskPattern pattern, ulong imm_factor); // SQINCH
public static unsafe long SaturatingIncrementInt16ElementCount(long op, enum SveMaskPattern pattern, ulong imm_factor); // SQINCH
public static unsafe uint SaturatingIncrementInt16ElementCount(uint op, enum SveMaskPattern pattern, ulong imm_factor); // UQINCH
public static unsafe ulong SaturatingIncrementInt16ElementCount(ulong op, enum SveMaskPattern pattern, ulong imm_factor); // UQINCH
/// T: short, ushort
public static unsafe Vector<T> SaturatingIncrementInt16ElementCount(Vector<T> op, ulong imm_factor); // SQINCH or UQINCH // MOVPRFX
/// T: short, ushort
public static unsafe Vector<T> SaturatingIncrementInt16ElementCount(Vector<T> op, enum SveMaskPattern pattern, ulong imm_factor); // SQINCH or UQINCH // MOVPRFX
public static unsafe int SaturatingIncrementInt32ElementCount(int op, ulong imm_factor); // SQINCW
public static unsafe long SaturatingIncrementInt32ElementCount(long op, ulong imm_factor); // SQINCW
public static unsafe uint SaturatingIncrementInt32ElementCount(uint op, ulong imm_factor); // UQINCW
public static unsafe ulong SaturatingIncrementInt32ElementCount(ulong op, ulong imm_factor); // UQINCW
public static unsafe int SaturatingIncrementInt32ElementCount(int op, enum SveMaskPattern pattern, ulong imm_factor); // SQINCW
public static unsafe long SaturatingIncrementInt32ElementCount(long op, enum SveMaskPattern pattern, ulong imm_factor); // SQINCW
public static unsafe uint SaturatingIncrementInt32ElementCount(uint op, enum SveMaskPattern pattern, ulong imm_factor); // UQINCW
public static unsafe ulong SaturatingIncrementInt32ElementCount(ulong op, enum SveMaskPattern pattern, ulong imm_factor); // UQINCW
/// T: int, uint
public static unsafe Vector<T> SaturatingIncrementInt32ElementCount(Vector<T> op, ulong imm_factor); // SQINCW or UQINCW // MOVPRFX
/// T: int, uint
public static unsafe Vector<T> SaturatingIncrementInt32ElementCount(Vector<T> op, enum SveMaskPattern pattern, ulong imm_factor); // SQINCW or UQINCW // MOVPRFX
public static unsafe int SaturatingIncrementInt64ElementCount(int op, ulong imm_factor); // SQINCD
public static unsafe long SaturatingIncrementInt64ElementCount(long op, ulong imm_factor); // SQINCD
public static unsafe uint SaturatingIncrementInt64ElementCount(uint op, ulong imm_factor); // UQINCD
public static unsafe ulong SaturatingIncrementInt64ElementCount(ulong op, ulong imm_factor); // UQINCD
public static unsafe int SaturatingIncrementInt64ElementCount(int op, enum SveMaskPattern pattern, ulong imm_factor); // SQINCD
public static unsafe long SaturatingIncrementInt64ElementCount(long op, enum SveMaskPattern pattern, ulong imm_factor); // SQINCD
public static unsafe uint SaturatingIncrementInt64ElementCount(uint op, enum SveMaskPattern pattern, ulong imm_factor); // UQINCD
public static unsafe ulong SaturatingIncrementInt64ElementCount(ulong op, enum SveMaskPattern pattern, ulong imm_factor); // UQINCD
/// T: long, ulong
public static unsafe Vector<T> SaturatingIncrementInt64ElementCount(Vector<T> op, ulong imm_factor); // SQINCD or UQINCD // MOVPRFX
/// T: long, ulong
public static unsafe Vector<T> SaturatingIncrementInt64ElementCount(Vector<T> op, enum SveMaskPattern pattern, ulong imm_factor); // SQINCD or UQINCD // MOVPRFX
// All patterns used by PTRUE.
enum SveMaskPattern
{
SV_POW2 = 0, // The largest power of 2.
SV_VL1 = 1, // 1 element.
SV_VL2 = 2, // 2 elements.
SV_VL3 = 3, // 3 elements.
SV_VL4 = 4, // 4 elements.
SV_VL5 = 5, // 5 elements.
SV_VL6 = 6, // 6 elements.
SV_VL7 = 7, // 7 elements.
SV_VL8 = 8, // 8 elements.
SV_VL16 = 9, // 16 elements.
SV_VL32 = 10, // 32 elements.
SV_VL64 = 11, // 64 elements.
SV_VL128 = 12, // 128 elements.
SV_VL256 = 13, // 256 elements.
SV_MUL4 = 29, // The largest multiple of 3.
SV_MUL3 = 30, // The largest multiple of 4.
SV_ALL = 31 // All available (implicitly a multiple of two).
};
/// total method signatures: 100
}
Details
CountN
BitElements(enum SveMaskPattern pattern)
Set scalar to multiple of predicate constraint element count
Determines the number of active elements implied by pattern, multiplies that by an immediate in the range 1 to 16 inclusive, and then places the result in the scalar destination.
Pattern limits the number of active elements in a single predicate to:
- A fixed number (VL1 to VL256)
- The largest power of two (POW2)
- The largest multiple of three or four (MUL3 or MUL4)
- All available, implicitly a multiple of two (ALL).
CountN
BitElements()
Identical to: CountNBitElements(SV_ALL)