|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
lib/Target/Hexagon/HexagonISelLoweringHVX.cpp 1344 SDValue M = getInstr(MpyOpc, dl, ExtTy, {Vs, Vt}, DAG);
1351 VectorPair P = opSplit(opCastElem(M, ElemTy, DAG), dl, DAG);
1351 VectorPair P = opSplit(opCastElem(M, ElemTy, DAG), dl, DAG);
1352 SDValue BS = getByteShuffle(dl, P.first, P.second, ShuffMask, DAG);
1353 return DAG.getBitcast(ResTy, BS);
1357 SDValue S16 = DAG.getConstant(16, dl, MVT::i32);
1374 SDValue T0 = getInstr(Hexagon::V6_vmpyewuh, dl, ResTy, {Vt, Vs}, DAG);
1376 SDValue S0 = getInstr(Hexagon::V6_vasrw, dl, ResTy, {Vs, S16}, DAG);
1378 {T0, S0, Vt}, DAG);
1380 SDValue S2 = getInstr(Hexagon::V6_vasrw, dl, ResTy, {T1, S16}, DAG);
1382 SDValue T2 = getInstr(Hexagon::V6_vmpyiowh, dl, ResTy, {S0, Vt}, DAG);
1384 SDValue T3 = DAG.getNode(ISD::ADD, dl, ResTy, {S2, T2});
1390 auto LoVec = [&DAG,ResTy,dl] (SDValue Pair) {
1391 return DAG.getTargetExtractSubreg(Hexagon::vsub_lo, dl, ResTy, Pair);
1393 auto HiVec = [&DAG,ResTy,dl] (SDValue Pair) {
1394 return DAG.getTargetExtractSubreg(Hexagon::vsub_hi, dl, ResTy, Pair);
1399 {DAG.getConstant(0x02020202, dl, MVT::i32)}, DAG);
1399 {DAG.getConstant(0x02020202, dl, MVT::i32)}, DAG);
1403 SDValue T0 = getInstr(Hexagon::V6_vmpyuhv, dl, PairTy, {Vs, Vt}, DAG);
1407 SDValue T1 = getInstr(Hexagon::V6_vlsrw, dl, ResTy, {LoVec(T0), S16}, DAG);
1410 SDValue D0 = getInstr(Hexagon::V6_vdelta, dl, ResTy, {Vt, P}, DAG);
1411 SDValue T2 = getInstr(Hexagon::V6_vmpyuhv, dl, PairTy, {Vs, D0}, DAG);
1417 {LoVec(T2), HiVec(T2)}, DAG);
1419 SDValue T4 = DAG.getNode(ISD::ADD, dl, ResTy, {T1, LoVec(T3)});
1420 SDValue T5 = getInstr(Hexagon::V6_vlsrw, dl, ResTy, {T4, S16}, DAG);
1421 SDValue T6 = DAG.getNode(ISD::ADD, dl, ResTy, {HiVec(T0), HiVec(T3)});
1422 SDValue T7 = DAG.getNode(ISD::ADD, dl, ResTy, {T5, T6});