#94011 approved the following:
namespace System.Runtime.Intrinsics.Arm
/// VectorT Summary
public abstract class Sve : AdvSimd /// Feature: FEAT_SVE Category: loads
{
/// T: float, double, sbyte, short, int, long, byte, ushort, uint, ulong
public static unsafe void Store(Vector<T> mask, T* address, Vector<T> data); // ST1W or ST1D or ST1B or ST1H
/// T: float, double, sbyte, short, int, long, byte, ushort, uint, ulong
public static unsafe void Store(Vector<T> mask, T* address, (Vector<T> Value1, Vector<T> Value2) data); // ST2W or ST2D or ST2B or ST2H
/// T: float, double, sbyte, short, int, long, byte, ushort, uint, ulong
public static unsafe void Store(Vector<T> mask, T* address, (Vector<T> Value1, Vector<T> Value2, Vector<T> Value3) data); // ST3W or ST3D or ST3B or ST3H
/// T: float, double, sbyte, short, int, long, byte, ushort, uint, ulong
public static unsafe void Store(Vector<T> mask, T* address, (Vector<T> Value1, Vector<T> Value2, Vector<T> Value3, Vector<T> Value4) data); // ST4W or ST4D or ST4B or ST4H
}
The following was implemented:
namespace System.Runtime.Intrinsics.Arm
/// VectorT Summary
public abstract class Sve : AdvSimd /// Feature: FEAT_SVE Category: loads
{
/// T: float, double, sbyte, short, int, long, byte, ushort, uint, ulong
public static unsafe void StoreAndZip(Vector<T> mask, T* address, Vector<T> data); // ST1W or ST1D or ST1B or ST1H
/// T: float, double, sbyte, short, int, long, byte, ushort, uint, ulong
public static unsafe void StoreAndZip(Vector<T> mask, T* address, (Vector<T> Value1, Vector<T> Value2) data); // ST2W or ST2D or ST2B or ST2H
/// T: float, double, sbyte, short, int, long, byte, ushort, uint, ulong
public static unsafe void StoreAndZip(Vector<T> mask, T* address, (Vector<T> Value1, Vector<T> Value2, Vector<T> Value3) data); // ST3W or ST3D or ST3B or ST3H
/// T: float, double, sbyte, short, int, long, byte, ushort, uint, ulong
public static unsafe void StoreAndZip(Vector<T> mask, T* address, (Vector<T> Value1, Vector<T> Value2, Vector<T> Value3, Vector<T> Value4) data); // ST4W or ST4D or ST4B or ST4H
}
API Proposal
The following is proposed:
namespace System.Runtime.Intrinsics.Arm
/// VectorT Summary
public abstract class Sve : AdvSimd /// Feature: FEAT_SVE Category: loads
{
/// T: float, double, sbyte, short, int, long, byte, ushort, uint, ulong
public static unsafe void Store(Vector<T> mask, T* address, Vector<T> data); // ST1W or ST1D or ST1B or ST1H
/// T: float, double, sbyte, short, int, long, byte, ushort, uint, ulong
public static unsafe void Store(Vector<T> mask, T* address, (Vector<T> Value1, Vector<T> Value2) data); // ST1W or ST1D or ST1B or ST1H
/// T: float, double, sbyte, short, int, long, byte, ushort, uint, ulong
public static unsafe void Store(Vector<T> mask, T* address, (Vector<T> Value1, Vector<T> Value2, Vector<T> Value3) data); // ST1W or ST1D or ST1B or ST1H
/// T: float, double, sbyte, short, int, long, byte, ushort, uint, ulong
public static unsafe void Store(Vector<T> mask, T* address, (Vector<T> Value1, Vector<T> Value2, Vector<T> Value3, Vector<T> Value4) data); // ST1W or ST1D or ST1B or ST1H
/// T: float, double, sbyte, short, int, long, byte, ushort, uint, ulong
public static unsafe void StoreAndZip(Vector<T> mask, T* address, (Vector<T> Value1, Vector<T> Value2) data); // ST2W or ST2D or ST1B or ST2H
/// T: float, double, sbyte, short, int, long, byte, ushort, uint, ulong
public static unsafe void StoreAndZip(Vector<T> mask, T* address, (Vector<T> Value1, Vector<T> Value2, Vector<T> Value3) data); // ST3W or ST3D or ST3B or ST3H
/// T: float, double, sbyte, short, int, long, byte, ushort, uint, ulong
public static unsafe void StoreAndZip(Vector<T> mask, T* address, (Vector<T> Value1, Vector<T> Value2, Vector<T> Value3, Vector<T> Value4) data); // ST4W or ST4D or ST4B or ST4H
}
#94011 approved the following:
The following was implemented:
API Proposal
The following is proposed: