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