3 types derived from Arm64
System.Private.CoreLib (3)
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\Arm\Dp.PlatformNotSupported.cs (1)
21public new abstract class Arm64 : AdvSimd.Arm64
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\Arm\Rdm.PlatformNotSupported.cs (1)
21public new abstract class Arm64 : AdvSimd.Arm64
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\Arm\Sve.PlatformNotSupported.cs (1)
29public new abstract class Arm64 : AdvSimd.Arm64
179 references to Arm64
System.Numerics.Tensors (9)
System\Numerics\Tensors\netcore\TensorPrimitives.Reciprocal.cs (4)
142if (AdvSimd.Arm64.IsSupported) 144if (typeof(T) == typeof(double)) return AdvSimd.Arm64.ReciprocalEstimate(x.AsDouble()).As<double, T>(); 202if (AdvSimd.Arm64.IsSupported) 204if (typeof(T) == typeof(double)) return AdvSimd.Arm64.ReciprocalSquareRootEstimate(x.AsDouble()).As<double, T>();
System\Numerics\Tensors\netcore\TensorPrimitives.Round.cs (2)
250if (AdvSimd.Arm64.IsSupported) 252return AdvSimd.Arm64.RoundAwayFromZero(x.AsDouble()).As<double, T>();
System\Numerics\Tensors\netcore\TensorPrimitives.TrailingZeroCount.cs (3)
31(AdvSimd.Arm64.IsSupported && sizeof(T) == 1) || 39if (AdvSimd.Arm64.IsSupported && sizeof(T) == 1) 41return AdvSimd.LeadingZeroCount(AdvSimd.Arm64.ReverseElementBits(x.AsByte())).As<byte, T>();
System.Private.CoreLib (170)
src\libraries\Common\src\System\HexConverter.cs (12)
98[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 101Debug.Assert(Ssse3.IsSupported || AdvSimd.Arm64.IsSupported); 117[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 190if ((AdvSimd.Arm64.IsSupported || Ssse3.IsSupported) && (source.Length >= (Vector128<byte>.Count / 2))) 207if ((AdvSimd.Arm64.IsSupported || Ssse3.IsSupported) && (source.Length >= (Vector128<ushort>.Count / 2))) 277if (BitConverter.IsLittleEndian && (Ssse3.IsSupported || AdvSimd.Arm64.IsSupported || PackedSimd.IsSupported) && 289if (BitConverter.IsLittleEndian && (Ssse3.IsSupported || AdvSimd.Arm64.IsSupported || PackedSimd.IsSupported) && 299[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 304Debug.Assert(Ssse3.IsSupported || AdvSimd.Arm64.IsSupported || PackedSimd.IsSupported); 393else if (AdvSimd.Arm64.IsSupported) 396Vector128<short> even = AdvSimd.Arm64.TransposeEven(nibbles, Vector128<byte>.Zero).AsInt16(); 397Vector128<short> odd = AdvSimd.Arm64.TransposeOdd(nibbles, Vector128<byte>.Zero).AsInt16();
src\libraries\System.Private.CoreLib\src\System\Buffers\Text\Base64Helper\Base64DecoderHelper.cs (30)
78if (AdvSimd.Arm64.IsSupported && (end >= src)) 89if ((Ssse3.IsSupported || AdvSimd.Arm64.IsSupported) && BitConverter.IsLittleEndian && (end >= src)) 966[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 969Debug.Assert((Ssse3.IsSupported || AdvSimd.Arm64.IsSupported) && BitConverter.IsLittleEndian); 977return AdvSimd.Arm64.VectorTableLookup(left, right & mask8F); 982[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 1056Vector128<byte> decOne1 = AdvSimd.Arm64.VectorTableLookup(decLutOne, str1); 1057Vector128<byte> decOne2 = AdvSimd.Arm64.VectorTableLookup(decLutOne, str2); 1058Vector128<byte> decOne3 = AdvSimd.Arm64.VectorTableLookup(decLutOne, str3); 1059Vector128<byte> decOne4 = AdvSimd.Arm64.VectorTableLookup(decLutOne, str4); 1076decTwo1 = AdvSimd.Arm64.VectorTableLookupExtension(decTwo1, decLutTwo, decTwo1); 1077decTwo2 = AdvSimd.Arm64.VectorTableLookupExtension(decTwo2, decLutTwo, decTwo2); 1078decTwo3 = AdvSimd.Arm64.VectorTableLookupExtension(decTwo3, decLutTwo, decTwo3); 1079decTwo4 = AdvSimd.Arm64.VectorTableLookupExtension(decTwo4, decLutTwo, decTwo4); 1110AdvSimd.Arm64.StoreVectorAndZip(dest, (res1, res2, res3)); 1122[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 1128Debug.Assert((Ssse3.IsSupported || AdvSimd.Arm64.IsSupported) && BitConverter.IsLittleEndian); 1243else if (AdvSimd.Arm64.IsSupported) 1245Vector128<ushort> evens = AdvSimd.ShiftLeftLogicalWideningLower(AdvSimd.Arm64.UnzipEven(str, one).GetLower(), 6); 1246Vector128<ushort> odds = AdvSimd.Arm64.TransposeOdd(str, Vector128<byte>.Zero).AsUInt16(); 1265else if (AdvSimd.Arm64.IsSupported) 1267Vector128<int> ievens = AdvSimd.ShiftLeftLogicalWideningLower(AdvSimd.Arm64.UnzipEven(merge_ab_and_bc, one.AsInt16()).GetLower(), 12); 1268Vector128<int> iodds = AdvSimd.Arm64.TransposeOdd(merge_ab_and_bc, Vector128<short>.Zero).AsInt32(); 1415[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 1505[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 1510(str1, str2, str3, str4) = AdvSimd.Arm64.Load4xVector128AndUnzip(src); 1636[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 1699[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 1704var (s11, s12, s21, s22) = AdvSimd.Arm64.Load4xVector128AndUnzip(src); 1705var (s31, s32, s41, s42) = AdvSimd.Arm64.Load4xVector128AndUnzip(src + 32);
src\libraries\System.Private.CoreLib\src\System\Buffers\Text\Base64Helper\Base64EncoderHelper.cs (18)
64if (AdvSimd.Arm64.IsSupported && (end >= src)) 73if ((Ssse3.IsSupported || AdvSimd.Arm64.IsSupported) && BitConverter.IsLittleEndian && (end >= src)) 382[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 407(str1, str2, str3) = AdvSimd.Arm64.Load3xVector128AndUnzip(src); 424res1 = AdvSimd.Arm64.VectorTableLookup((tblEnc1, tblEnc2, tblEnc3, tblEnc4), res1); 425res2 = AdvSimd.Arm64.VectorTableLookup((tblEnc1, tblEnc2, tblEnc3, tblEnc4), res2); 426res3 = AdvSimd.Arm64.VectorTableLookup((tblEnc1, tblEnc2, tblEnc3, tblEnc4), res3); 427res4 = AdvSimd.Arm64.VectorTableLookup((tblEnc1, tblEnc2, tblEnc3, tblEnc4), res4); 442[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 500else if (AdvSimd.Arm64.IsSupported) 502Vector128<ushort> odd = Vector128.ShiftRightLogical(AdvSimd.Arm64.UnzipOdd(t0.AsUInt16(), t0.AsUInt16()), 6); 503Vector128<ushort> even = Vector128.ShiftRightLogical(AdvSimd.Arm64.UnzipEven(t0.AsUInt16(), t0.AsUInt16()), 10); 504t1 = AdvSimd.Arm64.ZipLow(even, odd); 785[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 790AdvSimd.Arm64.StoreVectorAndZip(dest, (res1, res2, res3, res4)); 869[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 878AdvSimd.Arm64.StoreVectorAndZip(dest, (utf16LowVector1, utf16LowVector2, utf16LowVector3, utf16LowVector4)); 879AdvSimd.Arm64.StoreVectorAndZip(dest + 32, (utf16HighVector1, utf16HighVector2, utf16HighVector3, utf16HighVector4));
src\libraries\System.Private.CoreLib\src\System\Buffers\Text\Base64Url\Base64UrlDecoder.cs (4)
375[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 460[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 519[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 545[CompExactlyDependsOn(typeof(AdvSimd.Arm64))]
src\libraries\System.Private.CoreLib\src\System\Buffers\Text\Base64Url\Base64UrlEncoder.cs (2)
301[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 357[CompExactlyDependsOn(typeof(AdvSimd.Arm64))]
src\libraries\System.Private.CoreLib\src\System\Guid.cs (5)
1349if ((Ssse3.IsSupported || AdvSimd.Arm64.IsSupported) && BitConverter.IsLittleEndian) 1516[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 1519Debug.Assert((Ssse3.IsSupported || AdvSimd.Arm64.IsSupported) && BitConverter.IsLittleEndian); 1557if (AdvSimd.Arm64.IsSupported) 1564Vector128<byte> mid = AdvSimd.Arm64.VectorTableLookup((hexLow, hexHigh),
src\libraries\System.Private.CoreLib\src\System\Numerics\BitOperations.cs (4)
437if (AdvSimd.Arm64.IsSupported) 442Vector64<byte> aggregated = AdvSimd.Arm64.AddAcross(AdvSimd.PopCount(input.AsByte())); 478if (AdvSimd.Arm64.IsSupported) 482Vector64<byte> aggregated = AdvSimd.Arm64.AddAcross(AdvSimd.PopCount(input.AsByte()));
src\libraries\System.Private.CoreLib\src\System\Numerics\Matrix4x4.Impl.cs (9)
1560if (AdvSimd.Arm64.IsSupported) 1567Vector128<float> lowerXZ = AdvSimd.Arm64.ZipLow(x, z); // x[0], z[0], x[1], z[1] 1568Vector128<float> lowerYW = AdvSimd.Arm64.ZipLow(y, w); // y[0], w[0], y[1], w[1] 1569Vector128<float> upperXZ = AdvSimd.Arm64.ZipHigh(x, z); // x[2], z[2], x[3], z[3] 1570Vector128<float> upperYW = AdvSimd.Arm64.ZipHigh(y, w); // y[2], w[2], y[3], z[3] 1572result.X = AdvSimd.Arm64.ZipLow(lowerXZ, lowerYW).AsVector4(); // x[0], y[0], z[0], w[0] 1573result.Y = AdvSimd.Arm64.ZipHigh(lowerXZ, lowerYW).AsVector4(); // x[1], y[1], z[1], w[1] 1574result.Z = AdvSimd.Arm64.ZipLow(upperXZ, upperYW).AsVector4(); // x[2], y[2], z[2], w[2] 1575result.W = AdvSimd.Arm64.ZipHigh(upperXZ, upperYW).AsVector4(); // x[3], y[3], z[3], w[3]
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\Vector128.cs (6)
4477[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 4485else if (!AdvSimd.Arm64.IsSupported) 4489return AdvSimd.Arm64.ZipLow(left, right); 4493[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 4501else if (!AdvSimd.Arm64.IsSupported) 4505return AdvSimd.Arm64.ZipHigh(left, right);
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\VectorMath.cs (4)
2593if (AdvSimd.Arm64.IsSupported) 2595result = (TVectorSingle)(object)AdvSimd.Arm64.ConvertToSingleLower((Vector128<double>)(object)vector); 2910if (AdvSimd.Arm64.IsSupported) 2912result = (TVectorDouble)(object)AdvSimd.Arm64.ConvertToDouble((Vector64<float>)(object)vector);
src\libraries\System.Private.CoreLib\src\System\SearchValues\IndexOfAnyAsciiSearcher.cs (1)
33internal static bool IsVectorizationSupported => Ssse3.IsSupported || AdvSimd.Arm64.IsSupported || PackedSimd.IsSupported;
src\libraries\System.Private.CoreLib\src\System\SearchValues\ProbabilisticMap.cs (15)
83if (Sse41.IsSupported || AdvSimd.Arm64.IsSupported) 95private static bool IsCharBitSet(ref uint charMap, byte value) => Sse41.IsSupported || AdvSimd.Arm64.IsSupported 221[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 236else if (AdvSimd.Arm64.IsSupported) 238sourceLower = AdvSimd.Arm64.UnzipEven(source0.AsByte(), source1.AsByte()); 239sourceUpper = AdvSimd.Arm64.UnzipOdd(source0.AsByte(), source1.AsByte()); 260[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 271if (AdvSimd.Arm64.IsSupported) 273bitMask = AdvSimd.Arm64.VectorTableLookup((charMapLower, charMapUpper), index); 395if ((Sse41.IsSupported || AdvSimd.Arm64.IsSupported) && searchSpaceLength >= 16) 409if ((Sse41.IsSupported || AdvSimd.Arm64.IsSupported) && searchSpaceLength >= 16) 502[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 507Debug.Assert(Sse41.IsSupported || AdvSimd.Arm64.IsSupported); 680[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 685Debug.Assert(Sse41.IsSupported || AdvSimd.Arm64.IsSupported);
src\libraries\System.Private.CoreLib\src\System\SearchValues\SearchValues.cs (1)
209if (Sse41.IsSupported || AdvSimd.Arm64.IsSupported)
src\libraries\System.Private.CoreLib\src\System\SearchValues\Strings\AsciiStringSearchValuesTeddyBase.cs (4)
152[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 172[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 192[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 352[CompExactlyDependsOn(typeof(AdvSimd.Arm64))]
src\libraries\System.Private.CoreLib\src\System\SearchValues\Strings\AsciiStringSearchValuesTeddyBucketizedN2.cs (1)
20[CompExactlyDependsOn(typeof(AdvSimd.Arm64))]
src\libraries\System.Private.CoreLib\src\System\SearchValues\Strings\AsciiStringSearchValuesTeddyBucketizedN3.cs (1)
20[CompExactlyDependsOn(typeof(AdvSimd.Arm64))]
src\libraries\System.Private.CoreLib\src\System\SearchValues\Strings\AsciiStringSearchValuesTeddyNonBucketizedN2.cs (1)
20[CompExactlyDependsOn(typeof(AdvSimd.Arm64))]
src\libraries\System.Private.CoreLib\src\System\SearchValues\Strings\AsciiStringSearchValuesTeddyNonBucketizedN3.cs (1)
20[CompExactlyDependsOn(typeof(AdvSimd.Arm64))]
src\libraries\System.Private.CoreLib\src\System\SearchValues\Strings\Helpers\TeddyHelper.cs (6)
19[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 92[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 218[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 228else if (AdvSimd.Arm64.IsSupported) 230return AdvSimd.Arm64.UnzipEven(source0.AsByte(), source1.AsByte()); 318[CompExactlyDependsOn(typeof(AdvSimd.Arm64))]
src\libraries\System.Private.CoreLib\src\System\SearchValues\Strings\SingleStringSearchValuesPackedThreeChars.cs (5)
52Debug.Assert(Sse2.IsSupported || AdvSimd.Arm64.IsSupported); 185else if ((Sse2.IsSupported || AdvSimd.Arm64.IsSupported) && searchSpaceMinusValueTailLength - Vector128<byte>.Count >= 0) 252[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 392[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 400: AdvSimd.Arm64.UnzipEven(input0.AsByte(), input1.AsByte());
src\libraries\System.Private.CoreLib\src\System\SearchValues\Strings\StringSearchValues.cs (2)
130if ((Ssse3.IsSupported || AdvSimd.Arm64.IsSupported) && 462(AdvSimd.Arm64.IsSupported && c <= byte.MaxValue);
src\libraries\System.Private.CoreLib\src\System\Text\Ascii.Utility.cs (24)
65[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 68if (!AdvSimd.Arm64.IsSupported || !BitConverter.IsLittleEndian) 78extractedBits = AdvSimd.Arm64.AddPairwise(extractedBits, extractedBits); 372Debug.Assert(Sse2.IsSupported || AdvSimd.Arm64.IsSupported, "Sse2 or AdvSimd64 required."); 403else if (AdvSimd.Arm64.IsSupported) 463else if (AdvSimd.Arm64.IsSupported) 509else if (AdvSimd.Arm64.IsSupported) 545else if (AdvSimd.Arm64.IsSupported) 603else if (AdvSimd.Arm64.IsSupported) 973Debug.Assert(Sse2.IsSupported || AdvSimd.Arm64.IsSupported, "Should've been checked by caller."); 1145else if (AdvSimd.Arm64.IsSupported) 1154ulong asciiCompareMask = AdvSimd.Arm64.UnzipOdd(compareResult, compareResult).AsUInt64().ToScalar(); 1536else if (AdvSimd.Arm64.IsSupported) 1538Vector128<byte> maxBytes = AdvSimd.Arm64.MaxPairwise(asciiVector, asciiVector); 1566else if (AdvSimd.Arm64.IsSupported) 1570Vector128<ushort> maxChars = AdvSimd.Arm64.MaxPairwise(utf16Vector, utf16Vector); 1622AdvSimd.Arm64.IsSupported ? AllBytesInUInt64AreAscii(AdvSimd.Arm64.MaxPairwise(vector.AsByte(), vector.AsByte()).AsUInt64().ToScalar()) : 1628AdvSimd.Arm64.IsSupported ? AllCharsInUInt64AreAscii(AdvSimd.Arm64.MaxPairwise(vector.AsUInt16(), vector.AsUInt16()).AsUInt64().ToScalar()) : 1679else if (AdvSimd.Arm64.IsSupported) 1681return AdvSimd.Arm64.UnzipEven(vectorFirst.AsByte(), vectorSecond.AsByte()); 2281if (AdvSimd.Arm64.IsSupported) 2284Vector128<ulong> vecWide = AdvSimd.Arm64.ZipLow(vecNarrow, Vector128<byte>.Zero).AsUInt64();
src\libraries\System.Private.CoreLib\src\System\Text\Unicode\Utf16Utility.Validation.cs (5)
21if (AdvSimd.Arm64.IsSupported) 26ulong mask = AdvSimd.Arm64.UnzipOdd(cmp.AsByte(), cmp.AsByte()).AsUInt64().ToScalar(); 43if (AdvSimd.Arm64.IsSupported) 55if (AdvSimd.Arm64.IsSupported) 142if (AdvSimd.Arm64.IsSupported)
src\libraries\System.Private.CoreLib\src\System\Text\Unicode\Utf8Utility.Transcoding.cs (4)
886if (Sse41.X64.IsSupported || (AdvSimd.Arm64.IsSupported && BitConverter.IsLittleEndian)) 946if (Sse41.X64.IsSupported || (AdvSimd.Arm64.IsSupported && BitConverter.IsLittleEndian)) 961if (AdvSimd.Arm64.IsSupported) 964bool hasNonAsciiDataInVector = AdvSimd.Arm64.MinPairwise(isUtf16DataNonAscii, isUtf16DataNonAscii).AsUInt64().ToScalar() != 0;
src\libraries\System.Private.CoreLib\src\System\Text\Unicode\Utf8Utility.Validation.cs (5)
126if (AdvSimd.Arm64.IsSupported && BitConverter.IsLittleEndian) 184Debug.Assert((AdvSimd.Arm64.IsSupported && BitConverter.IsLittleEndian) || Sse2.IsSupported); 752[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 755if (!AdvSimd.Arm64.IsSupported || !BitConverter.IsLittleEndian) 762extractedBits = AdvSimd.Arm64.AddPairwise(extractedBits, extractedBits);