@@ -8740,9 +8740,9 @@ SDValue AArch64TargetLowering::LowerCTPOP_PARITY(SDValue Op,
8740
8740
Val = DAG.getNode(ISD::BITCAST, DL, MVT::v8i8, Val);
8741
8741
8742
8742
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) );
8746
8746
8747
8747
if (IsParity)
8748
8748
UaddLV = DAG.getNode(ISD::AND, DL, MVT::i32, UaddLV,
@@ -8755,9 +8755,9 @@ SDValue AArch64TargetLowering::LowerCTPOP_PARITY(SDValue Op,
8755
8755
Val = DAG.getNode(ISD::BITCAST, DL, MVT::v16i8, Val);
8756
8756
8757
8757
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) );
8761
8761
8762
8762
if (IsParity)
8763
8763
UaddLV = DAG.getNode(ISD::AND, DL, MVT::i32, UaddLV,
0 commit comments