Open
Description
#97831 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 (Vector<T>, Vector<T>) LoadVectorx2(Vector<T> mask, T* address); // LD2W or LD2D or LD2B or LD2H
/// T: float, double, sbyte, short, int, long, byte, ushort, uint, ulong
public static unsafe (Vector<T>, Vector<T>, Vector<T>) LoadVectorx3(Vector<T> mask, T* address); // LD3W or LD3D or LD3B or LD3H
/// T: float, double, sbyte, short, int, long, byte, ushort, uint, ulong
public static unsafe (Vector<T>, Vector<T>, Vector<T>, Vector<T>) LoadVectorx4(Vector<T> mask, T* address); // LD4W or LD4D or LD4B or LD4H
}
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 (Vector<T>, Vector<T>) LoadVectorx2AndUnzip(Vector<T> mask, T* address); // LD2W or LD2D or LD2B or LD2H
/// T: float, double, sbyte, short, int, long, byte, ushort, uint, ulong
public static unsafe (Vector<T>, Vector<T>, Vector<T>) LoadVectorx3AndUnzip(Vector<T> mask, T* address); // LD3W or LD3D or LD3B or LD3H
/// T: float, double, sbyte, short, int, long, byte, ushort, uint, ulong
public static unsafe (Vector<T>, Vector<T>, Vector<T>, Vector<T>) LoadVectorx4AndUnzip(Vector<T> mask, T* address); // LD4W or LD4D or LD4B or LD4H
}
This was done to follow the existing LoadNxVectorNAndUnzip()
APIs in AdvSimd.
This issue is to approve the implemented API.