From 538a893b1efc624917d9da9e39218077eb9b3bad Mon Sep 17 00:00:00 2001 From: Clinton Ingram Date: Fri, 8 Aug 2025 16:25:44 -0700 Subject: [PATCH] Do not mark small types RegOptional as part of GT_LONG contained by HWIntrinsic --- src/coreclr/jit/lowerxarch.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/coreclr/jit/lowerxarch.cpp b/src/coreclr/jit/lowerxarch.cpp index a29360e65d7304..e9e2cbfca6c2e0 100644 --- a/src/coreclr/jit/lowerxarch.cpp +++ b/src/coreclr/jit/lowerxarch.cpp @@ -9781,14 +9781,16 @@ void Lowering::ContainCheckHWIntrinsic(GenTreeHWIntrinsic* node) for (GenTree* longOp : op1->Operands()) { - if (!varTypeIsSmall(longOp) && IsContainableMemoryOp(longOp) && - IsSafeToContainMem(node, longOp)) + if (!varTypeIsSmall(longOp)) { - MakeSrcContained(node, longOp); - } - else if (IsSafeToMarkRegOptional(node, longOp)) - { - MakeSrcRegOptional(node, longOp); + if (IsContainableMemoryOp(longOp) && IsSafeToContainMem(node, longOp)) + { + MakeSrcContained(node, longOp); + } + else if (IsSafeToMarkRegOptional(node, longOp)) + { + MakeSrcRegOptional(node, longOp); + } } }