| 737 | MGB_DYN_TYPE_OBJ_FINAL_IMPL(TypeCvt); |
| 738 | |
| 739 | TypeCvt::TypeCvt(VarNode* inp, DType dest_type, const OperatorNodeConfig& config) |
| 740 | : Super{inp->owner_graph(), |
| 741 | config, |
| 742 | std::string("as") + dest_type.name(), |
| 743 | {inp}} { |
| 744 | init_megdnn_opr(*this, {}); |
| 745 | mgb_assert(dest_type.valid()); |
| 746 | add_input({inp}); |
| 747 | add_equivalence_component<ScalarHash<const void*>>(dest_type.handle()); |
| 748 | output(0)->dtype(dest_type).add_flag(VarNode::Flag::ALLOW_EMPTY_SHAPE); |
| 749 | } |
| 750 | |
| 751 | SymbolVar TypeCvt::make( |
| 752 | SymbolVar input, DType dest_type, const OperatorNodeConfig& config) { |