Skip to content

Commit 2c49586

Browse files
authored
[ARM] Fix MVEFloatOps check on creating VCVTN (#79291)
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.
1 parent a46422a commit 2c49586

File tree

2 files changed

+403
-122
lines changed

2 files changed

+403
-122
lines changed

llvm/lib/Target/ARM/ARMISelLowering.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16803,9 +16803,11 @@ static SDValue PerformSTORECombine(SDNode *N,
1680316803
if (SDValue Store = PerformTruncatingStoreCombine(St, DCI.DAG))
1680416804
return Store;
1680516805

16806-
if (Subtarget->hasMVEIntegerOps()) {
16806+
if (Subtarget->hasMVEFloatOps())
1680716807
if (SDValue NewToken = PerformSplittingToNarrowingStores(St, DCI.DAG))
1680816808
return NewToken;
16809+
16810+
if (Subtarget->hasMVEIntegerOps()) {
1680916811
if (SDValue NewChain = PerformExtractFpToIntStores(St, DCI.DAG))
1681016812
return NewChain;
1681116813
if (SDValue NewToken =

0 commit comments

Comments
 (0)