• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2020 Google LLC
2 //
3 // This source code is licensed under the BSD-style license found in the
4 // LICENSE file in the root directory of this source tree.
5 
6 #include <xnnpack.h>
7 
8 #include <array>
9 #include <algorithm>
10 #include <functional>
11 #include <iostream>
12 #include <limits>
13 #include <random>
14 
15 #include "models/models.h"
16 
17 namespace models {
18 
QS8MobileNetV2(pthreadpool_t threadpool)19 ExecutionPlan QS8MobileNetV2(pthreadpool_t threadpool) {
20   alignas(16) static std::array<int8_t, 150528 + XNN_EXTRA_BYTES / sizeof(int8_t)> v0;
21   alignas(16) static std::array<int8_t, 401408> v1;
22   alignas(16) static std::array<int8_t, 401408> v2;
23   alignas(16) static std::array<int8_t, 200704> v3;
24   alignas(16) static std::array<int8_t, 1204224> v4;
25   alignas(16) static std::array<int8_t, 301056> v5;
26   alignas(16) static std::array<int8_t, 75264> v6;
27   alignas(16) static std::array<int8_t, 451584> v7;
28   alignas(16) static std::array<int8_t, 451584> v8;
29   alignas(16) static std::array<int8_t, 75264> v9;
30   alignas(16) static std::array<int8_t, 75264> v10;
31   alignas(16) static std::array<int8_t, 451584> v11;
32   alignas(16) static std::array<int8_t, 112896> v12;
33   alignas(16) static std::array<int8_t, 25088> v13;
34   alignas(16) static std::array<int8_t, 150528> v14;
35   alignas(16) static std::array<int8_t, 150528> v15;
36   alignas(16) static std::array<int8_t, 25088> v16;
37   alignas(16) static std::array<int8_t, 25088> v17;
38   alignas(16) static std::array<int8_t, 150528> v18;
39   alignas(16) static std::array<int8_t, 150528> v19;
40   alignas(16) static std::array<int8_t, 25088> v20;
41   alignas(16) static std::array<int8_t, 25088> v21;
42   alignas(16) static std::array<int8_t, 150528> v22;
43   alignas(16) static std::array<int8_t, 37632> v23;
44   alignas(16) static std::array<int8_t, 12544> v24;
45   alignas(16) static std::array<int8_t, 75264> v25;
46   alignas(16) static std::array<int8_t, 75264> v26;
47   alignas(16) static std::array<int8_t, 12544> v27;
48   alignas(16) static std::array<int8_t, 12544> v28;
49   alignas(16) static std::array<int8_t, 75264> v29;
50   alignas(16) static std::array<int8_t, 75264> v30;
51   alignas(16) static std::array<int8_t, 12544> v31;
52   alignas(16) static std::array<int8_t, 12544> v32;
53   alignas(16) static std::array<int8_t, 75264> v33;
54   alignas(16) static std::array<int8_t, 75264> v34;
55   alignas(16) static std::array<int8_t, 12544> v35;
56   alignas(16) static std::array<int8_t, 12544> v36;
57   alignas(16) static std::array<int8_t, 75264> v37;
58   alignas(16) static std::array<int8_t, 75264> v38;
59   alignas(16) static std::array<int8_t, 18816> v39;
60   alignas(16) static std::array<int8_t, 112896> v40;
61   alignas(16) static std::array<int8_t, 112896> v41;
62   alignas(16) static std::array<int8_t, 18816> v42;
63   alignas(16) static std::array<int8_t, 18816> v43;
64   alignas(16) static std::array<int8_t, 112896> v44;
65   alignas(16) static std::array<int8_t, 112896> v45;
66   alignas(16) static std::array<int8_t, 18816> v46;
67   alignas(16) static std::array<int8_t, 18816> v47;
68   alignas(16) static std::array<int8_t, 112896> v48;
69   alignas(16) static std::array<int8_t, 28224> v49;
70   alignas(16) static std::array<int8_t, 7840> v50;
71   alignas(16) static std::array<int8_t, 47040> v51;
72   alignas(16) static std::array<int8_t, 47040> v52;
73   alignas(16) static std::array<int8_t, 7840> v53;
74   alignas(16) static std::array<int8_t, 7840> v54;
75   alignas(16) static std::array<int8_t, 47040> v55;
76   alignas(16) static std::array<int8_t, 47040> v56;
77   alignas(16) static std::array<int8_t, 7840> v57;
78   alignas(16) static std::array<int8_t, 7840> v58;
79   alignas(16) static std::array<int8_t, 47040> v59;
80   alignas(16) static std::array<int8_t, 47040> v60;
81   alignas(16) static std::array<int8_t, 15680> v61;
82   alignas(16) static std::array<int8_t, 62720> v62;
83   alignas(16) static std::array<int8_t, 1280> v63;
84   alignas(16) static std::array<int8_t, 1001> v64;
85   alignas(16) static std::array<int8_t, 864> w65;
86   alignas(16) static std::array<int32_t, 32> w66;
87   alignas(16) static std::array<int8_t, 288> w67;
88   alignas(16) static std::array<int32_t, 32> w68;
89   alignas(16) static std::array<int8_t, 512> w69;
90   alignas(16) static std::array<int32_t, 16> w70;
91   alignas(16) static std::array<int8_t, 1536> w71;
92   alignas(16) static std::array<int32_t, 96> w72;
93   alignas(16) static std::array<int8_t, 864> w73;
94   alignas(16) static std::array<int32_t, 96> w74;
95   alignas(16) static std::array<int8_t, 2304> w75;
96   alignas(16) static std::array<int32_t, 24> w76;
97   alignas(16) static std::array<int8_t, 3456> w77;
98   alignas(16) static std::array<int32_t, 144> w78;
99   alignas(16) static std::array<int8_t, 1296> w79;
100   alignas(16) static std::array<int32_t, 144> w80;
101   alignas(16) static std::array<int8_t, 3456> w81;
102   alignas(16) static std::array<int32_t, 24> w82;
103   alignas(16) static std::array<int8_t, 3456> w83;
104   alignas(16) static std::array<int32_t, 144> w84;
105   alignas(16) static std::array<int8_t, 1296> w85;
106   alignas(16) static std::array<int32_t, 144> w86;
107   alignas(16) static std::array<int8_t, 4608> w87;
108   alignas(16) static std::array<int32_t, 32> w88;
109   alignas(16) static std::array<int8_t, 6144> w89;
110   alignas(16) static std::array<int32_t, 192> w90;
111   alignas(16) static std::array<int8_t, 1728> w91;
112   alignas(16) static std::array<int32_t, 192> w92;
113   alignas(16) static std::array<int8_t, 6144> w93;
114   alignas(16) static std::array<int32_t, 32> w94;
115   alignas(16) static std::array<int8_t, 6144> w95;
116   alignas(16) static std::array<int32_t, 192> w96;
117   alignas(16) static std::array<int8_t, 1728> w97;
118   alignas(16) static std::array<int32_t, 192> w98;
119   alignas(16) static std::array<int8_t, 6144> w99;
120   alignas(16) static std::array<int32_t, 32> w100;
121   alignas(16) static std::array<int8_t, 6144> w101;
122   alignas(16) static std::array<int32_t, 192> w102;
123   alignas(16) static std::array<int8_t, 1728> w103;
124   alignas(16) static std::array<int32_t, 192> w104;
125   alignas(16) static std::array<int8_t, 12288> w105;
126   alignas(16) static std::array<int32_t, 64> w106;
127   alignas(16) static std::array<int8_t, 24576> w107;
128   alignas(16) static std::array<int32_t, 384> w108;
129   alignas(16) static std::array<int8_t, 3456> w109;
130   alignas(16) static std::array<int32_t, 384> w110;
131   alignas(16) static std::array<int8_t, 24576> w111;
132   alignas(16) static std::array<int32_t, 64> w112;
133   alignas(16) static std::array<int8_t, 24576> w113;
134   alignas(16) static std::array<int32_t, 384> w114;
135   alignas(16) static std::array<int8_t, 3456> w115;
136   alignas(16) static std::array<int32_t, 384> w116;
137   alignas(16) static std::array<int8_t, 24576> w117;
138   alignas(16) static std::array<int32_t, 64> w118;
139   alignas(16) static std::array<int8_t, 24576> w119;
140   alignas(16) static std::array<int32_t, 384> w120;
141   alignas(16) static std::array<int8_t, 3456> w121;
142   alignas(16) static std::array<int32_t, 384> w122;
143   alignas(16) static std::array<int8_t, 24576> w123;
144   alignas(16) static std::array<int32_t, 64> w124;
145   alignas(16) static std::array<int8_t, 24576> w125;
146   alignas(16) static std::array<int32_t, 384> w126;
147   alignas(16) static std::array<int8_t, 3456> w127;
148   alignas(16) static std::array<int32_t, 384> w128;
149   alignas(16) static std::array<int8_t, 36864> w129;
150   alignas(16) static std::array<int32_t, 96> w130;
151   alignas(16) static std::array<int8_t, 55296> w131;
152   alignas(16) static std::array<int32_t, 576> w132;
153   alignas(16) static std::array<int8_t, 5184> w133;
154   alignas(16) static std::array<int32_t, 576> w134;
155   alignas(16) static std::array<int8_t, 55296> w135;
156   alignas(16) static std::array<int32_t, 96> w136;
157   alignas(16) static std::array<int8_t, 55296> w137;
158   alignas(16) static std::array<int32_t, 576> w138;
159   alignas(16) static std::array<int8_t, 5184> w139;
160   alignas(16) static std::array<int32_t, 576> w140;
161   alignas(16) static std::array<int8_t, 55296> w141;
162   alignas(16) static std::array<int32_t, 96> w142;
163   alignas(16) static std::array<int8_t, 55296> w143;
164   alignas(16) static std::array<int32_t, 576> w144;
165   alignas(16) static std::array<int8_t, 5184> w145;
166   alignas(16) static std::array<int32_t, 576> w146;
167   alignas(16) static std::array<int8_t, 92160> w147;
168   alignas(16) static std::array<int32_t, 160> w148;
169   alignas(16) static std::array<int8_t, 153600> w149;
170   alignas(16) static std::array<int32_t, 960> w150;
171   alignas(16) static std::array<int8_t, 8640> w151;
172   alignas(16) static std::array<int32_t, 960> w152;
173   alignas(16) static std::array<int8_t, 153600> w153;
174   alignas(16) static std::array<int32_t, 160> w154;
175   alignas(16) static std::array<int8_t, 153600> w155;
176   alignas(16) static std::array<int32_t, 960> w156;
177   alignas(16) static std::array<int8_t, 8640> w157;
178   alignas(16) static std::array<int32_t, 960> w158;
179   alignas(16) static std::array<int8_t, 153600> w159;
180   alignas(16) static std::array<int32_t, 160> w160;
181   alignas(16) static std::array<int8_t, 153600> w161;
182   alignas(16) static std::array<int32_t, 960> w162;
183   alignas(16) static std::array<int8_t, 8640> w163;
184   alignas(16) static std::array<int32_t, 960> w164;
185   alignas(16) static std::array<int8_t, 307200> w165;
186   alignas(16) static std::array<int32_t, 320> w166;
187   alignas(16) static std::array<int8_t, 409600> w167;
188   alignas(16) static std::array<int32_t, 1280> w168;
189   alignas(16) static std::array<int8_t, 1281280> w169;
190   alignas(16) static std::array<int32_t, 1001> w170;
191 
192   std::random_device random_device;
193   auto rng = std::mt19937(random_device());
194   auto i8rng = std::bind(std::uniform_int_distribution<int32_t>(-127, 127), std::ref(rng));
195   auto i32rng = std::bind(std::uniform_int_distribution<int32_t>(-10000, 10000), std::ref(rng));
196   std::generate(v0.begin(), v0.end(), std::ref(i8rng));
197   std::generate(v1.begin(), v1.end(), std::ref(i8rng));
198   std::generate(v2.begin(), v2.end(), std::ref(i8rng));
199   std::generate(v3.begin(), v3.end(), std::ref(i8rng));
200   std::generate(v4.begin(), v4.end(), std::ref(i8rng));
201   std::generate(v5.begin(), v5.end(), std::ref(i8rng));
202   std::generate(v6.begin(), v6.end(), std::ref(i8rng));
203   std::generate(v7.begin(), v7.end(), std::ref(i8rng));
204   std::generate(v8.begin(), v8.end(), std::ref(i8rng));
205   std::generate(v9.begin(), v9.end(), std::ref(i8rng));
206   std::generate(v10.begin(), v10.end(), std::ref(i8rng));
207   std::generate(v11.begin(), v11.end(), std::ref(i8rng));
208   std::generate(v12.begin(), v12.end(), std::ref(i8rng));
209   std::generate(v13.begin(), v13.end(), std::ref(i8rng));
210   std::generate(v14.begin(), v14.end(), std::ref(i8rng));
211   std::generate(v15.begin(), v15.end(), std::ref(i8rng));
212   std::generate(v16.begin(), v16.end(), std::ref(i8rng));
213   std::generate(v17.begin(), v17.end(), std::ref(i8rng));
214   std::generate(v18.begin(), v18.end(), std::ref(i8rng));
215   std::generate(v19.begin(), v19.end(), std::ref(i8rng));
216   std::generate(v20.begin(), v20.end(), std::ref(i8rng));
217   std::generate(v21.begin(), v21.end(), std::ref(i8rng));
218   std::generate(v22.begin(), v22.end(), std::ref(i8rng));
219   std::generate(v23.begin(), v23.end(), std::ref(i8rng));
220   std::generate(v24.begin(), v24.end(), std::ref(i8rng));
221   std::generate(v25.begin(), v25.end(), std::ref(i8rng));
222   std::generate(v26.begin(), v26.end(), std::ref(i8rng));
223   std::generate(v27.begin(), v27.end(), std::ref(i8rng));
224   std::generate(v28.begin(), v28.end(), std::ref(i8rng));
225   std::generate(v29.begin(), v29.end(), std::ref(i8rng));
226   std::generate(v30.begin(), v30.end(), std::ref(i8rng));
227   std::generate(v31.begin(), v31.end(), std::ref(i8rng));
228   std::generate(v32.begin(), v32.end(), std::ref(i8rng));
229   std::generate(v33.begin(), v33.end(), std::ref(i8rng));
230   std::generate(v34.begin(), v34.end(), std::ref(i8rng));
231   std::generate(v35.begin(), v35.end(), std::ref(i8rng));
232   std::generate(v36.begin(), v36.end(), std::ref(i8rng));
233   std::generate(v37.begin(), v37.end(), std::ref(i8rng));
234   std::generate(v38.begin(), v38.end(), std::ref(i8rng));
235   std::generate(v39.begin(), v39.end(), std::ref(i8rng));
236   std::generate(v40.begin(), v40.end(), std::ref(i8rng));
237   std::generate(v41.begin(), v41.end(), std::ref(i8rng));
238   std::generate(v42.begin(), v42.end(), std::ref(i8rng));
239   std::generate(v43.begin(), v43.end(), std::ref(i8rng));
240   std::generate(v44.begin(), v44.end(), std::ref(i8rng));
241   std::generate(v45.begin(), v45.end(), std::ref(i8rng));
242   std::generate(v46.begin(), v46.end(), std::ref(i8rng));
243   std::generate(v47.begin(), v47.end(), std::ref(i8rng));
244   std::generate(v48.begin(), v48.end(), std::ref(i8rng));
245   std::generate(v49.begin(), v49.end(), std::ref(i8rng));
246   std::generate(v50.begin(), v50.end(), std::ref(i8rng));
247   std::generate(v51.begin(), v51.end(), std::ref(i8rng));
248   std::generate(v52.begin(), v52.end(), std::ref(i8rng));
249   std::generate(v53.begin(), v53.end(), std::ref(i8rng));
250   std::generate(v54.begin(), v54.end(), std::ref(i8rng));
251   std::generate(v55.begin(), v55.end(), std::ref(i8rng));
252   std::generate(v56.begin(), v56.end(), std::ref(i8rng));
253   std::generate(v57.begin(), v57.end(), std::ref(i8rng));
254   std::generate(v58.begin(), v58.end(), std::ref(i8rng));
255   std::generate(v59.begin(), v59.end(), std::ref(i8rng));
256   std::generate(v60.begin(), v60.end(), std::ref(i8rng));
257   std::generate(v61.begin(), v61.end(), std::ref(i8rng));
258   std::generate(v62.begin(), v62.end(), std::ref(i8rng));
259   std::generate(v63.begin(), v63.end(), std::ref(i8rng));
260   std::generate(v64.begin(), v64.end(), std::ref(i8rng));
261   std::generate(w65.begin(), w65.end(), std::ref(i8rng));
262   std::generate(w66.begin(), w66.end(), std::ref(i32rng));
263   std::generate(w67.begin(), w67.end(), std::ref(i8rng));
264   std::generate(w68.begin(), w68.end(), std::ref(i32rng));
265   std::generate(w69.begin(), w69.end(), std::ref(i8rng));
266   std::generate(w70.begin(), w70.end(), std::ref(i32rng));
267   std::generate(w71.begin(), w71.end(), std::ref(i8rng));
268   std::generate(w72.begin(), w72.end(), std::ref(i32rng));
269   std::generate(w73.begin(), w73.end(), std::ref(i8rng));
270   std::generate(w74.begin(), w74.end(), std::ref(i32rng));
271   std::generate(w75.begin(), w75.end(), std::ref(i8rng));
272   std::generate(w76.begin(), w76.end(), std::ref(i32rng));
273   std::generate(w77.begin(), w77.end(), std::ref(i8rng));
274   std::generate(w78.begin(), w78.end(), std::ref(i32rng));
275   std::generate(w79.begin(), w79.end(), std::ref(i8rng));
276   std::generate(w80.begin(), w80.end(), std::ref(i32rng));
277   std::generate(w81.begin(), w81.end(), std::ref(i8rng));
278   std::generate(w82.begin(), w82.end(), std::ref(i32rng));
279   std::generate(w83.begin(), w83.end(), std::ref(i8rng));
280   std::generate(w84.begin(), w84.end(), std::ref(i32rng));
281   std::generate(w85.begin(), w85.end(), std::ref(i8rng));
282   std::generate(w86.begin(), w86.end(), std::ref(i32rng));
283   std::generate(w87.begin(), w87.end(), std::ref(i8rng));
284   std::generate(w88.begin(), w88.end(), std::ref(i32rng));
285   std::generate(w89.begin(), w89.end(), std::ref(i8rng));
286   std::generate(w90.begin(), w90.end(), std::ref(i32rng));
287   std::generate(w91.begin(), w91.end(), std::ref(i8rng));
288   std::generate(w92.begin(), w92.end(), std::ref(i32rng));
289   std::generate(w93.begin(), w93.end(), std::ref(i8rng));
290   std::generate(w94.begin(), w94.end(), std::ref(i32rng));
291   std::generate(w95.begin(), w95.end(), std::ref(i8rng));
292   std::generate(w96.begin(), w96.end(), std::ref(i32rng));
293   std::generate(w97.begin(), w97.end(), std::ref(i8rng));
294   std::generate(w98.begin(), w98.end(), std::ref(i32rng));
295   std::generate(w99.begin(), w99.end(), std::ref(i8rng));
296   std::generate(w100.begin(), w100.end(), std::ref(i32rng));
297   std::generate(w101.begin(), w101.end(), std::ref(i8rng));
298   std::generate(w102.begin(), w102.end(), std::ref(i32rng));
299   std::generate(w103.begin(), w103.end(), std::ref(i8rng));
300   std::generate(w104.begin(), w104.end(), std::ref(i32rng));
301   std::generate(w105.begin(), w105.end(), std::ref(i8rng));
302   std::generate(w106.begin(), w106.end(), std::ref(i32rng));
303   std::generate(w107.begin(), w107.end(), std::ref(i8rng));
304   std::generate(w108.begin(), w108.end(), std::ref(i32rng));
305   std::generate(w109.begin(), w109.end(), std::ref(i8rng));
306   std::generate(w110.begin(), w110.end(), std::ref(i32rng));
307   std::generate(w111.begin(), w111.end(), std::ref(i8rng));
308   std::generate(w112.begin(), w112.end(), std::ref(i32rng));
309   std::generate(w113.begin(), w113.end(), std::ref(i8rng));
310   std::generate(w114.begin(), w114.end(), std::ref(i32rng));
311   std::generate(w115.begin(), w115.end(), std::ref(i8rng));
312   std::generate(w116.begin(), w116.end(), std::ref(i32rng));
313   std::generate(w117.begin(), w117.end(), std::ref(i8rng));
314   std::generate(w118.begin(), w118.end(), std::ref(i32rng));
315   std::generate(w119.begin(), w119.end(), std::ref(i8rng));
316   std::generate(w120.begin(), w120.end(), std::ref(i32rng));
317   std::generate(w121.begin(), w121.end(), std::ref(i8rng));
318   std::generate(w122.begin(), w122.end(), std::ref(i32rng));
319   std::generate(w123.begin(), w123.end(), std::ref(i8rng));
320   std::generate(w124.begin(), w124.end(), std::ref(i32rng));
321   std::generate(w125.begin(), w125.end(), std::ref(i8rng));
322   std::generate(w126.begin(), w126.end(), std::ref(i32rng));
323   std::generate(w127.begin(), w127.end(), std::ref(i8rng));
324   std::generate(w128.begin(), w128.end(), std::ref(i32rng));
325   std::generate(w129.begin(), w129.end(), std::ref(i8rng));
326   std::generate(w130.begin(), w130.end(), std::ref(i32rng));
327   std::generate(w131.begin(), w131.end(), std::ref(i8rng));
328   std::generate(w132.begin(), w132.end(), std::ref(i32rng));
329   std::generate(w133.begin(), w133.end(), std::ref(i8rng));
330   std::generate(w134.begin(), w134.end(), std::ref(i32rng));
331   std::generate(w135.begin(), w135.end(), std::ref(i8rng));
332   std::generate(w136.begin(), w136.end(), std::ref(i32rng));
333   std::generate(w137.begin(), w137.end(), std::ref(i8rng));
334   std::generate(w138.begin(), w138.end(), std::ref(i32rng));
335   std::generate(w139.begin(), w139.end(), std::ref(i8rng));
336   std::generate(w140.begin(), w140.end(), std::ref(i32rng));
337   std::generate(w141.begin(), w141.end(), std::ref(i8rng));
338   std::generate(w142.begin(), w142.end(), std::ref(i32rng));
339   std::generate(w143.begin(), w143.end(), std::ref(i8rng));
340   std::generate(w144.begin(), w144.end(), std::ref(i32rng));
341   std::generate(w145.begin(), w145.end(), std::ref(i8rng));
342   std::generate(w146.begin(), w146.end(), std::ref(i32rng));
343   std::generate(w147.begin(), w147.end(), std::ref(i8rng));
344   std::generate(w148.begin(), w148.end(), std::ref(i32rng));
345   std::generate(w149.begin(), w149.end(), std::ref(i8rng));
346   std::generate(w150.begin(), w150.end(), std::ref(i32rng));
347   std::generate(w151.begin(), w151.end(), std::ref(i8rng));
348   std::generate(w152.begin(), w152.end(), std::ref(i32rng));
349   std::generate(w153.begin(), w153.end(), std::ref(i8rng));
350   std::generate(w154.begin(), w154.end(), std::ref(i32rng));
351   std::generate(w155.begin(), w155.end(), std::ref(i8rng));
352   std::generate(w156.begin(), w156.end(), std::ref(i32rng));
353   std::generate(w157.begin(), w157.end(), std::ref(i8rng));
354   std::generate(w158.begin(), w158.end(), std::ref(i32rng));
355   std::generate(w159.begin(), w159.end(), std::ref(i8rng));
356   std::generate(w160.begin(), w160.end(), std::ref(i32rng));
357   std::generate(w161.begin(), w161.end(), std::ref(i8rng));
358   std::generate(w162.begin(), w162.end(), std::ref(i32rng));
359   std::generate(w163.begin(), w163.end(), std::ref(i8rng));
360   std::generate(w164.begin(), w164.end(), std::ref(i32rng));
361   std::generate(w165.begin(), w165.end(), std::ref(i8rng));
362   std::generate(w166.begin(), w166.end(), std::ref(i32rng));
363   std::generate(w167.begin(), w167.end(), std::ref(i8rng));
364   std::generate(w168.begin(), w168.end(), std::ref(i32rng));
365   std::generate(w169.begin(), w169.end(), std::ref(i8rng));
366   std::generate(w170.begin(), w170.end(), std::ref(i32rng));
367 
368   ExecutionPlan operators;
369   xnn_status status;
370 
371   xnn_operator_t op0 = nullptr;
372   status = xnn_create_convolution2d_nhwc_qs8(
373     0 /* top padding */, 1 /* right padding */,
374     1 /* bottom padding */, 0 /* left padding */,
375     3 /* kernel height */, 3 /* kernel width */,
376     2 /* subsampling height */, 2 /* subsampling width */,
377     1 /* dilation_height */, 1 /* dilation_width */,
378     1 /* groups */,
379     3 /* input channels per group */,
380     32 /* output_channels_per_group */,
381     3 /* input pixel stride */,
382     32 /* output pixel stride */,
383     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
384     w65.data(), w66.data(),
385     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
386     0 /* flags */,
387     &op0);
388   if (status != xnn_status_success) {
389     std::cerr << "failed to create operation #0" << std::endl;
390     return ExecutionPlan();
391   }
392   operators.emplace_back(op0, xnn_delete_operator);
393 
394   xnn_operator_t op1 = nullptr;
395   status = xnn_create_convolution2d_nhwc_qs8(
396     1 /* top padding */, 1 /* right padding */,
397     1 /* bottom padding */, 1 /* left padding */,
398     3 /* kernel height */, 3 /* kernel width */,
399     1 /* subsampling height */, 1 /* subsampling width */,
400     1 /* dilation_height */, 1 /* dilation_width */,
401     32 /* groups */,
402     1 /* input channels per group */,
403     1 /* output_channels_per_group */,
404     32 /* input pixel stride */,
405     32 /* output pixel stride */,
406     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
407     w67.data(), w68.data(),
408     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
409     0 /* flags */,
410     &op1);
411   if (status != xnn_status_success) {
412     std::cerr << "failed to create operation #1" << std::endl;
413     return ExecutionPlan();
414   }
415   operators.emplace_back(op1, xnn_delete_operator);
416 
417   xnn_operator_t op2 = nullptr;
418   status = xnn_create_convolution2d_nhwc_qs8(
419     0 /* top padding */, 0 /* right padding */,
420     0 /* bottom padding */, 0 /* left padding */,
421     1 /* kernel height */, 1 /* kernel width */,
422     1 /* subsampling height */, 1 /* subsampling width */,
423     1 /* dilation_height */, 1 /* dilation_width */,
424     1 /* groups */,
425     32 /* input channels per group */,
426     16 /* output_channels_per_group */,
427     32 /* input pixel stride */,
428     16 /* output pixel stride */,
429     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
430     w69.data(), w70.data(),
431     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
432     0 /* flags */,
433     &op2);
434   if (status != xnn_status_success) {
435     std::cerr << "failed to create operation #2" << std::endl;
436     return ExecutionPlan();
437   }
438   operators.emplace_back(op2, xnn_delete_operator);
439 
440   xnn_operator_t op3 = nullptr;
441   status = xnn_create_convolution2d_nhwc_qs8(
442     0 /* top padding */, 0 /* right padding */,
443     0 /* bottom padding */, 0 /* left padding */,
444     1 /* kernel height */, 1 /* kernel width */,
445     1 /* subsampling height */, 1 /* subsampling width */,
446     1 /* dilation_height */, 1 /* dilation_width */,
447     1 /* groups */,
448     16 /* input channels per group */,
449     96 /* output_channels_per_group */,
450     16 /* input pixel stride */,
451     96 /* output pixel stride */,
452     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
453     w71.data(), w72.data(),
454     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
455     0 /* flags */,
456     &op3);
457   if (status != xnn_status_success) {
458     std::cerr << "failed to create operation #3" << std::endl;
459     return ExecutionPlan();
460   }
461   operators.emplace_back(op3, xnn_delete_operator);
462 
463   xnn_operator_t op4 = nullptr;
464   status = xnn_create_convolution2d_nhwc_qs8(
465     0 /* top padding */, 1 /* right padding */,
466     1 /* bottom padding */, 0 /* left padding */,
467     3 /* kernel height */, 3 /* kernel width */,
468     2 /* subsampling height */, 2 /* subsampling width */,
469     1 /* dilation_height */, 1 /* dilation_width */,
470     96 /* groups */,
471     1 /* input channels per group */,
472     1 /* output_channels_per_group */,
473     96 /* input pixel stride */,
474     96 /* output pixel stride */,
475     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
476     w73.data(), w74.data(),
477     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
478     0 /* flags */,
479     &op4);
480   if (status != xnn_status_success) {
481     std::cerr << "failed to create operation #4" << std::endl;
482     return ExecutionPlan();
483   }
484   operators.emplace_back(op4, xnn_delete_operator);
485 
486   xnn_operator_t op5 = nullptr;
487   status = xnn_create_convolution2d_nhwc_qs8(
488     0 /* top padding */, 0 /* right padding */,
489     0 /* bottom padding */, 0 /* left padding */,
490     1 /* kernel height */, 1 /* kernel width */,
491     1 /* subsampling height */, 1 /* subsampling width */,
492     1 /* dilation_height */, 1 /* dilation_width */,
493     1 /* groups */,
494     96 /* input channels per group */,
495     24 /* output_channels_per_group */,
496     96 /* input pixel stride */,
497     24 /* output pixel stride */,
498     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
499     w75.data(), w76.data(),
500     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
501     0 /* flags */,
502     &op5);
503   if (status != xnn_status_success) {
504     std::cerr << "failed to create operation #5" << std::endl;
505     return ExecutionPlan();
506   }
507   operators.emplace_back(op5, xnn_delete_operator);
508 
509   xnn_operator_t op6 = nullptr;
510   status = xnn_create_convolution2d_nhwc_qs8(
511     0 /* top padding */, 0 /* right padding */,
512     0 /* bottom padding */, 0 /* left padding */,
513     1 /* kernel height */, 1 /* kernel width */,
514     1 /* subsampling height */, 1 /* subsampling width */,
515     1 /* dilation_height */, 1 /* dilation_width */,
516     1 /* groups */,
517     24 /* input channels per group */,
518     144 /* output_channels_per_group */,
519     24 /* input pixel stride */,
520     144 /* output pixel stride */,
521     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
522     w77.data(), w78.data(),
523     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
524     0 /* flags */,
525     &op6);
526   if (status != xnn_status_success) {
527     std::cerr << "failed to create operation #6" << std::endl;
528     return ExecutionPlan();
529   }
530   operators.emplace_back(op6, xnn_delete_operator);
531 
532   xnn_operator_t op7 = nullptr;
533   status = xnn_create_convolution2d_nhwc_qs8(
534     1 /* top padding */, 1 /* right padding */,
535     1 /* bottom padding */, 1 /* left padding */,
536     3 /* kernel height */, 3 /* kernel width */,
537     1 /* subsampling height */, 1 /* subsampling width */,
538     1 /* dilation_height */, 1 /* dilation_width */,
539     144 /* groups */,
540     1 /* input channels per group */,
541     1 /* output_channels_per_group */,
542     144 /* input pixel stride */,
543     144 /* output pixel stride */,
544     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
545     w79.data(), w80.data(),
546     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
547     0 /* flags */,
548     &op7);
549   if (status != xnn_status_success) {
550     std::cerr << "failed to create operation #7" << std::endl;
551     return ExecutionPlan();
552   }
553   operators.emplace_back(op7, xnn_delete_operator);
554 
555   xnn_operator_t op8 = nullptr;
556   status = xnn_create_convolution2d_nhwc_qs8(
557     0 /* top padding */, 0 /* right padding */,
558     0 /* bottom padding */, 0 /* left padding */,
559     1 /* kernel height */, 1 /* kernel width */,
560     1 /* subsampling height */, 1 /* subsampling width */,
561     1 /* dilation_height */, 1 /* dilation_width */,
562     1 /* groups */,
563     144 /* input channels per group */,
564     24 /* output_channels_per_group */,
565     144 /* input pixel stride */,
566     24 /* output pixel stride */,
567     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
568     w81.data(), w82.data(),
569     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
570     0 /* flags */,
571     &op8);
572   if (status != xnn_status_success) {
573     std::cerr << "failed to create operation #8" << std::endl;
574     return ExecutionPlan();
575   }
576   operators.emplace_back(op8, xnn_delete_operator);
577 
578   xnn_operator_t op9 = nullptr;
579   status = xnn_create_add_nd_qs8(
580     -1 /* input1 zero point */, 0.5f /* input1 scale */,
581     -1 /* input2 zero point */, 0.5f /* input2 scale */,
582     -1 /* output zero point */, 1.0f /* output scale */, -126 /* output min */, 126 /* output max */,
583     0 /* flags */,
584     &op9);
585   if (status != xnn_status_success) {
586     std::cerr << "failed to create operation #9" << std::endl;
587     return ExecutionPlan();
588   }
589   operators.emplace_back(op9, xnn_delete_operator);
590 
591   xnn_operator_t op10 = nullptr;
592   status = xnn_create_convolution2d_nhwc_qs8(
593     0 /* top padding */, 0 /* right padding */,
594     0 /* bottom padding */, 0 /* left padding */,
595     1 /* kernel height */, 1 /* kernel width */,
596     1 /* subsampling height */, 1 /* subsampling width */,
597     1 /* dilation_height */, 1 /* dilation_width */,
598     1 /* groups */,
599     24 /* input channels per group */,
600     144 /* output_channels_per_group */,
601     24 /* input pixel stride */,
602     144 /* output pixel stride */,
603     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
604     w83.data(), w84.data(),
605     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
606     0 /* flags */,
607     &op10);
608   if (status != xnn_status_success) {
609     std::cerr << "failed to create operation #10" << std::endl;
610     return ExecutionPlan();
611   }
612   operators.emplace_back(op10, xnn_delete_operator);
613 
614   xnn_operator_t op11 = nullptr;
615   status = xnn_create_convolution2d_nhwc_qs8(
616     0 /* top padding */, 1 /* right padding */,
617     1 /* bottom padding */, 0 /* left padding */,
618     3 /* kernel height */, 3 /* kernel width */,
619     2 /* subsampling height */, 2 /* subsampling width */,
620     1 /* dilation_height */, 1 /* dilation_width */,
621     144 /* groups */,
622     1 /* input channels per group */,
623     1 /* output_channels_per_group */,
624     144 /* input pixel stride */,
625     144 /* output pixel stride */,
626     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
627     w85.data(), w86.data(),
628     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
629     0 /* flags */,
630     &op11);
631   if (status != xnn_status_success) {
632     std::cerr << "failed to create operation #11" << std::endl;
633     return ExecutionPlan();
634   }
635   operators.emplace_back(op11, xnn_delete_operator);
636 
637   xnn_operator_t op12 = nullptr;
638   status = xnn_create_convolution2d_nhwc_qs8(
639     0 /* top padding */, 0 /* right padding */,
640     0 /* bottom padding */, 0 /* left padding */,
641     1 /* kernel height */, 1 /* kernel width */,
642     1 /* subsampling height */, 1 /* subsampling width */,
643     1 /* dilation_height */, 1 /* dilation_width */,
644     1 /* groups */,
645     144 /* input channels per group */,
646     32 /* output_channels_per_group */,
647     144 /* input pixel stride */,
648     32 /* output pixel stride */,
649     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
650     w87.data(), w88.data(),
651     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
652     0 /* flags */,
653     &op12);
654   if (status != xnn_status_success) {
655     std::cerr << "failed to create operation #12" << std::endl;
656     return ExecutionPlan();
657   }
658   operators.emplace_back(op12, xnn_delete_operator);
659 
660   xnn_operator_t op13 = nullptr;
661   status = xnn_create_convolution2d_nhwc_qs8(
662     0 /* top padding */, 0 /* right padding */,
663     0 /* bottom padding */, 0 /* left padding */,
664     1 /* kernel height */, 1 /* kernel width */,
665     1 /* subsampling height */, 1 /* subsampling width */,
666     1 /* dilation_height */, 1 /* dilation_width */,
667     1 /* groups */,
668     32 /* input channels per group */,
669     192 /* output_channels_per_group */,
670     32 /* input pixel stride */,
671     192 /* output pixel stride */,
672     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
673     w89.data(), w90.data(),
674     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
675     0 /* flags */,
676     &op13);
677   if (status != xnn_status_success) {
678     std::cerr << "failed to create operation #13" << std::endl;
679     return ExecutionPlan();
680   }
681   operators.emplace_back(op13, xnn_delete_operator);
682 
683   xnn_operator_t op14 = nullptr;
684   status = xnn_create_convolution2d_nhwc_qs8(
685     1 /* top padding */, 1 /* right padding */,
686     1 /* bottom padding */, 1 /* left padding */,
687     3 /* kernel height */, 3 /* kernel width */,
688     1 /* subsampling height */, 1 /* subsampling width */,
689     1 /* dilation_height */, 1 /* dilation_width */,
690     192 /* groups */,
691     1 /* input channels per group */,
692     1 /* output_channels_per_group */,
693     192 /* input pixel stride */,
694     192 /* output pixel stride */,
695     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
696     w91.data(), w92.data(),
697     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
698     0 /* flags */,
699     &op14);
700   if (status != xnn_status_success) {
701     std::cerr << "failed to create operation #14" << std::endl;
702     return ExecutionPlan();
703   }
704   operators.emplace_back(op14, xnn_delete_operator);
705 
706   xnn_operator_t op15 = nullptr;
707   status = xnn_create_convolution2d_nhwc_qs8(
708     0 /* top padding */, 0 /* right padding */,
709     0 /* bottom padding */, 0 /* left padding */,
710     1 /* kernel height */, 1 /* kernel width */,
711     1 /* subsampling height */, 1 /* subsampling width */,
712     1 /* dilation_height */, 1 /* dilation_width */,
713     1 /* groups */,
714     192 /* input channels per group */,
715     32 /* output_channels_per_group */,
716     192 /* input pixel stride */,
717     32 /* output pixel stride */,
718     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
719     w93.data(), w94.data(),
720     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
721     0 /* flags */,
722     &op15);
723   if (status != xnn_status_success) {
724     std::cerr << "failed to create operation #15" << std::endl;
725     return ExecutionPlan();
726   }
727   operators.emplace_back(op15, xnn_delete_operator);
728 
729   xnn_operator_t op16 = nullptr;
730   status = xnn_create_add_nd_qs8(
731     -1 /* input1 zero point */, 0.5f /* input1 scale */,
732     -1 /* input2 zero point */, 0.5f /* input2 scale */,
733     -1 /* output zero point */, 1.0f /* output scale */, -126 /* output min */, 126 /* output max */,
734     0 /* flags */,
735     &op16);
736   if (status != xnn_status_success) {
737     std::cerr << "failed to create operation #16" << std::endl;
738     return ExecutionPlan();
739   }
740   operators.emplace_back(op16, xnn_delete_operator);
741 
742   xnn_operator_t op17 = nullptr;
743   status = xnn_create_convolution2d_nhwc_qs8(
744     0 /* top padding */, 0 /* right padding */,
745     0 /* bottom padding */, 0 /* left padding */,
746     1 /* kernel height */, 1 /* kernel width */,
747     1 /* subsampling height */, 1 /* subsampling width */,
748     1 /* dilation_height */, 1 /* dilation_width */,
749     1 /* groups */,
750     32 /* input channels per group */,
751     192 /* output_channels_per_group */,
752     32 /* input pixel stride */,
753     192 /* output pixel stride */,
754     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
755     w95.data(), w96.data(),
756     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
757     0 /* flags */,
758     &op17);
759   if (status != xnn_status_success) {
760     std::cerr << "failed to create operation #17" << std::endl;
761     return ExecutionPlan();
762   }
763   operators.emplace_back(op17, xnn_delete_operator);
764 
765   xnn_operator_t op18 = nullptr;
766   status = xnn_create_convolution2d_nhwc_qs8(
767     1 /* top padding */, 1 /* right padding */,
768     1 /* bottom padding */, 1 /* left padding */,
769     3 /* kernel height */, 3 /* kernel width */,
770     1 /* subsampling height */, 1 /* subsampling width */,
771     1 /* dilation_height */, 1 /* dilation_width */,
772     192 /* groups */,
773     1 /* input channels per group */,
774     1 /* output_channels_per_group */,
775     192 /* input pixel stride */,
776     192 /* output pixel stride */,
777     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
778     w97.data(), w98.data(),
779     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
780     0 /* flags */,
781     &op18);
782   if (status != xnn_status_success) {
783     std::cerr << "failed to create operation #18" << std::endl;
784     return ExecutionPlan();
785   }
786   operators.emplace_back(op18, xnn_delete_operator);
787 
788   xnn_operator_t op19 = nullptr;
789   status = xnn_create_convolution2d_nhwc_qs8(
790     0 /* top padding */, 0 /* right padding */,
791     0 /* bottom padding */, 0 /* left padding */,
792     1 /* kernel height */, 1 /* kernel width */,
793     1 /* subsampling height */, 1 /* subsampling width */,
794     1 /* dilation_height */, 1 /* dilation_width */,
795     1 /* groups */,
796     192 /* input channels per group */,
797     32 /* output_channels_per_group */,
798     192 /* input pixel stride */,
799     32 /* output pixel stride */,
800     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
801     w99.data(), w100.data(),
802     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
803     0 /* flags */,
804     &op19);
805   if (status != xnn_status_success) {
806     std::cerr << "failed to create operation #19" << std::endl;
807     return ExecutionPlan();
808   }
809   operators.emplace_back(op19, xnn_delete_operator);
810 
811   xnn_operator_t op20 = nullptr;
812   status = xnn_create_add_nd_qs8(
813     -1 /* input1 zero point */, 0.5f /* input1 scale */,
814     -1 /* input2 zero point */, 0.5f /* input2 scale */,
815     -1 /* output zero point */, 1.0f /* output scale */, -126 /* output min */, 126 /* output max */,
816     0 /* flags */,
817     &op20);
818   if (status != xnn_status_success) {
819     std::cerr << "failed to create operation #20" << std::endl;
820     return ExecutionPlan();
821   }
822   operators.emplace_back(op20, xnn_delete_operator);
823 
824   xnn_operator_t op21 = nullptr;
825   status = xnn_create_convolution2d_nhwc_qs8(
826     0 /* top padding */, 0 /* right padding */,
827     0 /* bottom padding */, 0 /* left padding */,
828     1 /* kernel height */, 1 /* kernel width */,
829     1 /* subsampling height */, 1 /* subsampling width */,
830     1 /* dilation_height */, 1 /* dilation_width */,
831     1 /* groups */,
832     32 /* input channels per group */,
833     192 /* output_channels_per_group */,
834     32 /* input pixel stride */,
835     192 /* output pixel stride */,
836     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
837     w101.data(), w102.data(),
838     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
839     0 /* flags */,
840     &op21);
841   if (status != xnn_status_success) {
842     std::cerr << "failed to create operation #21" << std::endl;
843     return ExecutionPlan();
844   }
845   operators.emplace_back(op21, xnn_delete_operator);
846 
847   xnn_operator_t op22 = nullptr;
848   status = xnn_create_convolution2d_nhwc_qs8(
849     0 /* top padding */, 1 /* right padding */,
850     1 /* bottom padding */, 0 /* left padding */,
851     3 /* kernel height */, 3 /* kernel width */,
852     2 /* subsampling height */, 2 /* subsampling width */,
853     1 /* dilation_height */, 1 /* dilation_width */,
854     192 /* groups */,
855     1 /* input channels per group */,
856     1 /* output_channels_per_group */,
857     192 /* input pixel stride */,
858     192 /* output pixel stride */,
859     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
860     w103.data(), w104.data(),
861     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
862     0 /* flags */,
863     &op22);
864   if (status != xnn_status_success) {
865     std::cerr << "failed to create operation #22" << std::endl;
866     return ExecutionPlan();
867   }
868   operators.emplace_back(op22, xnn_delete_operator);
869 
870   xnn_operator_t op23 = nullptr;
871   status = xnn_create_convolution2d_nhwc_qs8(
872     0 /* top padding */, 0 /* right padding */,
873     0 /* bottom padding */, 0 /* left padding */,
874     1 /* kernel height */, 1 /* kernel width */,
875     1 /* subsampling height */, 1 /* subsampling width */,
876     1 /* dilation_height */, 1 /* dilation_width */,
877     1 /* groups */,
878     192 /* input channels per group */,
879     64 /* output_channels_per_group */,
880     192 /* input pixel stride */,
881     64 /* output pixel stride */,
882     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
883     w105.data(), w106.data(),
884     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
885     0 /* flags */,
886     &op23);
887   if (status != xnn_status_success) {
888     std::cerr << "failed to create operation #23" << std::endl;
889     return ExecutionPlan();
890   }
891   operators.emplace_back(op23, xnn_delete_operator);
892 
893   xnn_operator_t op24 = nullptr;
894   status = xnn_create_convolution2d_nhwc_qs8(
895     0 /* top padding */, 0 /* right padding */,
896     0 /* bottom padding */, 0 /* left padding */,
897     1 /* kernel height */, 1 /* kernel width */,
898     1 /* subsampling height */, 1 /* subsampling width */,
899     1 /* dilation_height */, 1 /* dilation_width */,
900     1 /* groups */,
901     64 /* input channels per group */,
902     384 /* output_channels_per_group */,
903     64 /* input pixel stride */,
904     384 /* output pixel stride */,
905     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
906     w107.data(), w108.data(),
907     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
908     0 /* flags */,
909     &op24);
910   if (status != xnn_status_success) {
911     std::cerr << "failed to create operation #24" << std::endl;
912     return ExecutionPlan();
913   }
914   operators.emplace_back(op24, xnn_delete_operator);
915 
916   xnn_operator_t op25 = nullptr;
917   status = xnn_create_convolution2d_nhwc_qs8(
918     1 /* top padding */, 1 /* right padding */,
919     1 /* bottom padding */, 1 /* left padding */,
920     3 /* kernel height */, 3 /* kernel width */,
921     1 /* subsampling height */, 1 /* subsampling width */,
922     1 /* dilation_height */, 1 /* dilation_width */,
923     384 /* groups */,
924     1 /* input channels per group */,
925     1 /* output_channels_per_group */,
926     384 /* input pixel stride */,
927     384 /* output pixel stride */,
928     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
929     w109.data(), w110.data(),
930     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
931     0 /* flags */,
932     &op25);
933   if (status != xnn_status_success) {
934     std::cerr << "failed to create operation #25" << std::endl;
935     return ExecutionPlan();
936   }
937   operators.emplace_back(op25, xnn_delete_operator);
938 
939   xnn_operator_t op26 = nullptr;
940   status = xnn_create_convolution2d_nhwc_qs8(
941     0 /* top padding */, 0 /* right padding */,
942     0 /* bottom padding */, 0 /* left padding */,
943     1 /* kernel height */, 1 /* kernel width */,
944     1 /* subsampling height */, 1 /* subsampling width */,
945     1 /* dilation_height */, 1 /* dilation_width */,
946     1 /* groups */,
947     384 /* input channels per group */,
948     64 /* output_channels_per_group */,
949     384 /* input pixel stride */,
950     64 /* output pixel stride */,
951     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
952     w111.data(), w112.data(),
953     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
954     0 /* flags */,
955     &op26);
956   if (status != xnn_status_success) {
957     std::cerr << "failed to create operation #26" << std::endl;
958     return ExecutionPlan();
959   }
960   operators.emplace_back(op26, xnn_delete_operator);
961 
962   xnn_operator_t op27 = nullptr;
963   status = xnn_create_add_nd_qs8(
964     -1 /* input1 zero point */, 0.5f /* input1 scale */,
965     -1 /* input2 zero point */, 0.5f /* input2 scale */,
966     -1 /* output zero point */, 1.0f /* output scale */, -126 /* output min */, 126 /* output max */,
967     0 /* flags */,
968     &op27);
969   if (status != xnn_status_success) {
970     std::cerr << "failed to create operation #27" << std::endl;
971     return ExecutionPlan();
972   }
973   operators.emplace_back(op27, xnn_delete_operator);
974 
975   xnn_operator_t op28 = nullptr;
976   status = xnn_create_convolution2d_nhwc_qs8(
977     0 /* top padding */, 0 /* right padding */,
978     0 /* bottom padding */, 0 /* left padding */,
979     1 /* kernel height */, 1 /* kernel width */,
980     1 /* subsampling height */, 1 /* subsampling width */,
981     1 /* dilation_height */, 1 /* dilation_width */,
982     1 /* groups */,
983     64 /* input channels per group */,
984     384 /* output_channels_per_group */,
985     64 /* input pixel stride */,
986     384 /* output pixel stride */,
987     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
988     w113.data(), w114.data(),
989     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
990     0 /* flags */,
991     &op28);
992   if (status != xnn_status_success) {
993     std::cerr << "failed to create operation #28" << std::endl;
994     return ExecutionPlan();
995   }
996   operators.emplace_back(op28, xnn_delete_operator);
997 
998   xnn_operator_t op29 = nullptr;
999   status = xnn_create_convolution2d_nhwc_qs8(
1000     1 /* top padding */, 1 /* right padding */,
1001     1 /* bottom padding */, 1 /* left padding */,
1002     3 /* kernel height */, 3 /* kernel width */,
1003     1 /* subsampling height */, 1 /* subsampling width */,
1004     1 /* dilation_height */, 1 /* dilation_width */,
1005     384 /* groups */,
1006     1 /* input channels per group */,
1007     1 /* output_channels_per_group */,
1008     384 /* input pixel stride */,
1009     384 /* output pixel stride */,
1010     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1011     w115.data(), w116.data(),
1012     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1013     0 /* flags */,
1014     &op29);
1015   if (status != xnn_status_success) {
1016     std::cerr << "failed to create operation #29" << std::endl;
1017     return ExecutionPlan();
1018   }
1019   operators.emplace_back(op29, xnn_delete_operator);
1020 
1021   xnn_operator_t op30 = nullptr;
1022   status = xnn_create_convolution2d_nhwc_qs8(
1023     0 /* top padding */, 0 /* right padding */,
1024     0 /* bottom padding */, 0 /* left padding */,
1025     1 /* kernel height */, 1 /* kernel width */,
1026     1 /* subsampling height */, 1 /* subsampling width */,
1027     1 /* dilation_height */, 1 /* dilation_width */,
1028     1 /* groups */,
1029     384 /* input channels per group */,
1030     64 /* output_channels_per_group */,
1031     384 /* input pixel stride */,
1032     64 /* output pixel stride */,
1033     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1034     w117.data(), w118.data(),
1035     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1036     0 /* flags */,
1037     &op30);
1038   if (status != xnn_status_success) {
1039     std::cerr << "failed to create operation #30" << std::endl;
1040     return ExecutionPlan();
1041   }
1042   operators.emplace_back(op30, xnn_delete_operator);
1043 
1044   xnn_operator_t op31 = nullptr;
1045   status = xnn_create_add_nd_qs8(
1046     -1 /* input1 zero point */, 0.5f /* input1 scale */,
1047     -1 /* input2 zero point */, 0.5f /* input2 scale */,
1048     -1 /* output zero point */, 1.0f /* output scale */, -126 /* output min */, 126 /* output max */,
1049     0 /* flags */,
1050     &op31);
1051   if (status != xnn_status_success) {
1052     std::cerr << "failed to create operation #31" << std::endl;
1053     return ExecutionPlan();
1054   }
1055   operators.emplace_back(op31, xnn_delete_operator);
1056 
1057   xnn_operator_t op32 = nullptr;
1058   status = xnn_create_convolution2d_nhwc_qs8(
1059     0 /* top padding */, 0 /* right padding */,
1060     0 /* bottom padding */, 0 /* left padding */,
1061     1 /* kernel height */, 1 /* kernel width */,
1062     1 /* subsampling height */, 1 /* subsampling width */,
1063     1 /* dilation_height */, 1 /* dilation_width */,
1064     1 /* groups */,
1065     64 /* input channels per group */,
1066     384 /* output_channels_per_group */,
1067     64 /* input pixel stride */,
1068     384 /* output pixel stride */,
1069     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1070     w119.data(), w120.data(),
1071     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1072     0 /* flags */,
1073     &op32);
1074   if (status != xnn_status_success) {
1075     std::cerr << "failed to create operation #32" << std::endl;
1076     return ExecutionPlan();
1077   }
1078   operators.emplace_back(op32, xnn_delete_operator);
1079 
1080   xnn_operator_t op33 = nullptr;
1081   status = xnn_create_convolution2d_nhwc_qs8(
1082     1 /* top padding */, 1 /* right padding */,
1083     1 /* bottom padding */, 1 /* left padding */,
1084     3 /* kernel height */, 3 /* kernel width */,
1085     1 /* subsampling height */, 1 /* subsampling width */,
1086     1 /* dilation_height */, 1 /* dilation_width */,
1087     384 /* groups */,
1088     1 /* input channels per group */,
1089     1 /* output_channels_per_group */,
1090     384 /* input pixel stride */,
1091     384 /* output pixel stride */,
1092     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1093     w121.data(), w122.data(),
1094     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1095     0 /* flags */,
1096     &op33);
1097   if (status != xnn_status_success) {
1098     std::cerr << "failed to create operation #33" << std::endl;
1099     return ExecutionPlan();
1100   }
1101   operators.emplace_back(op33, xnn_delete_operator);
1102 
1103   xnn_operator_t op34 = nullptr;
1104   status = xnn_create_convolution2d_nhwc_qs8(
1105     0 /* top padding */, 0 /* right padding */,
1106     0 /* bottom padding */, 0 /* left padding */,
1107     1 /* kernel height */, 1 /* kernel width */,
1108     1 /* subsampling height */, 1 /* subsampling width */,
1109     1 /* dilation_height */, 1 /* dilation_width */,
1110     1 /* groups */,
1111     384 /* input channels per group */,
1112     64 /* output_channels_per_group */,
1113     384 /* input pixel stride */,
1114     64 /* output pixel stride */,
1115     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1116     w123.data(), w124.data(),
1117     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1118     0 /* flags */,
1119     &op34);
1120   if (status != xnn_status_success) {
1121     std::cerr << "failed to create operation #34" << std::endl;
1122     return ExecutionPlan();
1123   }
1124   operators.emplace_back(op34, xnn_delete_operator);
1125 
1126   xnn_operator_t op35 = nullptr;
1127   status = xnn_create_add_nd_qs8(
1128     -1 /* input1 zero point */, 0.5f /* input1 scale */,
1129     -1 /* input2 zero point */, 0.5f /* input2 scale */,
1130     -1 /* output zero point */, 1.0f /* output scale */, -126 /* output min */, 126 /* output max */,
1131     0 /* flags */,
1132     &op35);
1133   if (status != xnn_status_success) {
1134     std::cerr << "failed to create operation #35" << std::endl;
1135     return ExecutionPlan();
1136   }
1137   operators.emplace_back(op35, xnn_delete_operator);
1138 
1139   xnn_operator_t op36 = nullptr;
1140   status = xnn_create_convolution2d_nhwc_qs8(
1141     0 /* top padding */, 0 /* right padding */,
1142     0 /* bottom padding */, 0 /* left padding */,
1143     1 /* kernel height */, 1 /* kernel width */,
1144     1 /* subsampling height */, 1 /* subsampling width */,
1145     1 /* dilation_height */, 1 /* dilation_width */,
1146     1 /* groups */,
1147     64 /* input channels per group */,
1148     384 /* output_channels_per_group */,
1149     64 /* input pixel stride */,
1150     384 /* output pixel stride */,
1151     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1152     w125.data(), w126.data(),
1153     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1154     0 /* flags */,
1155     &op36);
1156   if (status != xnn_status_success) {
1157     std::cerr << "failed to create operation #36" << std::endl;
1158     return ExecutionPlan();
1159   }
1160   operators.emplace_back(op36, xnn_delete_operator);
1161 
1162   xnn_operator_t op37 = nullptr;
1163   status = xnn_create_convolution2d_nhwc_qs8(
1164     1 /* top padding */, 1 /* right padding */,
1165     1 /* bottom padding */, 1 /* left padding */,
1166     3 /* kernel height */, 3 /* kernel width */,
1167     1 /* subsampling height */, 1 /* subsampling width */,
1168     1 /* dilation_height */, 1 /* dilation_width */,
1169     384 /* groups */,
1170     1 /* input channels per group */,
1171     1 /* output_channels_per_group */,
1172     384 /* input pixel stride */,
1173     384 /* output pixel stride */,
1174     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1175     w127.data(), w128.data(),
1176     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1177     0 /* flags */,
1178     &op37);
1179   if (status != xnn_status_success) {
1180     std::cerr << "failed to create operation #37" << std::endl;
1181     return ExecutionPlan();
1182   }
1183   operators.emplace_back(op37, xnn_delete_operator);
1184 
1185   xnn_operator_t op38 = nullptr;
1186   status = xnn_create_convolution2d_nhwc_qs8(
1187     0 /* top padding */, 0 /* right padding */,
1188     0 /* bottom padding */, 0 /* left padding */,
1189     1 /* kernel height */, 1 /* kernel width */,
1190     1 /* subsampling height */, 1 /* subsampling width */,
1191     1 /* dilation_height */, 1 /* dilation_width */,
1192     1 /* groups */,
1193     384 /* input channels per group */,
1194     96 /* output_channels_per_group */,
1195     384 /* input pixel stride */,
1196     96 /* output pixel stride */,
1197     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1198     w129.data(), w130.data(),
1199     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1200     0 /* flags */,
1201     &op38);
1202   if (status != xnn_status_success) {
1203     std::cerr << "failed to create operation #38" << std::endl;
1204     return ExecutionPlan();
1205   }
1206   operators.emplace_back(op38, xnn_delete_operator);
1207 
1208   xnn_operator_t op39 = nullptr;
1209   status = xnn_create_convolution2d_nhwc_qs8(
1210     0 /* top padding */, 0 /* right padding */,
1211     0 /* bottom padding */, 0 /* left padding */,
1212     1 /* kernel height */, 1 /* kernel width */,
1213     1 /* subsampling height */, 1 /* subsampling width */,
1214     1 /* dilation_height */, 1 /* dilation_width */,
1215     1 /* groups */,
1216     96 /* input channels per group */,
1217     576 /* output_channels_per_group */,
1218     96 /* input pixel stride */,
1219     576 /* output pixel stride */,
1220     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1221     w131.data(), w132.data(),
1222     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1223     0 /* flags */,
1224     &op39);
1225   if (status != xnn_status_success) {
1226     std::cerr << "failed to create operation #39" << std::endl;
1227     return ExecutionPlan();
1228   }
1229   operators.emplace_back(op39, xnn_delete_operator);
1230 
1231   xnn_operator_t op40 = nullptr;
1232   status = xnn_create_convolution2d_nhwc_qs8(
1233     1 /* top padding */, 1 /* right padding */,
1234     1 /* bottom padding */, 1 /* left padding */,
1235     3 /* kernel height */, 3 /* kernel width */,
1236     1 /* subsampling height */, 1 /* subsampling width */,
1237     1 /* dilation_height */, 1 /* dilation_width */,
1238     576 /* groups */,
1239     1 /* input channels per group */,
1240     1 /* output_channels_per_group */,
1241     576 /* input pixel stride */,
1242     576 /* output pixel stride */,
1243     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1244     w133.data(), w134.data(),
1245     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1246     0 /* flags */,
1247     &op40);
1248   if (status != xnn_status_success) {
1249     std::cerr << "failed to create operation #40" << std::endl;
1250     return ExecutionPlan();
1251   }
1252   operators.emplace_back(op40, xnn_delete_operator);
1253 
1254   xnn_operator_t op41 = nullptr;
1255   status = xnn_create_convolution2d_nhwc_qs8(
1256     0 /* top padding */, 0 /* right padding */,
1257     0 /* bottom padding */, 0 /* left padding */,
1258     1 /* kernel height */, 1 /* kernel width */,
1259     1 /* subsampling height */, 1 /* subsampling width */,
1260     1 /* dilation_height */, 1 /* dilation_width */,
1261     1 /* groups */,
1262     576 /* input channels per group */,
1263     96 /* output_channels_per_group */,
1264     576 /* input pixel stride */,
1265     96 /* output pixel stride */,
1266     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1267     w135.data(), w136.data(),
1268     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1269     0 /* flags */,
1270     &op41);
1271   if (status != xnn_status_success) {
1272     std::cerr << "failed to create operation #41" << std::endl;
1273     return ExecutionPlan();
1274   }
1275   operators.emplace_back(op41, xnn_delete_operator);
1276 
1277   xnn_operator_t op42 = nullptr;
1278   status = xnn_create_add_nd_qs8(
1279     -1 /* input1 zero point */, 0.5f /* input1 scale */,
1280     -1 /* input2 zero point */, 0.5f /* input2 scale */,
1281     -1 /* output zero point */, 1.0f /* output scale */, -126 /* output min */, 126 /* output max */,
1282     0 /* flags */,
1283     &op42);
1284   if (status != xnn_status_success) {
1285     std::cerr << "failed to create operation #42" << std::endl;
1286     return ExecutionPlan();
1287   }
1288   operators.emplace_back(op42, xnn_delete_operator);
1289 
1290   xnn_operator_t op43 = nullptr;
1291   status = xnn_create_convolution2d_nhwc_qs8(
1292     0 /* top padding */, 0 /* right padding */,
1293     0 /* bottom padding */, 0 /* left padding */,
1294     1 /* kernel height */, 1 /* kernel width */,
1295     1 /* subsampling height */, 1 /* subsampling width */,
1296     1 /* dilation_height */, 1 /* dilation_width */,
1297     1 /* groups */,
1298     96 /* input channels per group */,
1299     576 /* output_channels_per_group */,
1300     96 /* input pixel stride */,
1301     576 /* output pixel stride */,
1302     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1303     w137.data(), w138.data(),
1304     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1305     0 /* flags */,
1306     &op43);
1307   if (status != xnn_status_success) {
1308     std::cerr << "failed to create operation #43" << std::endl;
1309     return ExecutionPlan();
1310   }
1311   operators.emplace_back(op43, xnn_delete_operator);
1312 
1313   xnn_operator_t op44 = nullptr;
1314   status = xnn_create_convolution2d_nhwc_qs8(
1315     1 /* top padding */, 1 /* right padding */,
1316     1 /* bottom padding */, 1 /* left padding */,
1317     3 /* kernel height */, 3 /* kernel width */,
1318     1 /* subsampling height */, 1 /* subsampling width */,
1319     1 /* dilation_height */, 1 /* dilation_width */,
1320     576 /* groups */,
1321     1 /* input channels per group */,
1322     1 /* output_channels_per_group */,
1323     576 /* input pixel stride */,
1324     576 /* output pixel stride */,
1325     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1326     w139.data(), w140.data(),
1327     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1328     0 /* flags */,
1329     &op44);
1330   if (status != xnn_status_success) {
1331     std::cerr << "failed to create operation #44" << std::endl;
1332     return ExecutionPlan();
1333   }
1334   operators.emplace_back(op44, xnn_delete_operator);
1335 
1336   xnn_operator_t op45 = nullptr;
1337   status = xnn_create_convolution2d_nhwc_qs8(
1338     0 /* top padding */, 0 /* right padding */,
1339     0 /* bottom padding */, 0 /* left padding */,
1340     1 /* kernel height */, 1 /* kernel width */,
1341     1 /* subsampling height */, 1 /* subsampling width */,
1342     1 /* dilation_height */, 1 /* dilation_width */,
1343     1 /* groups */,
1344     576 /* input channels per group */,
1345     96 /* output_channels_per_group */,
1346     576 /* input pixel stride */,
1347     96 /* output pixel stride */,
1348     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1349     w141.data(), w142.data(),
1350     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1351     0 /* flags */,
1352     &op45);
1353   if (status != xnn_status_success) {
1354     std::cerr << "failed to create operation #45" << std::endl;
1355     return ExecutionPlan();
1356   }
1357   operators.emplace_back(op45, xnn_delete_operator);
1358 
1359   xnn_operator_t op46 = nullptr;
1360   status = xnn_create_add_nd_qs8(
1361     -1 /* input1 zero point */, 0.5f /* input1 scale */,
1362     -1 /* input2 zero point */, 0.5f /* input2 scale */,
1363     -1 /* output zero point */, 1.0f /* output scale */, -126 /* output min */, 126 /* output max */,
1364     0 /* flags */,
1365     &op46);
1366   if (status != xnn_status_success) {
1367     std::cerr << "failed to create operation #46" << std::endl;
1368     return ExecutionPlan();
1369   }
1370   operators.emplace_back(op46, xnn_delete_operator);
1371 
1372   xnn_operator_t op47 = nullptr;
1373   status = xnn_create_convolution2d_nhwc_qs8(
1374     0 /* top padding */, 0 /* right padding */,
1375     0 /* bottom padding */, 0 /* left padding */,
1376     1 /* kernel height */, 1 /* kernel width */,
1377     1 /* subsampling height */, 1 /* subsampling width */,
1378     1 /* dilation_height */, 1 /* dilation_width */,
1379     1 /* groups */,
1380     96 /* input channels per group */,
1381     576 /* output_channels_per_group */,
1382     96 /* input pixel stride */,
1383     576 /* output pixel stride */,
1384     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1385     w143.data(), w144.data(),
1386     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1387     0 /* flags */,
1388     &op47);
1389   if (status != xnn_status_success) {
1390     std::cerr << "failed to create operation #47" << std::endl;
1391     return ExecutionPlan();
1392   }
1393   operators.emplace_back(op47, xnn_delete_operator);
1394 
1395   xnn_operator_t op48 = nullptr;
1396   status = xnn_create_convolution2d_nhwc_qs8(
1397     0 /* top padding */, 1 /* right padding */,
1398     1 /* bottom padding */, 0 /* left padding */,
1399     3 /* kernel height */, 3 /* kernel width */,
1400     2 /* subsampling height */, 2 /* subsampling width */,
1401     1 /* dilation_height */, 1 /* dilation_width */,
1402     576 /* groups */,
1403     1 /* input channels per group */,
1404     1 /* output_channels_per_group */,
1405     576 /* input pixel stride */,
1406     576 /* output pixel stride */,
1407     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1408     w145.data(), w146.data(),
1409     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1410     0 /* flags */,
1411     &op48);
1412   if (status != xnn_status_success) {
1413     std::cerr << "failed to create operation #48" << std::endl;
1414     return ExecutionPlan();
1415   }
1416   operators.emplace_back(op48, xnn_delete_operator);
1417 
1418   xnn_operator_t op49 = nullptr;
1419   status = xnn_create_convolution2d_nhwc_qs8(
1420     0 /* top padding */, 0 /* right padding */,
1421     0 /* bottom padding */, 0 /* left padding */,
1422     1 /* kernel height */, 1 /* kernel width */,
1423     1 /* subsampling height */, 1 /* subsampling width */,
1424     1 /* dilation_height */, 1 /* dilation_width */,
1425     1 /* groups */,
1426     576 /* input channels per group */,
1427     160 /* output_channels_per_group */,
1428     576 /* input pixel stride */,
1429     160 /* output pixel stride */,
1430     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1431     w147.data(), w148.data(),
1432     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1433     0 /* flags */,
1434     &op49);
1435   if (status != xnn_status_success) {
1436     std::cerr << "failed to create operation #49" << std::endl;
1437     return ExecutionPlan();
1438   }
1439   operators.emplace_back(op49, xnn_delete_operator);
1440 
1441   xnn_operator_t op50 = nullptr;
1442   status = xnn_create_convolution2d_nhwc_qs8(
1443     0 /* top padding */, 0 /* right padding */,
1444     0 /* bottom padding */, 0 /* left padding */,
1445     1 /* kernel height */, 1 /* kernel width */,
1446     1 /* subsampling height */, 1 /* subsampling width */,
1447     1 /* dilation_height */, 1 /* dilation_width */,
1448     1 /* groups */,
1449     160 /* input channels per group */,
1450     960 /* output_channels_per_group */,
1451     160 /* input pixel stride */,
1452     960 /* output pixel stride */,
1453     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1454     w149.data(), w150.data(),
1455     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1456     0 /* flags */,
1457     &op50);
1458   if (status != xnn_status_success) {
1459     std::cerr << "failed to create operation #50" << std::endl;
1460     return ExecutionPlan();
1461   }
1462   operators.emplace_back(op50, xnn_delete_operator);
1463 
1464   xnn_operator_t op51 = nullptr;
1465   status = xnn_create_convolution2d_nhwc_qs8(
1466     1 /* top padding */, 1 /* right padding */,
1467     1 /* bottom padding */, 1 /* left padding */,
1468     3 /* kernel height */, 3 /* kernel width */,
1469     1 /* subsampling height */, 1 /* subsampling width */,
1470     1 /* dilation_height */, 1 /* dilation_width */,
1471     960 /* groups */,
1472     1 /* input channels per group */,
1473     1 /* output_channels_per_group */,
1474     960 /* input pixel stride */,
1475     960 /* output pixel stride */,
1476     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1477     w151.data(), w152.data(),
1478     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1479     0 /* flags */,
1480     &op51);
1481   if (status != xnn_status_success) {
1482     std::cerr << "failed to create operation #51" << std::endl;
1483     return ExecutionPlan();
1484   }
1485   operators.emplace_back(op51, xnn_delete_operator);
1486 
1487   xnn_operator_t op52 = nullptr;
1488   status = xnn_create_convolution2d_nhwc_qs8(
1489     0 /* top padding */, 0 /* right padding */,
1490     0 /* bottom padding */, 0 /* left padding */,
1491     1 /* kernel height */, 1 /* kernel width */,
1492     1 /* subsampling height */, 1 /* subsampling width */,
1493     1 /* dilation_height */, 1 /* dilation_width */,
1494     1 /* groups */,
1495     960 /* input channels per group */,
1496     160 /* output_channels_per_group */,
1497     960 /* input pixel stride */,
1498     160 /* output pixel stride */,
1499     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1500     w153.data(), w154.data(),
1501     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1502     0 /* flags */,
1503     &op52);
1504   if (status != xnn_status_success) {
1505     std::cerr << "failed to create operation #52" << std::endl;
1506     return ExecutionPlan();
1507   }
1508   operators.emplace_back(op52, xnn_delete_operator);
1509 
1510   xnn_operator_t op53 = nullptr;
1511   status = xnn_create_add_nd_qs8(
1512     -1 /* input1 zero point */, 0.5f /* input1 scale */,
1513     -1 /* input2 zero point */, 0.5f /* input2 scale */,
1514     -1 /* output zero point */, 1.0f /* output scale */, -126 /* output min */, 126 /* output max */,
1515     0 /* flags */,
1516     &op53);
1517   if (status != xnn_status_success) {
1518     std::cerr << "failed to create operation #53" << std::endl;
1519     return ExecutionPlan();
1520   }
1521   operators.emplace_back(op53, xnn_delete_operator);
1522 
1523   xnn_operator_t op54 = nullptr;
1524   status = xnn_create_convolution2d_nhwc_qs8(
1525     0 /* top padding */, 0 /* right padding */,
1526     0 /* bottom padding */, 0 /* left padding */,
1527     1 /* kernel height */, 1 /* kernel width */,
1528     1 /* subsampling height */, 1 /* subsampling width */,
1529     1 /* dilation_height */, 1 /* dilation_width */,
1530     1 /* groups */,
1531     160 /* input channels per group */,
1532     960 /* output_channels_per_group */,
1533     160 /* input pixel stride */,
1534     960 /* output pixel stride */,
1535     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1536     w155.data(), w156.data(),
1537     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1538     0 /* flags */,
1539     &op54);
1540   if (status != xnn_status_success) {
1541     std::cerr << "failed to create operation #54" << std::endl;
1542     return ExecutionPlan();
1543   }
1544   operators.emplace_back(op54, xnn_delete_operator);
1545 
1546   xnn_operator_t op55 = nullptr;
1547   status = xnn_create_convolution2d_nhwc_qs8(
1548     1 /* top padding */, 1 /* right padding */,
1549     1 /* bottom padding */, 1 /* left padding */,
1550     3 /* kernel height */, 3 /* kernel width */,
1551     1 /* subsampling height */, 1 /* subsampling width */,
1552     1 /* dilation_height */, 1 /* dilation_width */,
1553     960 /* groups */,
1554     1 /* input channels per group */,
1555     1 /* output_channels_per_group */,
1556     960 /* input pixel stride */,
1557     960 /* output pixel stride */,
1558     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1559     w157.data(), w158.data(),
1560     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1561     0 /* flags */,
1562     &op55);
1563   if (status != xnn_status_success) {
1564     std::cerr << "failed to create operation #55" << std::endl;
1565     return ExecutionPlan();
1566   }
1567   operators.emplace_back(op55, xnn_delete_operator);
1568 
1569   xnn_operator_t op56 = nullptr;
1570   status = xnn_create_convolution2d_nhwc_qs8(
1571     0 /* top padding */, 0 /* right padding */,
1572     0 /* bottom padding */, 0 /* left padding */,
1573     1 /* kernel height */, 1 /* kernel width */,
1574     1 /* subsampling height */, 1 /* subsampling width */,
1575     1 /* dilation_height */, 1 /* dilation_width */,
1576     1 /* groups */,
1577     960 /* input channels per group */,
1578     160 /* output_channels_per_group */,
1579     960 /* input pixel stride */,
1580     160 /* output pixel stride */,
1581     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1582     w159.data(), w160.data(),
1583     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1584     0 /* flags */,
1585     &op56);
1586   if (status != xnn_status_success) {
1587     std::cerr << "failed to create operation #56" << std::endl;
1588     return ExecutionPlan();
1589   }
1590   operators.emplace_back(op56, xnn_delete_operator);
1591 
1592   xnn_operator_t op57 = nullptr;
1593   status = xnn_create_add_nd_qs8(
1594     -1 /* input1 zero point */, 0.5f /* input1 scale */,
1595     -1 /* input2 zero point */, 0.5f /* input2 scale */,
1596     -1 /* output zero point */, 1.0f /* output scale */, -126 /* output min */, 126 /* output max */,
1597     0 /* flags */,
1598     &op57);
1599   if (status != xnn_status_success) {
1600     std::cerr << "failed to create operation #57" << std::endl;
1601     return ExecutionPlan();
1602   }
1603   operators.emplace_back(op57, xnn_delete_operator);
1604 
1605   xnn_operator_t op58 = nullptr;
1606   status = xnn_create_convolution2d_nhwc_qs8(
1607     0 /* top padding */, 0 /* right padding */,
1608     0 /* bottom padding */, 0 /* left padding */,
1609     1 /* kernel height */, 1 /* kernel width */,
1610     1 /* subsampling height */, 1 /* subsampling width */,
1611     1 /* dilation_height */, 1 /* dilation_width */,
1612     1 /* groups */,
1613     160 /* input channels per group */,
1614     960 /* output_channels_per_group */,
1615     160 /* input pixel stride */,
1616     960 /* output pixel stride */,
1617     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1618     w161.data(), w162.data(),
1619     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1620     0 /* flags */,
1621     &op58);
1622   if (status != xnn_status_success) {
1623     std::cerr << "failed to create operation #58" << std::endl;
1624     return ExecutionPlan();
1625   }
1626   operators.emplace_back(op58, xnn_delete_operator);
1627 
1628   xnn_operator_t op59 = nullptr;
1629   status = xnn_create_convolution2d_nhwc_qs8(
1630     1 /* top padding */, 1 /* right padding */,
1631     1 /* bottom padding */, 1 /* left padding */,
1632     3 /* kernel height */, 3 /* kernel width */,
1633     1 /* subsampling height */, 1 /* subsampling width */,
1634     1 /* dilation_height */, 1 /* dilation_width */,
1635     960 /* groups */,
1636     1 /* input channels per group */,
1637     1 /* output_channels_per_group */,
1638     960 /* input pixel stride */,
1639     960 /* output pixel stride */,
1640     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1641     w163.data(), w164.data(),
1642     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1643     0 /* flags */,
1644     &op59);
1645   if (status != xnn_status_success) {
1646     std::cerr << "failed to create operation #59" << std::endl;
1647     return ExecutionPlan();
1648   }
1649   operators.emplace_back(op59, xnn_delete_operator);
1650 
1651   xnn_operator_t op60 = nullptr;
1652   status = xnn_create_convolution2d_nhwc_qs8(
1653     0 /* top padding */, 0 /* right padding */,
1654     0 /* bottom padding */, 0 /* left padding */,
1655     1 /* kernel height */, 1 /* kernel width */,
1656     1 /* subsampling height */, 1 /* subsampling width */,
1657     1 /* dilation_height */, 1 /* dilation_width */,
1658     1 /* groups */,
1659     960 /* input channels per group */,
1660     320 /* output_channels_per_group */,
1661     960 /* input pixel stride */,
1662     320 /* output pixel stride */,
1663     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1664     w165.data(), w166.data(),
1665     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1666     0 /* flags */,
1667     &op60);
1668   if (status != xnn_status_success) {
1669     std::cerr << "failed to create operation #60" << std::endl;
1670     return ExecutionPlan();
1671   }
1672   operators.emplace_back(op60, xnn_delete_operator);
1673 
1674   xnn_operator_t op61 = nullptr;
1675   status = xnn_create_convolution2d_nhwc_qs8(
1676     0 /* top padding */, 0 /* right padding */,
1677     0 /* bottom padding */, 0 /* left padding */,
1678     1 /* kernel height */, 1 /* kernel width */,
1679     1 /* subsampling height */, 1 /* subsampling width */,
1680     1 /* dilation_height */, 1 /* dilation_width */,
1681     1 /* groups */,
1682     320 /* input channels per group */,
1683     1280 /* output_channels_per_group */,
1684     320 /* input pixel stride */,
1685     1280 /* output pixel stride */,
1686     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1687     w167.data(), w168.data(),
1688     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1689     0 /* flags */,
1690     &op61);
1691   if (status != xnn_status_success) {
1692     std::cerr << "failed to create operation #61" << std::endl;
1693     return ExecutionPlan();
1694   }
1695   operators.emplace_back(op61, xnn_delete_operator);
1696 
1697   xnn_operator_t op62 = nullptr;
1698   status = xnn_create_global_average_pooling_nwc_qs8(
1699     1280 /* channels */, 1280 /* input stride */, 1280 /* output stride */,
1700     -1 /* input zero point */, 0.5f /* input scale */,
1701     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1702     0 /* flags */,
1703     &op62);
1704   if (status != xnn_status_success) {
1705     std::cerr << "failed to create operation #62" << std::endl;
1706     return ExecutionPlan();
1707   }
1708   operators.emplace_back(op62, xnn_delete_operator);
1709 
1710   xnn_operator_t op63 = nullptr;
1711   status = xnn_create_convolution2d_nhwc_qs8(
1712     0 /* top padding */, 0 /* right padding */,
1713     0 /* bottom padding */, 0 /* left padding */,
1714     1 /* kernel height */, 1 /* kernel width */,
1715     1 /* subsampling height */, 1 /* subsampling width */,
1716     1 /* dilation_height */, 1 /* dilation_width */,
1717     1 /* groups */,
1718     1280 /* input channels per group */,
1719     1001 /* output_channels_per_group */,
1720     1280 /* input pixel stride */,
1721     1001 /* output pixel stride */,
1722     -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1723     w169.data(), w170.data(),
1724     -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1725     0 /* flags */,
1726     &op63);
1727   if (status != xnn_status_success) {
1728     std::cerr << "failed to create operation #63" << std::endl;
1729     return ExecutionPlan();
1730   }
1731   operators.emplace_back(op63, xnn_delete_operator);
1732 
1733 
1734 
1735   status = xnn_setup_convolution2d_nhwc_qs8(
1736     op0,
1737     1 /* batch size */, 224 /* input height */, 224 /* input width */,
1738     v0.data() /* input */, v1.data() /* output */,
1739     threadpool /* threadpool */);
1740   if (status != xnn_status_success) {
1741     std::cerr << "failed to setup operation #0" << std::endl;
1742     return ExecutionPlan();
1743   }
1744 
1745   status = xnn_setup_convolution2d_nhwc_qs8(
1746     op1,
1747     1 /* batch size */, 112 /* input height */, 112 /* input width */,
1748     v1.data() /* input */, v2.data() /* output */,
1749     threadpool /* threadpool */);
1750   if (status != xnn_status_success) {
1751     std::cerr << "failed to setup operation #1" << std::endl;
1752     return ExecutionPlan();
1753   }
1754 
1755   status = xnn_setup_convolution2d_nhwc_qs8(
1756     op2,
1757     1 /* batch size */, 112 /* input height */, 112 /* input width */,
1758     v2.data() /* input */, v3.data() /* output */,
1759     threadpool /* threadpool */);
1760   if (status != xnn_status_success) {
1761     std::cerr << "failed to setup operation #2" << std::endl;
1762     return ExecutionPlan();
1763   }
1764 
1765   status = xnn_setup_convolution2d_nhwc_qs8(
1766     op3,
1767     1 /* batch size */, 112 /* input height */, 112 /* input width */,
1768     v3.data() /* input */, v4.data() /* output */,
1769     threadpool /* threadpool */);
1770   if (status != xnn_status_success) {
1771     std::cerr << "failed to setup operation #3" << std::endl;
1772     return ExecutionPlan();
1773   }
1774 
1775   status = xnn_setup_convolution2d_nhwc_qs8(
1776     op4,
1777     1 /* batch size */, 112 /* input height */, 112 /* input width */,
1778     v4.data() /* input */, v5.data() /* output */,
1779     threadpool /* threadpool */);
1780   if (status != xnn_status_success) {
1781     std::cerr << "failed to setup operation #4" << std::endl;
1782     return ExecutionPlan();
1783   }
1784 
1785   status = xnn_setup_convolution2d_nhwc_qs8(
1786     op5,
1787     1 /* batch size */, 56 /* input height */, 56 /* input width */,
1788     v5.data() /* input */, v6.data() /* output */,
1789     threadpool /* threadpool */);
1790   if (status != xnn_status_success) {
1791     std::cerr << "failed to setup operation #5" << std::endl;
1792     return ExecutionPlan();
1793   }
1794 
1795   status = xnn_setup_convolution2d_nhwc_qs8(
1796     op6,
1797     1 /* batch size */, 56 /* input height */, 56 /* input width */,
1798     v6.data() /* input */, v7.data() /* output */,
1799     threadpool /* threadpool */);
1800   if (status != xnn_status_success) {
1801     std::cerr << "failed to setup operation #6" << std::endl;
1802     return ExecutionPlan();
1803   }
1804 
1805   status = xnn_setup_convolution2d_nhwc_qs8(
1806     op7,
1807     1 /* batch size */, 56 /* input height */, 56 /* input width */,
1808     v7.data() /* input */, v8.data() /* output */,
1809     threadpool /* threadpool */);
1810   if (status != xnn_status_success) {
1811     std::cerr << "failed to setup operation #7" << std::endl;
1812     return ExecutionPlan();
1813   }
1814 
1815   status = xnn_setup_convolution2d_nhwc_qs8(
1816     op8,
1817     1 /* batch size */, 56 /* input height */, 56 /* input width */,
1818     v8.data() /* input */, v9.data() /* output */,
1819     threadpool /* threadpool */);
1820   if (status != xnn_status_success) {
1821     std::cerr << "failed to setup operation #8" << std::endl;
1822     return ExecutionPlan();
1823   }
1824 
1825   {
1826     const size_t a_shape[] = { 1, 56, 56, 24 };
1827     const size_t b_shape[] = { 1, 56, 56, 24 };
1828     status = xnn_setup_add_nd_qs8(
1829       op9,
1830       4, a_shape, 4, b_shape,
1831       v9.data() /* a */, v6.data() /* b */, v10.data() /* output */,
1832       threadpool /* threadpool */);
1833   }
1834   if (status != xnn_status_success) {
1835     std::cerr << "failed to setup operation #9" << std::endl;
1836     return ExecutionPlan();
1837   }
1838 
1839   status = xnn_setup_convolution2d_nhwc_qs8(
1840     op10,
1841     1 /* batch size */, 56 /* input height */, 56 /* input width */,
1842     v10.data() /* input */, v11.data() /* output */,
1843     threadpool /* threadpool */);
1844   if (status != xnn_status_success) {
1845     std::cerr << "failed to setup operation #10" << std::endl;
1846     return ExecutionPlan();
1847   }
1848 
1849   status = xnn_setup_convolution2d_nhwc_qs8(
1850     op11,
1851     1 /* batch size */, 56 /* input height */, 56 /* input width */,
1852     v11.data() /* input */, v12.data() /* output */,
1853     threadpool /* threadpool */);
1854   if (status != xnn_status_success) {
1855     std::cerr << "failed to setup operation #11" << std::endl;
1856     return ExecutionPlan();
1857   }
1858 
1859   status = xnn_setup_convolution2d_nhwc_qs8(
1860     op12,
1861     1 /* batch size */, 28 /* input height */, 28 /* input width */,
1862     v12.data() /* input */, v13.data() /* output */,
1863     threadpool /* threadpool */);
1864   if (status != xnn_status_success) {
1865     std::cerr << "failed to setup operation #12" << std::endl;
1866     return ExecutionPlan();
1867   }
1868 
1869   status = xnn_setup_convolution2d_nhwc_qs8(
1870     op13,
1871     1 /* batch size */, 28 /* input height */, 28 /* input width */,
1872     v13.data() /* input */, v14.data() /* output */,
1873     threadpool /* threadpool */);
1874   if (status != xnn_status_success) {
1875     std::cerr << "failed to setup operation #13" << std::endl;
1876     return ExecutionPlan();
1877   }
1878 
1879   status = xnn_setup_convolution2d_nhwc_qs8(
1880     op14,
1881     1 /* batch size */, 28 /* input height */, 28 /* input width */,
1882     v14.data() /* input */, v15.data() /* output */,
1883     threadpool /* threadpool */);
1884   if (status != xnn_status_success) {
1885     std::cerr << "failed to setup operation #14" << std::endl;
1886     return ExecutionPlan();
1887   }
1888 
1889   status = xnn_setup_convolution2d_nhwc_qs8(
1890     op15,
1891     1 /* batch size */, 28 /* input height */, 28 /* input width */,
1892     v15.data() /* input */, v16.data() /* output */,
1893     threadpool /* threadpool */);
1894   if (status != xnn_status_success) {
1895     std::cerr << "failed to setup operation #15" << std::endl;
1896     return ExecutionPlan();
1897   }
1898 
1899   {
1900     const size_t a_shape[] = { 1, 28, 28, 32 };
1901     const size_t b_shape[] = { 1, 28, 28, 32 };
1902     status = xnn_setup_add_nd_qs8(
1903       op16,
1904       4, a_shape, 4, b_shape,
1905       v16.data() /* a */, v13.data() /* b */, v17.data() /* output */,
1906       threadpool /* threadpool */);
1907   }
1908   if (status != xnn_status_success) {
1909     std::cerr << "failed to setup operation #16" << std::endl;
1910     return ExecutionPlan();
1911   }
1912 
1913   status = xnn_setup_convolution2d_nhwc_qs8(
1914     op17,
1915     1 /* batch size */, 28 /* input height */, 28 /* input width */,
1916     v17.data() /* input */, v18.data() /* output */,
1917     threadpool /* threadpool */);
1918   if (status != xnn_status_success) {
1919     std::cerr << "failed to setup operation #17" << std::endl;
1920     return ExecutionPlan();
1921   }
1922 
1923   status = xnn_setup_convolution2d_nhwc_qs8(
1924     op18,
1925     1 /* batch size */, 28 /* input height */, 28 /* input width */,
1926     v18.data() /* input */, v19.data() /* output */,
1927     threadpool /* threadpool */);
1928   if (status != xnn_status_success) {
1929     std::cerr << "failed to setup operation #18" << std::endl;
1930     return ExecutionPlan();
1931   }
1932 
1933   status = xnn_setup_convolution2d_nhwc_qs8(
1934     op19,
1935     1 /* batch size */, 28 /* input height */, 28 /* input width */,
1936     v19.data() /* input */, v20.data() /* output */,
1937     threadpool /* threadpool */);
1938   if (status != xnn_status_success) {
1939     std::cerr << "failed to setup operation #19" << std::endl;
1940     return ExecutionPlan();
1941   }
1942 
1943   {
1944     const size_t a_shape[] = { 1, 28, 28, 32 };
1945     const size_t b_shape[] = { 1, 28, 28, 32 };
1946     status = xnn_setup_add_nd_qs8(
1947       op20,
1948       4, a_shape, 4, b_shape,
1949       v20.data() /* a */, v17.data() /* b */, v21.data() /* output */,
1950       threadpool /* threadpool */);
1951   }
1952   if (status != xnn_status_success) {
1953     std::cerr << "failed to setup operation #20" << std::endl;
1954     return ExecutionPlan();
1955   }
1956 
1957   status = xnn_setup_convolution2d_nhwc_qs8(
1958     op21,
1959     1 /* batch size */, 28 /* input height */, 28 /* input width */,
1960     v21.data() /* input */, v22.data() /* output */,
1961     threadpool /* threadpool */);
1962   if (status != xnn_status_success) {
1963     std::cerr << "failed to setup operation #21" << std::endl;
1964     return ExecutionPlan();
1965   }
1966 
1967   status = xnn_setup_convolution2d_nhwc_qs8(
1968     op22,
1969     1 /* batch size */, 28 /* input height */, 28 /* input width */,
1970     v22.data() /* input */, v23.data() /* output */,
1971     threadpool /* threadpool */);
1972   if (status != xnn_status_success) {
1973     std::cerr << "failed to setup operation #22" << std::endl;
1974     return ExecutionPlan();
1975   }
1976 
1977   status = xnn_setup_convolution2d_nhwc_qs8(
1978     op23,
1979     1 /* batch size */, 14 /* input height */, 14 /* input width */,
1980     v23.data() /* input */, v24.data() /* output */,
1981     threadpool /* threadpool */);
1982   if (status != xnn_status_success) {
1983     std::cerr << "failed to setup operation #23" << std::endl;
1984     return ExecutionPlan();
1985   }
1986 
1987   status = xnn_setup_convolution2d_nhwc_qs8(
1988     op24,
1989     1 /* batch size */, 14 /* input height */, 14 /* input width */,
1990     v24.data() /* input */, v25.data() /* output */,
1991     threadpool /* threadpool */);
1992   if (status != xnn_status_success) {
1993     std::cerr << "failed to setup operation #24" << std::endl;
1994     return ExecutionPlan();
1995   }
1996 
1997   status = xnn_setup_convolution2d_nhwc_qs8(
1998     op25,
1999     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2000     v25.data() /* input */, v26.data() /* output */,
2001     threadpool /* threadpool */);
2002   if (status != xnn_status_success) {
2003     std::cerr << "failed to setup operation #25" << std::endl;
2004     return ExecutionPlan();
2005   }
2006 
2007   status = xnn_setup_convolution2d_nhwc_qs8(
2008     op26,
2009     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2010     v26.data() /* input */, v27.data() /* output */,
2011     threadpool /* threadpool */);
2012   if (status != xnn_status_success) {
2013     std::cerr << "failed to setup operation #26" << std::endl;
2014     return ExecutionPlan();
2015   }
2016 
2017   {
2018     const size_t a_shape[] = { 1, 14, 14, 64 };
2019     const size_t b_shape[] = { 1, 14, 14, 64 };
2020     status = xnn_setup_add_nd_qs8(
2021       op27,
2022       4, a_shape, 4, b_shape,
2023       v27.data() /* a */, v24.data() /* b */, v28.data() /* output */,
2024       threadpool /* threadpool */);
2025   }
2026   if (status != xnn_status_success) {
2027     std::cerr << "failed to setup operation #27" << std::endl;
2028     return ExecutionPlan();
2029   }
2030 
2031   status = xnn_setup_convolution2d_nhwc_qs8(
2032     op28,
2033     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2034     v28.data() /* input */, v29.data() /* output */,
2035     threadpool /* threadpool */);
2036   if (status != xnn_status_success) {
2037     std::cerr << "failed to setup operation #28" << std::endl;
2038     return ExecutionPlan();
2039   }
2040 
2041   status = xnn_setup_convolution2d_nhwc_qs8(
2042     op29,
2043     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2044     v29.data() /* input */, v30.data() /* output */,
2045     threadpool /* threadpool */);
2046   if (status != xnn_status_success) {
2047     std::cerr << "failed to setup operation #29" << std::endl;
2048     return ExecutionPlan();
2049   }
2050 
2051   status = xnn_setup_convolution2d_nhwc_qs8(
2052     op30,
2053     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2054     v30.data() /* input */, v31.data() /* output */,
2055     threadpool /* threadpool */);
2056   if (status != xnn_status_success) {
2057     std::cerr << "failed to setup operation #30" << std::endl;
2058     return ExecutionPlan();
2059   }
2060 
2061   {
2062     const size_t a_shape[] = { 1, 14, 14, 64 };
2063     const size_t b_shape[] = { 1, 14, 14, 64 };
2064     status = xnn_setup_add_nd_qs8(
2065       op31,
2066       4, a_shape, 4, b_shape,
2067       v31.data() /* a */, v28.data() /* b */, v32.data() /* output */,
2068       threadpool /* threadpool */);
2069   }
2070   if (status != xnn_status_success) {
2071     std::cerr << "failed to setup operation #31" << std::endl;
2072     return ExecutionPlan();
2073   }
2074 
2075   status = xnn_setup_convolution2d_nhwc_qs8(
2076     op32,
2077     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2078     v32.data() /* input */, v33.data() /* output */,
2079     threadpool /* threadpool */);
2080   if (status != xnn_status_success) {
2081     std::cerr << "failed to setup operation #32" << std::endl;
2082     return ExecutionPlan();
2083   }
2084 
2085   status = xnn_setup_convolution2d_nhwc_qs8(
2086     op33,
2087     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2088     v33.data() /* input */, v34.data() /* output */,
2089     threadpool /* threadpool */);
2090   if (status != xnn_status_success) {
2091     std::cerr << "failed to setup operation #33" << std::endl;
2092     return ExecutionPlan();
2093   }
2094 
2095   status = xnn_setup_convolution2d_nhwc_qs8(
2096     op34,
2097     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2098     v34.data() /* input */, v35.data() /* output */,
2099     threadpool /* threadpool */);
2100   if (status != xnn_status_success) {
2101     std::cerr << "failed to setup operation #34" << std::endl;
2102     return ExecutionPlan();
2103   }
2104 
2105   {
2106     const size_t a_shape[] = { 1, 14, 14, 64 };
2107     const size_t b_shape[] = { 1, 14, 14, 64 };
2108     status = xnn_setup_add_nd_qs8(
2109       op35,
2110       4, a_shape, 4, b_shape,
2111       v35.data() /* a */, v32.data() /* b */, v36.data() /* output */,
2112       threadpool /* threadpool */);
2113   }
2114   if (status != xnn_status_success) {
2115     std::cerr << "failed to setup operation #35" << std::endl;
2116     return ExecutionPlan();
2117   }
2118 
2119   status = xnn_setup_convolution2d_nhwc_qs8(
2120     op36,
2121     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2122     v36.data() /* input */, v37.data() /* output */,
2123     threadpool /* threadpool */);
2124   if (status != xnn_status_success) {
2125     std::cerr << "failed to setup operation #36" << std::endl;
2126     return ExecutionPlan();
2127   }
2128 
2129   status = xnn_setup_convolution2d_nhwc_qs8(
2130     op37,
2131     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2132     v37.data() /* input */, v38.data() /* output */,
2133     threadpool /* threadpool */);
2134   if (status != xnn_status_success) {
2135     std::cerr << "failed to setup operation #37" << std::endl;
2136     return ExecutionPlan();
2137   }
2138 
2139   status = xnn_setup_convolution2d_nhwc_qs8(
2140     op38,
2141     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2142     v38.data() /* input */, v39.data() /* output */,
2143     threadpool /* threadpool */);
2144   if (status != xnn_status_success) {
2145     std::cerr << "failed to setup operation #38" << std::endl;
2146     return ExecutionPlan();
2147   }
2148 
2149   status = xnn_setup_convolution2d_nhwc_qs8(
2150     op39,
2151     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2152     v39.data() /* input */, v40.data() /* output */,
2153     threadpool /* threadpool */);
2154   if (status != xnn_status_success) {
2155     std::cerr << "failed to setup operation #39" << std::endl;
2156     return ExecutionPlan();
2157   }
2158 
2159   status = xnn_setup_convolution2d_nhwc_qs8(
2160     op40,
2161     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2162     v40.data() /* input */, v41.data() /* output */,
2163     threadpool /* threadpool */);
2164   if (status != xnn_status_success) {
2165     std::cerr << "failed to setup operation #40" << std::endl;
2166     return ExecutionPlan();
2167   }
2168 
2169   status = xnn_setup_convolution2d_nhwc_qs8(
2170     op41,
2171     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2172     v41.data() /* input */, v42.data() /* output */,
2173     threadpool /* threadpool */);
2174   if (status != xnn_status_success) {
2175     std::cerr << "failed to setup operation #41" << std::endl;
2176     return ExecutionPlan();
2177   }
2178 
2179   {
2180     const size_t a_shape[] = { 1, 14, 14, 96 };
2181     const size_t b_shape[] = { 1, 14, 14, 96 };
2182     status = xnn_setup_add_nd_qs8(
2183       op42,
2184       4, a_shape, 4, b_shape,
2185       v42.data() /* a */, v39.data() /* b */, v43.data() /* output */,
2186       threadpool /* threadpool */);
2187   }
2188   if (status != xnn_status_success) {
2189     std::cerr << "failed to setup operation #42" << std::endl;
2190     return ExecutionPlan();
2191   }
2192 
2193   status = xnn_setup_convolution2d_nhwc_qs8(
2194     op43,
2195     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2196     v43.data() /* input */, v44.data() /* output */,
2197     threadpool /* threadpool */);
2198   if (status != xnn_status_success) {
2199     std::cerr << "failed to setup operation #43" << std::endl;
2200     return ExecutionPlan();
2201   }
2202 
2203   status = xnn_setup_convolution2d_nhwc_qs8(
2204     op44,
2205     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2206     v44.data() /* input */, v45.data() /* output */,
2207     threadpool /* threadpool */);
2208   if (status != xnn_status_success) {
2209     std::cerr << "failed to setup operation #44" << std::endl;
2210     return ExecutionPlan();
2211   }
2212 
2213   status = xnn_setup_convolution2d_nhwc_qs8(
2214     op45,
2215     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2216     v45.data() /* input */, v46.data() /* output */,
2217     threadpool /* threadpool */);
2218   if (status != xnn_status_success) {
2219     std::cerr << "failed to setup operation #45" << std::endl;
2220     return ExecutionPlan();
2221   }
2222 
2223   {
2224     const size_t a_shape[] = { 1, 14, 14, 96 };
2225     const size_t b_shape[] = { 1, 14, 14, 96 };
2226     status = xnn_setup_add_nd_qs8(
2227       op46,
2228       4, a_shape, 4, b_shape,
2229       v46.data() /* a */, v43.data() /* b */, v47.data() /* output */,
2230       threadpool /* threadpool */);
2231   }
2232   if (status != xnn_status_success) {
2233     std::cerr << "failed to setup operation #46" << std::endl;
2234     return ExecutionPlan();
2235   }
2236 
2237   status = xnn_setup_convolution2d_nhwc_qs8(
2238     op47,
2239     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2240     v47.data() /* input */, v48.data() /* output */,
2241     threadpool /* threadpool */);
2242   if (status != xnn_status_success) {
2243     std::cerr << "failed to setup operation #47" << std::endl;
2244     return ExecutionPlan();
2245   }
2246 
2247   status = xnn_setup_convolution2d_nhwc_qs8(
2248     op48,
2249     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2250     v48.data() /* input */, v49.data() /* output */,
2251     threadpool /* threadpool */);
2252   if (status != xnn_status_success) {
2253     std::cerr << "failed to setup operation #48" << std::endl;
2254     return ExecutionPlan();
2255   }
2256 
2257   status = xnn_setup_convolution2d_nhwc_qs8(
2258     op49,
2259     1 /* batch size */, 7 /* input height */, 7 /* input width */,
2260     v49.data() /* input */, v50.data() /* output */,
2261     threadpool /* threadpool */);
2262   if (status != xnn_status_success) {
2263     std::cerr << "failed to setup operation #49" << std::endl;
2264     return ExecutionPlan();
2265   }
2266 
2267   status = xnn_setup_convolution2d_nhwc_qs8(
2268     op50,
2269     1 /* batch size */, 7 /* input height */, 7 /* input width */,
2270     v50.data() /* input */, v51.data() /* output */,
2271     threadpool /* threadpool */);
2272   if (status != xnn_status_success) {
2273     std::cerr << "failed to setup operation #50" << std::endl;
2274     return ExecutionPlan();
2275   }
2276 
2277   status = xnn_setup_convolution2d_nhwc_qs8(
2278     op51,
2279     1 /* batch size */, 7 /* input height */, 7 /* input width */,
2280     v51.data() /* input */, v52.data() /* output */,
2281     threadpool /* threadpool */);
2282   if (status != xnn_status_success) {
2283     std::cerr << "failed to setup operation #51" << std::endl;
2284     return ExecutionPlan();
2285   }
2286 
2287   status = xnn_setup_convolution2d_nhwc_qs8(
2288     op52,
2289     1 /* batch size */, 7 /* input height */, 7 /* input width */,
2290     v52.data() /* input */, v53.data() /* output */,
2291     threadpool /* threadpool */);
2292   if (status != xnn_status_success) {
2293     std::cerr << "failed to setup operation #52" << std::endl;
2294     return ExecutionPlan();
2295   }
2296 
2297   {
2298     const size_t a_shape[] = { 1, 7, 7, 160 };
2299     const size_t b_shape[] = { 1, 7, 7, 160 };
2300     status = xnn_setup_add_nd_qs8(
2301       op53,
2302       4, a_shape, 4, b_shape,
2303       v53.data() /* a */, v50.data() /* b */, v54.data() /* output */,
2304       threadpool /* threadpool */);
2305   }
2306   if (status != xnn_status_success) {
2307     std::cerr << "failed to setup operation #53" << std::endl;
2308     return ExecutionPlan();
2309   }
2310 
2311   status = xnn_setup_convolution2d_nhwc_qs8(
2312     op54,
2313     1 /* batch size */, 7 /* input height */, 7 /* input width */,
2314     v54.data() /* input */, v55.data() /* output */,
2315     threadpool /* threadpool */);
2316   if (status != xnn_status_success) {
2317     std::cerr << "failed to setup operation #54" << std::endl;
2318     return ExecutionPlan();
2319   }
2320 
2321   status = xnn_setup_convolution2d_nhwc_qs8(
2322     op55,
2323     1 /* batch size */, 7 /* input height */, 7 /* input width */,
2324     v55.data() /* input */, v56.data() /* output */,
2325     threadpool /* threadpool */);
2326   if (status != xnn_status_success) {
2327     std::cerr << "failed to setup operation #55" << std::endl;
2328     return ExecutionPlan();
2329   }
2330 
2331   status = xnn_setup_convolution2d_nhwc_qs8(
2332     op56,
2333     1 /* batch size */, 7 /* input height */, 7 /* input width */,
2334     v56.data() /* input */, v57.data() /* output */,
2335     threadpool /* threadpool */);
2336   if (status != xnn_status_success) {
2337     std::cerr << "failed to setup operation #56" << std::endl;
2338     return ExecutionPlan();
2339   }
2340 
2341   {
2342     const size_t a_shape[] = { 1, 7, 7, 160 };
2343     const size_t b_shape[] = { 1, 7, 7, 160 };
2344     status = xnn_setup_add_nd_qs8(
2345       op57,
2346       4, a_shape, 4, b_shape,
2347       v57.data() /* a */, v54.data() /* b */, v58.data() /* output */,
2348       threadpool /* threadpool */);
2349   }
2350   if (status != xnn_status_success) {
2351     std::cerr << "failed to setup operation #57" << std::endl;
2352     return ExecutionPlan();
2353   }
2354 
2355   status = xnn_setup_convolution2d_nhwc_qs8(
2356     op58,
2357     1 /* batch size */, 7 /* input height */, 7 /* input width */,
2358     v58.data() /* input */, v59.data() /* output */,
2359     threadpool /* threadpool */);
2360   if (status != xnn_status_success) {
2361     std::cerr << "failed to setup operation #58" << std::endl;
2362     return ExecutionPlan();
2363   }
2364 
2365   status = xnn_setup_convolution2d_nhwc_qs8(
2366     op59,
2367     1 /* batch size */, 7 /* input height */, 7 /* input width */,
2368     v59.data() /* input */, v60.data() /* output */,
2369     threadpool /* threadpool */);
2370   if (status != xnn_status_success) {
2371     std::cerr << "failed to setup operation #59" << std::endl;
2372     return ExecutionPlan();
2373   }
2374 
2375   status = xnn_setup_convolution2d_nhwc_qs8(
2376     op60,
2377     1 /* batch size */, 7 /* input height */, 7 /* input width */,
2378     v60.data() /* input */, v61.data() /* output */,
2379     threadpool /* threadpool */);
2380   if (status != xnn_status_success) {
2381     std::cerr << "failed to setup operation #60" << std::endl;
2382     return ExecutionPlan();
2383   }
2384 
2385   status = xnn_setup_convolution2d_nhwc_qs8(
2386     op61,
2387     1 /* batch size */, 7 /* input height */, 7 /* input width */,
2388     v61.data() /* input */, v62.data() /* output */,
2389     threadpool /* threadpool */);
2390   if (status != xnn_status_success) {
2391     std::cerr << "failed to setup operation #61" << std::endl;
2392     return ExecutionPlan();
2393   }
2394 
2395   status = xnn_setup_global_average_pooling_nwc_qs8(
2396     op62,
2397     1 /* batch size */, 49 /* width */,
2398     v62.data() /* input */, v63.data() /* output */,
2399     threadpool /* threadpool */);
2400   if (status != xnn_status_success) {
2401     std::cerr << "failed to setup operation #62" << std::endl;
2402     return ExecutionPlan();
2403   }
2404 
2405   status = xnn_setup_convolution2d_nhwc_qs8(
2406     op63,
2407     1 /* batch size */, 1 /* input height */, 1 /* input width */,
2408     v63.data() /* input */, v64.data() /* output */,
2409     threadpool /* threadpool */);
2410   if (status != xnn_status_success) {
2411     std::cerr << "failed to setup operation #63" << std::endl;
2412     return ExecutionPlan();
2413   }
2414 
2415   #pragma clang diagnostic push
2416   #pragma clang diagnostic ignored "-Wpessimizing-move"
2417   return operators;
2418   #pragma clang diagnostic pop
2419 }
2420 
2421 }  // namespace models
2422