Lines Matching defs:Rdx
46186 SDValue Rdx = DAG.matchBinOpReduction(ExtElt, Opc,
46188 if (!Rdx)
46196 EVT VecVT = Rdx.getValueType();
46228 SDValue Lo = getUnpackl(DAG, DL, VecVT, Rdx, DAG.getUNDEF(VecVT));
46229 SDValue Hi = getUnpackh(DAG, DL, VecVT, Rdx, DAG.getUNDEF(VecVT));
46232 Rdx = DAG.getNode(Opc, DL, WideVT, Lo, Hi);
46233 while (Rdx.getValueSizeInBits() > 128) {
46234 std::tie(Lo, Hi) = splitVector(Rdx, DAG, DL);
46235 Rdx = DAG.getNode(Opc, DL, Lo.getValueType(), Lo, Hi);
46238 Rdx = WidenToV16I8(Rdx, false);
46239 Rdx = getUnpackl(DAG, DL, MVT::v16i8, Rdx, DAG.getUNDEF(MVT::v16i8));
46240 Rdx = DAG.getBitcast(MVT::v8i16, Rdx);
46243 Rdx = DAG.getNode(Opc, DL, MVT::v8i16, Rdx,
46244 DAG.getVectorShuffle(MVT::v8i16, DL, Rdx, Rdx,
46246 Rdx = DAG.getNode(Opc, DL, MVT::v8i16, Rdx,
46247 DAG.getVectorShuffle(MVT::v8i16, DL, Rdx, Rdx,
46249 Rdx = DAG.getNode(Opc, DL, MVT::v8i16, Rdx,
46250 DAG.getVectorShuffle(MVT::v8i16, DL, Rdx, Rdx,
46252 Rdx = DAG.getBitcast(MVT::v16i8, Rdx);
46253 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, VT, Rdx, Index);
46258 Rdx = WidenToV16I8(Rdx, true);
46259 Rdx = DAG.getNode(X86ISD::PSADBW, DL, MVT::v2i64, Rdx,
46261 Rdx = DAG.getBitcast(MVT::v16i8, Rdx);
46262 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, VT, Rdx, Index);
46271 while (Rdx.getValueSizeInBits() > 128) {
46273 std::tie(Lo, Hi) = splitVector(Rdx, DAG, DL);
46275 Rdx = DAG.getNode(ISD::ADD, DL, VecVT, Lo, Hi);
46280 MVT::v16i8, DL, Rdx, Rdx,
46282 Rdx = DAG.getNode(ISD::ADD, DL, MVT::v16i8, Rdx, Hi);
46283 Rdx = DAG.getNode(X86ISD::PSADBW, DL, MVT::v2i64, Rdx,
46285 Rdx = DAG.getBitcast(MVT::v16i8, Rdx);
46286 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, VT, Rdx, Index);
46294 DAG.computeKnownBits(Rdx).getMaxValue().ule(255) &&
46295 (EltSizeInBits == 16 || Rdx.getOpcode() == ISD::ZERO_EXTEND ||
46297 if (Rdx.getValueType() == MVT::v8i16) {
46298 Rdx = DAG.getNode(X86ISD::PACKUS, DL, MVT::v16i8, Rdx,
46302 Rdx = DAG.getNode(ISD::TRUNCATE, DL, ByteVT, Rdx);
46304 Rdx = WidenToV16I8(Rdx, true);
46314 MVT SadVT = MVT::getVectorVT(MVT::i64, Rdx.getValueSizeInBits() / 64);
46315 Rdx = SplitOpsAndApply(DAG, Subtarget, DL, SadVT, {Rdx}, PSADBWBuilder);
46318 while (Rdx.getValueSizeInBits() > 128) {
46320 std::tie(Lo, Hi) = splitVector(Rdx, DAG, DL);
46322 Rdx = DAG.getNode(ISD::ADD, DL, VecVT, Lo, Hi);
46324 assert(Rdx.getValueType() == MVT::v2i64 && "v2i64 reduction expected");
46327 SDValue RdxHi = DAG.getVectorShuffle(MVT::v2i64, DL, Rdx, Rdx, {1, -1});
46328 Rdx = DAG.getNode(ISD::ADD, DL, MVT::v2i64, Rdx, RdxHi);
46332 Rdx = DAG.getBitcast(VecVT, Rdx);
46333 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, VT, Rdx, Index);
46349 SDValue Hi = extract128BitVector(Rdx, NumElts / 2, DAG, DL);
46350 SDValue Lo = extract128BitVector(Rdx, 0, DAG, DL);
46351 Rdx = DAG.getNode(HorizOpcode, DL, Lo.getValueType(), Hi, Lo);
46352 VecVT = Rdx.getValueType();
46361 Rdx = DAG.getNode(HorizOpcode, DL, VecVT, Rdx, Rdx);
46363 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, VT, Rdx, Index);