Lines Matching refs:DI
494 std::pair<Type, std::string> emitDagSaveTemp(DagInit *DI);
495 std::pair<Type, std::string> emitDagSplat(DagInit *DI);
496 std::pair<Type, std::string> emitDagDup(DagInit *DI);
497 std::pair<Type, std::string> emitDagDupTyped(DagInit *DI);
498 std::pair<Type, std::string> emitDagShuffle(DagInit *DI);
499 std::pair<Type, std::string> emitDagCast(DagInit *DI, bool IsBitCast);
500 std::pair<Type, std::string> emitDagCall(DagInit *DI);
501 std::pair<Type, std::string> emitDagNameReplace(DagInit *DI);
502 std::pair<Type, std::string> emitDagLiteral(DagInit *DI);
503 std::pair<Type, std::string> emitDagOp(DagInit *DI);
504 std::pair<Type, std::string> emitDag(DagInit *DI);
1486 } else if (DagInit *DI = dyn_cast<DagInit>(I)) { in emitBody() local
1488 Lines.push_back(DE.emitDag(DI).second + ";"); in emitBody()
1512 std::pair<Type, std::string> Intrinsic::DagEmitter::emitDag(DagInit *DI) { in emitDag() argument
1514 DefInit *DefI = cast<DefInit>(DI->getOperator()); in emitDag()
1518 return emitDagCast(DI, Op == "bitcast"); in emitDag()
1520 return emitDagShuffle(DI); in emitDag()
1522 return emitDagDup(DI); in emitDag()
1524 return emitDagDupTyped(DI); in emitDag()
1526 return emitDagSplat(DI); in emitDag()
1528 return emitDagSaveTemp(DI); in emitDag()
1530 return emitDagOp(DI); in emitDag()
1532 return emitDagCall(DI); in emitDag()
1534 return emitDagNameReplace(DI); in emitDag()
1536 return emitDagLiteral(DI); in emitDag()
1541 std::pair<Type, std::string> Intrinsic::DagEmitter::emitDagOp(DagInit *DI) { in emitDagOp() argument
1542 std::string Op = cast<StringInit>(DI->getArg(0))->getAsUnquotedString(); in emitDagOp()
1543 if (DI->getNumArgs() == 2) { in emitDagOp()
1546 emitDagArg(DI->getArg(1), DI->getArgNameStr(1)); in emitDagOp()
1549 assert(DI->getNumArgs() == 3 && "Can only handle unary and binary ops!"); in emitDagOp()
1551 emitDagArg(DI->getArg(1), DI->getArgNameStr(1)); in emitDagOp()
1553 emitDagArg(DI->getArg(2), DI->getArgNameStr(2)); in emitDagOp()
1559 std::pair<Type, std::string> Intrinsic::DagEmitter::emitDagCall(DagInit *DI) { in emitDagCall() argument
1562 for (unsigned I = 0; I < DI->getNumArgs() - 1; ++I) { in emitDagCall()
1564 emitDagArg(DI->getArg(I + 1), DI->getArgNameStr(I + 1)); in emitDagCall()
1571 if (StringInit *SI = dyn_cast<StringInit>(DI->getArg(0))) in emitDagCall()
1574 N = emitDagArg(DI->getArg(0), "").second; in emitDagCall()
1583 for (unsigned I = 0; I < DI->getNumArgs() - 1; ++I) { in emitDagCall()
1593 std::pair<Type, std::string> Intrinsic::DagEmitter::emitDagCast(DagInit *DI, in emitDagCast() argument
1597 DI->getArg(DI->getNumArgs() - 1), in emitDagCast()
1598 DI->getArgNameStr(DI->getNumArgs() - 1)); in emitDagCast()
1600 for (unsigned ArgIdx = 0; ArgIdx < DI->getNumArgs() - 1; ++ArgIdx) { in emitDagCast()
1609 if (!DI->getArgNameStr(ArgIdx).empty()) { in emitDagCast()
1610 assert_with_loc(Intr.Variables.find(DI->getArgNameStr(ArgIdx)) != in emitDagCast()
1613 castToType = Intr.Variables[DI->getArgNameStr(ArgIdx)].getType(); in emitDagCast()
1615 StringInit *SI = dyn_cast<StringInit>(DI->getArg(ArgIdx)); in emitDagCast()
1660 std::pair<Type, std::string> Intrinsic::DagEmitter::emitDagShuffle(DagInit *DI){ in emitDagShuffle() argument
1728 emitDagArg(DI->getArg(0), DI->getArgNameStr(0)); in emitDagShuffle()
1730 emitDagArg(DI->getArg(1), DI->getArgNameStr(1)); in emitDagShuffle()
1742 ST.evaluate(DI->getArg(2), Elts, None); in emitDagShuffle()
1770 std::pair<Type, std::string> Intrinsic::DagEmitter::emitDagDup(DagInit *DI) { in emitDagDup() argument
1771 assert_with_loc(DI->getNumArgs() == 1, "dup() expects one argument"); in emitDagDup()
1772 std::pair<Type, std::string> A = emitDagArg(DI->getArg(0), in emitDagDup()
1773 DI->getArgNameStr(0)); in emitDagDup()
1789 std::pair<Type, std::string> Intrinsic::DagEmitter::emitDagDupTyped(DagInit *DI) { in emitDagDupTyped() argument
1790 assert_with_loc(DI->getNumArgs() == 2, "dup_typed() expects two arguments"); in emitDagDupTyped()
1791 std::pair<Type, std::string> A = emitDagArg(DI->getArg(0), in emitDagDupTyped()
1792 DI->getArgNameStr(0)); in emitDagDupTyped()
1793 std::pair<Type, std::string> B = emitDagArg(DI->getArg(1), in emitDagDupTyped()
1794 DI->getArgNameStr(1)); in emitDagDupTyped()
1811 std::pair<Type, std::string> Intrinsic::DagEmitter::emitDagSplat(DagInit *DI) { in emitDagSplat() argument
1812 assert_with_loc(DI->getNumArgs() == 2, "splat() expects two arguments"); in emitDagSplat()
1813 std::pair<Type, std::string> A = emitDagArg(DI->getArg(0), in emitDagSplat()
1814 DI->getArgNameStr(0)); in emitDagSplat()
1815 std::pair<Type, std::string> B = emitDagArg(DI->getArg(1), in emitDagSplat()
1816 DI->getArgNameStr(1)); in emitDagSplat()
1830 std::pair<Type, std::string> Intrinsic::DagEmitter::emitDagSaveTemp(DagInit *DI) { in emitDagSaveTemp() argument
1831 assert_with_loc(DI->getNumArgs() == 2, "save_temp() expects two arguments"); in emitDagSaveTemp()
1832 std::pair<Type, std::string> A = emitDagArg(DI->getArg(1), in emitDagSaveTemp()
1833 DI->getArgNameStr(1)); in emitDagSaveTemp()
1838 std::string N = DI->getArgNameStr(0); in emitDagSaveTemp()
1853 Intrinsic::DagEmitter::emitDagNameReplace(DagInit *DI) { in emitDagNameReplace() argument
1856 assert_with_loc(DI->getNumArgs() == 2, "name_replace requires 2 arguments!"); in emitDagNameReplace()
1857 std::string ToReplace = cast<StringInit>(DI->getArg(0))->getAsUnquotedString(); in emitDagNameReplace()
1858 std::string ReplaceWith = cast<StringInit>(DI->getArg(1))->getAsUnquotedString(); in emitDagNameReplace()
1868 std::pair<Type, std::string> Intrinsic::DagEmitter::emitDagLiteral(DagInit *DI){ in emitDagLiteral() argument
1869 std::string Ty = cast<StringInit>(DI->getArg(0))->getAsUnquotedString(); in emitDagLiteral()
1870 std::string Value = cast<StringInit>(DI->getArg(1))->getAsUnquotedString(); in emitDagLiteral()
1886 DagInit *DI = dyn_cast<DagInit>(Arg); in emitDagArg() local
1887 assert_with_loc(DI, "Arguments must either be DAGs or names!"); in emitDagArg()
1889 return emitDag(DI); in emitDagArg()