Skip to content

Commit 06ec1ff

Browse files
committed
[AArch64] Replace uaddlv intrinsic with uaddlv sdnode
Differential Revision: https://reviews.llvm.org/D159447
1 parent 282bf21 commit 06ec1ff

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

llvm/lib/Target/AArch64/AArch64ISelLowering.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8740,9 +8740,9 @@ SDValue AArch64TargetLowering::LowerCTPOP_PARITY(SDValue Op,
87408740
Val = DAG.getNode(ISD::BITCAST, DL, MVT::v8i8, Val);
87418741

87428742
SDValue CtPop = DAG.getNode(ISD::CTPOP, DL, MVT::v8i8, Val);
8743-
SDValue UaddLV = DAG.getNode(
8744-
ISD::INTRINSIC_WO_CHAIN, DL, MVT::i32,
8745-
DAG.getConstant(Intrinsic::aarch64_neon_uaddlv, DL, MVT::i32), CtPop);
8743+
SDValue UaddLV = DAG.getNode(AArch64ISD::UADDLV, DL, MVT::v4i32, CtPop);
8744+
UaddLV = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, MVT::i32, UaddLV,
8745+
DAG.getConstant(0, DL, MVT::i64));
87468746

87478747
if (IsParity)
87488748
UaddLV = DAG.getNode(ISD::AND, DL, MVT::i32, UaddLV,
@@ -8755,9 +8755,9 @@ SDValue AArch64TargetLowering::LowerCTPOP_PARITY(SDValue Op,
87558755
Val = DAG.getNode(ISD::BITCAST, DL, MVT::v16i8, Val);
87568756

87578757
SDValue CtPop = DAG.getNode(ISD::CTPOP, DL, MVT::v16i8, Val);
8758-
SDValue UaddLV = DAG.getNode(
8759-
ISD::INTRINSIC_WO_CHAIN, DL, MVT::i32,
8760-
DAG.getConstant(Intrinsic::aarch64_neon_uaddlv, DL, MVT::i32), CtPop);
8758+
SDValue UaddLV = DAG.getNode(AArch64ISD::UADDLV, DL, MVT::v4i32, CtPop);
8759+
UaddLV = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, MVT::i32, UaddLV,
8760+
DAG.getConstant(0, DL, MVT::i64));
87618761

87628762
if (IsParity)
87638763
UaddLV = DAG.getNode(ISD::AND, DL, MVT::i32, UaddLV,

0 commit comments

Comments
 (0)