From 4b5a0f89ab153bc49608b9d24cdbe001753c0242 Mon Sep 17 00:00:00 2001 From: Mikhail Ablakatov Date: Wed, 29 May 2024 16:10:31 +0000 Subject: [PATCH] Change ConditionalSelect nodes' type to the mask type if the contained node is of the mask type --- src/coreclr/jit/lowerarmarch.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/coreclr/jit/lowerarmarch.cpp b/src/coreclr/jit/lowerarmarch.cpp index 91046c5474b73a..57d00194d63348 100644 --- a/src/coreclr/jit/lowerarmarch.cpp +++ b/src/coreclr/jit/lowerarmarch.cpp @@ -1311,9 +1311,14 @@ GenTree* Lowering::LowerHWIntrinsic(GenTreeHWIntrinsic* node) GenTree* trueMask = comp->gtNewSimdAllTrueMaskNode(simdBaseJitType, simdSize); GenTree* trueVal = node; GenTree* falseVal = comp->gtNewZeroConNode(simdType); + var_types nodeType = simdType; + if (HWIntrinsicInfo::ReturnsPerElementMask(node->GetHWIntrinsicId())) + { + nodeType = TYP_MASK; + } GenTreeHWIntrinsic* condSelNode = - comp->gtNewSimdHWIntrinsicNode(simdType, trueMask, trueVal, falseVal, NI_Sve_ConditionalSelect, + comp->gtNewSimdHWIntrinsicNode(nodeType, trueMask, trueVal, falseVal, NI_Sve_ConditionalSelect, simdBaseJitType, simdSize); BlockRange().InsertBefore(node, trueMask);