14d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang// Generated file (from: strided_slice.mod.py). Do not edit
24d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wangvoid CreateModel(Model *model) {
34d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  OperandType type2(Type::INT32, {});
44d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  OperandType type3(Type::TENSOR_FLOAT32, {1, 2});
54d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  OperandType type0(Type::TENSOR_FLOAT32, {2, 3});
64d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  OperandType type1(Type::TENSOR_INT32, {2});
74d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  // Phase 1, operands
84d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  auto input = model->addOperand(&type0);
94d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  auto begins = model->addOperand(&type1);
104d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  auto ends = model->addOperand(&type1);
114d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  auto strides = model->addOperand(&type1);
124d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  auto beginMask = model->addOperand(&type2);
134d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  auto endMask = model->addOperand(&type2);
14b66b5abcef40e88df6ac18ce7890372192102323Miao Wang  auto shrinkAxisMask = model->addOperand(&type2);
154d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  auto output = model->addOperand(&type3);
164d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  // Phase 2, operations
174d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  static int32_t begins_init[] = {0, 0};
184d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  model->setOperandValue(begins, begins_init, sizeof(int32_t) * 2);
194d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  static int32_t ends_init[] = {2, 3};
204d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  model->setOperandValue(ends, ends_init, sizeof(int32_t) * 2);
214d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  static int32_t strides_init[] = {2, 2};
224d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  model->setOperandValue(strides, strides_init, sizeof(int32_t) * 2);
234d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  static int32_t beginMask_init[] = {0};
244d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
254d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  static int32_t endMask_init[] = {0};
264d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
27b66b5abcef40e88df6ac18ce7890372192102323Miao Wang  static int32_t shrinkAxisMask_init[] = {0};
28b66b5abcef40e88df6ac18ce7890372192102323Miao Wang  model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
29b66b5abcef40e88df6ac18ce7890372192102323Miao Wang  model->addOperation(ANEURALNETWORKS_STRIDED_SLICE, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
304d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  // Phase 3, inputs and outputs
314d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  model->identifyInputsAndOutputs(
324d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang    {input},
334d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang    {output});
344d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  assert(model->isValid());
354d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang}
364d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang
374d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wangbool is_ignored(int i) {
384d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  static std::set<int> ignore = {};
394d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang  return ignore.find(i) != ignore.end();
404d8c48b3cc55c0748ef87a0ba8bbbd3959680213Miao Wang}
41