From ca77dffa09741929e061e170cf20f5ba31994a62 Mon Sep 17 00:00:00 2001 From: Larry Ewing Date: Thu, 17 Apr 2025 18:55:44 -0500 Subject: [PATCH 1/2] Try out a PackedSimd WideningLoader --- .../System.Private.CoreLib/src/System/Text/Ascii.Equality.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/libraries/System.Private.CoreLib/src/System/Text/Ascii.Equality.cs b/src/libraries/System.Private.CoreLib/src/System/Text/Ascii.Equality.cs index 141ce3b81a354a..3fbcd4e550f80f 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Text/Ascii.Equality.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Text/Ascii.Equality.cs @@ -522,6 +522,11 @@ public static Vector128 Load128(ref byte ptr) Vector128 vec = Vector128.CreateScalarUnsafe(Unsafe.ReadUnaligned(ref ptr)).AsByte(); return Sse2.UnpackLow(vec, Vector128.Zero).AsUInt16(); } + else if (PackedSimd.IsSupported) + { + Vector128 vec = Vector128.CreateScalarUnsafe(Unsafe.ReadUnaligned(ref ptr)).AsByte(); + return PackeSimd.ZeroExtendWideningLower(vec); + } else { (Vector64 lower, Vector64 upper) = Vector64.Widen(Vector64.LoadUnsafe(ref ptr)); From 9a098ecb8b5cecbe11521e11b5ece6fb579b0073 Mon Sep 17 00:00:00 2001 From: Larry Ewing Date: Thu, 17 Apr 2025 19:20:38 -0500 Subject: [PATCH 2/2] Add missing using --- .../System.Private.CoreLib/src/System/Text/Ascii.Equality.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libraries/System.Private.CoreLib/src/System/Text/Ascii.Equality.cs b/src/libraries/System.Private.CoreLib/src/System/Text/Ascii.Equality.cs index 3fbcd4e550f80f..77c3d8de92fb23 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Text/Ascii.Equality.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Text/Ascii.Equality.cs @@ -7,6 +7,7 @@ using System.Runtime.InteropServices; using System.Runtime.Intrinsics; using System.Runtime.Intrinsics.Arm; +using System.Runtime.Intrinsics.Wasm; using System.Runtime.Intrinsics.X86; namespace System.Text @@ -525,7 +526,7 @@ public static Vector128 Load128(ref byte ptr) else if (PackedSimd.IsSupported) { Vector128 vec = Vector128.CreateScalarUnsafe(Unsafe.ReadUnaligned(ref ptr)).AsByte(); - return PackeSimd.ZeroExtendWideningLower(vec); + return PackedSimd.ZeroExtendWideningLower(vec); } else {