@@ -37,6 +37,14 @@ auto aten_registrations = RegisterNodeEvaluators()
3737 auto out_tensor = torch::zeros (args.at (n->input (0 )).unwrapToIntList ().vec (), options);
3838 return out_tensor;
3939 }
40+ }).evaluator({
41+ c10::Symbol::fromQualString (" aten::add" ),
42+ [](const torch::jit::Node* n, kwargs& args) -> c10::optional<torch::jit::IValue> {
43+ auto a = args.at (n->input (0 )).unwrapToInt ();
44+ auto b = args.at (n->input (1 )).unwrapToInt ();
45+ return a + b;
46+ },
47+ EvalOptions ().validSchemas ({" aten::add.int(int a, int b) -> (int)" })
4048 }).evaluator({
4149 c10::Symbol::fromQualString (" aten::mul" ),
4250 [](const torch::jit::Node* n, kwargs& args) -> c10::optional<torch::jit::IValue> {
@@ -128,6 +136,42 @@ auto aten_registrations = RegisterNodeEvaluators()
128136 " aten::size(Tensor self) -> (int[])" ,
129137 " aten::size.int(Tensor self, int dim) -> (int)"
130138 })
139+ }).evaluator({
140+ c10::Symbol::fromQualString (" aten::__getitem__" ),
141+ [](const torch::jit::Node* n, kwargs& args) -> c10::optional<torch::jit::IValue> {
142+ auto list = args.at (n->input (0 )).unwrapToIntList ();
143+ auto idx = args.at (n->input (1 )).unwrapToInt ();
144+
145+ const int64_t list_size = list.size ();
146+ const int64_t normalized_idx = normalizeIndex (idx, list_size);
147+ TRTORCH_CHECK (normalized_idx >= 0 || normalized_idx < list_size, " List index out of range (aten::__getitem__)" );
148+ return list.get (normalized_idx);
149+ },
150+ EvalOptions ().validSchemas ({
151+ " aten::__getitem__.t(t[](a) list, int idx) -> (t(*))" ,
152+ })
153+ }).evaluator({
154+ c10::Symbol::fromQualString (" aten::append" ),
155+ [](const torch::jit::Node* n, kwargs& args) -> c10::optional<torch::jit::IValue> {
156+ auto list = args.at (n->input (0 )).unwrapToIntList ();
157+ auto el = args.at (n->input (1 )).unwrapToInt ();
158+
159+ list.push_back (std::move (el));
160+ return list;
161+ },
162+ EvalOptions ().validSchemas ({
163+ " aten::append.t(t[](a!) self, t(c -> *) el) -> (t[](a!))" ,
164+ })
165+ }).evaluator({
166+ c10::Symbol::fromQualString (" aten::neg" ),
167+ [](const torch::jit::Node* n, kwargs& args) -> c10::optional<torch::jit::IValue> {
168+ auto el = args.at (n->input (1 )).unwrapToInt ();
169+
170+ return el * -1 ;
171+ },
172+ EvalOptions ().validSchemas ({
173+ " aten::neg.int(int a) -> (int)" ,
174+ })
131175 });
132176}
133177} // namespace evaluators
0 commit comments