Skip to content
Merged
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions src/coreclr/jit/lowerarmarch.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2086,7 +2086,8 @@ bool Lowering::IsValidCompareChain(GenTree* child, GenTree* parent)
return IsValidCompareChain(child->AsOp()->gtGetOp2(), child) &&
IsValidCompareChain(child->AsOp()->gtGetOp1(), child);
}
else if (child->OperIsCmpCompare())
else if (child->OperIsCmpCompare() && varTypeIsIntegral(child->gtGetOp1()) &&
varTypeIsIntegral(child->gtGetOp2()))
{
// Can the child compare be contained.
return IsSafeToContainMem(parent, child);
Expand Down Expand Up @@ -2121,7 +2122,8 @@ bool Lowering::ContainCheckCompareChain(GenTree* child, GenTree* parent, GenTree
return true;
}
// Can the child be contained.
else if (IsSafeToContainMem(parent, child))
else if (IsSafeToContainMem(parent, child) && (child->OperIs(GT_AND) || child->OperIsCmpCompare()) &&
varTypeIsIntegral(child->gtGetOp1()) && varTypeIsIntegral(child->gtGetOp2()))
{
if (child->OperIs(GT_AND))
{
Expand Down