Skip to content

Commit c06c09c

Browse files
committed
Ensure negation for mask producing compares can kick in
1 parent 91c11d2 commit c06c09c

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

src/coreclr/jit/morph.cpp

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9428,14 +9428,6 @@ GenTree* Compiler::fgOptimizeHWIntrinsic(GenTreeHWIntrinsic* node)
94289428

94299429
default:
94309430
{
9431-
#if defined(FEATURE_MASKED_HW_INTRINSICS)
9432-
GenTreeHWIntrinsic* maskedIntrinsic = fgOptimizeForMaskedIntrinsic(node);
9433-
if (maskedIntrinsic != nullptr)
9434-
{
9435-
node = maskedIntrinsic;
9436-
node->SetMorphed(this);
9437-
}
9438-
#endif // FEATURE_MASKED_HW_INTRINSICS
94399431
break;
94409432
}
94419433
}
@@ -9870,14 +9862,14 @@ GenTree* Compiler::fgOptimizeHWIntrinsic(GenTreeHWIntrinsic* node)
98709862
return result;
98719863
}
98729864

9873-
if (GenTree::OperIsCompare(oper))
9865+
if (GenTree::OperIsCompare(op1Oper))
98749866
{
98759867
assert(op1Intrin->GetOperandCount() == 2);
98769868

98779869
GenTree* cmpOp1 = op1Intrin->Op(1);
98789870
GenTree* cmpOp2 = op1Intrin->Op(2);
98799871

9880-
genTreeOps newOper = GenTree::ReverseRelop(oper);
9872+
genTreeOps newOper = GenTree::ReverseRelop(op1Oper);
98819873
var_types lookupType =
98829874
GenTreeHWIntrinsic::GetLookupTypeForCmpOp(this, newOper, op1RetType, op1SimdBaseType, op1SimdSize);
98839875
NamedIntrinsic newId =
@@ -9981,6 +9973,16 @@ GenTree* Compiler::fgOptimizeHWIntrinsic(GenTreeHWIntrinsic* node)
99819973
}
99829974
}
99839975

9976+
#if defined(FEATURE_MASKED_HW_INTRINSICS)
9977+
GenTreeHWIntrinsic* maskedIntrinsic = fgOptimizeForMaskedIntrinsic(node);
9978+
9979+
if (maskedIntrinsic != nullptr)
9980+
{
9981+
node = maskedIntrinsic;
9982+
node->SetMorphed(this);
9983+
}
9984+
#endif // FEATURE_MASKED_HW_INTRINSICS
9985+
99849986
return node;
99859987
}
99869988

0 commit comments

Comments
 (0)