// TRUNC(CTPOP(ZEXT(X))) to make use of vXi32/vXi64 VPOPCNT instructions.
if (Subtarget.hasVPOPCNTDQ()) {
if (VT == MVT::v8i16) {
- Op = DAG.getNode(X86ISD::VZEXT, DL, MVT::v8i64, Op0);
+ Op = DAG.getNode(ISD::ZERO_EXTEND, DL, MVT::v8i64, Op0);
Op = DAG.getNode(ISD::CTPOP, DL, MVT::v8i64, Op);
- return DAG.getNode(X86ISD::VTRUNC, DL, VT, Op);
+ return DAG.getNode(ISD::TRUNCATE, DL, VT, Op);
}
if (VT == MVT::v16i8 || VT == MVT::v16i16) {
- Op = DAG.getNode(X86ISD::VZEXT, DL, MVT::v16i32, Op0);
+ Op = DAG.getNode(ISD::ZERO_EXTEND, DL, MVT::v16i32, Op0);
Op = DAG.getNode(ISD::CTPOP, DL, MVT::v16i32, Op);
- return DAG.getNode(X86ISD::VTRUNC, DL, VT, Op);
+ return DAG.getNode(ISD::TRUNCATE, DL, VT, Op);
}
}