3 types derived from AdvSimd
System.Private.CoreLib (3)
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\Arm\Dp.PlatformNotSupported.cs (1)
11public abstract class Dp : AdvSimd
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\Arm\Rdm.PlatformNotSupported.cs (1)
11public abstract class Rdm : AdvSimd
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\Arm\Sve.PlatformNotSupported.cs (1)
19abstract class Sve : AdvSimd
324 references to AdvSimd
Microsoft.CodeAnalysis (2)
Hashing\XxHashShared.cs (2)
708if (AdvSimd.IsSupported) 712return AdvSimd.MultiplyWideningLower(sourceLow, sourceHigh);
Microsoft.CodeAnalysis.Workspaces (2)
src\Compilers\Core\Portable\Hashing\XxHashShared.cs (2)
708if (AdvSimd.IsSupported) 712return AdvSimd.MultiplyWideningLower(sourceLow, sourceHigh);
System.Collections (10)
System\Collections\BitArray.cs (10)
916else if (AdvSimd.Arm64.IsSupported) 944vector = AdvSimd.Arm64.ZipLow(vector, vector); 945vector = AdvSimd.Arm64.ZipLow(vector, vector); 947Vector128<byte> shuffledLower = AdvSimd.Arm64.ZipLow(vector, vector); 948Vector128<byte> extractedLower = AdvSimd.And(shuffledLower, bitMask128); 949Vector128<byte> normalizedLower = AdvSimd.Min(extractedLower, ones); 951Vector128<byte> shuffledHigher = AdvSimd.Arm64.ZipHigh(vector, vector); 952Vector128<byte> extractedHigher = AdvSimd.And(shuffledHigher, bitMask128); 953Vector128<byte> normalizedHigher = AdvSimd.Min(extractedHigher, ones); 955AdvSimd.Arm64.StorePair((byte*)destination + i, normalizedLower, normalizedHigher);
System.IO.Hashing (7)
System\IO\Hashing\VectorHelper.cs (5)
18public static bool IsSupported => Pclmulqdq.IsSupported || (Aes.IsSupported && AdvSimd.IsSupported); 108if (AdvSimd.IsSupported) 110return AdvSimd.ExtractVector128(operand.AsByte(), Vector128<byte>.Zero, numBytesToShift).AsUInt64(); 125if (AdvSimd.IsSupported) 127return AdvSimd.ExtractVector128(Vector128<byte>.Zero, operand.AsByte(), 8).AsUInt64();
System\IO\Hashing\XxHashShared.cs (2)
699if (AdvSimd.IsSupported) 703return AdvSimd.MultiplyWideningLower(sourceLow, sourceHigh);
System.Numerics.Tensors (30)
System\Numerics\Tensors\netcore\TensorPrimitives.LeadingZeroCount.cs (5)
34(AdvSimd.IsSupported && (sizeof(T) == 1 || sizeof(T) == 2 || sizeof(T) == 4)); 80Debug.Assert(AdvSimd.IsSupported); 82if (sizeof(T) == 1) return AdvSimd.LeadingZeroCount(x.AsByte()).As<byte, T>(); 83if (sizeof(T) == 2) return AdvSimd.LeadingZeroCount(x.AsUInt16()).As<ushort, T>(); 86return AdvSimd.LeadingZeroCount(x.AsUInt32()).As<uint, T>();
System\Numerics\Tensors\netcore\TensorPrimitives.PopCount.cs (9)
53(sizeof(T) is 1 or 2 or 4) || (AdvSimd.IsSupported && sizeof(T) == 8); 60if (AdvSimd.IsSupported) 62Vector128<byte> cnt = AdvSimd.PopCount(x.AsByte()); 71return AdvSimd.AddPairwiseWidening(cnt).As<ushort, T>(); 76return AdvSimd.AddPairwiseWidening(AdvSimd.AddPairwiseWidening(cnt)).As<uint, T>(); 81return AdvSimd.AddPairwiseWidening(AdvSimd.AddPairwiseWidening(AdvSimd.AddPairwiseWidening(cnt))).As<ulong, T>();
System\Numerics\Tensors\netcore\TensorPrimitives.Reciprocal.cs (8)
111if (AdvSimd.IsSupported) 113if (typeof(T) == typeof(float)) return AdvSimd.ReciprocalEstimate(x.AsSingle()).As<float, T>(); 116if (AdvSimd.Arm64.IsSupported) 118if (typeof(T) == typeof(double)) return AdvSimd.Arm64.ReciprocalEstimate(x.AsDouble()).As<double, T>(); 177if (AdvSimd.IsSupported) 179if (typeof(T) == typeof(float)) return AdvSimd.ReciprocalSquareRootEstimate(x.AsSingle()).As<float, T>(); 182if (AdvSimd.Arm64.IsSupported) 184if (typeof(T) == typeof(double)) return AdvSimd.Arm64.ReciprocalSquareRootEstimate(x.AsDouble()).As<double, T>();
System\Numerics\Tensors\netcore\TensorPrimitives.Round.cs (4)
248if (AdvSimd.IsSupported) 250return AdvSimd.RoundAwayFromZero(x.AsSingle()).As<float, T>(); 257if (AdvSimd.Arm64.IsSupported) 259return AdvSimd.Arm64.RoundAwayFromZero(x.AsDouble()).As<double, T>();
System\Numerics\Tensors\netcore\TensorPrimitives.TrailingZeroCount.cs (4)
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 (272)
src\libraries\Common\src\System\HexConverter.cs (12)
97[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 100Debug.Assert(Ssse3.IsSupported || AdvSimd.Arm64.IsSupported); 113[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 170if ((AdvSimd.Arm64.IsSupported || Ssse3.IsSupported) && bytes.Length >= 4) 247if (BitConverter.IsLittleEndian && (Ssse3.IsSupported || AdvSimd.Arm64.IsSupported || PackedSimd.IsSupported) && 257[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 262Debug.Assert(Ssse3.IsSupported || AdvSimd.Arm64.IsSupported || PackedSimd.IsSupported); 311else if (AdvSimd.Arm64.IsSupported) 314Vector128<short> even = AdvSimd.Arm64.TransposeEven(nibbles, Vector128<byte>.Zero).AsInt16(); 315Vector128<short> odd = AdvSimd.Arm64.TransposeOdd(nibbles, Vector128<byte>.Zero).AsInt16(); 316even = AdvSimd.ShiftLeftLogical(even, 4).AsInt16(); 317output = AdvSimd.AddSaturate(even, odd).AsByte();
src\libraries\System.Private.CoreLib\src\System\Buffers\Text\Base64Helper\Base64DecoderHelper.cs (32)
76if (AdvSimd.Arm64.IsSupported && (end >= src)) 88if ((Ssse3.IsSupported || AdvSimd.Arm64.IsSupported) && BitConverter.IsLittleEndian && (end >= src)) 824[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 828Debug.Assert((Ssse3.IsSupported || AdvSimd.Arm64.IsSupported) && BitConverter.IsLittleEndian); 836return AdvSimd.Arm64.VectorTableLookup(left, right & mask8F); 842[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 916Vector128<byte> decOne1 = AdvSimd.Arm64.VectorTableLookup(decLutOne, str1); 917Vector128<byte> decOne2 = AdvSimd.Arm64.VectorTableLookup(decLutOne, str2); 918Vector128<byte> decOne3 = AdvSimd.Arm64.VectorTableLookup(decLutOne, str3); 919Vector128<byte> decOne4 = AdvSimd.Arm64.VectorTableLookup(decLutOne, str4); 930Vector128<byte> decTwo1 = AdvSimd.SubtractSaturate(str1, offset); 931Vector128<byte> decTwo2 = AdvSimd.SubtractSaturate(str2, offset); 932Vector128<byte> decTwo3 = AdvSimd.SubtractSaturate(str3, offset); 933Vector128<byte> decTwo4 = AdvSimd.SubtractSaturate(str4, offset); 936decTwo1 = AdvSimd.Arm64.VectorTableLookupExtension(decTwo1, decLutTwo, decTwo1); 937decTwo2 = AdvSimd.Arm64.VectorTableLookupExtension(decTwo2, decLutTwo, decTwo2); 938decTwo3 = AdvSimd.Arm64.VectorTableLookupExtension(decTwo3, decLutTwo, decTwo3); 939decTwo4 = AdvSimd.Arm64.VectorTableLookupExtension(decTwo4, decLutTwo, decTwo4); 970AdvSimd.Arm64.StoreVectorAndZip(dest, (res1, res2, res3)); 984[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 991Debug.Assert((Ssse3.IsSupported || AdvSimd.Arm64.IsSupported) && BitConverter.IsLittleEndian); 1106else if (AdvSimd.Arm64.IsSupported) 1108Vector128<ushort> evens = AdvSimd.ShiftLeftLogicalWideningLower(AdvSimd.Arm64.UnzipEven(str, one).GetLower(), 6); 1109Vector128<ushort> odds = AdvSimd.Arm64.TransposeOdd(str, Vector128<byte>.Zero).AsUInt16(); 1128else if (AdvSimd.Arm64.IsSupported) 1130Vector128<int> ievens = AdvSimd.ShiftLeftLogicalWideningLower(AdvSimd.Arm64.UnzipEven(merge_ab_and_bc, one.AsInt16()).GetLower(), 12); 1131Vector128<int> iodds = AdvSimd.Arm64.TransposeOdd(merge_ab_and_bc, Vector128<short>.Zero).AsInt32(); 1279[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 1375[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 1380(str1, str2, str3, str4) = AdvSimd.Arm64.Load4xVector128AndUnzip(src);
src\libraries\System.Private.CoreLib\src\System\Buffers\Text\Base64Helper\Base64EncoderHelper.cs (25)
63if (AdvSimd.Arm64.IsSupported && (end >= src)) 73if ((Ssse3.IsSupported || AdvSimd.Arm64.IsSupported) && BitConverter.IsLittleEndian && (end >= src)) 387[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 412(str1, str2, str3) = AdvSimd.Arm64.Load3xVector128AndUnzip(src); 415res1 = AdvSimd.ShiftRightLogical(str1, 2); 416res2 = AdvSimd.ShiftRightLogical(str2, 4); 417res3 = AdvSimd.ShiftRightLogical(str3, 6); 418res2 = AdvSimd.ShiftLeftAndInsert(res2, str1, 4); 419res3 = AdvSimd.ShiftLeftAndInsert(res3, str2, 2); 422res2 &= AdvSimd.DuplicateToVector128((byte)0x3F); 423res3 &= AdvSimd.DuplicateToVector128((byte)0x3F); 424res4 = str3 & AdvSimd.DuplicateToVector128((byte)0x3F); 429res1 = AdvSimd.Arm64.VectorTableLookup((tblEnc1, tblEnc2, tblEnc3, tblEnc4), res1); 430res2 = AdvSimd.Arm64.VectorTableLookup((tblEnc1, tblEnc2, tblEnc3, tblEnc4), res2); 431res3 = AdvSimd.Arm64.VectorTableLookup((tblEnc1, tblEnc2, tblEnc3, tblEnc4), res3); 432res4 = AdvSimd.Arm64.VectorTableLookup((tblEnc1, tblEnc2, tblEnc3, tblEnc4), res4); 449[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 508else if (AdvSimd.Arm64.IsSupported) 510Vector128<ushort> odd = Vector128.ShiftRightLogical(AdvSimd.Arm64.UnzipOdd(t0.AsUInt16(), t0.AsUInt16()), 6); 511Vector128<ushort> even = Vector128.ShiftRightLogical(AdvSimd.Arm64.UnzipEven(t0.AsUInt16(), t0.AsUInt16()), 10); 512t1 = AdvSimd.Arm64.ZipLow(even, odd); 554else if (AdvSimd.IsSupported) 556indices = AdvSimd.SubtractSaturate(str.AsByte(), const51); 755[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 760AdvSimd.Arm64.StoreVectorAndZip(dest, (res1, res2, res3, res4));
src\libraries\System.Private.CoreLib\src\System\Buffers\Text\Base64Url\Base64UrlDecoder.cs (6)
495[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 586[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 647[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 741[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 746var (s11, s12, s21, s22) = AdvSimd.Arm64.Load4xVector128AndUnzip(src); 747var (s31, s32, s41, s42) = AdvSimd.Arm64.Load4xVector128AndUnzip(src + 32);
src\libraries\System.Private.CoreLib\src\System\Buffers\Text\Base64Url\Base64UrlEncoder.cs (4)
304[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 410[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 419AdvSimd.Arm64.StoreVectorAndZip(dest, (utf16LowVector1, utf16LowVector2, utf16LowVector3, utf16LowVector4)); 420AdvSimd.Arm64.StoreVectorAndZip(dest + 32, (utf16HighVector1, utf16HighVector2, utf16HighVector3, utf16HighVector4));
src\libraries\System.Private.CoreLib\src\System\Guid.cs (5)
1248if ((Ssse3.IsSupported || AdvSimd.Arm64.IsSupported) && BitConverter.IsLittleEndian) 1415[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 1418Debug.Assert((Ssse3.IsSupported || AdvSimd.Arm64.IsSupported) && BitConverter.IsLittleEndian); 1456if (AdvSimd.Arm64.IsSupported) 1463Vector128<byte> mid = AdvSimd.Arm64.VectorTableLookup((hexLow, hexHigh),
src\libraries\System.Private.CoreLib\src\System\Math.cs (2)
1376if (AdvSimd.IsSupported) 1377return AdvSimd.RoundAwayFromZeroScalar(Vector64.CreateScalarUnsafe(value)).ToScalar();
src\libraries\System.Private.CoreLib\src\System\MathF.cs (2)
403if (AdvSimd.IsSupported) 404return AdvSimd.RoundAwayFromZeroScalar(Vector64.CreateScalarUnsafe(x)).ToScalar();
src\libraries\System.Private.CoreLib\src\System\Numerics\BitOperations.cs (6)
441if (AdvSimd.Arm64.IsSupported) 446Vector64<byte> aggregated = AdvSimd.Arm64.AddAcross(AdvSimd.PopCount(input.AsByte())); 482if (AdvSimd.Arm64.IsSupported) 486Vector64<byte> aggregated = AdvSimd.Arm64.AddAcross(AdvSimd.PopCount(input.AsByte()));
src\libraries\System.Private.CoreLib\src\System\Numerics\Matrix4x4.Impl.cs (9)
1660if (AdvSimd.Arm64.IsSupported) 1667Vector128<float> lowerXZ = AdvSimd.Arm64.ZipLow(x, z); // x[0], z[0], x[1], z[1] 1668Vector128<float> lowerYW = AdvSimd.Arm64.ZipLow(y, w); // y[0], w[0], y[1], w[1] 1669Vector128<float> upperXZ = AdvSimd.Arm64.ZipHigh(x, z); // x[2], z[2], x[3], z[3] 1670Vector128<float> upperYW = AdvSimd.Arm64.ZipHigh(y, w); // y[2], w[2], y[3], z[3] 1672result.X = AdvSimd.Arm64.ZipLow(lowerXZ, lowerYW).AsVector4(); // x[0], y[0], z[0], w[0] 1673result.Y = AdvSimd.Arm64.ZipHigh(lowerXZ, lowerYW).AsVector4(); // x[1], y[1], z[1], w[1] 1674result.Z = AdvSimd.Arm64.ZipLow(upperXZ, upperYW).AsVector4(); // x[2], y[2], z[2], w[2] 1675result.W = AdvSimd.Arm64.ZipHigh(upperXZ, upperYW).AsVector4(); // x[3], y[3], z[3], w[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
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\Vector128.cs (16)
1142if (AdvSimd.IsSupported) 4263[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 4271else if (!AdvSimd.Arm64.IsSupported) 4275return AdvSimd.Arm64.ZipLow(left, right); 4279[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 4287else if (!AdvSimd.Arm64.IsSupported) 4291return AdvSimd.Arm64.ZipHigh(left, right); 4297[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 4310else if (!AdvSimd.Arm64.IsSupported) 4314return AdvSimd.AddSaturate(left, right); 4318[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 4331else if (!AdvSimd.Arm64.IsSupported) 4335return AdvSimd.SubtractSaturate(left, right); 4339[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 4352else if (!AdvSimd.Arm64.IsSupported) 4356return AdvSimd.AddSaturate(left, right);
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\VectorMath.cs (4)
2592if (AdvSimd.Arm64.IsSupported) 2594result = (TVectorSingle)(object)AdvSimd.Arm64.ConvertToSingleLower((Vector128<double>)(object)vector); 2905if (AdvSimd.Arm64.IsSupported) 2907result = (TVectorDouble)(object)AdvSimd.Arm64.ConvertToDouble((Vector64<float>)(object)vector);
src\libraries\System.Private.CoreLib\src\System\SearchValues\Any2CharPackedIgnoreCaseSearchValues.cs (2)
53[CompExactlyDependsOn(typeof(AdvSimd))] 61[CompExactlyDependsOn(typeof(AdvSimd))]
src\libraries\System.Private.CoreLib\src\System\SearchValues\AnyByteSearchValues.cs (6)
27[CompExactlyDependsOn(typeof(AdvSimd))] 35[CompExactlyDependsOn(typeof(AdvSimd))] 43[CompExactlyDependsOn(typeof(AdvSimd))] 51[CompExactlyDependsOn(typeof(AdvSimd))] 59[CompExactlyDependsOn(typeof(AdvSimd))] 67[CompExactlyDependsOn(typeof(AdvSimd))]
src\libraries\System.Private.CoreLib\src\System\SearchValues\AsciiByteSearchValues.cs (7)
23Debug.Assert(Ascii.IsValid(values) || (AdvSimd.IsSupported && TUniqueLowNibble.Value)); 43[CompExactlyDependsOn(typeof(AdvSimd))] 51[CompExactlyDependsOn(typeof(AdvSimd))] 59[CompExactlyDependsOn(typeof(AdvSimd))] 67[CompExactlyDependsOn(typeof(AdvSimd))] 75[CompExactlyDependsOn(typeof(AdvSimd))] 83[CompExactlyDependsOn(typeof(AdvSimd))]
src\libraries\System.Private.CoreLib\src\System\SearchValues\AsciiCharSearchValues.cs (7)
24Debug.Assert(Ascii.IsValid(values) || (AdvSimd.IsSupported && TUniqueLowNibble.Value)); 44[CompExactlyDependsOn(typeof(AdvSimd))] 52[CompExactlyDependsOn(typeof(AdvSimd))] 60[CompExactlyDependsOn(typeof(AdvSimd))] 68[CompExactlyDependsOn(typeof(AdvSimd))] 76[CompExactlyDependsOn(typeof(AdvSimd))] 84[CompExactlyDependsOn(typeof(AdvSimd))]
src\libraries\System.Private.CoreLib\src\System\SearchValues\IndexOfAnyAsciiSearcher.cs (22)
33internal static bool IsVectorizationSupported => Ssse3.IsSupported || AdvSimd.Arm64.IsSupported || PackedSimd.IsSupported; 263[CompExactlyDependsOn(typeof(AdvSimd))] 273[CompExactlyDependsOn(typeof(AdvSimd))] 282[CompExactlyDependsOn(typeof(AdvSimd))] 420[CompExactlyDependsOn(typeof(AdvSimd))] 551[CompExactlyDependsOn(typeof(AdvSimd))] 560[CompExactlyDependsOn(typeof(AdvSimd))] 568[CompExactlyDependsOn(typeof(AdvSimd))] 699[CompExactlyDependsOn(typeof(AdvSimd))] 825[CompExactlyDependsOn(typeof(AdvSimd))] 833[CompExactlyDependsOn(typeof(AdvSimd))] 840[CompExactlyDependsOn(typeof(AdvSimd))] 974[CompExactlyDependsOn(typeof(AdvSimd))] 1103[CompExactlyDependsOn(typeof(AdvSimd))] 1119[CompExactlyDependsOn(typeof(AdvSimd))] 1154Vector128<byte> highNibbles = AdvSimd.IsSupported 1155? AdvSimd.ShiftRightArithmetic(source.AsSByte(), 4).AsByte() 1205[CompExactlyDependsOn(typeof(AdvSimd))] 1402[CompExactlyDependsOn(typeof(AdvSimd))] 1410else if (AdvSimd.IsSupported) 1412return AdvSimd.ExtractNarrowingSaturateUpper(AdvSimd.ExtractNarrowingSaturateLower(lower), upper);
src\libraries\System.Private.CoreLib\src\System\SearchValues\ProbabilisticMap.cs (16)
78if (Sse41.IsSupported || AdvSimd.Arm64.IsSupported) 89private static bool IsCharBitSet(ref uint charMap, byte value) => Sse41.IsSupported || AdvSimd.Arm64.IsSupported 215[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 230else if (AdvSimd.Arm64.IsSupported) 232sourceLower = AdvSimd.Arm64.UnzipEven(source0.AsByte(), source1.AsByte()); 233sourceUpper = AdvSimd.Arm64.UnzipOdd(source0.AsByte(), source1.AsByte()); 253[CompExactlyDependsOn(typeof(AdvSimd))] 254[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 265if (AdvSimd.Arm64.IsSupported) 267bitMask = AdvSimd.Arm64.VectorTableLookup((charMapLower, charMapUpper), index); 389if ((Sse41.IsSupported || AdvSimd.Arm64.IsSupported) && searchSpaceLength >= 16) 403if ((Sse41.IsSupported || AdvSimd.Arm64.IsSupported) && searchSpaceLength >= 16) 496[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 501Debug.Assert(Sse41.IsSupported || AdvSimd.Arm64.IsSupported); 674[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 679Debug.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 (14)
19[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 92[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 214[CompExactlyDependsOn(typeof(AdvSimd))] 224else if (AdvSimd.IsSupported) 226return AdvSimd.ExtractNarrowingSaturateUpper(AdvSimd.ExtractNarrowingSaturateLower(source0), source1); 266[CompExactlyDependsOn(typeof(AdvSimd))] 306[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 328[CompExactlyDependsOn(typeof(AdvSimd))] 341else if (AdvSimd.IsSupported) 343return AdvSimd.ExtractVector128(left, right, 15); 355[CompExactlyDependsOn(typeof(AdvSimd))] 368else if (AdvSimd.IsSupported) 370return AdvSimd.ExtractVector128(left, right, 14);
src\libraries\System.Private.CoreLib\src\System\SearchValues\Strings\StringSearchValues.cs (1)
130if ((Ssse3.IsSupported || AdvSimd.Arm64.IsSupported) &&
src\libraries\System.Private.CoreLib\src\System\Text\Ascii.Equality.cs (2)
517if (AdvSimd.IsSupported) 519return AdvSimd.ZeroExtendWideningLower(Vector64.LoadUnsafe(ref ptr));
src\libraries\System.Private.CoreLib\src\System\Text\Ascii.Utility.cs (39)
65[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 68if (!AdvSimd.Arm64.IsSupported || !BitConverter.IsLittleEndian) 74Vector128<byte> mostSignificantBitIsSet = AdvSimd.ShiftRightArithmetic(value.AsSByte(), 7).AsByte(); 75Vector128<byte> extractedBits = AdvSimd.And(mostSignificantBitIsSet, bitmask); 78extractedBits = AdvSimd.Arm64.AddPairwise(extractedBits, extractedBits); 117(Sse2.IsSupported || AdvSimd.IsSupported)) 361Debug.Assert(AdvSimd.IsSupported); 372Debug.Assert(Sse2.IsSupported || AdvSimd.Arm64.IsSupported, "Sse2 or AdvSimd64 required."); 403else if (AdvSimd.Arm64.IsSupported) 405currentAdvSimdIndex = (uint)GetIndexOfFirstNonAsciiByteInLane_AdvSimd(AdvSimd.LoadVector128(pBuffer), bitmask); // unaligned load 462else if (AdvSimd.Arm64.IsSupported) 464Vector128<byte> firstVector = AdvSimd.LoadVector128(pBuffer); 465Vector128<byte> secondVector = AdvSimd.LoadVector128(pBuffer + SizeOfVector128); 508else if (AdvSimd.Arm64.IsSupported) 510currentAdvSimdIndex = (uint)GetIndexOfFirstNonAsciiByteInLane_AdvSimd(AdvSimd.LoadVector128(pBuffer), bitmask); 543else if (AdvSimd.Arm64.IsSupported) 545currentAdvSimdIndex = (uint)GetIndexOfFirstNonAsciiByteInLane_AdvSimd(AdvSimd.LoadVector128(pBuffer), bitmask); // unaligned load 577else if (AdvSimd.IsSupported) 600else if (AdvSimd.Arm64.IsSupported) 737(Sse2.IsSupported || AdvSimd.IsSupported)) 970Debug.Assert(Sse2.IsSupported || AdvSimd.Arm64.IsSupported, "Should've been checked by caller."); 1142else if (AdvSimd.Arm64.IsSupported) 1150Vector128<byte> compareResult = AdvSimd.CompareGreaterThan(firstVector, largestAsciiValue).AsByte(); 1151ulong asciiCompareMask = AdvSimd.Arm64.UnzipOdd(compareResult, compareResult).AsUInt64().ToScalar(); 1279else if (AdvSimd.IsSupported) 1285Vector64<byte> lower = AdvSimd.ExtractNarrowingSaturateUnsignedLower(vecWide); 1533else if (AdvSimd.Arm64.IsSupported) 1535Vector128<byte> maxBytes = AdvSimd.Arm64.MaxPairwise(asciiVector, asciiVector); 1563else if (AdvSimd.Arm64.IsSupported) 1567Vector128<ushort> maxChars = AdvSimd.Arm64.MaxPairwise(utf16Vector, utf16Vector); 1619AdvSimd.Arm64.IsSupported ? AllBytesInUInt64AreAscii(AdvSimd.Arm64.MaxPairwise(vector.AsByte(), vector.AsByte()).AsUInt64().ToScalar()) : 1625AdvSimd.Arm64.IsSupported ? AllCharsInUInt64AreAscii(AdvSimd.Arm64.MaxPairwise(vector.AsUInt16(), vector.AsUInt16()).AsUInt64().ToScalar()) : 1676else if (AdvSimd.Arm64.IsSupported) 1678return AdvSimd.Arm64.UnzipEven(vectorFirst.AsByte(), vectorSecond.AsByte()); 2278if (AdvSimd.Arm64.IsSupported) 2280Vector128<byte> vecNarrow = AdvSimd.DuplicateToVector128(value).AsByte(); 2281Vector128<ulong> vecWide = AdvSimd.Arm64.ZipLow(vecNarrow, Vector128<byte>.Zero).AsUInt64();
src\libraries\System.Private.CoreLib\src\System\Text\Unicode\Utf8Utility.Transcoding.cs (13)
886if (Sse41.X64.IsSupported || (AdvSimd.Arm64.IsSupported && BitConverter.IsLittleEndian)) 946if (Sse41.X64.IsSupported || (AdvSimd.Arm64.IsSupported && BitConverter.IsLittleEndian)) 961if (AdvSimd.Arm64.IsSupported) 963Vector128<short> isUtf16DataNonAscii = AdvSimd.CompareTest(utf16Data, nonAsciiUtf16DataMask); 964bool hasNonAsciiDataInVector = AdvSimd.Arm64.MinPairwise(isUtf16DataNonAscii, isUtf16DataNonAscii).AsUInt64().ToScalar() != 0; 971Vector64<byte> lower = AdvSimd.ExtractNarrowingSaturateUnsignedLower(utf16Data); 972AdvSimd.Store(pOutputBuffer, lower); 1008if (AdvSimd.IsSupported) 1010Vector64<byte> lower = AdvSimd.ExtractNarrowingSaturateUnsignedLower(utf16Data); 1011AdvSimd.StoreSelectedScalar((uint*)pOutputBuffer, lower.AsUInt32(), 0); 1051if (AdvSimd.IsSupported) 1053Vector64<byte> lower = AdvSimd.ExtractNarrowingSaturateUnsignedLower(utf16Data); 1054AdvSimd.StoreSelectedScalar((uint*)pOutputBuffer, lower.AsUInt32(), 0);
src\libraries\System.Private.CoreLib\src\System\Text\Unicode\Utf8Utility.Validation.cs (8)
126if (AdvSimd.Arm64.IsSupported && BitConverter.IsLittleEndian) 135ulong mask = GetNonAsciiBytes(AdvSimd.LoadVector128(pInputBuffer), bitMask128); 184Debug.Assert((AdvSimd.Arm64.IsSupported && BitConverter.IsLittleEndian) || Sse2.IsSupported); 752[CompExactlyDependsOn(typeof(AdvSimd.Arm64))] 755if (!AdvSimd.Arm64.IsSupported || !BitConverter.IsLittleEndian) 760Vector128<byte> mostSignificantBitIsSet = AdvSimd.ShiftRightArithmetic(value.AsSByte(), 7).AsByte(); 761Vector128<byte> extractedBits = AdvSimd.And(mostSignificantBitIsSet, bitMask128); 762extractedBits = AdvSimd.Arm64.AddPairwise(extractedBits, extractedBits);
System.Runtime.Intrinsics (1)
artifacts\obj\System.Runtime.Intrinsics\Debug\net10.0\System.Runtime.Intrinsics.Forwards.cs (1)
3[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.Intrinsics.Arm.AdvSimd))]