Skip to content

Commit 191ec1f

Browse files
committed
Use unsigned version of ExtractNarrowingSaturate, avoid using MinAcross and use MaxPairwise instead
1 parent 45d03d9 commit 191ec1f

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/libraries/System.Private.CoreLib/src/System/Text/Unicode/Utf8Utility.Transcoding.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -955,15 +955,15 @@ public static OperationStatus TranscodeToUtf8(char* pInputBuffer, int inputLengt
955955
if (AdvSimd.IsSupported)
956956
{
957957
Vector128<short> isUtf16DataNonAscii = AdvSimd.CompareTest(utf16Data, nonAsciiUtf16DataMask);
958-
bool hasNonAsciiDataInVector = AdvSimd.Arm64.MinAcross(isUtf16DataNonAscii).ToScalar() != 0;
958+
bool hasNonAsciiDataInVector = AdvSimd.Arm64.MaxPairwise(isUtf16DataNonAscii, isUtf16DataNonAscii).AsUInt64().ToScalar() != 0;
959+
959960
if (hasNonAsciiDataInVector)
960961
{
961962
goto LoopTerminatedDueToNonAsciiDataInVectorLocal;
962963
}
963964

964-
Vector64<sbyte> lower = AdvSimd.ExtractNarrowingSaturateLower(utf16Data);
965-
Vector128<sbyte> result = AdvSimd.ExtractNarrowingSaturateUpper(lower, utf16Data);
966-
AdvSimd.Store((ulong*)pOutputBuffer, result.AsUInt64());
965+
Vector64<byte> lower = AdvSimd.ExtractNarrowingSaturateUnsignedLower(utf16Data);
966+
AdvSimd.Store(pOutputBuffer, lower);
967967
}
968968
else
969969
{

0 commit comments

Comments
 (0)