Skip to content

Commit

Permalink
[ARM] Fix MVEFloatOps check on creating VCVTN (#79291)
Browse files Browse the repository at this point in the history
In the past PerformSplittingToNarrowingStores handled both int and float
ops, but since the introduction of MVETRUNC now only operates on float
operations, creating VCVTN nodes. It should be guarded by hasMVEFloatOps
to prevent a failure to select.
  • Loading branch information
davemgreen committed Jan 25, 2024
1 parent a46422a commit 2c49586
Show file tree
Hide file tree
Showing 2 changed files with 403 additions and 122 deletions.
4 changes: 3 additions & 1 deletion llvm/lib/Target/ARM/ARMISelLowering.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16803,9 +16803,11 @@ static SDValue PerformSTORECombine(SDNode *N,
if (SDValue Store = PerformTruncatingStoreCombine(St, DCI.DAG))
return Store;

if (Subtarget->hasMVEIntegerOps()) {
if (Subtarget->hasMVEFloatOps())
if (SDValue NewToken = PerformSplittingToNarrowingStores(St, DCI.DAG))
return NewToken;

if (Subtarget->hasMVEIntegerOps()) {
if (SDValue NewChain = PerformExtractFpToIntStores(St, DCI.DAG))
return NewChain;
if (SDValue NewToken =
Expand Down

0 comments on commit 2c49586

Please sign in to comment.