Lines Matching refs:DI
466 std::pair<Type, std::string> emitDagSaveTemp(DagInit *DI);
467 std::pair<Type, std::string> emitDagSplat(DagInit *DI);
468 std::pair<Type, std::string> emitDagDup(DagInit *DI);
469 std::pair<Type, std::string> emitDagShuffle(DagInit *DI);
470 std::pair<Type, std::string> emitDagCast(DagInit *DI, bool IsBitCast);
471 std::pair<Type, std::string> emitDagCall(DagInit *DI);
472 std::pair<Type, std::string> emitDagNameReplace(DagInit *DI);
473 std::pair<Type, std::string> emitDagLiteral(DagInit *DI);
474 std::pair<Type, std::string> emitDagOp(DagInit *DI);
475 std::pair<Type, std::string> emitDag(DagInit *DI);
1390 } else if (DagInit *DI = dyn_cast<DagInit>(I)) { in emitBody() local
1392 Lines.push_back(DE.emitDag(DI).second + ";"); in emitBody()
1416 std::pair<Type, std::string> Intrinsic::DagEmitter::emitDag(DagInit *DI) { in emitDag() argument
1418 DefInit *DefI = cast<DefInit>(DI->getOperator()); in emitDag()
1422 return emitDagCast(DI, Op == "bitcast"); in emitDag()
1424 return emitDagShuffle(DI); in emitDag()
1426 return emitDagDup(DI); in emitDag()
1428 return emitDagSplat(DI); in emitDag()
1430 return emitDagSaveTemp(DI); in emitDag()
1432 return emitDagOp(DI); in emitDag()
1434 return emitDagCall(DI); in emitDag()
1436 return emitDagNameReplace(DI); in emitDag()
1438 return emitDagLiteral(DI); in emitDag()
1443 std::pair<Type, std::string> Intrinsic::DagEmitter::emitDagOp(DagInit *DI) { in emitDagOp() argument
1444 std::string Op = cast<StringInit>(DI->getArg(0))->getAsUnquotedString(); in emitDagOp()
1445 if (DI->getNumArgs() == 2) { in emitDagOp()
1448 emitDagArg(DI->getArg(1), DI->getArgName(1)); in emitDagOp()
1451 assert(DI->getNumArgs() == 3 && "Can only handle unary and binary ops!"); in emitDagOp()
1453 emitDagArg(DI->getArg(1), DI->getArgName(1)); in emitDagOp()
1455 emitDagArg(DI->getArg(2), DI->getArgName(2)); in emitDagOp()
1461 std::pair<Type, std::string> Intrinsic::DagEmitter::emitDagCall(DagInit *DI) { in emitDagCall() argument
1464 for (unsigned I = 0; I < DI->getNumArgs() - 1; ++I) { in emitDagCall()
1466 emitDagArg(DI->getArg(I + 1), DI->getArgName(I + 1)); in emitDagCall()
1473 if (StringInit *SI = dyn_cast<StringInit>(DI->getArg(0))) in emitDagCall()
1476 N = emitDagArg(DI->getArg(0), "").second; in emitDagCall()
1486 for (unsigned I = 0; I < DI->getNumArgs() - 1; ++I) { in emitDagCall()
1496 std::pair<Type, std::string> Intrinsic::DagEmitter::emitDagCast(DagInit *DI, in emitDagCast() argument
1500 DI->getArg(DI->getNumArgs() - 1), DI->getArgName(DI->getNumArgs() - 1)); in emitDagCast()
1502 for (unsigned ArgIdx = 0; ArgIdx < DI->getNumArgs() - 1; ++ArgIdx) { in emitDagCast()
1511 if (DI->getArgName(ArgIdx).size()) { in emitDagCast()
1512 assert_with_loc(Intr.Variables.find(DI->getArgName(ArgIdx)) != in emitDagCast()
1515 castToType = Intr.Variables[DI->getArgName(ArgIdx)].getType(); in emitDagCast()
1517 StringInit *SI = dyn_cast<StringInit>(DI->getArg(ArgIdx)); in emitDagCast()
1562 std::pair<Type, std::string> Intrinsic::DagEmitter::emitDagShuffle(DagInit *DI){ in emitDagShuffle() argument
1633 emitDagArg(DI->getArg(0), DI->getArgName(0)); in emitDagShuffle()
1635 emitDagArg(DI->getArg(1), DI->getArgName(1)); in emitDagShuffle()
1649 ST.evaluate(DI->getArg(2), Elts, ArrayRef<SMLoc>()); in emitDagShuffle()
1677 std::pair<Type, std::string> Intrinsic::DagEmitter::emitDagDup(DagInit *DI) { in emitDagDup() argument
1678 assert_with_loc(DI->getNumArgs() == 1, "dup() expects one argument"); in emitDagDup()
1679 std::pair<Type, std::string> A = emitDagArg(DI->getArg(0), DI->getArgName(0)); in emitDagDup()
1695 std::pair<Type, std::string> Intrinsic::DagEmitter::emitDagSplat(DagInit *DI) { in emitDagSplat() argument
1696 assert_with_loc(DI->getNumArgs() == 2, "splat() expects two arguments"); in emitDagSplat()
1697 std::pair<Type, std::string> A = emitDagArg(DI->getArg(0), DI->getArgName(0)); in emitDagSplat()
1698 std::pair<Type, std::string> B = emitDagArg(DI->getArg(1), DI->getArgName(1)); in emitDagSplat()
1712 std::pair<Type, std::string> Intrinsic::DagEmitter::emitDagSaveTemp(DagInit *DI) { in emitDagSaveTemp() argument
1713 assert_with_loc(DI->getNumArgs() == 2, "save_temp() expects two arguments"); in emitDagSaveTemp()
1714 std::pair<Type, std::string> A = emitDagArg(DI->getArg(1), DI->getArgName(1)); in emitDagSaveTemp()
1719 std::string N = DI->getArgName(0); in emitDagSaveTemp()
1733 Intrinsic::DagEmitter::emitDagNameReplace(DagInit *DI) { in emitDagNameReplace() argument
1736 assert_with_loc(DI->getNumArgs() == 2, "name_replace requires 2 arguments!"); in emitDagNameReplace()
1737 std::string ToReplace = cast<StringInit>(DI->getArg(0))->getAsUnquotedString(); in emitDagNameReplace()
1738 std::string ReplaceWith = cast<StringInit>(DI->getArg(1))->getAsUnquotedString(); in emitDagNameReplace()
1748 std::pair<Type, std::string> Intrinsic::DagEmitter::emitDagLiteral(DagInit *DI){ in emitDagLiteral() argument
1749 std::string Ty = cast<StringInit>(DI->getArg(0))->getAsUnquotedString(); in emitDagLiteral()
1750 std::string Value = cast<StringInit>(DI->getArg(1))->getAsUnquotedString(); in emitDagLiteral()
1766 DagInit *DI = dyn_cast<DagInit>(Arg); in emitDagArg() local
1767 assert_with_loc(DI, "Arguments must either be DAGs or names!"); in emitDagArg()
1769 return emitDag(DI); in emitDagArg()