Lines Matching defs:DI

556     std::pair<Type, std::string> emitDagSaveTemp(const DagInit *DI);
557 std::pair<Type, std::string> emitDagSplat(const DagInit *DI);
558 std::pair<Type, std::string> emitDagDup(const DagInit *DI);
559 std::pair<Type, std::string> emitDagDupTyped(const DagInit *DI);
560 std::pair<Type, std::string> emitDagShuffle(const DagInit *DI);
561 std::pair<Type, std::string> emitDagCast(const DagInit *DI, bool IsBitCast);
562 std::pair<Type, std::string> emitDagCall(const DagInit *DI,
564 std::pair<Type, std::string> emitDagNameReplace(const DagInit *DI);
565 std::pair<Type, std::string> emitDagLiteral(const DagInit *DI);
566 std::pair<Type, std::string> emitDagOp(const DagInit *DI);
567 std::pair<Type, std::string> emitDag(const DagInit *DI);
1448 } else if (const auto *DI = dyn_cast<DagInit>(I)) {
1450 Lines.push_back(DE.emitDag(DI).second + ";");
1474 std::pair<Type, std::string> Intrinsic::DagEmitter::emitDag(const DagInit *DI) {
1476 const DefInit *DefI = cast<DefInit>(DI->getOperator());
1480 return emitDagCast(DI, Op == "bitcast");
1482 return emitDagShuffle(DI);
1484 return emitDagDup(DI);
1486 return emitDagDupTyped(DI);
1488 return emitDagSplat(DI);
1490 return emitDagSaveTemp(DI);
1492 return emitDagOp(DI);
1494 return emitDagCall(DI, Op == "call_mangled");
1496 return emitDagNameReplace(DI);
1498 return emitDagLiteral(DI);
1504 Intrinsic::DagEmitter::emitDagOp(const DagInit *DI) {
1505 std::string Op = cast<StringInit>(DI->getArg(0))->getAsUnquotedString();
1506 if (DI->getNumArgs() == 2) {
1509 emitDagArg(DI->getArg(1), std::string(DI->getArgNameStr(1)));
1512 assert(DI->getNumArgs() == 3 && "Can only handle unary and binary ops!");
1514 emitDagArg(DI->getArg(1), std::string(DI->getArgNameStr(1)));
1516 emitDagArg(DI->getArg(2), std::string(DI->getArgNameStr(2)));
1523 Intrinsic::DagEmitter::emitDagCall(const DagInit *DI, bool MatchMangledName) {
1526 for (unsigned I = 0; I < DI->getNumArgs() - 1; ++I) {
1528 emitDagArg(DI->getArg(I + 1), std::string(DI->getArgNameStr(I + 1)));
1535 if (const auto *SI = dyn_cast<StringInit>(DI->getArg(0)))
1538 N = emitDagArg(DI->getArg(0), "").second;
1556 for (unsigned I = 0; I < DI->getNumArgs() - 1; ++I) {
1567 Intrinsic::DagEmitter::emitDagCast(const DagInit *DI, bool IsBitCast) {
1570 emitDagArg(DI->getArg(DI->getNumArgs() - 1),
1571 std::string(DI->getArgNameStr(DI->getNumArgs() - 1)));
1573 for (unsigned ArgIdx = 0; ArgIdx < DI->getNumArgs() - 1; ++ArgIdx) {
1582 if (!DI->getArgNameStr(ArgIdx).empty()) {
1583 assert_with_loc(Intr.Variables.find(DI->getArgNameStr(ArgIdx)) !=
1587 Intr.Variables[std::string(DI->getArgNameStr(ArgIdx))].getType();
1589 const auto *SI = dyn_cast<StringInit>(DI->getArg(ArgIdx));
1623 Intrinsic::DagEmitter::emitDagShuffle(const DagInit *DI) {
1692 emitDagArg(DI->getArg(0), std::string(DI->getArgNameStr(0)));
1694 emitDagArg(DI->getArg(1), std::string(DI->getArgNameStr(1)));
1706 ST.evaluate(DI->getArg(2), Elts, {});
1735 Intrinsic::DagEmitter::emitDagDup(const DagInit *DI) {
1736 assert_with_loc(DI->getNumArgs() == 1, "dup() expects one argument");
1738 emitDagArg(DI->getArg(0), std::string(DI->getArgNameStr(0)));
1755 Intrinsic::DagEmitter::emitDagDupTyped(const DagInit *DI) {
1756 assert_with_loc(DI->getNumArgs() == 2, "dup_typed() expects two arguments");
1758 emitDagArg(DI->getArg(1), std::string(DI->getArgNameStr(1)));
1763 if (const auto *SI = dyn_cast<StringInit>(DI->getArg(0))) {
1767 T = emitDagArg(DI->getArg(0), std::string(DI->getArgNameStr(0))).first;
1782 Intrinsic::DagEmitter::emitDagSplat(const DagInit *DI) {
1783 assert_with_loc(DI->getNumArgs() == 2, "splat() expects two arguments");
1785 emitDagArg(DI->getArg(0), std::string(DI->getArgNameStr(0)));
1787 emitDagArg(DI->getArg(1), std::string(DI->getArgNameStr(1)));
1802 Intrinsic::DagEmitter::emitDagSaveTemp(const DagInit *DI) {
1803 assert_with_loc(DI->getNumArgs() == 2, "save_temp() expects two arguments");
1805 emitDagArg(DI->getArg(1), std::string(DI->getArgNameStr(1)));
1810 std::string N = std::string(DI->getArgNameStr(0));
1825 Intrinsic::DagEmitter::emitDagNameReplace(const DagInit *DI) {
1828 assert_with_loc(DI->getNumArgs() == 2, "name_replace requires 2 arguments!");
1829 std::string ToReplace = cast<StringInit>(DI->getArg(0))->getAsUnquotedString();
1830 std::string ReplaceWith = cast<StringInit>(DI->getArg(1))->getAsUnquotedString();
1841 Intrinsic::DagEmitter::emitDagLiteral(const DagInit *DI) {
1842 std::string Ty = cast<StringInit>(DI->getArg(0))->getAsUnquotedString();
1843 std::string Value = cast<StringInit>(DI->getArg(1))->getAsUnquotedString();
1859 const auto *DI = dyn_cast<DagInit>(Arg);
1860 assert_with_loc(DI, "Arguments must either be DAGs or names!");
1862 return emitDag(DI);