src\runtime\src\libraries\System.Private.CoreLib\src\System\Buffers\Text\Base64Helper\Base64DecoderHelper.cs (32)
81if (AdvSimd.Arm64.IsSupported && (end >= src))
92if ((Ssse3.IsSupported || AdvSimd.Arm64.IsSupported || PackedSimd.IsSupported) && BitConverter.IsLittleEndian && (end >= src))
384if (AdvSimd.Arm64.IsSupported && (end >= src))
390if ((Ssse3.IsSupported || AdvSimd.Arm64.IsSupported || PackedSimd.IsSupported) && BitConverter.IsLittleEndian && (end >= src))
1010[CompExactlyDependsOn(typeof(AdvSimd.Arm64))]
1014Debug.Assert((Ssse3.IsSupported || AdvSimd.Arm64.IsSupported || PackedSimd.IsSupported) && BitConverter.IsLittleEndian);
1026return AdvSimd.Arm64.VectorTableLookup(left, right & mask8F);
1031[CompExactlyDependsOn(typeof(AdvSimd.Arm64))]
1105Vector128<byte> decOne1 = AdvSimd.Arm64.VectorTableLookup(decLutOne, str1);
1106Vector128<byte> decOne2 = AdvSimd.Arm64.VectorTableLookup(decLutOne, str2);
1107Vector128<byte> decOne3 = AdvSimd.Arm64.VectorTableLookup(decLutOne, str3);
1108Vector128<byte> decOne4 = AdvSimd.Arm64.VectorTableLookup(decLutOne, str4);
1125decTwo1 = AdvSimd.Arm64.VectorTableLookupExtension(decTwo1, decLutTwo, decTwo1);
1126decTwo2 = AdvSimd.Arm64.VectorTableLookupExtension(decTwo2, decLutTwo, decTwo2);
1127decTwo3 = AdvSimd.Arm64.VectorTableLookupExtension(decTwo3, decLutTwo, decTwo3);
1128decTwo4 = AdvSimd.Arm64.VectorTableLookupExtension(decTwo4, decLutTwo, decTwo4);
1159AdvSimd.Arm64.StoreVectorAndZip(dest, (res1, res2, res3));
1171[CompExactlyDependsOn(typeof(AdvSimd.Arm64))]
1178Debug.Assert((Ssse3.IsSupported || AdvSimd.Arm64.IsSupported || PackedSimd.IsSupported) && BitConverter.IsLittleEndian);
1293else if (AdvSimd.Arm64.IsSupported)
1295Vector128<ushort> evens = AdvSimd.ShiftLeftLogicalWideningLower(AdvSimd.Arm64.UnzipEven(str, one).GetLower(), 6);
1296Vector128<ushort> odds = AdvSimd.Arm64.TransposeOdd(str, Vector128<byte>.Zero).AsUInt16();
1323else if (AdvSimd.Arm64.IsSupported)
1325Vector128<int> ievens = AdvSimd.ShiftLeftLogicalWideningLower(AdvSimd.Arm64.UnzipEven(merge_ab_and_bc, one.AsInt16()).GetLower(), 12);
1326Vector128<int> iodds = AdvSimd.Arm64.TransposeOdd(merge_ab_and_bc, Vector128<short>.Zero).AsInt32();
1481[CompExactlyDependsOn(typeof(AdvSimd.Arm64))]
1572[CompExactlyDependsOn(typeof(AdvSimd.Arm64))]
1577(str1, str2, str3, str4) = AdvSimd.Arm64.Load4xVector128AndUnzip(src);
1703[CompExactlyDependsOn(typeof(AdvSimd.Arm64))]
1767[CompExactlyDependsOn(typeof(AdvSimd.Arm64))]
1772var (s11, s12, s21, s22) = AdvSimd.Arm64.Load4xVector128AndUnzip(src);
1773var (s31, s32, s41, s42) = AdvSimd.Arm64.Load4xVector128AndUnzip(src + 32);
src\runtime\src\libraries\System.Private.CoreLib\src\System\Buffers\Text\Base64Helper\Base64EncoderHelper.cs (18)
66if (AdvSimd.Arm64.IsSupported && (end >= src))
75if ((Ssse3.IsSupported || AdvSimd.Arm64.IsSupported || PackedSimd.IsSupported) && BitConverter.IsLittleEndian && (end >= src))
384[CompExactlyDependsOn(typeof(AdvSimd.Arm64))]
409(str1, str2, str3) = AdvSimd.Arm64.Load3xVector128AndUnzip(src);
426res1 = AdvSimd.Arm64.VectorTableLookup((tblEnc1, tblEnc2, tblEnc3, tblEnc4), res1);
427res2 = AdvSimd.Arm64.VectorTableLookup((tblEnc1, tblEnc2, tblEnc3, tblEnc4), res2);
428res3 = AdvSimd.Arm64.VectorTableLookup((tblEnc1, tblEnc2, tblEnc3, tblEnc4), res3);
429res4 = AdvSimd.Arm64.VectorTableLookup((tblEnc1, tblEnc2, tblEnc3, tblEnc4), res4);
444[CompExactlyDependsOn(typeof(AdvSimd.Arm64))]
503else if (AdvSimd.Arm64.IsSupported)
505Vector128<ushort> odd = Vector128.ShiftRightLogical(AdvSimd.Arm64.UnzipOdd(t0.AsUInt16(), t0.AsUInt16()), 6);
506Vector128<ushort> even = Vector128.ShiftRightLogical(AdvSimd.Arm64.UnzipEven(t0.AsUInt16(), t0.AsUInt16()), 10);
507t1 = AdvSimd.Arm64.ZipLow(even, odd);
799[CompExactlyDependsOn(typeof(AdvSimd.Arm64))]
804AdvSimd.Arm64.StoreVectorAndZip(dest, (res1, res2, res3, res4));
883[CompExactlyDependsOn(typeof(AdvSimd.Arm64))]
892AdvSimd.Arm64.StoreVectorAndZip(dest, (utf16LowVector1, utf16LowVector2, utf16LowVector3, utf16LowVector4));
893AdvSimd.Arm64.StoreVectorAndZip(dest + 32, (utf16HighVector1, utf16HighVector2, utf16HighVector3, utf16HighVector4));
src\runtime\src\libraries\System.Private.CoreLib\src\System\Text\Ascii.Utility.cs (24)
66[CompExactlyDependsOn(typeof(AdvSimd.Arm64))]
69if (!AdvSimd.Arm64.IsSupported || !BitConverter.IsLittleEndian)
79extractedBits = AdvSimd.Arm64.AddPairwise(extractedBits, extractedBits);
373Debug.Assert(Sse2.IsSupported || AdvSimd.Arm64.IsSupported, "Sse2 or AdvSimd64 required.");
404else if (AdvSimd.Arm64.IsSupported)
464else if (AdvSimd.Arm64.IsSupported)
510else if (AdvSimd.Arm64.IsSupported)
546else if (AdvSimd.Arm64.IsSupported)
604else if (AdvSimd.Arm64.IsSupported)
974Debug.Assert(Sse2.IsSupported || AdvSimd.Arm64.IsSupported, "Should've been checked by caller.");
1146else if (AdvSimd.Arm64.IsSupported)
1155ulong asciiCompareMask = AdvSimd.Arm64.UnzipOdd(compareResult, compareResult).AsUInt64().ToScalar();
1537else if (AdvSimd.Arm64.IsSupported)
1539Vector128<byte> maxBytes = AdvSimd.Arm64.MaxPairwise(asciiVector, asciiVector);
1567else if (AdvSimd.Arm64.IsSupported)
1571Vector128<ushort> maxChars = AdvSimd.Arm64.MaxPairwise(utf16Vector, utf16Vector);
1623AdvSimd.Arm64.IsSupported ? AllBytesInUInt64AreAscii(AdvSimd.Arm64.MaxPairwise(vector.AsByte(), vector.AsByte()).AsUInt64().ToScalar()) :
1629AdvSimd.Arm64.IsSupported ? AllCharsInUInt64AreAscii(AdvSimd.Arm64.MaxPairwise(vector.AsUInt16(), vector.AsUInt16()).AsUInt64().ToScalar()) :
1681else if (AdvSimd.Arm64.IsSupported)
1683return AdvSimd.Arm64.UnzipEven(vectorFirst.AsByte(), vectorSecond.AsByte());
2283if (AdvSimd.Arm64.IsSupported)
2286Vector128<ulong> vecWide = AdvSimd.Arm64.ZipLow(vecNarrow, Vector128<byte>.Zero).AsUInt64();