<Compile Include="$(BclSourcesRoot)\System\Runtime\Intrinsics\X86\Ssse3.PlatformNotSupported.cs" />
</ItemGroup>
<ItemGroup Condition="'$(Platform)' == 'arm64'">
- <Compile Include="$(BclSourcesRoot)\System\Runtime\Intrinsics\Arm\Arm64\Simd.cs" />
<Compile Include="$(BclSourcesRoot)\System\Runtime\Intrinsics\Arm\Arm64\Aes.cs" />
+ <Compile Include="$(BclSourcesRoot)\System\Runtime\Intrinsics\Arm\Arm64\Base.cs" />
<Compile Include="$(BclSourcesRoot)\System\Runtime\Intrinsics\Arm\Arm64\Sha1.cs" />
<Compile Include="$(BclSourcesRoot)\System\Runtime\Intrinsics\Arm\Arm64\Sha256.cs" />
+ <Compile Include="$(BclSourcesRoot)\System\Runtime\Intrinsics\Arm\Arm64\Simd.cs" />
</ItemGroup>
<ItemGroup Condition="'$(Platform)' != 'arm64'">
- <Compile Include="$(BclSourcesRoot)\System\Runtime\Intrinsics\Arm\Arm64\Simd.PlatformNotSupported.cs" />
<Compile Include="$(BclSourcesRoot)\System\Runtime\Intrinsics\Arm\Arm64\Aes.PlatformNotSupported.cs" />
+ <Compile Include="$(BclSourcesRoot)\System\Runtime\Intrinsics\Arm\Arm64\Base.PlatformNotSupported.cs" />
<Compile Include="$(BclSourcesRoot)\System\Runtime\Intrinsics\Arm\Arm64\Sha1.PlatformNotSupported.cs" />
<Compile Include="$(BclSourcesRoot)\System\Runtime\Intrinsics\Arm\Arm64\Sha256.PlatformNotSupported.cs" />
+ <Compile Include="$(BclSourcesRoot)\System\Runtime\Intrinsics\Arm\Arm64\Simd.PlatformNotSupported.cs" />
</ItemGroup>
<ItemGroup>
<Compile Include="$(BclSourcesRoot)\System\AppContext\AppContext.cs" />
--- /dev/null
+using System.Runtime.CompilerServices;
+using System.Runtime.Intrinsics;
+
+
+namespace System.Runtime.Intrinsics.Arm.Arm64
+{
+ /// <summary>
+ /// This class provides access to the Arm64 Base intrinsics
+ ///
+ /// These intrinsics are supported by all Arm64 CPUs
+ /// </summary>
+ [CLSCompliant(false)]
+ public static class Base
+ {
+ public static bool IsSupported { get { return false; }}
+
+ /// <summary>
+ /// Vector LeadingSignCount
+ /// Corresponds to integer forms of ARM64 CLS
+ /// </summary>
+ public static int LeadingSignCount(int value) { throw new PlatformNotSupportedException(); }
+ public static int LeadingSignCount(long value) { throw new PlatformNotSupportedException(); }
+
+ /// <summary>
+ /// Vector LeadingZeroCount
+ /// Corresponds to integer forms of ARM64 CLZ
+ /// </summary>
+ public static int LeadingZeroCount(int value) { throw new PlatformNotSupportedException(); }
+ public static int LeadingZeroCount(uint value) { throw new PlatformNotSupportedException(); }
+ public static int LeadingZeroCount(long value) { throw new PlatformNotSupportedException(); }
+ public static int LeadingZeroCount(ulong value) { throw new PlatformNotSupportedException(); }
+ }
+}
--- /dev/null
+using System.Runtime.CompilerServices;
+using System.Runtime.Intrinsics;
+
+
+namespace System.Runtime.Intrinsics.Arm.Arm64
+{
+ /// <summary>
+ /// This class provides access to the Arm64 Base intrinsics
+ ///
+ /// These intrinsics are supported by all Arm64 CPUs
+ /// </summary>
+ [CLSCompliant(false)]
+ public static class Base
+ {
+ public static bool IsSupported { get { return false; }}
+
+ /// <summary>
+ /// Vector LeadingSignCount
+ /// Corresponds to integer forms of ARM64 CLS
+ /// </summary>
+ public static int LeadingSignCount(int value) => LeadingSignCount(value);
+ public static int LeadingSignCount(long value) => LeadingSignCount(value);
+
+ /// <summary>
+ /// Vector LeadingZeroCount
+ /// Corresponds to integer forms of ARM64 CLZ
+ /// </summary>
+ public static int LeadingZeroCount(int value) => LeadingZeroCount(value);
+ public static int LeadingZeroCount(uint value) => LeadingZeroCount(value);
+ public static int LeadingZeroCount(long value) => LeadingZeroCount(value);
+ public static int LeadingZeroCount(ulong value) => LeadingZeroCount(value);
+ }
+}