Edit: Removed StaticCast as that is handled by Vector128.As*. Kept the Load/Store APIs as generic with note that the actual implementation is exploded and supports all 10 primitive types
namespace System.Runtime.Intrinsics.Arm
{
public abstract class AdvSimd
{
public abstract class Arm64
{
/// <summary>
/// Vector load
///
/// Corresponds to vector form of ARM64 LDR
/// </summary>
public static unsafe Vector64<T> LoadVector64<T>(void* address) where T : struct { throw null; }
public static unsafe Vector128<T> LoadVector128<T>(void* address) where T : struct { throw null; }
/// <summary>
/// Vector store
///
/// Corresponds to vector form of ARM64 STR
/// </summary>
public static unsafe void Store<T>(void* address, Vector64<T> source) where T : struct { throw null; }
public static unsafe void Store<T>(void* address, Vector128<T> source) where T : struct { throw null; }
}
}
}
Edit: Removed
StaticCastas that is handled byVector128.As*. Kept the Load/Store APIs as generic with note that the actual implementation is exploded and supports all 10 primitive types