Home | History | Annotate | Download | only in models
      1 // clang-format off
      2 // Generated file (from: detection_postprocess.mod.py). Do not edit
      3 void CreateModel_regular(Model *model) {
      4   OperandType type0(Type::TENSOR_FLOAT32, {1, 6, 3});
      5   OperandType type1(Type::TENSOR_FLOAT32, {1, 6, 4});
      6   OperandType type2(Type::TENSOR_FLOAT32, {6, 4});
      7   OperandType type3(Type::TENSOR_FLOAT32, {1, 3});
      8   OperandType type4(Type::TENSOR_FLOAT32, {1, 3, 4});
      9   OperandType type5(Type::TENSOR_INT32, {1, 3});
     10   OperandType type6(Type::TENSOR_INT32, {1});
     11   OperandType type7(Type::FLOAT32, {});
     12   OperandType type8(Type::BOOL, {});
     13   OperandType type9(Type::INT32, {});
     14   // Phase 1, operands
     15   auto scores = model->addOperand(&type0);
     16   auto roi = model->addOperand(&type1);
     17   auto anchors = model->addOperand(&type2);
     18   auto param = model->addOperand(&type7);
     19   auto param1 = model->addOperand(&type7);
     20   auto param2 = model->addOperand(&type7);
     21   auto param3 = model->addOperand(&type7);
     22   auto param4 = model->addOperand(&type8);
     23   auto param5 = model->addOperand(&type9);
     24   auto param6 = model->addOperand(&type9);
     25   auto param7 = model->addOperand(&type9);
     26   auto param8 = model->addOperand(&type7);
     27   auto param9 = model->addOperand(&type7);
     28   auto param10 = model->addOperand(&type8);
     29   auto scoresOut = model->addOperand(&type3);
     30   auto roiOut = model->addOperand(&type4);
     31   auto classesOut = model->addOperand(&type5);
     32   auto detectionOut = model->addOperand(&type6);
     33   // Phase 2, operations
     34   static float param_init[] = {10.0f};
     35   model->setOperandValue(param, param_init, sizeof(float) * 1);
     36   static float param1_init[] = {10.0f};
     37   model->setOperandValue(param1, param1_init, sizeof(float) * 1);
     38   static float param2_init[] = {5.0f};
     39   model->setOperandValue(param2, param2_init, sizeof(float) * 1);
     40   static float param3_init[] = {5.0f};
     41   model->setOperandValue(param3, param3_init, sizeof(float) * 1);
     42   static bool8 param4_init[] = {true};
     43   model->setOperandValue(param4, param4_init, sizeof(bool8) * 1);
     44   static int32_t param5_init[] = {3};
     45   model->setOperandValue(param5, param5_init, sizeof(int32_t) * 1);
     46   static int32_t param6_init[] = {1};
     47   model->setOperandValue(param6, param6_init, sizeof(int32_t) * 1);
     48   static int32_t param7_init[] = {1};
     49   model->setOperandValue(param7, param7_init, sizeof(int32_t) * 1);
     50   static float param8_init[] = {0.0f};
     51   model->setOperandValue(param8, param8_init, sizeof(float) * 1);
     52   static float param9_init[] = {0.5f};
     53   model->setOperandValue(param9, param9_init, sizeof(float) * 1);
     54   static bool8 param10_init[] = {false};
     55   model->setOperandValue(param10, param10_init, sizeof(bool8) * 1);
     56   model->addOperation(ANEURALNETWORKS_DETECTION_POSTPROCESSING, {scores, roi, anchors, param, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10}, {scoresOut, roiOut, classesOut, detectionOut});
     57   // Phase 3, inputs and outputs
     58   model->identifyInputsAndOutputs(
     59     {scores, roi, anchors},
     60     {scoresOut, roiOut, classesOut, detectionOut});
     61   assert(model->isValid());
     62 }
     63 
     64 inline bool is_ignored_regular(int i) {
     65   static std::set<int> ignore = {};
     66   return ignore.find(i) != ignore.end();
     67 }
     68 
     69 void CreateModel_regular_relaxed(Model *model) {
     70   OperandType type0(Type::TENSOR_FLOAT32, {1, 6, 3});
     71   OperandType type1(Type::TENSOR_FLOAT32, {1, 6, 4});
     72   OperandType type2(Type::TENSOR_FLOAT32, {6, 4});
     73   OperandType type3(Type::TENSOR_FLOAT32, {1, 3});
     74   OperandType type4(Type::TENSOR_FLOAT32, {1, 3, 4});
     75   OperandType type5(Type::TENSOR_INT32, {1, 3});
     76   OperandType type6(Type::TENSOR_INT32, {1});
     77   OperandType type7(Type::FLOAT32, {});
     78   OperandType type8(Type::BOOL, {});
     79   OperandType type9(Type::INT32, {});
     80   // Phase 1, operands
     81   auto scores = model->addOperand(&type0);
     82   auto roi = model->addOperand(&type1);
     83   auto anchors = model->addOperand(&type2);
     84   auto param = model->addOperand(&type7);
     85   auto param1 = model->addOperand(&type7);
     86   auto param2 = model->addOperand(&type7);
     87   auto param3 = model->addOperand(&type7);
     88   auto param4 = model->addOperand(&type8);
     89   auto param5 = model->addOperand(&type9);
     90   auto param6 = model->addOperand(&type9);
     91   auto param7 = model->addOperand(&type9);
     92   auto param8 = model->addOperand(&type7);
     93   auto param9 = model->addOperand(&type7);
     94   auto param10 = model->addOperand(&type8);
     95   auto scoresOut = model->addOperand(&type3);
     96   auto roiOut = model->addOperand(&type4);
     97   auto classesOut = model->addOperand(&type5);
     98   auto detectionOut = model->addOperand(&type6);
     99   // Phase 2, operations
    100   static float param_init[] = {10.0f};
    101   model->setOperandValue(param, param_init, sizeof(float) * 1);
    102   static float param1_init[] = {10.0f};
    103   model->setOperandValue(param1, param1_init, sizeof(float) * 1);
    104   static float param2_init[] = {5.0f};
    105   model->setOperandValue(param2, param2_init, sizeof(float) * 1);
    106   static float param3_init[] = {5.0f};
    107   model->setOperandValue(param3, param3_init, sizeof(float) * 1);
    108   static bool8 param4_init[] = {true};
    109   model->setOperandValue(param4, param4_init, sizeof(bool8) * 1);
    110   static int32_t param5_init[] = {3};
    111   model->setOperandValue(param5, param5_init, sizeof(int32_t) * 1);
    112   static int32_t param6_init[] = {1};
    113   model->setOperandValue(param6, param6_init, sizeof(int32_t) * 1);
    114   static int32_t param7_init[] = {1};
    115   model->setOperandValue(param7, param7_init, sizeof(int32_t) * 1);
    116   static float param8_init[] = {0.0f};
    117   model->setOperandValue(param8, param8_init, sizeof(float) * 1);
    118   static float param9_init[] = {0.5f};
    119   model->setOperandValue(param9, param9_init, sizeof(float) * 1);
    120   static bool8 param10_init[] = {false};
    121   model->setOperandValue(param10, param10_init, sizeof(bool8) * 1);
    122   model->addOperation(ANEURALNETWORKS_DETECTION_POSTPROCESSING, {scores, roi, anchors, param, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10}, {scoresOut, roiOut, classesOut, detectionOut});
    123   // Phase 3, inputs and outputs
    124   model->identifyInputsAndOutputs(
    125     {scores, roi, anchors},
    126     {scoresOut, roiOut, classesOut, detectionOut});
    127   // Phase 4: set relaxed execution
    128   model->relaxComputationFloat32toFloat16(true);
    129   assert(model->isValid());
    130 }
    131 
    132 inline bool is_ignored_regular_relaxed(int i) {
    133   static std::set<int> ignore = {};
    134   return ignore.find(i) != ignore.end();
    135 }
    136 
    137 void CreateModel_regular_float16(Model *model) {
    138   OperandType type11(Type::TENSOR_FLOAT16, {6, 4});
    139   OperandType type12(Type::FLOAT16, {});
    140   OperandType type13(Type::TENSOR_FLOAT16, {1, 6, 4});
    141   OperandType type14(Type::TENSOR_FLOAT16, {1, 3, 4});
    142   OperandType type15(Type::TENSOR_FLOAT16, {1, 6, 3});
    143   OperandType type16(Type::TENSOR_FLOAT16, {1, 3});
    144   OperandType type5(Type::TENSOR_INT32, {1, 3});
    145   OperandType type6(Type::TENSOR_INT32, {1});
    146   OperandType type8(Type::BOOL, {});
    147   OperandType type9(Type::INT32, {});
    148   // Phase 1, operands
    149   auto scores = model->addOperand(&type15);
    150   auto roi = model->addOperand(&type13);
    151   auto anchors = model->addOperand(&type11);
    152   auto param = model->addOperand(&type12);
    153   auto param1 = model->addOperand(&type12);
    154   auto param2 = model->addOperand(&type12);
    155   auto param3 = model->addOperand(&type12);
    156   auto param4 = model->addOperand(&type8);
    157   auto param5 = model->addOperand(&type9);
    158   auto param6 = model->addOperand(&type9);
    159   auto param7 = model->addOperand(&type9);
    160   auto param8 = model->addOperand(&type12);
    161   auto param9 = model->addOperand(&type12);
    162   auto param10 = model->addOperand(&type8);
    163   auto scoresOut = model->addOperand(&type16);
    164   auto roiOut = model->addOperand(&type14);
    165   auto classesOut = model->addOperand(&type5);
    166   auto detectionOut = model->addOperand(&type6);
    167   // Phase 2, operations
    168   static _Float16 param_init[] = {10.0f};
    169   model->setOperandValue(param, param_init, sizeof(_Float16) * 1);
    170   static _Float16 param1_init[] = {10.0f};
    171   model->setOperandValue(param1, param1_init, sizeof(_Float16) * 1);
    172   static _Float16 param2_init[] = {5.0f};
    173   model->setOperandValue(param2, param2_init, sizeof(_Float16) * 1);
    174   static _Float16 param3_init[] = {5.0f};
    175   model->setOperandValue(param3, param3_init, sizeof(_Float16) * 1);
    176   static bool8 param4_init[] = {true};
    177   model->setOperandValue(param4, param4_init, sizeof(bool8) * 1);
    178   static int32_t param5_init[] = {3};
    179   model->setOperandValue(param5, param5_init, sizeof(int32_t) * 1);
    180   static int32_t param6_init[] = {1};
    181   model->setOperandValue(param6, param6_init, sizeof(int32_t) * 1);
    182   static int32_t param7_init[] = {1};
    183   model->setOperandValue(param7, param7_init, sizeof(int32_t) * 1);
    184   static _Float16 param8_init[] = {0.0f};
    185   model->setOperandValue(param8, param8_init, sizeof(_Float16) * 1);
    186   static _Float16 param9_init[] = {0.5f};
    187   model->setOperandValue(param9, param9_init, sizeof(_Float16) * 1);
    188   static bool8 param10_init[] = {false};
    189   model->setOperandValue(param10, param10_init, sizeof(bool8) * 1);
    190   model->addOperation(ANEURALNETWORKS_DETECTION_POSTPROCESSING, {scores, roi, anchors, param, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10}, {scoresOut, roiOut, classesOut, detectionOut});
    191   // Phase 3, inputs and outputs
    192   model->identifyInputsAndOutputs(
    193     {scores, roi, anchors},
    194     {scoresOut, roiOut, classesOut, detectionOut});
    195   assert(model->isValid());
    196 }
    197 
    198 inline bool is_ignored_regular_float16(int i) {
    199   static std::set<int> ignore = {};
    200   return ignore.find(i) != ignore.end();
    201 }
    202 
    203 void CreateModel_regular_dynamic_output_shape(Model *model) {
    204   OperandType type0(Type::TENSOR_FLOAT32, {1, 6, 3});
    205   OperandType type1(Type::TENSOR_FLOAT32, {1, 6, 4});
    206   OperandType type17(Type::TENSOR_FLOAT32, {0, 0});
    207   OperandType type18(Type::TENSOR_FLOAT32, {0, 0, 0});
    208   OperandType type19(Type::TENSOR_INT32, {0, 0});
    209   OperandType type2(Type::TENSOR_FLOAT32, {6, 4});
    210   OperandType type20(Type::TENSOR_INT32, {0});
    211   OperandType type7(Type::FLOAT32, {});
    212   OperandType type8(Type::BOOL, {});
    213   OperandType type9(Type::INT32, {});
    214   // Phase 1, operands
    215   auto scores = model->addOperand(&type0);
    216   auto roi = model->addOperand(&type1);
    217   auto anchors = model->addOperand(&type2);
    218   auto param = model->addOperand(&type7);
    219   auto param1 = model->addOperand(&type7);
    220   auto param2 = model->addOperand(&type7);
    221   auto param3 = model->addOperand(&type7);
    222   auto param4 = model->addOperand(&type8);
    223   auto param5 = model->addOperand(&type9);
    224   auto param6 = model->addOperand(&type9);
    225   auto param7 = model->addOperand(&type9);
    226   auto param8 = model->addOperand(&type7);
    227   auto param9 = model->addOperand(&type7);
    228   auto param10 = model->addOperand(&type8);
    229   auto scoresOut = model->addOperand(&type17);
    230   auto roiOut = model->addOperand(&type18);
    231   auto classesOut = model->addOperand(&type19);
    232   auto detectionOut = model->addOperand(&type20);
    233   // Phase 2, operations
    234   static float param_init[] = {10.0f};
    235   model->setOperandValue(param, param_init, sizeof(float) * 1);
    236   static float param1_init[] = {10.0f};
    237   model->setOperandValue(param1, param1_init, sizeof(float) * 1);
    238   static float param2_init[] = {5.0f};
    239   model->setOperandValue(param2, param2_init, sizeof(float) * 1);
    240   static float param3_init[] = {5.0f};
    241   model->setOperandValue(param3, param3_init, sizeof(float) * 1);
    242   static bool8 param4_init[] = {true};
    243   model->setOperandValue(param4, param4_init, sizeof(bool8) * 1);
    244   static int32_t param5_init[] = {3};
    245   model->setOperandValue(param5, param5_init, sizeof(int32_t) * 1);
    246   static int32_t param6_init[] = {1};
    247   model->setOperandValue(param6, param6_init, sizeof(int32_t) * 1);
    248   static int32_t param7_init[] = {1};
    249   model->setOperandValue(param7, param7_init, sizeof(int32_t) * 1);
    250   static float param8_init[] = {0.0f};
    251   model->setOperandValue(param8, param8_init, sizeof(float) * 1);
    252   static float param9_init[] = {0.5f};
    253   model->setOperandValue(param9, param9_init, sizeof(float) * 1);
    254   static bool8 param10_init[] = {false};
    255   model->setOperandValue(param10, param10_init, sizeof(bool8) * 1);
    256   model->addOperation(ANEURALNETWORKS_DETECTION_POSTPROCESSING, {scores, roi, anchors, param, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10}, {scoresOut, roiOut, classesOut, detectionOut});
    257   // Phase 3, inputs and outputs
    258   model->identifyInputsAndOutputs(
    259     {scores, roi, anchors},
    260     {scoresOut, roiOut, classesOut, detectionOut});
    261   assert(model->isValid());
    262 }
    263 
    264 inline bool is_ignored_regular_dynamic_output_shape(int i) {
    265   static std::set<int> ignore = {};
    266   return ignore.find(i) != ignore.end();
    267 }
    268 
    269 void CreateModel_regular_dynamic_output_shape_relaxed(Model *model) {
    270   OperandType type0(Type::TENSOR_FLOAT32, {1, 6, 3});
    271   OperandType type1(Type::TENSOR_FLOAT32, {1, 6, 4});
    272   OperandType type17(Type::TENSOR_FLOAT32, {0, 0});
    273   OperandType type18(Type::TENSOR_FLOAT32, {0, 0, 0});
    274   OperandType type19(Type::TENSOR_INT32, {0, 0});
    275   OperandType type2(Type::TENSOR_FLOAT32, {6, 4});
    276   OperandType type20(Type::TENSOR_INT32, {0});
    277   OperandType type7(Type::FLOAT32, {});
    278   OperandType type8(Type::BOOL, {});
    279   OperandType type9(Type::INT32, {});
    280   // Phase 1, operands
    281   auto scores = model->addOperand(&type0);
    282   auto roi = model->addOperand(&type1);
    283   auto anchors = model->addOperand(&type2);
    284   auto param = model->addOperand(&type7);
    285   auto param1 = model->addOperand(&type7);
    286   auto param2 = model->addOperand(&type7);
    287   auto param3 = model->addOperand(&type7);
    288   auto param4 = model->addOperand(&type8);
    289   auto param5 = model->addOperand(&type9);
    290   auto param6 = model->addOperand(&type9);
    291   auto param7 = model->addOperand(&type9);
    292   auto param8 = model->addOperand(&type7);
    293   auto param9 = model->addOperand(&type7);
    294   auto param10 = model->addOperand(&type8);
    295   auto scoresOut = model->addOperand(&type17);
    296   auto roiOut = model->addOperand(&type18);
    297   auto classesOut = model->addOperand(&type19);
    298   auto detectionOut = model->addOperand(&type20);
    299   // Phase 2, operations
    300   static float param_init[] = {10.0f};
    301   model->setOperandValue(param, param_init, sizeof(float) * 1);
    302   static float param1_init[] = {10.0f};
    303   model->setOperandValue(param1, param1_init, sizeof(float) * 1);
    304   static float param2_init[] = {5.0f};
    305   model->setOperandValue(param2, param2_init, sizeof(float) * 1);
    306   static float param3_init[] = {5.0f};
    307   model->setOperandValue(param3, param3_init, sizeof(float) * 1);
    308   static bool8 param4_init[] = {true};
    309   model->setOperandValue(param4, param4_init, sizeof(bool8) * 1);
    310   static int32_t param5_init[] = {3};
    311   model->setOperandValue(param5, param5_init, sizeof(int32_t) * 1);
    312   static int32_t param6_init[] = {1};
    313   model->setOperandValue(param6, param6_init, sizeof(int32_t) * 1);
    314   static int32_t param7_init[] = {1};
    315   model->setOperandValue(param7, param7_init, sizeof(int32_t) * 1);
    316   static float param8_init[] = {0.0f};
    317   model->setOperandValue(param8, param8_init, sizeof(float) * 1);
    318   static float param9_init[] = {0.5f};
    319   model->setOperandValue(param9, param9_init, sizeof(float) * 1);
    320   static bool8 param10_init[] = {false};
    321   model->setOperandValue(param10, param10_init, sizeof(bool8) * 1);
    322   model->addOperation(ANEURALNETWORKS_DETECTION_POSTPROCESSING, {scores, roi, anchors, param, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10}, {scoresOut, roiOut, classesOut, detectionOut});
    323   // Phase 3, inputs and outputs
    324   model->identifyInputsAndOutputs(
    325     {scores, roi, anchors},
    326     {scoresOut, roiOut, classesOut, detectionOut});
    327   // Phase 4: set relaxed execution
    328   model->relaxComputationFloat32toFloat16(true);
    329   assert(model->isValid());
    330 }
    331 
    332 inline bool is_ignored_regular_dynamic_output_shape_relaxed(int i) {
    333   static std::set<int> ignore = {};
    334   return ignore.find(i) != ignore.end();
    335 }
    336 
    337 void CreateModel_regular_dynamic_output_shape_float16(Model *model) {
    338   OperandType type11(Type::TENSOR_FLOAT16, {6, 4});
    339   OperandType type12(Type::FLOAT16, {});
    340   OperandType type13(Type::TENSOR_FLOAT16, {1, 6, 4});
    341   OperandType type15(Type::TENSOR_FLOAT16, {1, 6, 3});
    342   OperandType type19(Type::TENSOR_INT32, {0, 0});
    343   OperandType type20(Type::TENSOR_INT32, {0});
    344   OperandType type21(Type::TENSOR_FLOAT16, {0, 0});
    345   OperandType type22(Type::TENSOR_FLOAT16, {0, 0, 0});
    346   OperandType type8(Type::BOOL, {});
    347   OperandType type9(Type::INT32, {});
    348   // Phase 1, operands
    349   auto scores = model->addOperand(&type15);
    350   auto roi = model->addOperand(&type13);
    351   auto anchors = model->addOperand(&type11);
    352   auto param = model->addOperand(&type12);
    353   auto param1 = model->addOperand(&type12);
    354   auto param2 = model->addOperand(&type12);
    355   auto param3 = model->addOperand(&type12);
    356   auto param4 = model->addOperand(&type8);
    357   auto param5 = model->addOperand(&type9);
    358   auto param6 = model->addOperand(&type9);
    359   auto param7 = model->addOperand(&type9);
    360   auto param8 = model->addOperand(&type12);
    361   auto param9 = model->addOperand(&type12);
    362   auto param10 = model->addOperand(&type8);
    363   auto scoresOut = model->addOperand(&type21);
    364   auto roiOut = model->addOperand(&type22);
    365   auto classesOut = model->addOperand(&type19);
    366   auto detectionOut = model->addOperand(&type20);
    367   // Phase 2, operations
    368   static _Float16 param_init[] = {10.0f};
    369   model->setOperandValue(param, param_init, sizeof(_Float16) * 1);
    370   static _Float16 param1_init[] = {10.0f};
    371   model->setOperandValue(param1, param1_init, sizeof(_Float16) * 1);
    372   static _Float16 param2_init[] = {5.0f};
    373   model->setOperandValue(param2, param2_init, sizeof(_Float16) * 1);
    374   static _Float16 param3_init[] = {5.0f};
    375   model->setOperandValue(param3, param3_init, sizeof(_Float16) * 1);
    376   static bool8 param4_init[] = {true};
    377   model->setOperandValue(param4, param4_init, sizeof(bool8) * 1);
    378   static int32_t param5_init[] = {3};
    379   model->setOperandValue(param5, param5_init, sizeof(int32_t) * 1);
    380   static int32_t param6_init[] = {1};
    381   model->setOperandValue(param6, param6_init, sizeof(int32_t) * 1);
    382   static int32_t param7_init[] = {1};
    383   model->setOperandValue(param7, param7_init, sizeof(int32_t) * 1);
    384   static _Float16 param8_init[] = {0.0f};
    385   model->setOperandValue(param8, param8_init, sizeof(_Float16) * 1);
    386   static _Float16 param9_init[] = {0.5f};
    387   model->setOperandValue(param9, param9_init, sizeof(_Float16) * 1);
    388   static bool8 param10_init[] = {false};
    389   model->setOperandValue(param10, param10_init, sizeof(bool8) * 1);
    390   model->addOperation(ANEURALNETWORKS_DETECTION_POSTPROCESSING, {scores, roi, anchors, param, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10}, {scoresOut, roiOut, classesOut, detectionOut});
    391   // Phase 3, inputs and outputs
    392   model->identifyInputsAndOutputs(
    393     {scores, roi, anchors},
    394     {scoresOut, roiOut, classesOut, detectionOut});
    395   assert(model->isValid());
    396 }
    397 
    398 inline bool is_ignored_regular_dynamic_output_shape_float16(int i) {
    399   static std::set<int> ignore = {};
    400   return ignore.find(i) != ignore.end();
    401 }
    402 
    403 void CreateModel(Model *model) {
    404   OperandType type0(Type::TENSOR_FLOAT32, {1, 6, 3});
    405   OperandType type1(Type::TENSOR_FLOAT32, {1, 6, 4});
    406   OperandType type2(Type::TENSOR_FLOAT32, {6, 4});
    407   OperandType type3(Type::TENSOR_FLOAT32, {1, 3});
    408   OperandType type4(Type::TENSOR_FLOAT32, {1, 3, 4});
    409   OperandType type5(Type::TENSOR_INT32, {1, 3});
    410   OperandType type6(Type::TENSOR_INT32, {1});
    411   OperandType type7(Type::FLOAT32, {});
    412   OperandType type8(Type::BOOL, {});
    413   OperandType type9(Type::INT32, {});
    414   // Phase 1, operands
    415   auto scores1 = model->addOperand(&type0);
    416   auto roi1 = model->addOperand(&type1);
    417   auto anchors1 = model->addOperand(&type2);
    418   auto param11 = model->addOperand(&type7);
    419   auto param12 = model->addOperand(&type7);
    420   auto param13 = model->addOperand(&type7);
    421   auto param14 = model->addOperand(&type7);
    422   auto param15 = model->addOperand(&type8);
    423   auto param16 = model->addOperand(&type9);
    424   auto param17 = model->addOperand(&type9);
    425   auto param18 = model->addOperand(&type9);
    426   auto param19 = model->addOperand(&type7);
    427   auto param20 = model->addOperand(&type7);
    428   auto param21 = model->addOperand(&type8);
    429   auto scoresOut1 = model->addOperand(&type3);
    430   auto roiOut1 = model->addOperand(&type4);
    431   auto classesOut1 = model->addOperand(&type5);
    432   auto detectionOut1 = model->addOperand(&type6);
    433   // Phase 2, operations
    434   static float param11_init[] = {10.0f};
    435   model->setOperandValue(param11, param11_init, sizeof(float) * 1);
    436   static float param12_init[] = {10.0f};
    437   model->setOperandValue(param12, param12_init, sizeof(float) * 1);
    438   static float param13_init[] = {5.0f};
    439   model->setOperandValue(param13, param13_init, sizeof(float) * 1);
    440   static float param14_init[] = {5.0f};
    441   model->setOperandValue(param14, param14_init, sizeof(float) * 1);
    442   static bool8 param15_init[] = {false};
    443   model->setOperandValue(param15, param15_init, sizeof(bool8) * 1);
    444   static int32_t param16_init[] = {3};
    445   model->setOperandValue(param16, param16_init, sizeof(int32_t) * 1);
    446   static int32_t param17_init[] = {1};
    447   model->setOperandValue(param17, param17_init, sizeof(int32_t) * 1);
    448   static int32_t param18_init[] = {1};
    449   model->setOperandValue(param18, param18_init, sizeof(int32_t) * 1);
    450   static float param19_init[] = {0.0f};
    451   model->setOperandValue(param19, param19_init, sizeof(float) * 1);
    452   static float param20_init[] = {0.5f};
    453   model->setOperandValue(param20, param20_init, sizeof(float) * 1);
    454   static bool8 param21_init[] = {false};
    455   model->setOperandValue(param21, param21_init, sizeof(bool8) * 1);
    456   model->addOperation(ANEURALNETWORKS_DETECTION_POSTPROCESSING, {scores1, roi1, anchors1, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20, param21}, {scoresOut1, roiOut1, classesOut1, detectionOut1});
    457   // Phase 3, inputs and outputs
    458   model->identifyInputsAndOutputs(
    459     {scores1, roi1, anchors1},
    460     {scoresOut1, roiOut1, classesOut1, detectionOut1});
    461   assert(model->isValid());
    462 }
    463 
    464 inline bool is_ignored(int i) {
    465   static std::set<int> ignore = {};
    466   return ignore.find(i) != ignore.end();
    467 }
    468 
    469 void CreateModel_relaxed(Model *model) {
    470   OperandType type0(Type::TENSOR_FLOAT32, {1, 6, 3});
    471   OperandType type1(Type::TENSOR_FLOAT32, {1, 6, 4});
    472   OperandType type2(Type::TENSOR_FLOAT32, {6, 4});
    473   OperandType type3(Type::TENSOR_FLOAT32, {1, 3});
    474   OperandType type4(Type::TENSOR_FLOAT32, {1, 3, 4});
    475   OperandType type5(Type::TENSOR_INT32, {1, 3});
    476   OperandType type6(Type::TENSOR_INT32, {1});
    477   OperandType type7(Type::FLOAT32, {});
    478   OperandType type8(Type::BOOL, {});
    479   OperandType type9(Type::INT32, {});
    480   // Phase 1, operands
    481   auto scores1 = model->addOperand(&type0);
    482   auto roi1 = model->addOperand(&type1);
    483   auto anchors1 = model->addOperand(&type2);
    484   auto param11 = model->addOperand(&type7);
    485   auto param12 = model->addOperand(&type7);
    486   auto param13 = model->addOperand(&type7);
    487   auto param14 = model->addOperand(&type7);
    488   auto param15 = model->addOperand(&type8);
    489   auto param16 = model->addOperand(&type9);
    490   auto param17 = model->addOperand(&type9);
    491   auto param18 = model->addOperand(&type9);
    492   auto param19 = model->addOperand(&type7);
    493   auto param20 = model->addOperand(&type7);
    494   auto param21 = model->addOperand(&type8);
    495   auto scoresOut1 = model->addOperand(&type3);
    496   auto roiOut1 = model->addOperand(&type4);
    497   auto classesOut1 = model->addOperand(&type5);
    498   auto detectionOut1 = model->addOperand(&type6);
    499   // Phase 2, operations
    500   static float param11_init[] = {10.0f};
    501   model->setOperandValue(param11, param11_init, sizeof(float) * 1);
    502   static float param12_init[] = {10.0f};
    503   model->setOperandValue(param12, param12_init, sizeof(float) * 1);
    504   static float param13_init[] = {5.0f};
    505   model->setOperandValue(param13, param13_init, sizeof(float) * 1);
    506   static float param14_init[] = {5.0f};
    507   model->setOperandValue(param14, param14_init, sizeof(float) * 1);
    508   static bool8 param15_init[] = {false};
    509   model->setOperandValue(param15, param15_init, sizeof(bool8) * 1);
    510   static int32_t param16_init[] = {3};
    511   model->setOperandValue(param16, param16_init, sizeof(int32_t) * 1);
    512   static int32_t param17_init[] = {1};
    513   model->setOperandValue(param17, param17_init, sizeof(int32_t) * 1);
    514   static int32_t param18_init[] = {1};
    515   model->setOperandValue(param18, param18_init, sizeof(int32_t) * 1);
    516   static float param19_init[] = {0.0f};
    517   model->setOperandValue(param19, param19_init, sizeof(float) * 1);
    518   static float param20_init[] = {0.5f};
    519   model->setOperandValue(param20, param20_init, sizeof(float) * 1);
    520   static bool8 param21_init[] = {false};
    521   model->setOperandValue(param21, param21_init, sizeof(bool8) * 1);
    522   model->addOperation(ANEURALNETWORKS_DETECTION_POSTPROCESSING, {scores1, roi1, anchors1, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20, param21}, {scoresOut1, roiOut1, classesOut1, detectionOut1});
    523   // Phase 3, inputs and outputs
    524   model->identifyInputsAndOutputs(
    525     {scores1, roi1, anchors1},
    526     {scoresOut1, roiOut1, classesOut1, detectionOut1});
    527   // Phase 4: set relaxed execution
    528   model->relaxComputationFloat32toFloat16(true);
    529   assert(model->isValid());
    530 }
    531 
    532 inline bool is_ignored_relaxed(int i) {
    533   static std::set<int> ignore = {};
    534   return ignore.find(i) != ignore.end();
    535 }
    536 
    537 void CreateModel_float16(Model *model) {
    538   OperandType type11(Type::TENSOR_FLOAT16, {6, 4});
    539   OperandType type12(Type::FLOAT16, {});
    540   OperandType type13(Type::TENSOR_FLOAT16, {1, 6, 4});
    541   OperandType type14(Type::TENSOR_FLOAT16, {1, 3, 4});
    542   OperandType type15(Type::TENSOR_FLOAT16, {1, 6, 3});
    543   OperandType type16(Type::TENSOR_FLOAT16, {1, 3});
    544   OperandType type5(Type::TENSOR_INT32, {1, 3});
    545   OperandType type6(Type::TENSOR_INT32, {1});
    546   OperandType type8(Type::BOOL, {});
    547   OperandType type9(Type::INT32, {});
    548   // Phase 1, operands
    549   auto scores1 = model->addOperand(&type15);
    550   auto roi1 = model->addOperand(&type13);
    551   auto anchors1 = model->addOperand(&type11);
    552   auto param11 = model->addOperand(&type12);
    553   auto param12 = model->addOperand(&type12);
    554   auto param13 = model->addOperand(&type12);
    555   auto param14 = model->addOperand(&type12);
    556   auto param15 = model->addOperand(&type8);
    557   auto param16 = model->addOperand(&type9);
    558   auto param17 = model->addOperand(&type9);
    559   auto param18 = model->addOperand(&type9);
    560   auto param19 = model->addOperand(&type12);
    561   auto param20 = model->addOperand(&type12);
    562   auto param21 = model->addOperand(&type8);
    563   auto scoresOut1 = model->addOperand(&type16);
    564   auto roiOut1 = model->addOperand(&type14);
    565   auto classesOut1 = model->addOperand(&type5);
    566   auto detectionOut1 = model->addOperand(&type6);
    567   // Phase 2, operations
    568   static _Float16 param11_init[] = {10.0f};
    569   model->setOperandValue(param11, param11_init, sizeof(_Float16) * 1);
    570   static _Float16 param12_init[] = {10.0f};
    571   model->setOperandValue(param12, param12_init, sizeof(_Float16) * 1);
    572   static _Float16 param13_init[] = {5.0f};
    573   model->setOperandValue(param13, param13_init, sizeof(_Float16) * 1);
    574   static _Float16 param14_init[] = {5.0f};
    575   model->setOperandValue(param14, param14_init, sizeof(_Float16) * 1);
    576   static bool8 param15_init[] = {false};
    577   model->setOperandValue(param15, param15_init, sizeof(bool8) * 1);
    578   static int32_t param16_init[] = {3};
    579   model->setOperandValue(param16, param16_init, sizeof(int32_t) * 1);
    580   static int32_t param17_init[] = {1};
    581   model->setOperandValue(param17, param17_init, sizeof(int32_t) * 1);
    582   static int32_t param18_init[] = {1};
    583   model->setOperandValue(param18, param18_init, sizeof(int32_t) * 1);
    584   static _Float16 param19_init[] = {0.0f};
    585   model->setOperandValue(param19, param19_init, sizeof(_Float16) * 1);
    586   static _Float16 param20_init[] = {0.5f};
    587   model->setOperandValue(param20, param20_init, sizeof(_Float16) * 1);
    588   static bool8 param21_init[] = {false};
    589   model->setOperandValue(param21, param21_init, sizeof(bool8) * 1);
    590   model->addOperation(ANEURALNETWORKS_DETECTION_POSTPROCESSING, {scores1, roi1, anchors1, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20, param21}, {scoresOut1, roiOut1, classesOut1, detectionOut1});
    591   // Phase 3, inputs and outputs
    592   model->identifyInputsAndOutputs(
    593     {scores1, roi1, anchors1},
    594     {scoresOut1, roiOut1, classesOut1, detectionOut1});
    595   assert(model->isValid());
    596 }
    597 
    598 inline bool is_ignored_float16(int i) {
    599   static std::set<int> ignore = {};
    600   return ignore.find(i) != ignore.end();
    601 }
    602 
    603 void CreateModel_dynamic_output_shape(Model *model) {
    604   OperandType type0(Type::TENSOR_FLOAT32, {1, 6, 3});
    605   OperandType type1(Type::TENSOR_FLOAT32, {1, 6, 4});
    606   OperandType type17(Type::TENSOR_FLOAT32, {0, 0});
    607   OperandType type18(Type::TENSOR_FLOAT32, {0, 0, 0});
    608   OperandType type19(Type::TENSOR_INT32, {0, 0});
    609   OperandType type2(Type::TENSOR_FLOAT32, {6, 4});
    610   OperandType type20(Type::TENSOR_INT32, {0});
    611   OperandType type7(Type::FLOAT32, {});
    612   OperandType type8(Type::BOOL, {});
    613   OperandType type9(Type::INT32, {});
    614   // Phase 1, operands
    615   auto scores1 = model->addOperand(&type0);
    616   auto roi1 = model->addOperand(&type1);
    617   auto anchors1 = model->addOperand(&type2);
    618   auto param11 = model->addOperand(&type7);
    619   auto param12 = model->addOperand(&type7);
    620   auto param13 = model->addOperand(&type7);
    621   auto param14 = model->addOperand(&type7);
    622   auto param15 = model->addOperand(&type8);
    623   auto param16 = model->addOperand(&type9);
    624   auto param17 = model->addOperand(&type9);
    625   auto param18 = model->addOperand(&type9);
    626   auto param19 = model->addOperand(&type7);
    627   auto param20 = model->addOperand(&type7);
    628   auto param21 = model->addOperand(&type8);
    629   auto scoresOut1 = model->addOperand(&type17);
    630   auto roiOut1 = model->addOperand(&type18);
    631   auto classesOut1 = model->addOperand(&type19);
    632   auto detectionOut1 = model->addOperand(&type20);
    633   // Phase 2, operations
    634   static float param11_init[] = {10.0f};
    635   model->setOperandValue(param11, param11_init, sizeof(float) * 1);
    636   static float param12_init[] = {10.0f};
    637   model->setOperandValue(param12, param12_init, sizeof(float) * 1);
    638   static float param13_init[] = {5.0f};
    639   model->setOperandValue(param13, param13_init, sizeof(float) * 1);
    640   static float param14_init[] = {5.0f};
    641   model->setOperandValue(param14, param14_init, sizeof(float) * 1);
    642   static bool8 param15_init[] = {false};
    643   model->setOperandValue(param15, param15_init, sizeof(bool8) * 1);
    644   static int32_t param16_init[] = {3};
    645   model->setOperandValue(param16, param16_init, sizeof(int32_t) * 1);
    646   static int32_t param17_init[] = {1};
    647   model->setOperandValue(param17, param17_init, sizeof(int32_t) * 1);
    648   static int32_t param18_init[] = {1};
    649   model->setOperandValue(param18, param18_init, sizeof(int32_t) * 1);
    650   static float param19_init[] = {0.0f};
    651   model->setOperandValue(param19, param19_init, sizeof(float) * 1);
    652   static float param20_init[] = {0.5f};
    653   model->setOperandValue(param20, param20_init, sizeof(float) * 1);
    654   static bool8 param21_init[] = {false};
    655   model->setOperandValue(param21, param21_init, sizeof(bool8) * 1);
    656   model->addOperation(ANEURALNETWORKS_DETECTION_POSTPROCESSING, {scores1, roi1, anchors1, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20, param21}, {scoresOut1, roiOut1, classesOut1, detectionOut1});
    657   // Phase 3, inputs and outputs
    658   model->identifyInputsAndOutputs(
    659     {scores1, roi1, anchors1},
    660     {scoresOut1, roiOut1, classesOut1, detectionOut1});
    661   assert(model->isValid());
    662 }
    663 
    664 inline bool is_ignored_dynamic_output_shape(int i) {
    665   static std::set<int> ignore = {};
    666   return ignore.find(i) != ignore.end();
    667 }
    668 
    669 void CreateModel_dynamic_output_shape_relaxed(Model *model) {
    670   OperandType type0(Type::TENSOR_FLOAT32, {1, 6, 3});
    671   OperandType type1(Type::TENSOR_FLOAT32, {1, 6, 4});
    672   OperandType type17(Type::TENSOR_FLOAT32, {0, 0});
    673   OperandType type18(Type::TENSOR_FLOAT32, {0, 0, 0});
    674   OperandType type19(Type::TENSOR_INT32, {0, 0});
    675   OperandType type2(Type::TENSOR_FLOAT32, {6, 4});
    676   OperandType type20(Type::TENSOR_INT32, {0});
    677   OperandType type7(Type::FLOAT32, {});
    678   OperandType type8(Type::BOOL, {});
    679   OperandType type9(Type::INT32, {});
    680   // Phase 1, operands
    681   auto scores1 = model->addOperand(&type0);
    682   auto roi1 = model->addOperand(&type1);
    683   auto anchors1 = model->addOperand(&type2);
    684   auto param11 = model->addOperand(&type7);
    685   auto param12 = model->addOperand(&type7);
    686   auto param13 = model->addOperand(&type7);
    687   auto param14 = model->addOperand(&type7);
    688   auto param15 = model->addOperand(&type8);
    689   auto param16 = model->addOperand(&type9);
    690   auto param17 = model->addOperand(&type9);
    691   auto param18 = model->addOperand(&type9);
    692   auto param19 = model->addOperand(&type7);
    693   auto param20 = model->addOperand(&type7);
    694   auto param21 = model->addOperand(&type8);
    695   auto scoresOut1 = model->addOperand(&type17);
    696   auto roiOut1 = model->addOperand(&type18);
    697   auto classesOut1 = model->addOperand(&type19);
    698   auto detectionOut1 = model->addOperand(&type20);
    699   // Phase 2, operations
    700   static float param11_init[] = {10.0f};
    701   model->setOperandValue(param11, param11_init, sizeof(float) * 1);
    702   static float param12_init[] = {10.0f};
    703   model->setOperandValue(param12, param12_init, sizeof(float) * 1);
    704   static float param13_init[] = {5.0f};
    705   model->setOperandValue(param13, param13_init, sizeof(float) * 1);
    706   static float param14_init[] = {5.0f};
    707   model->setOperandValue(param14, param14_init, sizeof(float) * 1);
    708   static bool8 param15_init[] = {false};
    709   model->setOperandValue(param15, param15_init, sizeof(bool8) * 1);
    710   static int32_t param16_init[] = {3};
    711   model->setOperandValue(param16, param16_init, sizeof(int32_t) * 1);
    712   static int32_t param17_init[] = {1};
    713   model->setOperandValue(param17, param17_init, sizeof(int32_t) * 1);
    714   static int32_t param18_init[] = {1};
    715   model->setOperandValue(param18, param18_init, sizeof(int32_t) * 1);
    716   static float param19_init[] = {0.0f};
    717   model->setOperandValue(param19, param19_init, sizeof(float) * 1);
    718   static float param20_init[] = {0.5f};
    719   model->setOperandValue(param20, param20_init, sizeof(float) * 1);
    720   static bool8 param21_init[] = {false};
    721   model->setOperandValue(param21, param21_init, sizeof(bool8) * 1);
    722   model->addOperation(ANEURALNETWORKS_DETECTION_POSTPROCESSING, {scores1, roi1, anchors1, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20, param21}, {scoresOut1, roiOut1, classesOut1, detectionOut1});
    723   // Phase 3, inputs and outputs
    724   model->identifyInputsAndOutputs(
    725     {scores1, roi1, anchors1},
    726     {scoresOut1, roiOut1, classesOut1, detectionOut1});
    727   // Phase 4: set relaxed execution
    728   model->relaxComputationFloat32toFloat16(true);
    729   assert(model->isValid());
    730 }
    731 
    732 inline bool is_ignored_dynamic_output_shape_relaxed(int i) {
    733   static std::set<int> ignore = {};
    734   return ignore.find(i) != ignore.end();
    735 }
    736 
    737 void CreateModel_dynamic_output_shape_float16(Model *model) {
    738   OperandType type11(Type::TENSOR_FLOAT16, {6, 4});
    739   OperandType type12(Type::FLOAT16, {});
    740   OperandType type13(Type::TENSOR_FLOAT16, {1, 6, 4});
    741   OperandType type15(Type::TENSOR_FLOAT16, {1, 6, 3});
    742   OperandType type19(Type::TENSOR_INT32, {0, 0});
    743   OperandType type20(Type::TENSOR_INT32, {0});
    744   OperandType type21(Type::TENSOR_FLOAT16, {0, 0});
    745   OperandType type22(Type::TENSOR_FLOAT16, {0, 0, 0});
    746   OperandType type8(Type::BOOL, {});
    747   OperandType type9(Type::INT32, {});
    748   // Phase 1, operands
    749   auto scores1 = model->addOperand(&type15);
    750   auto roi1 = model->addOperand(&type13);
    751   auto anchors1 = model->addOperand(&type11);
    752   auto param11 = model->addOperand(&type12);
    753   auto param12 = model->addOperand(&type12);
    754   auto param13 = model->addOperand(&type12);
    755   auto param14 = model->addOperand(&type12);
    756   auto param15 = model->addOperand(&type8);
    757   auto param16 = model->addOperand(&type9);
    758   auto param17 = model->addOperand(&type9);
    759   auto param18 = model->addOperand(&type9);
    760   auto param19 = model->addOperand(&type12);
    761   auto param20 = model->addOperand(&type12);
    762   auto param21 = model->addOperand(&type8);
    763   auto scoresOut1 = model->addOperand(&type21);
    764   auto roiOut1 = model->addOperand(&type22);
    765   auto classesOut1 = model->addOperand(&type19);
    766   auto detectionOut1 = model->addOperand(&type20);
    767   // Phase 2, operations
    768   static _Float16 param11_init[] = {10.0f};
    769   model->setOperandValue(param11, param11_init, sizeof(_Float16) * 1);
    770   static _Float16 param12_init[] = {10.0f};
    771   model->setOperandValue(param12, param12_init, sizeof(_Float16) * 1);
    772   static _Float16 param13_init[] = {5.0f};
    773   model->setOperandValue(param13, param13_init, sizeof(_Float16) * 1);
    774   static _Float16 param14_init[] = {5.0f};
    775   model->setOperandValue(param14, param14_init, sizeof(_Float16) * 1);
    776   static bool8 param15_init[] = {false};
    777   model->setOperandValue(param15, param15_init, sizeof(bool8) * 1);
    778   static int32_t param16_init[] = {3};
    779   model->setOperandValue(param16, param16_init, sizeof(int32_t) * 1);
    780   static int32_t param17_init[] = {1};
    781   model->setOperandValue(param17, param17_init, sizeof(int32_t) * 1);
    782   static int32_t param18_init[] = {1};
    783   model->setOperandValue(param18, param18_init, sizeof(int32_t) * 1);
    784   static _Float16 param19_init[] = {0.0f};
    785   model->setOperandValue(param19, param19_init, sizeof(_Float16) * 1);
    786   static _Float16 param20_init[] = {0.5f};
    787   model->setOperandValue(param20, param20_init, sizeof(_Float16) * 1);
    788   static bool8 param21_init[] = {false};
    789   model->setOperandValue(param21, param21_init, sizeof(bool8) * 1);
    790   model->addOperation(ANEURALNETWORKS_DETECTION_POSTPROCESSING, {scores1, roi1, anchors1, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20, param21}, {scoresOut1, roiOut1, classesOut1, detectionOut1});
    791   // Phase 3, inputs and outputs
    792   model->identifyInputsAndOutputs(
    793     {scores1, roi1, anchors1},
    794     {scoresOut1, roiOut1, classesOut1, detectionOut1});
    795   assert(model->isValid());
    796 }
    797 
    798 inline bool is_ignored_dynamic_output_shape_float16(int i) {
    799   static std::set<int> ignore = {};
    800   return ignore.find(i) != ignore.end();
    801 }
    802 
    803 void CreateModel_2(Model *model) {
    804   OperandType type0(Type::TENSOR_FLOAT32, {1, 6, 3});
    805   OperandType type10(Type::TENSOR_FLOAT32, {1, 6, 7});
    806   OperandType type2(Type::TENSOR_FLOAT32, {6, 4});
    807   OperandType type3(Type::TENSOR_FLOAT32, {1, 3});
    808   OperandType type4(Type::TENSOR_FLOAT32, {1, 3, 4});
    809   OperandType type5(Type::TENSOR_INT32, {1, 3});
    810   OperandType type6(Type::TENSOR_INT32, {1});
    811   OperandType type7(Type::FLOAT32, {});
    812   OperandType type8(Type::BOOL, {});
    813   OperandType type9(Type::INT32, {});
    814   // Phase 1, operands
    815   auto scores2 = model->addOperand(&type0);
    816   auto roi2 = model->addOperand(&type10);
    817   auto anchors2 = model->addOperand(&type2);
    818   auto param22 = model->addOperand(&type7);
    819   auto param23 = model->addOperand(&type7);
    820   auto param24 = model->addOperand(&type7);
    821   auto param25 = model->addOperand(&type7);
    822   auto param26 = model->addOperand(&type8);
    823   auto param27 = model->addOperand(&type9);
    824   auto param28 = model->addOperand(&type9);
    825   auto param29 = model->addOperand(&type9);
    826   auto param30 = model->addOperand(&type7);
    827   auto param31 = model->addOperand(&type7);
    828   auto param32 = model->addOperand(&type8);
    829   auto scoresOut2 = model->addOperand(&type3);
    830   auto roiOut2 = model->addOperand(&type4);
    831   auto classesOut2 = model->addOperand(&type5);
    832   auto detectionOut2 = model->addOperand(&type6);
    833   // Phase 2, operations
    834   static float param22_init[] = {10.0f};
    835   model->setOperandValue(param22, param22_init, sizeof(float) * 1);
    836   static float param23_init[] = {10.0f};
    837   model->setOperandValue(param23, param23_init, sizeof(float) * 1);
    838   static float param24_init[] = {5.0f};
    839   model->setOperandValue(param24, param24_init, sizeof(float) * 1);
    840   static float param25_init[] = {5.0f};
    841   model->setOperandValue(param25, param25_init, sizeof(float) * 1);
    842   static bool8 param26_init[] = {false};
    843   model->setOperandValue(param26, param26_init, sizeof(bool8) * 1);
    844   static int32_t param27_init[] = {3};
    845   model->setOperandValue(param27, param27_init, sizeof(int32_t) * 1);
    846   static int32_t param28_init[] = {1};
    847   model->setOperandValue(param28, param28_init, sizeof(int32_t) * 1);
    848   static int32_t param29_init[] = {1};
    849   model->setOperandValue(param29, param29_init, sizeof(int32_t) * 1);
    850   static float param30_init[] = {0.0f};
    851   model->setOperandValue(param30, param30_init, sizeof(float) * 1);
    852   static float param31_init[] = {0.5f};
    853   model->setOperandValue(param31, param31_init, sizeof(float) * 1);
    854   static bool8 param32_init[] = {false};
    855   model->setOperandValue(param32, param32_init, sizeof(bool8) * 1);
    856   model->addOperation(ANEURALNETWORKS_DETECTION_POSTPROCESSING, {scores2, roi2, anchors2, param22, param23, param24, param25, param26, param27, param28, param29, param30, param31, param32}, {scoresOut2, roiOut2, classesOut2, detectionOut2});
    857   // Phase 3, inputs and outputs
    858   model->identifyInputsAndOutputs(
    859     {scores2, roi2, anchors2},
    860     {scoresOut2, roiOut2, classesOut2, detectionOut2});
    861   assert(model->isValid());
    862 }
    863 
    864 inline bool is_ignored_2(int i) {
    865   static std::set<int> ignore = {};
    866   return ignore.find(i) != ignore.end();
    867 }
    868 
    869 void CreateModel_relaxed_2(Model *model) {
    870   OperandType type0(Type::TENSOR_FLOAT32, {1, 6, 3});
    871   OperandType type10(Type::TENSOR_FLOAT32, {1, 6, 7});
    872   OperandType type2(Type::TENSOR_FLOAT32, {6, 4});
    873   OperandType type3(Type::TENSOR_FLOAT32, {1, 3});
    874   OperandType type4(Type::TENSOR_FLOAT32, {1, 3, 4});
    875   OperandType type5(Type::TENSOR_INT32, {1, 3});
    876   OperandType type6(Type::TENSOR_INT32, {1});
    877   OperandType type7(Type::FLOAT32, {});
    878   OperandType type8(Type::BOOL, {});
    879   OperandType type9(Type::INT32, {});
    880   // Phase 1, operands
    881   auto scores2 = model->addOperand(&type0);
    882   auto roi2 = model->addOperand(&type10);
    883   auto anchors2 = model->addOperand(&type2);
    884   auto param22 = model->addOperand(&type7);
    885   auto param23 = model->addOperand(&type7);
    886   auto param24 = model->addOperand(&type7);
    887   auto param25 = model->addOperand(&type7);
    888   auto param26 = model->addOperand(&type8);
    889   auto param27 = model->addOperand(&type9);
    890   auto param28 = model->addOperand(&type9);
    891   auto param29 = model->addOperand(&type9);
    892   auto param30 = model->addOperand(&type7);
    893   auto param31 = model->addOperand(&type7);
    894   auto param32 = model->addOperand(&type8);
    895   auto scoresOut2 = model->addOperand(&type3);
    896   auto roiOut2 = model->addOperand(&type4);
    897   auto classesOut2 = model->addOperand(&type5);
    898   auto detectionOut2 = model->addOperand(&type6);
    899   // Phase 2, operations
    900   static float param22_init[] = {10.0f};
    901   model->setOperandValue(param22, param22_init, sizeof(float) * 1);
    902   static float param23_init[] = {10.0f};
    903   model->setOperandValue(param23, param23_init, sizeof(float) * 1);
    904   static float param24_init[] = {5.0f};
    905   model->setOperandValue(param24, param24_init, sizeof(float) * 1);
    906   static float param25_init[] = {5.0f};
    907   model->setOperandValue(param25, param25_init, sizeof(float) * 1);
    908   static bool8 param26_init[] = {false};
    909   model->setOperandValue(param26, param26_init, sizeof(bool8) * 1);
    910   static int32_t param27_init[] = {3};
    911   model->setOperandValue(param27, param27_init, sizeof(int32_t) * 1);
    912   static int32_t param28_init[] = {1};
    913   model->setOperandValue(param28, param28_init, sizeof(int32_t) * 1);
    914   static int32_t param29_init[] = {1};
    915   model->setOperandValue(param29, param29_init, sizeof(int32_t) * 1);
    916   static float param30_init[] = {0.0f};
    917   model->setOperandValue(param30, param30_init, sizeof(float) * 1);
    918   static float param31_init[] = {0.5f};
    919   model->setOperandValue(param31, param31_init, sizeof(float) * 1);
    920   static bool8 param32_init[] = {false};
    921   model->setOperandValue(param32, param32_init, sizeof(bool8) * 1);
    922   model->addOperation(ANEURALNETWORKS_DETECTION_POSTPROCESSING, {scores2, roi2, anchors2, param22, param23, param24, param25, param26, param27, param28, param29, param30, param31, param32}, {scoresOut2, roiOut2, classesOut2, detectionOut2});
    923   // Phase 3, inputs and outputs
    924   model->identifyInputsAndOutputs(
    925     {scores2, roi2, anchors2},
    926     {scoresOut2, roiOut2, classesOut2, detectionOut2});
    927   // Phase 4: set relaxed execution
    928   model->relaxComputationFloat32toFloat16(true);
    929   assert(model->isValid());
    930 }
    931 
    932 inline bool is_ignored_relaxed_2(int i) {
    933   static std::set<int> ignore = {};
    934   return ignore.find(i) != ignore.end();
    935 }
    936 
    937 void CreateModel_float16_2(Model *model) {
    938   OperandType type11(Type::TENSOR_FLOAT16, {6, 4});
    939   OperandType type12(Type::FLOAT16, {});
    940   OperandType type14(Type::TENSOR_FLOAT16, {1, 3, 4});
    941   OperandType type15(Type::TENSOR_FLOAT16, {1, 6, 3});
    942   OperandType type16(Type::TENSOR_FLOAT16, {1, 3});
    943   OperandType type23(Type::TENSOR_FLOAT16, {1, 6, 7});
    944   OperandType type5(Type::TENSOR_INT32, {1, 3});
    945   OperandType type6(Type::TENSOR_INT32, {1});
    946   OperandType type8(Type::BOOL, {});
    947   OperandType type9(Type::INT32, {});
    948   // Phase 1, operands
    949   auto scores2 = model->addOperand(&type15);
    950   auto roi2 = model->addOperand(&type23);
    951   auto anchors2 = model->addOperand(&type11);
    952   auto param22 = model->addOperand(&type12);
    953   auto param23 = model->addOperand(&type12);
    954   auto param24 = model->addOperand(&type12);
    955   auto param25 = model->addOperand(&type12);
    956   auto param26 = model->addOperand(&type8);
    957   auto param27 = model->addOperand(&type9);
    958   auto param28 = model->addOperand(&type9);
    959   auto param29 = model->addOperand(&type9);
    960   auto param30 = model->addOperand(&type12);
    961   auto param31 = model->addOperand(&type12);
    962   auto param32 = model->addOperand(&type8);
    963   auto scoresOut2 = model->addOperand(&type16);
    964   auto roiOut2 = model->addOperand(&type14);
    965   auto classesOut2 = model->addOperand(&type5);
    966   auto detectionOut2 = model->addOperand(&type6);
    967   // Phase 2, operations
    968   static _Float16 param22_init[] = {10.0f};
    969   model->setOperandValue(param22, param22_init, sizeof(_Float16) * 1);
    970   static _Float16 param23_init[] = {10.0f};
    971   model->setOperandValue(param23, param23_init, sizeof(_Float16) * 1);
    972   static _Float16 param24_init[] = {5.0f};
    973   model->setOperandValue(param24, param24_init, sizeof(_Float16) * 1);
    974   static _Float16 param25_init[] = {5.0f};
    975   model->setOperandValue(param25, param25_init, sizeof(_Float16) * 1);
    976   static bool8 param26_init[] = {false};
    977   model->setOperandValue(param26, param26_init, sizeof(bool8) * 1);
    978   static int32_t param27_init[] = {3};
    979   model->setOperandValue(param27, param27_init, sizeof(int32_t) * 1);
    980   static int32_t param28_init[] = {1};
    981   model->setOperandValue(param28, param28_init, sizeof(int32_t) * 1);
    982   static int32_t param29_init[] = {1};
    983   model->setOperandValue(param29, param29_init, sizeof(int32_t) * 1);
    984   static _Float16 param30_init[] = {0.0f};
    985   model->setOperandValue(param30, param30_init, sizeof(_Float16) * 1);
    986   static _Float16 param31_init[] = {0.5f};
    987   model->setOperandValue(param31, param31_init, sizeof(_Float16) * 1);
    988   static bool8 param32_init[] = {false};
    989   model->setOperandValue(param32, param32_init, sizeof(bool8) * 1);
    990   model->addOperation(ANEURALNETWORKS_DETECTION_POSTPROCESSING, {scores2, roi2, anchors2, param22, param23, param24, param25, param26, param27, param28, param29, param30, param31, param32}, {scoresOut2, roiOut2, classesOut2, detectionOut2});
    991   // Phase 3, inputs and outputs
    992   model->identifyInputsAndOutputs(
    993     {scores2, roi2, anchors2},
    994     {scoresOut2, roiOut2, classesOut2, detectionOut2});
    995   assert(model->isValid());
    996 }
    997 
    998 inline bool is_ignored_float16_2(int i) {
    999   static std::set<int> ignore = {};
   1000   return ignore.find(i) != ignore.end();
   1001 }
   1002 
   1003 void CreateModel_dynamic_output_shape_2(Model *model) {
   1004   OperandType type0(Type::TENSOR_FLOAT32, {1, 6, 3});
   1005   OperandType type10(Type::TENSOR_FLOAT32, {1, 6, 7});
   1006   OperandType type17(Type::TENSOR_FLOAT32, {0, 0});
   1007   OperandType type18(Type::TENSOR_FLOAT32, {0, 0, 0});
   1008   OperandType type19(Type::TENSOR_INT32, {0, 0});
   1009   OperandType type2(Type::TENSOR_FLOAT32, {6, 4});
   1010   OperandType type20(Type::TENSOR_INT32, {0});
   1011   OperandType type7(Type::FLOAT32, {});
   1012   OperandType type8(Type::BOOL, {});
   1013   OperandType type9(Type::INT32, {});
   1014   // Phase 1, operands
   1015   auto scores2 = model->addOperand(&type0);
   1016   auto roi2 = model->addOperand(&type10);
   1017   auto anchors2 = model->addOperand(&type2);
   1018   auto param22 = model->addOperand(&type7);
   1019   auto param23 = model->addOperand(&type7);
   1020   auto param24 = model->addOperand(&type7);
   1021   auto param25 = model->addOperand(&type7);
   1022   auto param26 = model->addOperand(&type8);
   1023   auto param27 = model->addOperand(&type9);
   1024   auto param28 = model->addOperand(&type9);
   1025   auto param29 = model->addOperand(&type9);
   1026   auto param30 = model->addOperand(&type7);
   1027   auto param31 = model->addOperand(&type7);
   1028   auto param32 = model->addOperand(&type8);
   1029   auto scoresOut2 = model->addOperand(&type17);
   1030   auto roiOut2 = model->addOperand(&type18);
   1031   auto classesOut2 = model->addOperand(&type19);
   1032   auto detectionOut2 = model->addOperand(&type20);
   1033   // Phase 2, operations
   1034   static float param22_init[] = {10.0f};
   1035   model->setOperandValue(param22, param22_init, sizeof(float) * 1);
   1036   static float param23_init[] = {10.0f};
   1037   model->setOperandValue(param23, param23_init, sizeof(float) * 1);
   1038   static float param24_init[] = {5.0f};
   1039   model->setOperandValue(param24, param24_init, sizeof(float) * 1);
   1040   static float param25_init[] = {5.0f};
   1041   model->setOperandValue(param25, param25_init, sizeof(float) * 1);
   1042   static bool8 param26_init[] = {false};
   1043   model->setOperandValue(param26, param26_init, sizeof(bool8) * 1);
   1044   static int32_t param27_init[] = {3};
   1045   model->setOperandValue(param27, param27_init, sizeof(int32_t) * 1);
   1046   static int32_t param28_init[] = {1};
   1047   model->setOperandValue(param28, param28_init, sizeof(int32_t) * 1);
   1048   static int32_t param29_init[] = {1};
   1049   model->setOperandValue(param29, param29_init, sizeof(int32_t) * 1);
   1050   static float param30_init[] = {0.0f};
   1051   model->setOperandValue(param30, param30_init, sizeof(float) * 1);
   1052   static float param31_init[] = {0.5f};
   1053   model->setOperandValue(param31, param31_init, sizeof(float) * 1);
   1054   static bool8 param32_init[] = {false};
   1055   model->setOperandValue(param32, param32_init, sizeof(bool8) * 1);
   1056   model->addOperation(ANEURALNETWORKS_DETECTION_POSTPROCESSING, {scores2, roi2, anchors2, param22, param23, param24, param25, param26, param27, param28, param29, param30, param31, param32}, {scoresOut2, roiOut2, classesOut2, detectionOut2});
   1057   // Phase 3, inputs and outputs
   1058   model->identifyInputsAndOutputs(
   1059     {scores2, roi2, anchors2},
   1060     {scoresOut2, roiOut2, classesOut2, detectionOut2});
   1061   assert(model->isValid());
   1062 }
   1063 
   1064 inline bool is_ignored_dynamic_output_shape_2(int i) {
   1065   static std::set<int> ignore = {};
   1066   return ignore.find(i) != ignore.end();
   1067 }
   1068 
   1069 void CreateModel_dynamic_output_shape_relaxed_2(Model *model) {
   1070   OperandType type0(Type::TENSOR_FLOAT32, {1, 6, 3});
   1071   OperandType type10(Type::TENSOR_FLOAT32, {1, 6, 7});
   1072   OperandType type17(Type::TENSOR_FLOAT32, {0, 0});
   1073   OperandType type18(Type::TENSOR_FLOAT32, {0, 0, 0});
   1074   OperandType type19(Type::TENSOR_INT32, {0, 0});
   1075   OperandType type2(Type::TENSOR_FLOAT32, {6, 4});
   1076   OperandType type20(Type::TENSOR_INT32, {0});
   1077   OperandType type7(Type::FLOAT32, {});
   1078   OperandType type8(Type::BOOL, {});
   1079   OperandType type9(Type::INT32, {});
   1080   // Phase 1, operands
   1081   auto scores2 = model->addOperand(&type0);
   1082   auto roi2 = model->addOperand(&type10);
   1083   auto anchors2 = model->addOperand(&type2);
   1084   auto param22 = model->addOperand(&type7);
   1085   auto param23 = model->addOperand(&type7);
   1086   auto param24 = model->addOperand(&type7);
   1087   auto param25 = model->addOperand(&type7);
   1088   auto param26 = model->addOperand(&type8);
   1089   auto param27 = model->addOperand(&type9);
   1090   auto param28 = model->addOperand(&type9);
   1091   auto param29 = model->addOperand(&type9);
   1092   auto param30 = model->addOperand(&type7);
   1093   auto param31 = model->addOperand(&type7);
   1094   auto param32 = model->addOperand(&type8);
   1095   auto scoresOut2 = model->addOperand(&type17);
   1096   auto roiOut2 = model->addOperand(&type18);
   1097   auto classesOut2 = model->addOperand(&type19);
   1098   auto detectionOut2 = model->addOperand(&type20);
   1099   // Phase 2, operations
   1100   static float param22_init[] = {10.0f};
   1101   model->setOperandValue(param22, param22_init, sizeof(float) * 1);
   1102   static float param23_init[] = {10.0f};
   1103   model->setOperandValue(param23, param23_init, sizeof(float) * 1);
   1104   static float param24_init[] = {5.0f};
   1105   model->setOperandValue(param24, param24_init, sizeof(float) * 1);
   1106   static float param25_init[] = {5.0f};
   1107   model->setOperandValue(param25, param25_init, sizeof(float) * 1);
   1108   static bool8 param26_init[] = {false};
   1109   model->setOperandValue(param26, param26_init, sizeof(bool8) * 1);
   1110   static int32_t param27_init[] = {3};
   1111   model->setOperandValue(param27, param27_init, sizeof(int32_t) * 1);
   1112   static int32_t param28_init[] = {1};
   1113   model->setOperandValue(param28, param28_init, sizeof(int32_t) * 1);
   1114   static int32_t param29_init[] = {1};
   1115   model->setOperandValue(param29, param29_init, sizeof(int32_t) * 1);
   1116   static float param30_init[] = {0.0f};
   1117   model->setOperandValue(param30, param30_init, sizeof(float) * 1);
   1118   static float param31_init[] = {0.5f};
   1119   model->setOperandValue(param31, param31_init, sizeof(float) * 1);
   1120   static bool8 param32_init[] = {false};
   1121   model->setOperandValue(param32, param32_init, sizeof(bool8) * 1);
   1122   model->addOperation(ANEURALNETWORKS_DETECTION_POSTPROCESSING, {scores2, roi2, anchors2, param22, param23, param24, param25, param26, param27, param28, param29, param30, param31, param32}, {scoresOut2, roiOut2, classesOut2, detectionOut2});
   1123   // Phase 3, inputs and outputs
   1124   model->identifyInputsAndOutputs(
   1125     {scores2, roi2, anchors2},
   1126     {scoresOut2, roiOut2, classesOut2, detectionOut2});
   1127   // Phase 4: set relaxed execution
   1128   model->relaxComputationFloat32toFloat16(true);
   1129   assert(model->isValid());
   1130 }
   1131 
   1132 inline bool is_ignored_dynamic_output_shape_relaxed_2(int i) {
   1133   static std::set<int> ignore = {};
   1134   return ignore.find(i) != ignore.end();
   1135 }
   1136 
   1137 void CreateModel_dynamic_output_shape_float16_2(Model *model) {
   1138   OperandType type11(Type::TENSOR_FLOAT16, {6, 4});
   1139   OperandType type12(Type::FLOAT16, {});
   1140   OperandType type15(Type::TENSOR_FLOAT16, {1, 6, 3});
   1141   OperandType type19(Type::TENSOR_INT32, {0, 0});
   1142   OperandType type20(Type::TENSOR_INT32, {0});
   1143   OperandType type21(Type::TENSOR_FLOAT16, {0, 0});
   1144   OperandType type22(Type::TENSOR_FLOAT16, {0, 0, 0});
   1145   OperandType type23(Type::TENSOR_FLOAT16, {1, 6, 7});
   1146   OperandType type8(Type::BOOL, {});
   1147   OperandType type9(Type::INT32, {});
   1148   // Phase 1, operands
   1149   auto scores2 = model->addOperand(&type15);
   1150   auto roi2 = model->addOperand(&type23);
   1151   auto anchors2 = model->addOperand(&type11);
   1152   auto param22 = model->addOperand(&type12);
   1153   auto param23 = model->addOperand(&type12);
   1154   auto param24 = model->addOperand(&type12);
   1155   auto param25 = model->addOperand(&type12);
   1156   auto param26 = model->addOperand(&type8);
   1157   auto param27 = model->addOperand(&type9);
   1158   auto param28 = model->addOperand(&type9);
   1159   auto param29 = model->addOperand(&type9);
   1160   auto param30 = model->addOperand(&type12);
   1161   auto param31 = model->addOperand(&type12);
   1162   auto param32 = model->addOperand(&type8);
   1163   auto scoresOut2 = model->addOperand(&type21);
   1164   auto roiOut2 = model->addOperand(&type22);
   1165   auto classesOut2 = model->addOperand(&type19);
   1166   auto detectionOut2 = model->addOperand(&type20);
   1167   // Phase 2, operations
   1168   static _Float16 param22_init[] = {10.0f};
   1169   model->setOperandValue(param22, param22_init, sizeof(_Float16) * 1);
   1170   static _Float16 param23_init[] = {10.0f};
   1171   model->setOperandValue(param23, param23_init, sizeof(_Float16) * 1);
   1172   static _Float16 param24_init[] = {5.0f};
   1173   model->setOperandValue(param24, param24_init, sizeof(_Float16) * 1);
   1174   static _Float16 param25_init[] = {5.0f};
   1175   model->setOperandValue(param25, param25_init, sizeof(_Float16) * 1);
   1176   static bool8 param26_init[] = {false};
   1177   model->setOperandValue(param26, param26_init, sizeof(bool8) * 1);
   1178   static int32_t param27_init[] = {3};
   1179   model->setOperandValue(param27, param27_init, sizeof(int32_t) * 1);
   1180   static int32_t param28_init[] = {1};
   1181   model->setOperandValue(param28, param28_init, sizeof(int32_t) * 1);
   1182   static int32_t param29_init[] = {1};
   1183   model->setOperandValue(param29, param29_init, sizeof(int32_t) * 1);
   1184   static _Float16 param30_init[] = {0.0f};
   1185   model->setOperandValue(param30, param30_init, sizeof(_Float16) * 1);
   1186   static _Float16 param31_init[] = {0.5f};
   1187   model->setOperandValue(param31, param31_init, sizeof(_Float16) * 1);
   1188   static bool8 param32_init[] = {false};
   1189   model->setOperandValue(param32, param32_init, sizeof(bool8) * 1);
   1190   model->addOperation(ANEURALNETWORKS_DETECTION_POSTPROCESSING, {scores2, roi2, anchors2, param22, param23, param24, param25, param26, param27, param28, param29, param30, param31, param32}, {scoresOut2, roiOut2, classesOut2, detectionOut2});
   1191   // Phase 3, inputs and outputs
   1192   model->identifyInputsAndOutputs(
   1193     {scores2, roi2, anchors2},
   1194     {scoresOut2, roiOut2, classesOut2, detectionOut2});
   1195   assert(model->isValid());
   1196 }
   1197 
   1198 inline bool is_ignored_dynamic_output_shape_float16_2(int i) {
   1199   static std::set<int> ignore = {};
   1200   return ignore.find(i) != ignore.end();
   1201 }
   1202 
   1203 void CreateModel_3(Model *model) {
   1204   OperandType type0(Type::TENSOR_FLOAT32, {1, 6, 3});
   1205   OperandType type10(Type::TENSOR_FLOAT32, {1, 6, 7});
   1206   OperandType type2(Type::TENSOR_FLOAT32, {6, 4});
   1207   OperandType type3(Type::TENSOR_FLOAT32, {1, 3});
   1208   OperandType type4(Type::TENSOR_FLOAT32, {1, 3, 4});
   1209   OperandType type5(Type::TENSOR_INT32, {1, 3});
   1210   OperandType type6(Type::TENSOR_INT32, {1});
   1211   OperandType type7(Type::FLOAT32, {});
   1212   OperandType type8(Type::BOOL, {});
   1213   OperandType type9(Type::INT32, {});
   1214   // Phase 1, operands
   1215   auto scores3 = model->addOperand(&type0);
   1216   auto roi3 = model->addOperand(&type10);
   1217   auto anchors3 = model->addOperand(&type2);
   1218   auto param33 = model->addOperand(&type7);
   1219   auto param34 = model->addOperand(&type7);
   1220   auto param35 = model->addOperand(&type7);
   1221   auto param36 = model->addOperand(&type7);
   1222   auto param37 = model->addOperand(&type8);
   1223   auto param38 = model->addOperand(&type9);
   1224   auto param39 = model->addOperand(&type9);
   1225   auto param40 = model->addOperand(&type9);
   1226   auto param41 = model->addOperand(&type7);
   1227   auto param42 = model->addOperand(&type7);
   1228   auto param43 = model->addOperand(&type8);
   1229   auto scoresOut3 = model->addOperand(&type3);
   1230   auto roiOut3 = model->addOperand(&type4);
   1231   auto classesOut3 = model->addOperand(&type5);
   1232   auto detectionOut3 = model->addOperand(&type6);
   1233   // Phase 2, operations
   1234   static float param33_init[] = {10.0f};
   1235   model->setOperandValue(param33, param33_init, sizeof(float) * 1);
   1236   static float param34_init[] = {10.0f};
   1237   model->setOperandValue(param34, param34_init, sizeof(float) * 1);
   1238   static float param35_init[] = {5.0f};
   1239   model->setOperandValue(param35, param35_init, sizeof(float) * 1);
   1240   static float param36_init[] = {5.0f};
   1241   model->setOperandValue(param36, param36_init, sizeof(float) * 1);
   1242   static bool8 param37_init[] = {false};
   1243   model->setOperandValue(param37, param37_init, sizeof(bool8) * 1);
   1244   static int32_t param38_init[] = {3};
   1245   model->setOperandValue(param38, param38_init, sizeof(int32_t) * 1);
   1246   static int32_t param39_init[] = {1};
   1247   model->setOperandValue(param39, param39_init, sizeof(int32_t) * 1);
   1248   static int32_t param40_init[] = {1};
   1249   model->setOperandValue(param40, param40_init, sizeof(int32_t) * 1);
   1250   static float param41_init[] = {0.0f};
   1251   model->setOperandValue(param41, param41_init, sizeof(float) * 1);
   1252   static float param42_init[] = {0.5f};
   1253   model->setOperandValue(param42, param42_init, sizeof(float) * 1);
   1254   static bool8 param43_init[] = {true};
   1255   model->setOperandValue(param43, param43_init, sizeof(bool8) * 1);
   1256   model->addOperation(ANEURALNETWORKS_DETECTION_POSTPROCESSING, {scores3, roi3, anchors3, param33, param34, param35, param36, param37, param38, param39, param40, param41, param42, param43}, {scoresOut3, roiOut3, classesOut3, detectionOut3});
   1257   // Phase 3, inputs and outputs
   1258   model->identifyInputsAndOutputs(
   1259     {scores3, roi3, anchors3},
   1260     {scoresOut3, roiOut3, classesOut3, detectionOut3});
   1261   assert(model->isValid());
   1262 }
   1263 
   1264 inline bool is_ignored_3(int i) {
   1265   static std::set<int> ignore = {};
   1266   return ignore.find(i) != ignore.end();
   1267 }
   1268 
   1269 void CreateModel_relaxed_3(Model *model) {
   1270   OperandType type0(Type::TENSOR_FLOAT32, {1, 6, 3});
   1271   OperandType type10(Type::TENSOR_FLOAT32, {1, 6, 7});
   1272   OperandType type2(Type::TENSOR_FLOAT32, {6, 4});
   1273   OperandType type3(Type::TENSOR_FLOAT32, {1, 3});
   1274   OperandType type4(Type::TENSOR_FLOAT32, {1, 3, 4});
   1275   OperandType type5(Type::TENSOR_INT32, {1, 3});
   1276   OperandType type6(Type::TENSOR_INT32, {1});
   1277   OperandType type7(Type::FLOAT32, {});
   1278   OperandType type8(Type::BOOL, {});
   1279   OperandType type9(Type::INT32, {});
   1280   // Phase 1, operands
   1281   auto scores3 = model->addOperand(&type0);
   1282   auto roi3 = model->addOperand(&type10);
   1283   auto anchors3 = model->addOperand(&type2);
   1284   auto param33 = model->addOperand(&type7);
   1285   auto param34 = model->addOperand(&type7);
   1286   auto param35 = model->addOperand(&type7);
   1287   auto param36 = model->addOperand(&type7);
   1288   auto param37 = model->addOperand(&type8);
   1289   auto param38 = model->addOperand(&type9);
   1290   auto param39 = model->addOperand(&type9);
   1291   auto param40 = model->addOperand(&type9);
   1292   auto param41 = model->addOperand(&type7);
   1293   auto param42 = model->addOperand(&type7);
   1294   auto param43 = model->addOperand(&type8);
   1295   auto scoresOut3 = model->addOperand(&type3);
   1296   auto roiOut3 = model->addOperand(&type4);
   1297   auto classesOut3 = model->addOperand(&type5);
   1298   auto detectionOut3 = model->addOperand(&type6);
   1299   // Phase 2, operations
   1300   static float param33_init[] = {10.0f};
   1301   model->setOperandValue(param33, param33_init, sizeof(float) * 1);
   1302   static float param34_init[] = {10.0f};
   1303   model->setOperandValue(param34, param34_init, sizeof(float) * 1);
   1304   static float param35_init[] = {5.0f};
   1305   model->setOperandValue(param35, param35_init, sizeof(float) * 1);
   1306   static float param36_init[] = {5.0f};
   1307   model->setOperandValue(param36, param36_init, sizeof(float) * 1);
   1308   static bool8 param37_init[] = {false};
   1309   model->setOperandValue(param37, param37_init, sizeof(bool8) * 1);
   1310   static int32_t param38_init[] = {3};
   1311   model->setOperandValue(param38, param38_init, sizeof(int32_t) * 1);
   1312   static int32_t param39_init[] = {1};
   1313   model->setOperandValue(param39, param39_init, sizeof(int32_t) * 1);
   1314   static int32_t param40_init[] = {1};
   1315   model->setOperandValue(param40, param40_init, sizeof(int32_t) * 1);
   1316   static float param41_init[] = {0.0f};
   1317   model->setOperandValue(param41, param41_init, sizeof(float) * 1);
   1318   static float param42_init[] = {0.5f};
   1319   model->setOperandValue(param42, param42_init, sizeof(float) * 1);
   1320   static bool8 param43_init[] = {true};
   1321   model->setOperandValue(param43, param43_init, sizeof(bool8) * 1);
   1322   model->addOperation(ANEURALNETWORKS_DETECTION_POSTPROCESSING, {scores3, roi3, anchors3, param33, param34, param35, param36, param37, param38, param39, param40, param41, param42, param43}, {scoresOut3, roiOut3, classesOut3, detectionOut3});
   1323   // Phase 3, inputs and outputs
   1324   model->identifyInputsAndOutputs(
   1325     {scores3, roi3, anchors3},
   1326     {scoresOut3, roiOut3, classesOut3, detectionOut3});
   1327   // Phase 4: set relaxed execution
   1328   model->relaxComputationFloat32toFloat16(true);
   1329   assert(model->isValid());
   1330 }
   1331 
   1332 inline bool is_ignored_relaxed_3(int i) {
   1333   static std::set<int> ignore = {};
   1334   return ignore.find(i) != ignore.end();
   1335 }
   1336 
   1337 void CreateModel_float16_3(Model *model) {
   1338   OperandType type11(Type::TENSOR_FLOAT16, {6, 4});
   1339   OperandType type12(Type::FLOAT16, {});
   1340   OperandType type14(Type::TENSOR_FLOAT16, {1, 3, 4});
   1341   OperandType type15(Type::TENSOR_FLOAT16, {1, 6, 3});
   1342   OperandType type16(Type::TENSOR_FLOAT16, {1, 3});
   1343   OperandType type23(Type::TENSOR_FLOAT16, {1, 6, 7});
   1344   OperandType type5(Type::TENSOR_INT32, {1, 3});
   1345   OperandType type6(Type::TENSOR_INT32, {1});
   1346   OperandType type8(Type::BOOL, {});
   1347   OperandType type9(Type::INT32, {});
   1348   // Phase 1, operands
   1349   auto scores3 = model->addOperand(&type15);
   1350   auto roi3 = model->addOperand(&type23);
   1351   auto anchors3 = model->addOperand(&type11);
   1352   auto param33 = model->addOperand(&type12);
   1353   auto param34 = model->addOperand(&type12);
   1354   auto param35 = model->addOperand(&type12);
   1355   auto param36 = model->addOperand(&type12);
   1356   auto param37 = model->addOperand(&type8);
   1357   auto param38 = model->addOperand(&type9);
   1358   auto param39 = model->addOperand(&type9);
   1359   auto param40 = model->addOperand(&type9);
   1360   auto param41 = model->addOperand(&type12);
   1361   auto param42 = model->addOperand(&type12);
   1362   auto param43 = model->addOperand(&type8);
   1363   auto scoresOut3 = model->addOperand(&type16);
   1364   auto roiOut3 = model->addOperand(&type14);
   1365   auto classesOut3 = model->addOperand(&type5);
   1366   auto detectionOut3 = model->addOperand(&type6);
   1367   // Phase 2, operations
   1368   static _Float16 param33_init[] = {10.0f};
   1369   model->setOperandValue(param33, param33_init, sizeof(_Float16) * 1);
   1370   static _Float16 param34_init[] = {10.0f};
   1371   model->setOperandValue(param34, param34_init, sizeof(_Float16) * 1);
   1372   static _Float16 param35_init[] = {5.0f};
   1373   model->setOperandValue(param35, param35_init, sizeof(_Float16) * 1);
   1374   static _Float16 param36_init[] = {5.0f};
   1375   model->setOperandValue(param36, param36_init, sizeof(_Float16) * 1);
   1376   static bool8 param37_init[] = {false};
   1377   model->setOperandValue(param37, param37_init, sizeof(bool8) * 1);
   1378   static int32_t param38_init[] = {3};
   1379   model->setOperandValue(param38, param38_init, sizeof(int32_t) * 1);
   1380   static int32_t param39_init[] = {1};
   1381   model->setOperandValue(param39, param39_init, sizeof(int32_t) * 1);
   1382   static int32_t param40_init[] = {1};
   1383   model->setOperandValue(param40, param40_init, sizeof(int32_t) * 1);
   1384   static _Float16 param41_init[] = {0.0f};
   1385   model->setOperandValue(param41, param41_init, sizeof(_Float16) * 1);
   1386   static _Float16 param42_init[] = {0.5f};
   1387   model->setOperandValue(param42, param42_init, sizeof(_Float16) * 1);
   1388   static bool8 param43_init[] = {true};
   1389   model->setOperandValue(param43, param43_init, sizeof(bool8) * 1);
   1390   model->addOperation(ANEURALNETWORKS_DETECTION_POSTPROCESSING, {scores3, roi3, anchors3, param33, param34, param35, param36, param37, param38, param39, param40, param41, param42, param43}, {scoresOut3, roiOut3, classesOut3, detectionOut3});
   1391   // Phase 3, inputs and outputs
   1392   model->identifyInputsAndOutputs(
   1393     {scores3, roi3, anchors3},
   1394     {scoresOut3, roiOut3, classesOut3, detectionOut3});
   1395   assert(model->isValid());
   1396 }
   1397 
   1398 inline bool is_ignored_float16_3(int i) {
   1399   static std::set<int> ignore = {};
   1400   return ignore.find(i) != ignore.end();
   1401 }
   1402 
   1403 void CreateModel_dynamic_output_shape_3(Model *model) {
   1404   OperandType type0(Type::TENSOR_FLOAT32, {1, 6, 3});
   1405   OperandType type10(Type::TENSOR_FLOAT32, {1, 6, 7});
   1406   OperandType type17(Type::TENSOR_FLOAT32, {0, 0});
   1407   OperandType type18(Type::TENSOR_FLOAT32, {0, 0, 0});
   1408   OperandType type19(Type::TENSOR_INT32, {0, 0});
   1409   OperandType type2(Type::TENSOR_FLOAT32, {6, 4});
   1410   OperandType type20(Type::TENSOR_INT32, {0});
   1411   OperandType type7(Type::FLOAT32, {});
   1412   OperandType type8(Type::BOOL, {});
   1413   OperandType type9(Type::INT32, {});
   1414   // Phase 1, operands
   1415   auto scores3 = model->addOperand(&type0);
   1416   auto roi3 = model->addOperand(&type10);
   1417   auto anchors3 = model->addOperand(&type2);
   1418   auto param33 = model->addOperand(&type7);
   1419   auto param34 = model->addOperand(&type7);
   1420   auto param35 = model->addOperand(&type7);
   1421   auto param36 = model->addOperand(&type7);
   1422   auto param37 = model->addOperand(&type8);
   1423   auto param38 = model->addOperand(&type9);
   1424   auto param39 = model->addOperand(&type9);
   1425   auto param40 = model->addOperand(&type9);
   1426   auto param41 = model->addOperand(&type7);
   1427   auto param42 = model->addOperand(&type7);
   1428   auto param43 = model->addOperand(&type8);
   1429   auto scoresOut3 = model->addOperand(&type17);
   1430   auto roiOut3 = model->addOperand(&type18);
   1431   auto classesOut3 = model->addOperand(&type19);
   1432   auto detectionOut3 = model->addOperand(&type20);
   1433   // Phase 2, operations
   1434   static float param33_init[] = {10.0f};
   1435   model->setOperandValue(param33, param33_init, sizeof(float) * 1);
   1436   static float param34_init[] = {10.0f};
   1437   model->setOperandValue(param34, param34_init, sizeof(float) * 1);
   1438   static float param35_init[] = {5.0f};
   1439   model->setOperandValue(param35, param35_init, sizeof(float) * 1);
   1440   static float param36_init[] = {5.0f};
   1441   model->setOperandValue(param36, param36_init, sizeof(float) * 1);
   1442   static bool8 param37_init[] = {false};
   1443   model->setOperandValue(param37, param37_init, sizeof(bool8) * 1);
   1444   static int32_t param38_init[] = {3};
   1445   model->setOperandValue(param38, param38_init, sizeof(int32_t) * 1);
   1446   static int32_t param39_init[] = {1};
   1447   model->setOperandValue(param39, param39_init, sizeof(int32_t) * 1);
   1448   static int32_t param40_init[] = {1};
   1449   model->setOperandValue(param40, param40_init, sizeof(int32_t) * 1);
   1450   static float param41_init[] = {0.0f};
   1451   model->setOperandValue(param41, param41_init, sizeof(float) * 1);
   1452   static float param42_init[] = {0.5f};
   1453   model->setOperandValue(param42, param42_init, sizeof(float) * 1);
   1454   static bool8 param43_init[] = {true};
   1455   model->setOperandValue(param43, param43_init, sizeof(bool8) * 1);
   1456   model->addOperation(ANEURALNETWORKS_DETECTION_POSTPROCESSING, {scores3, roi3, anchors3, param33, param34, param35, param36, param37, param38, param39, param40, param41, param42, param43}, {scoresOut3, roiOut3, classesOut3, detectionOut3});
   1457   // Phase 3, inputs and outputs
   1458   model->identifyInputsAndOutputs(
   1459     {scores3, roi3, anchors3},
   1460     {scoresOut3, roiOut3, classesOut3, detectionOut3});
   1461   assert(model->isValid());
   1462 }
   1463 
   1464 inline bool is_ignored_dynamic_output_shape_3(int i) {
   1465   static std::set<int> ignore = {};
   1466   return ignore.find(i) != ignore.end();
   1467 }
   1468 
   1469 void CreateModel_dynamic_output_shape_relaxed_3(Model *model) {
   1470   OperandType type0(Type::TENSOR_FLOAT32, {1, 6, 3});
   1471   OperandType type10(Type::TENSOR_FLOAT32, {1, 6, 7});
   1472   OperandType type17(Type::TENSOR_FLOAT32, {0, 0});
   1473   OperandType type18(Type::TENSOR_FLOAT32, {0, 0, 0});
   1474   OperandType type19(Type::TENSOR_INT32, {0, 0});
   1475   OperandType type2(Type::TENSOR_FLOAT32, {6, 4});
   1476   OperandType type20(Type::TENSOR_INT32, {0});
   1477   OperandType type7(Type::FLOAT32, {});
   1478   OperandType type8(Type::BOOL, {});
   1479   OperandType type9(Type::INT32, {});
   1480   // Phase 1, operands
   1481   auto scores3 = model->addOperand(&type0);
   1482   auto roi3 = model->addOperand(&type10);
   1483   auto anchors3 = model->addOperand(&type2);
   1484   auto param33 = model->addOperand(&type7);
   1485   auto param34 = model->addOperand(&type7);
   1486   auto param35 = model->addOperand(&type7);
   1487   auto param36 = model->addOperand(&type7);
   1488   auto param37 = model->addOperand(&type8);
   1489   auto param38 = model->addOperand(&type9);
   1490   auto param39 = model->addOperand(&type9);
   1491   auto param40 = model->addOperand(&type9);
   1492   auto param41 = model->addOperand(&type7);
   1493   auto param42 = model->addOperand(&type7);
   1494   auto param43 = model->addOperand(&type8);
   1495   auto scoresOut3 = model->addOperand(&type17);
   1496   auto roiOut3 = model->addOperand(&type18);
   1497   auto classesOut3 = model->addOperand(&type19);
   1498   auto detectionOut3 = model->addOperand(&type20);
   1499   // Phase 2, operations
   1500   static float param33_init[] = {10.0f};
   1501   model->setOperandValue(param33, param33_init, sizeof(float) * 1);
   1502   static float param34_init[] = {10.0f};
   1503   model->setOperandValue(param34, param34_init, sizeof(float) * 1);
   1504   static float param35_init[] = {5.0f};
   1505   model->setOperandValue(param35, param35_init, sizeof(float) * 1);
   1506   static float param36_init[] = {5.0f};
   1507   model->setOperandValue(param36, param36_init, sizeof(float) * 1);
   1508   static bool8 param37_init[] = {false};
   1509   model->setOperandValue(param37, param37_init, sizeof(bool8) * 1);
   1510   static int32_t param38_init[] = {3};
   1511   model->setOperandValue(param38, param38_init, sizeof(int32_t) * 1);
   1512   static int32_t param39_init[] = {1};
   1513   model->setOperandValue(param39, param39_init, sizeof(int32_t) * 1);
   1514   static int32_t param40_init[] = {1};
   1515   model->setOperandValue(param40, param40_init, sizeof(int32_t) * 1);
   1516   static float param41_init[] = {0.0f};
   1517   model->setOperandValue(param41, param41_init, sizeof(float) * 1);
   1518   static float param42_init[] = {0.5f};
   1519   model->setOperandValue(param42, param42_init, sizeof(float) * 1);
   1520   static bool8 param43_init[] = {true};
   1521   model->setOperandValue(param43, param43_init, sizeof(bool8) * 1);
   1522   model->addOperation(ANEURALNETWORKS_DETECTION_POSTPROCESSING, {scores3, roi3, anchors3, param33, param34, param35, param36, param37, param38, param39, param40, param41, param42, param43}, {scoresOut3, roiOut3, classesOut3, detectionOut3});
   1523   // Phase 3, inputs and outputs
   1524   model->identifyInputsAndOutputs(
   1525     {scores3, roi3, anchors3},
   1526     {scoresOut3, roiOut3, classesOut3, detectionOut3});
   1527   // Phase 4: set relaxed execution
   1528   model->relaxComputationFloat32toFloat16(true);
   1529   assert(model->isValid());
   1530 }
   1531 
   1532 inline bool is_ignored_dynamic_output_shape_relaxed_3(int i) {
   1533   static std::set<int> ignore = {};
   1534   return ignore.find(i) != ignore.end();
   1535 }
   1536 
   1537 void CreateModel_dynamic_output_shape_float16_3(Model *model) {
   1538   OperandType type11(Type::TENSOR_FLOAT16, {6, 4});
   1539   OperandType type12(Type::FLOAT16, {});
   1540   OperandType type15(Type::TENSOR_FLOAT16, {1, 6, 3});
   1541   OperandType type19(Type::TENSOR_INT32, {0, 0});
   1542   OperandType type20(Type::TENSOR_INT32, {0});
   1543   OperandType type21(Type::TENSOR_FLOAT16, {0, 0});
   1544   OperandType type22(Type::TENSOR_FLOAT16, {0, 0, 0});
   1545   OperandType type23(Type::TENSOR_FLOAT16, {1, 6, 7});
   1546   OperandType type8(Type::BOOL, {});
   1547   OperandType type9(Type::INT32, {});
   1548   // Phase 1, operands
   1549   auto scores3 = model->addOperand(&type15);
   1550   auto roi3 = model->addOperand(&type23);
   1551   auto anchors3 = model->addOperand(&type11);
   1552   auto param33 = model->addOperand(&type12);
   1553   auto param34 = model->addOperand(&type12);
   1554   auto param35 = model->addOperand(&type12);
   1555   auto param36 = model->addOperand(&type12);
   1556   auto param37 = model->addOperand(&type8);
   1557   auto param38 = model->addOperand(&type9);
   1558   auto param39 = model->addOperand(&type9);
   1559   auto param40 = model->addOperand(&type9);
   1560   auto param41 = model->addOperand(&type12);
   1561   auto param42 = model->addOperand(&type12);
   1562   auto param43 = model->addOperand(&type8);
   1563   auto scoresOut3 = model->addOperand(&type21);
   1564   auto roiOut3 = model->addOperand(&type22);
   1565   auto classesOut3 = model->addOperand(&type19);
   1566   auto detectionOut3 = model->addOperand(&type20);
   1567   // Phase 2, operations
   1568   static _Float16 param33_init[] = {10.0f};
   1569   model->setOperandValue(param33, param33_init, sizeof(_Float16) * 1);
   1570   static _Float16 param34_init[] = {10.0f};
   1571   model->setOperandValue(param34, param34_init, sizeof(_Float16) * 1);
   1572   static _Float16 param35_init[] = {5.0f};
   1573   model->setOperandValue(param35, param35_init, sizeof(_Float16) * 1);
   1574   static _Float16 param36_init[] = {5.0f};
   1575   model->setOperandValue(param36, param36_init, sizeof(_Float16) * 1);
   1576   static bool8 param37_init[] = {false};
   1577   model->setOperandValue(param37, param37_init, sizeof(bool8) * 1);
   1578   static int32_t param38_init[] = {3};
   1579   model->setOperandValue(param38, param38_init, sizeof(int32_t) * 1);
   1580   static int32_t param39_init[] = {1};
   1581   model->setOperandValue(param39, param39_init, sizeof(int32_t) * 1);
   1582   static int32_t param40_init[] = {1};
   1583   model->setOperandValue(param40, param40_init, sizeof(int32_t) * 1);
   1584   static _Float16 param41_init[] = {0.0f};
   1585   model->setOperandValue(param41, param41_init, sizeof(_Float16) * 1);
   1586   static _Float16 param42_init[] = {0.5f};
   1587   model->setOperandValue(param42, param42_init, sizeof(_Float16) * 1);
   1588   static bool8 param43_init[] = {true};
   1589   model->setOperandValue(param43, param43_init, sizeof(bool8) * 1);
   1590   model->addOperation(ANEURALNETWORKS_DETECTION_POSTPROCESSING, {scores3, roi3, anchors3, param33, param34, param35, param36, param37, param38, param39, param40, param41, param42, param43}, {scoresOut3, roiOut3, classesOut3, detectionOut3});
   1591   // Phase 3, inputs and outputs
   1592   model->identifyInputsAndOutputs(
   1593     {scores3, roi3, anchors3},
   1594     {scoresOut3, roiOut3, classesOut3, detectionOut3});
   1595   assert(model->isValid());
   1596 }
   1597 
   1598 inline bool is_ignored_dynamic_output_shape_float16_3(int i) {
   1599   static std::set<int> ignore = {};
   1600   return ignore.find(i) != ignore.end();
   1601 }
   1602 
   1603