diff --git a/src/coreclr/jit/importer_vectorization.cpp b/src/coreclr/jit/importer_vectorization.cpp index f394859ca7292d..217e22104e6ae4 100644 --- a/src/coreclr/jit/importer_vectorization.cpp +++ b/src/coreclr/jit/importer_vectorization.cpp @@ -380,7 +380,7 @@ GenTree* Compiler::impExpandHalfConstEqualsSWAR( // [ ch1 ] // [value] // - return impCreateCompareInd(data, TYP_SHORT, dataOffset, cns[0], cmpMode); + return impCreateCompareInd(data, TYP_USHORT, dataOffset, cns[0], cmpMode); } if (len == 2) { diff --git a/src/tests/JIT/opt/Vectorization/StringEquals.cs b/src/tests/JIT/opt/Vectorization/StringEquals.cs index d5c80c0e411266..86739946fa8acd 100644 --- a/src/tests/JIT/opt/Vectorization/StringEquals.cs +++ b/src/tests/JIT/opt/Vectorization/StringEquals.cs @@ -22,7 +22,7 @@ public static int Main() } Console.WriteLine(testCount); - return testCount == 25920 ? 100 : 0; + return testCount == 27888 ? 100 : 0; } } @@ -195,10 +195,22 @@ static void ValidateEquals(bool result, string left, string right) [MethodImpl(MethodImplOptions.NoInlining)] public static void Equals_157(string s) => ValidateEquals(s == "2ж1311a23b2212aЙ21Й11жb3233bb3a1", s, "2ж1311a23b2212aЙ21Й11жb3233bb3a1"); [MethodImpl(MethodImplOptions.NoInlining)] public static void Equals_158(string s) => ValidateEquals(s == "01Й11113ь3Й32a3ьЙЙ3Й32b2ab221310", s, "01Й11113ь3Й32a3ьЙЙ3Й32b2ab221310"); [MethodImpl(MethodImplOptions.NoInlining)] public static void Equals_159(string s) => ValidateEquals(s == "a120213b11211\0223223312ьь1Й3222Й", s, "a120213b11211\0223223312ьь1Й3222Й"); + [MethodImpl(MethodImplOptions.NoInlining)] public static void Equals_160(string s) => ValidateEquals(s == "\u9244", s, "\u9244"); + [MethodImpl(MethodImplOptions.NoInlining)] public static void Equals_161(string s) => ValidateEquals(s == "\u9244\u9244", s, "\u9244\u9244"); + [MethodImpl(MethodImplOptions.NoInlining)] public static void Equals_162(string s) => ValidateEquals(s == "\u9244\u9244\u9244", s, "\u9244\u9244\u9244"); + [MethodImpl(MethodImplOptions.NoInlining)] public static void Equals_163(string s) => ValidateEquals(s == "\uFFFF", s, "\uFFFF"); + [MethodImpl(MethodImplOptions.NoInlining)] public static void Equals_164(string s) => ValidateEquals(s == "\uFFFF\uFFFF", s, "\uFFFF\uFFFF"); + [MethodImpl(MethodImplOptions.NoInlining)] public static void Equals_165(string s) => ValidateEquals(s == "\uFFFF\uFFFF\uFFFF", s, "\uFFFF\uFFFF\uFFFF"); public static readonly string[] s_TestData = { null, + "\u9244", + "\u9244\u9244", + "\u9244\u9244\u9244", + "\uFFFF", + "\uFFFF\uFFFF", + "\uFFFF\uFFFF\uFFFF", "", "\0", "a", diff --git a/src/tests/JIT/opt/Vectorization/UnrollEqualsStartsWIth.cs b/src/tests/JIT/opt/Vectorization/UnrollEqualsStartsWIth.cs index d50deb26defcf5..f81b96c4eaa245 100644 --- a/src/tests/JIT/opt/Vectorization/UnrollEqualsStartsWIth.cs +++ b/src/tests/JIT/opt/Vectorization/UnrollEqualsStartsWIth.cs @@ -18,7 +18,7 @@ public static int Main() int testCount = 0; foreach (var testType in testTypes) testCount += RunTests(testType); - return testCount == 113652 ? 100 : 0; + return testCount == 127512 ? 100 : 0; } public static int RunTests(Type type) @@ -37,6 +37,12 @@ public static int RunTests(Type type) string[] testData = { + "\u9244", + "\u9244\u9244", + "\u9244\u9244\u9244", + "\uFFFF", + "\uFFFF\uFFFF", + "\uFFFF\uFFFF\uFFFF", "", string.Empty, "a",