未验证 提交 1f8eabf7 编写于 作者: T Tanner Gooding 提交者: GitHub

Ensure CNS_VEC and BLK are handled for `setLclRelatedToSIMDIntrinsic` (#81760)

上级 bd540938
......@@ -8166,11 +8166,12 @@ GenTree* Compiler::gtNewBlkOpNode(GenTree* dst, GenTree* srcOrFillVal, bool isVo
// should be labeled as simd intrinsic related struct. This is done so that
// we do not promote the local, thus avoiding conflicting access methods
// (fields vs. whole-register).
if (varTypeIsSIMD(srcOrFillVal) && srcOrFillVal->OperIsHWIntrinsic())
if (varTypeIsSIMD(srcOrFillVal) && srcOrFillVal->OperIs(GT_HWINTRINSIC, GT_CNS_VEC))
{
// TODO-Cleanup: similar logic already exists in "gtNewAssignNode",
// however, it is not enabled for x86. Fix that and delete this code.
GenTreeLclVar* dstLclNode = nullptr;
if (dst->OperIs(GT_LCL_VAR))
{
dstLclNode = dst->AsLclVar();
......@@ -18853,7 +18854,7 @@ void Compiler::SetOpLclRelatedToSIMDIntrinsic(GenTree* op)
{
setLclRelatedToSIMDIntrinsic(op);
}
else if (op->OperIs(GT_OBJ) && op->AsIndir()->Addr()->OperIs(GT_LCL_VAR_ADDR))
else if (op->OperIsBlk() && op->AsIndir()->Addr()->OperIs(GT_LCL_VAR_ADDR))
{
setLclRelatedToSIMDIntrinsic(op->AsIndir()->Addr());
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册