From c74440f8291edd35843f3039754b887afe61766e Mon Sep 17 00:00:00 2001 From: Egor Bogatov Date: Thu, 23 Jan 2025 12:03:34 +0100 Subject: [PATCH] Requite SSE4.1 for Vector128.IsInteger (#111713) --- src/coreclr/jit/hwintrinsicxarch.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/coreclr/jit/hwintrinsicxarch.cpp b/src/coreclr/jit/hwintrinsicxarch.cpp index c30bb266edee01..b8c8d43f787e0b 100644 --- a/src/coreclr/jit/hwintrinsicxarch.cpp +++ b/src/coreclr/jit/hwintrinsicxarch.cpp @@ -2925,11 +2925,17 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, { assert(sig->numArgs == 1); - if ((simdSize != 32) || compOpportunisticallyDependsOn(InstructionSet_AVX2)) + if ((simdSize == 16) && !compOpportunisticallyDependsOn(InstructionSet_SSE41)) { - op1 = impSIMDPopStack(); - retNode = gtNewSimdIsIntegerNode(retType, op1, simdBaseJitType, simdSize); + break; } + if ((simdSize == 32) && !compOpportunisticallyDependsOn(InstructionSet_AVX2)) + { + break; + } + + op1 = impSIMDPopStack(); + retNode = gtNewSimdIsIntegerNode(retType, op1, simdBaseJitType, simdSize); break; }