Skip to content

Commit

Permalink
[release/7.0-rc1] Disable matching constants for vectors that needs u…
Browse files Browse the repository at this point in the history
…pper half to be save/restore (#74192)

* Revert "Ensure that GT_CNS_VEC is handled in LinearScan::isMatchingConstant (#70171)"

This reverts commit 24f5de4.

* Revert "Revert "Ensure that GT_CNS_VEC is handled in LinearScan::isMatchingConstant (#70171)""

This reverts commit 984120f.

* Add partial save check

* Use the correct register type

Co-authored-by: Kunal Pathak <Kunal.Pathak@microsoft.com>
  • Loading branch information
github-actions[bot] and kunalspathak committed Aug 20, 2022
1 parent e9070dd commit 2b52df8
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion src/coreclr/jit/lsra.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2721,7 +2721,11 @@ bool LinearScan::isMatchingConstant(RegRecord* physRegRecord, RefPosition* refPo

case GT_CNS_VEC:
{
return GenTreeVecCon::Equals(refPosition->treeNode->AsVecCon(), otherTreeNode->AsVecCon());
return
#if FEATURE_PARTIAL_SIMD_CALLEE_SAVE
!Compiler::varTypeNeedsPartialCalleeSave(physRegRecord->assignedInterval->registerType) &&
#endif
GenTreeVecCon::Equals(refPosition->treeNode->AsVecCon(), otherTreeNode->AsVecCon());
}

default:
Expand Down

0 comments on commit 2b52df8

Please sign in to comment.