Skip to content

Commit 44d85c5

Browse files
authored
[AArch64][SVE2] Use a PatFrag for URSHR (#81304)
Follow-up for #78374
1 parent f559c2e commit 44d85c5

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

llvm/lib/Target/AArch64/AArch64ISelLowering.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20246,9 +20246,6 @@ static SDValue performIntrinsicCombine(SDNode *N,
2024620246
case Intrinsic::aarch64_sve_uqsub_x:
2024720247
return DAG.getNode(ISD::USUBSAT, SDLoc(N), N->getValueType(0),
2024820248
N->getOperand(1), N->getOperand(2));
20249-
case Intrinsic::aarch64_sve_urshr:
20250-
return DAG.getNode(AArch64ISD::URSHR_I_PRED, SDLoc(N), N->getValueType(0),
20251-
N->getOperand(1), N->getOperand(2), N->getOperand(3));
2025220249
case Intrinsic::aarch64_sve_asrd:
2025320250
return DAG.getNode(AArch64ISD::SRAD_MERGE_OP1, SDLoc(N), N->getValueType(0),
2025420251
N->getOperand(1), N->getOperand(2), N->getOperand(3));

llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,11 @@ def SDT_AArch64Arith_Imm : SDTypeProfile<1, 3, [
232232
]>;
233233

234234
def AArch64asrd_m1 : SDNode<"AArch64ISD::SRAD_MERGE_OP1", SDT_AArch64Arith_Imm>;
235-
def AArch64urshri_p : SDNode<"AArch64ISD::URSHR_I_PRED", SDT_AArch64Arith_Imm>;
235+
def AArch64urshri_p_node : SDNode<"AArch64ISD::URSHR_I_PRED", SDT_AArch64Arith_Imm>;
236+
237+
def AArch64urshri_p : PatFrags<(ops node:$op1, node:$op2, node:$op3),
238+
[(int_aarch64_sve_urshr node:$op1, node:$op2, node:$op3),
239+
(AArch64urshri_p_node node:$op1, node:$op2, node:$op3)]>;
236240

237241
def SDT_AArch64IntExtend : SDTypeProfile<1, 4, [
238242
SDTCisVec<0>, SDTCisVec<1>, SDTCisVec<2>, SDTCisVT<3, OtherVT>, SDTCisVec<4>,

0 commit comments

Comments
 (0)