xref: /aosp_15_r20/external/XNNPACK/models/fp16-mobilenet-v3-small.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 
15 #include <xnnpack/cache.h>
16 
17 #include <fp16/fp16.h>
18 
19 #include "models/models.h"
20 
21 namespace models {
22 
FP16MobileNetV3Small(pthreadpool_t threadpool)23 ExecutionPlan FP16MobileNetV3Small(pthreadpool_t threadpool) {
24   alignas(16) static std::array<uint16_t, 150528 + XNN_EXTRA_BYTES / sizeof(uint16_t)> v0;
25   alignas(16) static std::array<uint16_t, 200704> v1;
26   alignas(16) static std::array<uint16_t, 200704> v2;
27   alignas(16) static std::array<uint16_t, 50176> v3;
28   alignas(16) static std::array<uint16_t, 16> v4;
29   alignas(16) static std::array<uint16_t, 8> v5;
30   alignas(16) static std::array<uint16_t, 16> v6;
31   alignas(16) static std::array<uint16_t, 50176> v7;
32   alignas(16) static std::array<uint16_t, 50176> v8;
33   alignas(16) static std::array<uint16_t, 225792> v9;
34   alignas(16) static std::array<uint16_t, 56448> v10;
35   alignas(16) static std::array<uint16_t, 18816> v11;
36   alignas(16) static std::array<uint16_t, 68992> v12;
37   alignas(16) static std::array<uint16_t, 68992> v13;
38   alignas(16) static std::array<uint16_t, 18816> v14;
39   alignas(16) static std::array<uint16_t, 18816> v15;
40   alignas(16) static std::array<uint16_t, 75264> v16;
41   alignas(16) static std::array<uint16_t, 75264> v17;
42   alignas(16) static std::array<uint16_t, 18816> v18;
43   alignas(16) static std::array<uint16_t, 18816> v19;
44   alignas(16) static std::array<uint16_t, 96> v20;
45   alignas(16) static std::array<uint16_t, 24> v21;
46   alignas(16) static std::array<uint16_t, 96> v22;
47   alignas(16) static std::array<uint16_t, 18816> v23;
48   alignas(16) static std::array<uint16_t, 7840> v24;
49   alignas(16) static std::array<uint16_t, 47040> v25;
50   alignas(16) static std::array<uint16_t, 47040> v26;
51   alignas(16) static std::array<uint16_t, 47040> v27;
52   alignas(16) static std::array<uint16_t, 47040> v28;
53   alignas(16) static std::array<uint16_t, 240> v29;
54   alignas(16) static std::array<uint16_t, 64> v30;
55   alignas(16) static std::array<uint16_t, 240> v31;
56   alignas(16) static std::array<uint16_t, 47040> v32;
57   alignas(16) static std::array<uint16_t, 7840> v33;
58   alignas(16) static std::array<uint16_t, 7840> v34;
59   alignas(16) static std::array<uint16_t, 47040> v35;
60   alignas(16) static std::array<uint16_t, 47040> v36;
61   alignas(16) static std::array<uint16_t, 47040> v37;
62   alignas(16) static std::array<uint16_t, 47040> v38;
63   alignas(16) static std::array<uint16_t, 240> v39;
64   alignas(16) static std::array<uint16_t, 64> v40;
65   alignas(16) static std::array<uint16_t, 240> v41;
66   alignas(16) static std::array<uint16_t, 47040> v42;
67   alignas(16) static std::array<uint16_t, 7840> v43;
68   alignas(16) static std::array<uint16_t, 7840> v44;
69   alignas(16) static std::array<uint16_t, 23520> v45;
70   alignas(16) static std::array<uint16_t, 23520> v46;
71   alignas(16) static std::array<uint16_t, 23520> v47;
72   alignas(16) static std::array<uint16_t, 23520> v48;
73   alignas(16) static std::array<uint16_t, 120> v49;
74   alignas(16) static std::array<uint16_t, 32> v50;
75   alignas(16) static std::array<uint16_t, 120> v51;
76   alignas(16) static std::array<uint16_t, 23520> v52;
77   alignas(16) static std::array<uint16_t, 9408> v53;
78   alignas(16) static std::array<uint16_t, 28224> v54;
79   alignas(16) static std::array<uint16_t, 28224> v55;
80   alignas(16) static std::array<uint16_t, 28224> v56;
81   alignas(16) static std::array<uint16_t, 28224> v57;
82   alignas(16) static std::array<uint16_t, 144> v58;
83   alignas(16) static std::array<uint16_t, 40> v59;
84   alignas(16) static std::array<uint16_t, 144> v60;
85   alignas(16) static std::array<uint16_t, 28224> v61;
86   alignas(16) static std::array<uint16_t, 9408> v62;
87   alignas(16) static std::array<uint16_t, 9408> v63;
88   alignas(16) static std::array<uint16_t, 56448> v64;
89   alignas(16) static std::array<uint16_t, 56448> v65;
90   alignas(16) static std::array<uint16_t, 14112> v66;
91   alignas(16) static std::array<uint16_t, 14112> v67;
92   alignas(16) static std::array<uint16_t, 288> v68;
93   alignas(16) static std::array<uint16_t, 72> v69;
94   alignas(16) static std::array<uint16_t, 288> v70;
95   alignas(16) static std::array<uint16_t, 14112> v71;
96   alignas(16) static std::array<uint16_t, 4704> v72;
97   alignas(16) static std::array<uint16_t, 28224> v73;
98   alignas(16) static std::array<uint16_t, 28224> v74;
99   alignas(16) static std::array<uint16_t, 28224> v75;
100   alignas(16) static std::array<uint16_t, 28224> v76;
101   alignas(16) static std::array<uint16_t, 576> v77;
102   alignas(16) static std::array<uint16_t, 144> v78;
103   alignas(16) static std::array<uint16_t, 576> v79;
104   alignas(16) static std::array<uint16_t, 28224> v80;
105   alignas(16) static std::array<uint16_t, 4704> v81;
106   alignas(16) static std::array<uint16_t, 4704> v82;
107   alignas(16) static std::array<uint16_t, 28224> v83;
108   alignas(16) static std::array<uint16_t, 28224> v84;
109   alignas(16) static std::array<uint16_t, 28224> v85;
110   alignas(16) static std::array<uint16_t, 28224> v86;
111   alignas(16) static std::array<uint16_t, 576> v87;
112   alignas(16) static std::array<uint16_t, 144> v88;
113   alignas(16) static std::array<uint16_t, 576> v89;
114   alignas(16) static std::array<uint16_t, 28224> v90;
115   alignas(16) static std::array<uint16_t, 4704> v91;
116   alignas(16) static std::array<uint16_t, 4704> v92;
117   alignas(16) static std::array<uint16_t, 28224> v93;
118   alignas(16) static std::array<uint16_t, 28224> v94;
119   alignas(16) static std::array<uint16_t, 576> v95;
120   alignas(16) static std::array<uint16_t, 1024> v96;
121   alignas(16) static std::array<uint16_t, 1024> v97;
122   alignas(16) static std::array<uint16_t, 1024> v98;
123   alignas(16) static std::array<uint16_t, 1001> v99;
124   alignas(16) static std::array<uint16_t, 432> w100;
125   alignas(16) static std::array<uint16_t, 16> w101;
126   alignas(16) static std::array<uint16_t, 144> w102;
127   alignas(16) static std::array<uint16_t, 16> w103;
128   alignas(16) static std::array<uint16_t, 128> w104;
129   alignas(16) static std::array<uint16_t, 8> w105;
130   alignas(16) static std::array<uint16_t, 128> w106;
131   alignas(16) static std::array<uint16_t, 16> w107;
132   alignas(16) static std::array<uint16_t, 256> w108;
133   alignas(16) static std::array<uint16_t, 16> w109;
134   alignas(16) static std::array<uint16_t, 1152> w110;
135   alignas(16) static std::array<uint16_t, 72> w111;
136   alignas(16) static std::array<uint16_t, 648> w112;
137   alignas(16) static std::array<uint16_t, 72> w113;
138   alignas(16) static std::array<uint16_t, 1728> w114;
139   alignas(16) static std::array<uint16_t, 24> w115;
140   alignas(16) static std::array<uint16_t, 2112> w116;
141   alignas(16) static std::array<uint16_t, 88> w117;
142   alignas(16) static std::array<uint16_t, 792> w118;
143   alignas(16) static std::array<uint16_t, 88> w119;
144   alignas(16) static std::array<uint16_t, 2112> w120;
145   alignas(16) static std::array<uint16_t, 24> w121;
146   alignas(16) static std::array<uint16_t, 2304> w122;
147   alignas(16) static std::array<uint16_t, 96> w123;
148   alignas(16) static std::array<uint16_t, 2400> w124;
149   alignas(16) static std::array<uint16_t, 96> w125;
150   alignas(16) static std::array<uint16_t, 2304> w126;
151   alignas(16) static std::array<uint16_t, 24> w127;
152   alignas(16) static std::array<uint16_t, 2304> w128;
153   alignas(16) static std::array<uint16_t, 96> w129;
154   alignas(16) static std::array<uint16_t, 3840> w130;
155   alignas(16) static std::array<uint16_t, 40> w131;
156   alignas(16) static std::array<uint16_t, 9600> w132;
157   alignas(16) static std::array<uint16_t, 240> w133;
158   alignas(16) static std::array<uint16_t, 6000> w134;
159   alignas(16) static std::array<uint16_t, 240> w135;
160   alignas(16) static std::array<uint16_t, 15360> w136;
161   alignas(16) static std::array<uint16_t, 64> w137;
162   alignas(16) static std::array<uint16_t, 15360> w138;
163   alignas(16) static std::array<uint16_t, 240> w139;
164   alignas(16) static std::array<uint16_t, 9600> w140;
165   alignas(16) static std::array<uint16_t, 40> w141;
166   alignas(16) static std::array<uint16_t, 9600> w142;
167   alignas(16) static std::array<uint16_t, 240> w143;
168   alignas(16) static std::array<uint16_t, 6000> w144;
169   alignas(16) static std::array<uint16_t, 240> w145;
170   alignas(16) static std::array<uint16_t, 15360> w146;
171   alignas(16) static std::array<uint16_t, 64> w147;
172   alignas(16) static std::array<uint16_t, 15360> w148;
173   alignas(16) static std::array<uint16_t, 240> w149;
174   alignas(16) static std::array<uint16_t, 9600> w150;
175   alignas(16) static std::array<uint16_t, 40> w151;
176   alignas(16) static std::array<uint16_t, 4800> w152;
177   alignas(16) static std::array<uint16_t, 120> w153;
178   alignas(16) static std::array<uint16_t, 3000> w154;
179   alignas(16) static std::array<uint16_t, 120> w155;
180   alignas(16) static std::array<uint16_t, 3840> w156;
181   alignas(16) static std::array<uint16_t, 32> w157;
182   alignas(16) static std::array<uint16_t, 3840> w158;
183   alignas(16) static std::array<uint16_t, 120> w159;
184   alignas(16) static std::array<uint16_t, 5760> w160;
185   alignas(16) static std::array<uint16_t, 48> w161;
186   alignas(16) static std::array<uint16_t, 6912> w162;
187   alignas(16) static std::array<uint16_t, 144> w163;
188   alignas(16) static std::array<uint16_t, 3600> w164;
189   alignas(16) static std::array<uint16_t, 144> w165;
190   alignas(16) static std::array<uint16_t, 5760> w166;
191   alignas(16) static std::array<uint16_t, 40> w167;
192   alignas(16) static std::array<uint16_t, 5760> w168;
193   alignas(16) static std::array<uint16_t, 144> w169;
194   alignas(16) static std::array<uint16_t, 6912> w170;
195   alignas(16) static std::array<uint16_t, 48> w171;
196   alignas(16) static std::array<uint16_t, 13824> w172;
197   alignas(16) static std::array<uint16_t, 288> w173;
198   alignas(16) static std::array<uint16_t, 7200> w174;
199   alignas(16) static std::array<uint16_t, 288> w175;
200   alignas(16) static std::array<uint16_t, 20736> w176;
201   alignas(16) static std::array<uint16_t, 72> w177;
202   alignas(16) static std::array<uint16_t, 20736> w178;
203   alignas(16) static std::array<uint16_t, 288> w179;
204   alignas(16) static std::array<uint16_t, 27648> w180;
205   alignas(16) static std::array<uint16_t, 96> w181;
206   alignas(16) static std::array<uint16_t, 55296> w182;
207   alignas(16) static std::array<uint16_t, 576> w183;
208   alignas(16) static std::array<uint16_t, 14400> w184;
209   alignas(16) static std::array<uint16_t, 576> w185;
210   alignas(16) static std::array<uint16_t, 82944> w186;
211   alignas(16) static std::array<uint16_t, 144> w187;
212   alignas(16) static std::array<uint16_t, 82944> w188;
213   alignas(16) static std::array<uint16_t, 576> w189;
214   alignas(16) static std::array<uint16_t, 55296> w190;
215   alignas(16) static std::array<uint16_t, 96> w191;
216   alignas(16) static std::array<uint16_t, 55296> w192;
217   alignas(16) static std::array<uint16_t, 576> w193;
218   alignas(16) static std::array<uint16_t, 14400> w194;
219   alignas(16) static std::array<uint16_t, 576> w195;
220   alignas(16) static std::array<uint16_t, 82944> w196;
221   alignas(16) static std::array<uint16_t, 144> w197;
222   alignas(16) static std::array<uint16_t, 82944> w198;
223   alignas(16) static std::array<uint16_t, 576> w199;
224   alignas(16) static std::array<uint16_t, 55296> w200;
225   alignas(16) static std::array<uint16_t, 96> w201;
226   alignas(16) static std::array<uint16_t, 55296> w202;
227   alignas(16) static std::array<uint16_t, 576> w203;
228   alignas(16) static std::array<uint16_t, 589824> w204;
229   alignas(16) static std::array<uint16_t, 1024> w205;
230   alignas(16) static std::array<uint16_t, 1025024> w206;
231   alignas(16) static std::array<uint16_t, 1001> w207;
232 
233   std::random_device random_device;
234   auto rng = std::mt19937(random_device());
235   auto f32rng = std::bind(std::uniform_real_distribution<float>(-1.0f, +1.0f), std::ref(rng));
236   auto f16rng = std::bind(fp16_ieee_from_fp32_value, f32rng);
237   std::generate(v0.begin(), v0.end(), std::ref(f16rng));
238   std::generate(v1.begin(), v1.end(), std::ref(f16rng));
239   std::generate(v2.begin(), v2.end(), std::ref(f16rng));
240   std::generate(v3.begin(), v3.end(), std::ref(f16rng));
241   std::generate(v4.begin(), v4.end(), std::ref(f16rng));
242   std::generate(v5.begin(), v5.end(), std::ref(f16rng));
243   std::generate(v6.begin(), v6.end(), std::ref(f16rng));
244   std::generate(v7.begin(), v7.end(), std::ref(f16rng));
245   std::generate(v8.begin(), v8.end(), std::ref(f16rng));
246   std::generate(v9.begin(), v9.end(), std::ref(f16rng));
247   std::generate(v10.begin(), v10.end(), std::ref(f16rng));
248   std::generate(v11.begin(), v11.end(), std::ref(f16rng));
249   std::generate(v12.begin(), v12.end(), std::ref(f16rng));
250   std::generate(v13.begin(), v13.end(), std::ref(f16rng));
251   std::generate(v14.begin(), v14.end(), std::ref(f16rng));
252   std::generate(v15.begin(), v15.end(), std::ref(f16rng));
253   std::generate(v16.begin(), v16.end(), std::ref(f16rng));
254   std::generate(v17.begin(), v17.end(), std::ref(f16rng));
255   std::generate(v18.begin(), v18.end(), std::ref(f16rng));
256   std::generate(v19.begin(), v19.end(), std::ref(f16rng));
257   std::generate(v20.begin(), v20.end(), std::ref(f16rng));
258   std::generate(v21.begin(), v21.end(), std::ref(f16rng));
259   std::generate(v22.begin(), v22.end(), std::ref(f16rng));
260   std::generate(v23.begin(), v23.end(), std::ref(f16rng));
261   std::generate(v24.begin(), v24.end(), std::ref(f16rng));
262   std::generate(v25.begin(), v25.end(), std::ref(f16rng));
263   std::generate(v26.begin(), v26.end(), std::ref(f16rng));
264   std::generate(v27.begin(), v27.end(), std::ref(f16rng));
265   std::generate(v28.begin(), v28.end(), std::ref(f16rng));
266   std::generate(v29.begin(), v29.end(), std::ref(f16rng));
267   std::generate(v30.begin(), v30.end(), std::ref(f16rng));
268   std::generate(v31.begin(), v31.end(), std::ref(f16rng));
269   std::generate(v32.begin(), v32.end(), std::ref(f16rng));
270   std::generate(v33.begin(), v33.end(), std::ref(f16rng));
271   std::generate(v34.begin(), v34.end(), std::ref(f16rng));
272   std::generate(v35.begin(), v35.end(), std::ref(f16rng));
273   std::generate(v36.begin(), v36.end(), std::ref(f16rng));
274   std::generate(v37.begin(), v37.end(), std::ref(f16rng));
275   std::generate(v38.begin(), v38.end(), std::ref(f16rng));
276   std::generate(v39.begin(), v39.end(), std::ref(f16rng));
277   std::generate(v40.begin(), v40.end(), std::ref(f16rng));
278   std::generate(v41.begin(), v41.end(), std::ref(f16rng));
279   std::generate(v42.begin(), v42.end(), std::ref(f16rng));
280   std::generate(v43.begin(), v43.end(), std::ref(f16rng));
281   std::generate(v44.begin(), v44.end(), std::ref(f16rng));
282   std::generate(v45.begin(), v45.end(), std::ref(f16rng));
283   std::generate(v46.begin(), v46.end(), std::ref(f16rng));
284   std::generate(v47.begin(), v47.end(), std::ref(f16rng));
285   std::generate(v48.begin(), v48.end(), std::ref(f16rng));
286   std::generate(v49.begin(), v49.end(), std::ref(f16rng));
287   std::generate(v50.begin(), v50.end(), std::ref(f16rng));
288   std::generate(v51.begin(), v51.end(), std::ref(f16rng));
289   std::generate(v52.begin(), v52.end(), std::ref(f16rng));
290   std::generate(v53.begin(), v53.end(), std::ref(f16rng));
291   std::generate(v54.begin(), v54.end(), std::ref(f16rng));
292   std::generate(v55.begin(), v55.end(), std::ref(f16rng));
293   std::generate(v56.begin(), v56.end(), std::ref(f16rng));
294   std::generate(v57.begin(), v57.end(), std::ref(f16rng));
295   std::generate(v58.begin(), v58.end(), std::ref(f16rng));
296   std::generate(v59.begin(), v59.end(), std::ref(f16rng));
297   std::generate(v60.begin(), v60.end(), std::ref(f16rng));
298   std::generate(v61.begin(), v61.end(), std::ref(f16rng));
299   std::generate(v62.begin(), v62.end(), std::ref(f16rng));
300   std::generate(v63.begin(), v63.end(), std::ref(f16rng));
301   std::generate(v64.begin(), v64.end(), std::ref(f16rng));
302   std::generate(v65.begin(), v65.end(), std::ref(f16rng));
303   std::generate(v66.begin(), v66.end(), std::ref(f16rng));
304   std::generate(v67.begin(), v67.end(), std::ref(f16rng));
305   std::generate(v68.begin(), v68.end(), std::ref(f16rng));
306   std::generate(v69.begin(), v69.end(), std::ref(f16rng));
307   std::generate(v70.begin(), v70.end(), std::ref(f16rng));
308   std::generate(v71.begin(), v71.end(), std::ref(f16rng));
309   std::generate(v72.begin(), v72.end(), std::ref(f16rng));
310   std::generate(v73.begin(), v73.end(), std::ref(f16rng));
311   std::generate(v74.begin(), v74.end(), std::ref(f16rng));
312   std::generate(v75.begin(), v75.end(), std::ref(f16rng));
313   std::generate(v76.begin(), v76.end(), std::ref(f16rng));
314   std::generate(v77.begin(), v77.end(), std::ref(f16rng));
315   std::generate(v78.begin(), v78.end(), std::ref(f16rng));
316   std::generate(v79.begin(), v79.end(), std::ref(f16rng));
317   std::generate(v80.begin(), v80.end(), std::ref(f16rng));
318   std::generate(v81.begin(), v81.end(), std::ref(f16rng));
319   std::generate(v82.begin(), v82.end(), std::ref(f16rng));
320   std::generate(v83.begin(), v83.end(), std::ref(f16rng));
321   std::generate(v84.begin(), v84.end(), std::ref(f16rng));
322   std::generate(v85.begin(), v85.end(), std::ref(f16rng));
323   std::generate(v86.begin(), v86.end(), std::ref(f16rng));
324   std::generate(v87.begin(), v87.end(), std::ref(f16rng));
325   std::generate(v88.begin(), v88.end(), std::ref(f16rng));
326   std::generate(v89.begin(), v89.end(), std::ref(f16rng));
327   std::generate(v90.begin(), v90.end(), std::ref(f16rng));
328   std::generate(v91.begin(), v91.end(), std::ref(f16rng));
329   std::generate(v92.begin(), v92.end(), std::ref(f16rng));
330   std::generate(v93.begin(), v93.end(), std::ref(f16rng));
331   std::generate(v94.begin(), v94.end(), std::ref(f16rng));
332   std::generate(v95.begin(), v95.end(), std::ref(f16rng));
333   std::generate(v96.begin(), v96.end(), std::ref(f16rng));
334   std::generate(v97.begin(), v97.end(), std::ref(f16rng));
335   std::generate(v98.begin(), v98.end(), std::ref(f16rng));
336   std::generate(v99.begin(), v99.end(), std::ref(f16rng));
337   std::generate(w100.begin(), w100.end(), std::ref(f16rng));
338   std::generate(w101.begin(), w101.end(), std::ref(f16rng));
339   std::generate(w102.begin(), w102.end(), std::ref(f16rng));
340   std::generate(w103.begin(), w103.end(), std::ref(f16rng));
341   std::generate(w104.begin(), w104.end(), std::ref(f16rng));
342   std::generate(w105.begin(), w105.end(), std::ref(f16rng));
343   std::generate(w106.begin(), w106.end(), std::ref(f16rng));
344   std::generate(w107.begin(), w107.end(), std::ref(f16rng));
345   std::generate(w108.begin(), w108.end(), std::ref(f16rng));
346   std::generate(w109.begin(), w109.end(), std::ref(f16rng));
347   std::generate(w110.begin(), w110.end(), std::ref(f16rng));
348   std::generate(w111.begin(), w111.end(), std::ref(f16rng));
349   std::generate(w112.begin(), w112.end(), std::ref(f16rng));
350   std::generate(w113.begin(), w113.end(), std::ref(f16rng));
351   std::generate(w114.begin(), w114.end(), std::ref(f16rng));
352   std::generate(w115.begin(), w115.end(), std::ref(f16rng));
353   std::generate(w116.begin(), w116.end(), std::ref(f16rng));
354   std::generate(w117.begin(), w117.end(), std::ref(f16rng));
355   std::generate(w118.begin(), w118.end(), std::ref(f16rng));
356   std::generate(w119.begin(), w119.end(), std::ref(f16rng));
357   std::generate(w120.begin(), w120.end(), std::ref(f16rng));
358   std::generate(w121.begin(), w121.end(), std::ref(f16rng));
359   std::generate(w122.begin(), w122.end(), std::ref(f16rng));
360   std::generate(w123.begin(), w123.end(), std::ref(f16rng));
361   std::generate(w124.begin(), w124.end(), std::ref(f16rng));
362   std::generate(w125.begin(), w125.end(), std::ref(f16rng));
363   std::generate(w126.begin(), w126.end(), std::ref(f16rng));
364   std::generate(w127.begin(), w127.end(), std::ref(f16rng));
365   std::generate(w128.begin(), w128.end(), std::ref(f16rng));
366   std::generate(w129.begin(), w129.end(), std::ref(f16rng));
367   std::generate(w130.begin(), w130.end(), std::ref(f16rng));
368   std::generate(w131.begin(), w131.end(), std::ref(f16rng));
369   std::generate(w132.begin(), w132.end(), std::ref(f16rng));
370   std::generate(w133.begin(), w133.end(), std::ref(f16rng));
371   std::generate(w134.begin(), w134.end(), std::ref(f16rng));
372   std::generate(w135.begin(), w135.end(), std::ref(f16rng));
373   std::generate(w136.begin(), w136.end(), std::ref(f16rng));
374   std::generate(w137.begin(), w137.end(), std::ref(f16rng));
375   std::generate(w138.begin(), w138.end(), std::ref(f16rng));
376   std::generate(w139.begin(), w139.end(), std::ref(f16rng));
377   std::generate(w140.begin(), w140.end(), std::ref(f16rng));
378   std::generate(w141.begin(), w141.end(), std::ref(f16rng));
379   std::generate(w142.begin(), w142.end(), std::ref(f16rng));
380   std::generate(w143.begin(), w143.end(), std::ref(f16rng));
381   std::generate(w144.begin(), w144.end(), std::ref(f16rng));
382   std::generate(w145.begin(), w145.end(), std::ref(f16rng));
383   std::generate(w146.begin(), w146.end(), std::ref(f16rng));
384   std::generate(w147.begin(), w147.end(), std::ref(f16rng));
385   std::generate(w148.begin(), w148.end(), std::ref(f16rng));
386   std::generate(w149.begin(), w149.end(), std::ref(f16rng));
387   std::generate(w150.begin(), w150.end(), std::ref(f16rng));
388   std::generate(w151.begin(), w151.end(), std::ref(f16rng));
389   std::generate(w152.begin(), w152.end(), std::ref(f16rng));
390   std::generate(w153.begin(), w153.end(), std::ref(f16rng));
391   std::generate(w154.begin(), w154.end(), std::ref(f16rng));
392   std::generate(w155.begin(), w155.end(), std::ref(f16rng));
393   std::generate(w156.begin(), w156.end(), std::ref(f16rng));
394   std::generate(w157.begin(), w157.end(), std::ref(f16rng));
395   std::generate(w158.begin(), w158.end(), std::ref(f16rng));
396   std::generate(w159.begin(), w159.end(), std::ref(f16rng));
397   std::generate(w160.begin(), w160.end(), std::ref(f16rng));
398   std::generate(w161.begin(), w161.end(), std::ref(f16rng));
399   std::generate(w162.begin(), w162.end(), std::ref(f16rng));
400   std::generate(w163.begin(), w163.end(), std::ref(f16rng));
401   std::generate(w164.begin(), w164.end(), std::ref(f16rng));
402   std::generate(w165.begin(), w165.end(), std::ref(f16rng));
403   std::generate(w166.begin(), w166.end(), std::ref(f16rng));
404   std::generate(w167.begin(), w167.end(), std::ref(f16rng));
405   std::generate(w168.begin(), w168.end(), std::ref(f16rng));
406   std::generate(w169.begin(), w169.end(), std::ref(f16rng));
407   std::generate(w170.begin(), w170.end(), std::ref(f16rng));
408   std::generate(w171.begin(), w171.end(), std::ref(f16rng));
409   std::generate(w172.begin(), w172.end(), std::ref(f16rng));
410   std::generate(w173.begin(), w173.end(), std::ref(f16rng));
411   std::generate(w174.begin(), w174.end(), std::ref(f16rng));
412   std::generate(w175.begin(), w175.end(), std::ref(f16rng));
413   std::generate(w176.begin(), w176.end(), std::ref(f16rng));
414   std::generate(w177.begin(), w177.end(), std::ref(f16rng));
415   std::generate(w178.begin(), w178.end(), std::ref(f16rng));
416   std::generate(w179.begin(), w179.end(), std::ref(f16rng));
417   std::generate(w180.begin(), w180.end(), std::ref(f16rng));
418   std::generate(w181.begin(), w181.end(), std::ref(f16rng));
419   std::generate(w182.begin(), w182.end(), std::ref(f16rng));
420   std::generate(w183.begin(), w183.end(), std::ref(f16rng));
421   std::generate(w184.begin(), w184.end(), std::ref(f16rng));
422   std::generate(w185.begin(), w185.end(), std::ref(f16rng));
423   std::generate(w186.begin(), w186.end(), std::ref(f16rng));
424   std::generate(w187.begin(), w187.end(), std::ref(f16rng));
425   std::generate(w188.begin(), w188.end(), std::ref(f16rng));
426   std::generate(w189.begin(), w189.end(), std::ref(f16rng));
427   std::generate(w190.begin(), w190.end(), std::ref(f16rng));
428   std::generate(w191.begin(), w191.end(), std::ref(f16rng));
429   std::generate(w192.begin(), w192.end(), std::ref(f16rng));
430   std::generate(w193.begin(), w193.end(), std::ref(f16rng));
431   std::generate(w194.begin(), w194.end(), std::ref(f16rng));
432   std::generate(w195.begin(), w195.end(), std::ref(f16rng));
433   std::generate(w196.begin(), w196.end(), std::ref(f16rng));
434   std::generate(w197.begin(), w197.end(), std::ref(f16rng));
435   std::generate(w198.begin(), w198.end(), std::ref(f16rng));
436   std::generate(w199.begin(), w199.end(), std::ref(f16rng));
437   std::generate(w200.begin(), w200.end(), std::ref(f16rng));
438   std::generate(w201.begin(), w201.end(), std::ref(f16rng));
439   std::generate(w202.begin(), w202.end(), std::ref(f16rng));
440   std::generate(w203.begin(), w203.end(), std::ref(f16rng));
441   std::generate(w204.begin(), w204.end(), std::ref(f16rng));
442   std::generate(w205.begin(), w205.end(), std::ref(f16rng));
443   std::generate(w206.begin(), w206.end(), std::ref(f16rng));
444   std::generate(w207.begin(), w207.end(), std::ref(f16rng));
445 
446   ExecutionPlan operators;
447   xnn_status status;
448   xnn_code_cache code_cache;
449 #if XNN_PLATFORM_JIT
450   xnn_init_code_cache(&code_cache);
451 #endif
452   xnn_caches caches = { 0 };
453   caches.code_cache = &code_cache;
454 
455   xnn_operator_t op0 = nullptr;
456   status = xnn_create_convolution2d_nhwc_f16(
457     0 /* top padding */, 1 /* right padding */,
458     1 /* bottom padding */, 0 /* left padding */,
459     3 /* kernel height */, 3 /* kernel width */,
460     2 /* subsampling height */, 2 /* subsampling width */,
461     1 /* dilation_height */, 1 /* dilation_width */,
462     1 /* groups */,
463     3 /* input channels per group */,
464     16 /* output_channels_per_group */,
465     3 /* input pixel stride */,
466     16 /* output pixel stride */,
467     w100.data(), w101.data(),
468     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
469     0 /* flags */,
470     &caches,
471     &op0);
472   if (status != xnn_status_success) {
473     std::cerr << "failed to create operation #0" << std::endl;
474     return ExecutionPlan();
475   }
476   operators.emplace_back(op0, xnn_delete_operator);
477 
478   xnn_operator_t op1 = nullptr;
479   status = xnn_create_hardswish_nc_f16(
480     16 /* channels */,
481     16 /* input stride */,
482     16 /* output stride */,
483     0 /* flags */,
484     &op1);
485   if (status != xnn_status_success) {
486     std::cerr << "failed to create operation #1" << std::endl;
487     return ExecutionPlan();
488   }
489   operators.emplace_back(op1, xnn_delete_operator);
490 
491   xnn_operator_t op2 = nullptr;
492   status = xnn_create_convolution2d_nhwc_f16(
493     0 /* top padding */, 1 /* right padding */,
494     1 /* bottom padding */, 0 /* left padding */,
495     3 /* kernel height */, 3 /* kernel width */,
496     2 /* subsampling height */, 2 /* subsampling width */,
497     1 /* dilation_height */, 1 /* dilation_width */,
498     16 /* groups */,
499     1 /* input channels per group */,
500     1 /* output_channels_per_group */,
501     16 /* input pixel stride */,
502     16 /* output pixel stride */,
503     w102.data(), w103.data(),
504     0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
505     0 /* flags */,
506     &caches,
507     &op2);
508   if (status != xnn_status_success) {
509     std::cerr << "failed to create operation #2" << std::endl;
510     return ExecutionPlan();
511   }
512   operators.emplace_back(op2, xnn_delete_operator);
513 
514   xnn_operator_t op3 = nullptr;
515   status = xnn_create_global_average_pooling_nwc_f16(
516     16 /* channels */, 16 /* input stride */, 16 /* output stride */,
517     -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
518     0 /* flags */,
519     &op3);
520   if (status != xnn_status_success) {
521     std::cerr << "failed to create operation #3" << std::endl;
522     return ExecutionPlan();
523   }
524   operators.emplace_back(op3, xnn_delete_operator);
525 
526   xnn_operator_t op4 = nullptr;
527   status = xnn_create_convolution2d_nhwc_f16(
528     0 /* top padding */, 0 /* right padding */,
529     0 /* bottom padding */, 0 /* left padding */,
530     1 /* kernel height */, 1 /* kernel width */,
531     1 /* subsampling height */, 1 /* subsampling width */,
532     1 /* dilation_height */, 1 /* dilation_width */,
533     1 /* groups */,
534     16 /* input channels per group */,
535     8 /* output_channels_per_group */,
536     16 /* input pixel stride */,
537     8 /* output pixel stride */,
538     w104.data(), w105.data(),
539     0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
540     0 /* flags */,
541     &caches,
542     &op4);
543   if (status != xnn_status_success) {
544     std::cerr << "failed to create operation #4" << std::endl;
545     return ExecutionPlan();
546   }
547   operators.emplace_back(op4, xnn_delete_operator);
548 
549   xnn_operator_t op5 = nullptr;
550   status = xnn_create_convolution2d_nhwc_f16(
551     0 /* top padding */, 0 /* right padding */,
552     0 /* bottom padding */, 0 /* left padding */,
553     1 /* kernel height */, 1 /* kernel width */,
554     1 /* subsampling height */, 1 /* subsampling width */,
555     1 /* dilation_height */, 1 /* dilation_width */,
556     1 /* groups */,
557     8 /* input channels per group */,
558     16 /* output_channels_per_group */,
559     8 /* input pixel stride */,
560     16 /* output pixel stride */,
561     w106.data(), w107.data(),
562     0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
563     0 /* flags */,
564     &caches,
565     &op5);
566   if (status != xnn_status_success) {
567     std::cerr << "failed to create operation #5" << std::endl;
568     return ExecutionPlan();
569   }
570   operators.emplace_back(op5, xnn_delete_operator);
571 
572   xnn_operator_t op6 = nullptr;
573   status = xnn_create_multiply_nd_f16(
574     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
575     0 /* flags */,
576     &op6);
577   if (status != xnn_status_success) {
578     std::cerr << "failed to create operation #6" << std::endl;
579     return ExecutionPlan();
580   }
581   operators.emplace_back(op6, xnn_delete_operator);
582 
583   xnn_operator_t op7 = nullptr;
584   status = xnn_create_convolution2d_nhwc_f16(
585     0 /* top padding */, 0 /* right padding */,
586     0 /* bottom padding */, 0 /* left padding */,
587     1 /* kernel height */, 1 /* kernel width */,
588     1 /* subsampling height */, 1 /* subsampling width */,
589     1 /* dilation_height */, 1 /* dilation_width */,
590     1 /* groups */,
591     16 /* input channels per group */,
592     16 /* output_channels_per_group */,
593     16 /* input pixel stride */,
594     16 /* output pixel stride */,
595     w108.data(), w109.data(),
596     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
597     0 /* flags */,
598     &caches,
599     &op7);
600   if (status != xnn_status_success) {
601     std::cerr << "failed to create operation #7" << std::endl;
602     return ExecutionPlan();
603   }
604   operators.emplace_back(op7, xnn_delete_operator);
605 
606   xnn_operator_t op8 = nullptr;
607   status = xnn_create_convolution2d_nhwc_f16(
608     0 /* top padding */, 0 /* right padding */,
609     0 /* bottom padding */, 0 /* left padding */,
610     1 /* kernel height */, 1 /* kernel width */,
611     1 /* subsampling height */, 1 /* subsampling width */,
612     1 /* dilation_height */, 1 /* dilation_width */,
613     1 /* groups */,
614     16 /* input channels per group */,
615     72 /* output_channels_per_group */,
616     16 /* input pixel stride */,
617     72 /* output pixel stride */,
618     w110.data(), w111.data(),
619     0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
620     0 /* flags */,
621     &caches,
622     &op8);
623   if (status != xnn_status_success) {
624     std::cerr << "failed to create operation #8" << std::endl;
625     return ExecutionPlan();
626   }
627   operators.emplace_back(op8, xnn_delete_operator);
628 
629   xnn_operator_t op9 = nullptr;
630   status = xnn_create_convolution2d_nhwc_f16(
631     0 /* top padding */, 1 /* right padding */,
632     1 /* bottom padding */, 0 /* left padding */,
633     3 /* kernel height */, 3 /* kernel width */,
634     2 /* subsampling height */, 2 /* subsampling width */,
635     1 /* dilation_height */, 1 /* dilation_width */,
636     72 /* groups */,
637     1 /* input channels per group */,
638     1 /* output_channels_per_group */,
639     72 /* input pixel stride */,
640     72 /* output pixel stride */,
641     w112.data(), w113.data(),
642     0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
643     0 /* flags */,
644     &caches,
645     &op9);
646   if (status != xnn_status_success) {
647     std::cerr << "failed to create operation #9" << std::endl;
648     return ExecutionPlan();
649   }
650   operators.emplace_back(op9, xnn_delete_operator);
651 
652   xnn_operator_t op10 = nullptr;
653   status = xnn_create_convolution2d_nhwc_f16(
654     0 /* top padding */, 0 /* right padding */,
655     0 /* bottom padding */, 0 /* left padding */,
656     1 /* kernel height */, 1 /* kernel width */,
657     1 /* subsampling height */, 1 /* subsampling width */,
658     1 /* dilation_height */, 1 /* dilation_width */,
659     1 /* groups */,
660     72 /* input channels per group */,
661     24 /* output_channels_per_group */,
662     72 /* input pixel stride */,
663     24 /* output pixel stride */,
664     w114.data(), w115.data(),
665     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
666     0 /* flags */,
667     &caches,
668     &op10);
669   if (status != xnn_status_success) {
670     std::cerr << "failed to create operation #10" << std::endl;
671     return ExecutionPlan();
672   }
673   operators.emplace_back(op10, xnn_delete_operator);
674 
675   xnn_operator_t op11 = nullptr;
676   status = xnn_create_convolution2d_nhwc_f16(
677     0 /* top padding */, 0 /* right padding */,
678     0 /* bottom padding */, 0 /* left padding */,
679     1 /* kernel height */, 1 /* kernel width */,
680     1 /* subsampling height */, 1 /* subsampling width */,
681     1 /* dilation_height */, 1 /* dilation_width */,
682     1 /* groups */,
683     24 /* input channels per group */,
684     88 /* output_channels_per_group */,
685     24 /* input pixel stride */,
686     88 /* output pixel stride */,
687     w116.data(), w117.data(),
688     0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
689     0 /* flags */,
690     &caches,
691     &op11);
692   if (status != xnn_status_success) {
693     std::cerr << "failed to create operation #11" << std::endl;
694     return ExecutionPlan();
695   }
696   operators.emplace_back(op11, xnn_delete_operator);
697 
698   xnn_operator_t op12 = nullptr;
699   status = xnn_create_convolution2d_nhwc_f16(
700     1 /* top padding */, 1 /* right padding */,
701     1 /* bottom padding */, 1 /* left padding */,
702     3 /* kernel height */, 3 /* kernel width */,
703     1 /* subsampling height */, 1 /* subsampling width */,
704     1 /* dilation_height */, 1 /* dilation_width */,
705     88 /* groups */,
706     1 /* input channels per group */,
707     1 /* output_channels_per_group */,
708     88 /* input pixel stride */,
709     88 /* output pixel stride */,
710     w118.data(), w119.data(),
711     0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
712     0 /* flags */,
713     &caches,
714     &op12);
715   if (status != xnn_status_success) {
716     std::cerr << "failed to create operation #12" << std::endl;
717     return ExecutionPlan();
718   }
719   operators.emplace_back(op12, xnn_delete_operator);
720 
721   xnn_operator_t op13 = nullptr;
722   status = xnn_create_convolution2d_nhwc_f16(
723     0 /* top padding */, 0 /* right padding */,
724     0 /* bottom padding */, 0 /* left padding */,
725     1 /* kernel height */, 1 /* kernel width */,
726     1 /* subsampling height */, 1 /* subsampling width */,
727     1 /* dilation_height */, 1 /* dilation_width */,
728     1 /* groups */,
729     88 /* input channels per group */,
730     24 /* output_channels_per_group */,
731     88 /* input pixel stride */,
732     24 /* output pixel stride */,
733     w120.data(), w121.data(),
734     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
735     0 /* flags */,
736     &caches,
737     &op13);
738   if (status != xnn_status_success) {
739     std::cerr << "failed to create operation #13" << std::endl;
740     return ExecutionPlan();
741   }
742   operators.emplace_back(op13, xnn_delete_operator);
743 
744   xnn_operator_t op14 = nullptr;
745   status = xnn_create_add_nd_f16(
746     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
747     0 /* flags */,
748     &op14);
749   if (status != xnn_status_success) {
750     std::cerr << "failed to create operation #14" << std::endl;
751     return ExecutionPlan();
752   }
753   operators.emplace_back(op14, xnn_delete_operator);
754 
755   xnn_operator_t op15 = nullptr;
756   status = xnn_create_convolution2d_nhwc_f16(
757     0 /* top padding */, 0 /* right padding */,
758     0 /* bottom padding */, 0 /* left padding */,
759     1 /* kernel height */, 1 /* kernel width */,
760     1 /* subsampling height */, 1 /* subsampling width */,
761     1 /* dilation_height */, 1 /* dilation_width */,
762     1 /* groups */,
763     24 /* input channels per group */,
764     96 /* output_channels_per_group */,
765     24 /* input pixel stride */,
766     96 /* output pixel stride */,
767     w122.data(), w123.data(),
768     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
769     0 /* flags */,
770     &caches,
771     &op15);
772   if (status != xnn_status_success) {
773     std::cerr << "failed to create operation #15" << std::endl;
774     return ExecutionPlan();
775   }
776   operators.emplace_back(op15, xnn_delete_operator);
777 
778   xnn_operator_t op16 = nullptr;
779   status = xnn_create_hardswish_nc_f16(
780     96 /* channels */,
781     96 /* input stride */,
782     96 /* output stride */,
783     0 /* flags */,
784     &op16);
785   if (status != xnn_status_success) {
786     std::cerr << "failed to create operation #16" << std::endl;
787     return ExecutionPlan();
788   }
789   operators.emplace_back(op16, xnn_delete_operator);
790 
791   xnn_operator_t op17 = nullptr;
792   status = xnn_create_convolution2d_nhwc_f16(
793     1 /* top padding */, 2 /* right padding */,
794     2 /* bottom padding */, 1 /* left padding */,
795     5 /* kernel height */, 5 /* kernel width */,
796     2 /* subsampling height */, 2 /* subsampling width */,
797     1 /* dilation_height */, 1 /* dilation_width */,
798     96 /* groups */,
799     1 /* input channels per group */,
800     1 /* output_channels_per_group */,
801     96 /* input pixel stride */,
802     96 /* output pixel stride */,
803     w124.data(), w125.data(),
804     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
805     0 /* flags */,
806     &caches,
807     &op17);
808   if (status != xnn_status_success) {
809     std::cerr << "failed to create operation #17" << std::endl;
810     return ExecutionPlan();
811   }
812   operators.emplace_back(op17, xnn_delete_operator);
813 
814   xnn_operator_t op18 = nullptr;
815   status = xnn_create_hardswish_nc_f16(
816     96 /* channels */,
817     96 /* input stride */,
818     96 /* output stride */,
819     0 /* flags */,
820     &op18);
821   if (status != xnn_status_success) {
822     std::cerr << "failed to create operation #18" << std::endl;
823     return ExecutionPlan();
824   }
825   operators.emplace_back(op18, xnn_delete_operator);
826 
827   xnn_operator_t op19 = nullptr;
828   status = xnn_create_global_average_pooling_nwc_f16(
829     96 /* channels */, 96 /* input stride */, 96 /* output stride */,
830     -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
831     0 /* flags */,
832     &op19);
833   if (status != xnn_status_success) {
834     std::cerr << "failed to create operation #19" << std::endl;
835     return ExecutionPlan();
836   }
837   operators.emplace_back(op19, xnn_delete_operator);
838 
839   xnn_operator_t op20 = nullptr;
840   status = xnn_create_convolution2d_nhwc_f16(
841     0 /* top padding */, 0 /* right padding */,
842     0 /* bottom padding */, 0 /* left padding */,
843     1 /* kernel height */, 1 /* kernel width */,
844     1 /* subsampling height */, 1 /* subsampling width */,
845     1 /* dilation_height */, 1 /* dilation_width */,
846     1 /* groups */,
847     96 /* input channels per group */,
848     24 /* output_channels_per_group */,
849     96 /* input pixel stride */,
850     24 /* output pixel stride */,
851     w126.data(), w127.data(),
852     0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
853     0 /* flags */,
854     &caches,
855     &op20);
856   if (status != xnn_status_success) {
857     std::cerr << "failed to create operation #20" << std::endl;
858     return ExecutionPlan();
859   }
860   operators.emplace_back(op20, xnn_delete_operator);
861 
862   xnn_operator_t op21 = nullptr;
863   status = xnn_create_convolution2d_nhwc_f16(
864     0 /* top padding */, 0 /* right padding */,
865     0 /* bottom padding */, 0 /* left padding */,
866     1 /* kernel height */, 1 /* kernel width */,
867     1 /* subsampling height */, 1 /* subsampling width */,
868     1 /* dilation_height */, 1 /* dilation_width */,
869     1 /* groups */,
870     24 /* input channels per group */,
871     96 /* output_channels_per_group */,
872     24 /* input pixel stride */,
873     96 /* output pixel stride */,
874     w128.data(), w129.data(),
875     0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
876     0 /* flags */,
877     &caches,
878     &op21);
879   if (status != xnn_status_success) {
880     std::cerr << "failed to create operation #21" << std::endl;
881     return ExecutionPlan();
882   }
883   operators.emplace_back(op21, xnn_delete_operator);
884 
885   xnn_operator_t op22 = nullptr;
886   status = xnn_create_multiply_nd_f16(
887     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
888     0 /* flags */,
889     &op22);
890   if (status != xnn_status_success) {
891     std::cerr << "failed to create operation #22" << std::endl;
892     return ExecutionPlan();
893   }
894   operators.emplace_back(op22, xnn_delete_operator);
895 
896   xnn_operator_t op23 = nullptr;
897   status = xnn_create_convolution2d_nhwc_f16(
898     0 /* top padding */, 0 /* right padding */,
899     0 /* bottom padding */, 0 /* left padding */,
900     1 /* kernel height */, 1 /* kernel width */,
901     1 /* subsampling height */, 1 /* subsampling width */,
902     1 /* dilation_height */, 1 /* dilation_width */,
903     1 /* groups */,
904     96 /* input channels per group */,
905     40 /* output_channels_per_group */,
906     96 /* input pixel stride */,
907     40 /* output pixel stride */,
908     w130.data(), w131.data(),
909     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
910     0 /* flags */,
911     &caches,
912     &op23);
913   if (status != xnn_status_success) {
914     std::cerr << "failed to create operation #23" << std::endl;
915     return ExecutionPlan();
916   }
917   operators.emplace_back(op23, xnn_delete_operator);
918 
919   xnn_operator_t op24 = nullptr;
920   status = xnn_create_convolution2d_nhwc_f16(
921     0 /* top padding */, 0 /* right padding */,
922     0 /* bottom padding */, 0 /* left padding */,
923     1 /* kernel height */, 1 /* kernel width */,
924     1 /* subsampling height */, 1 /* subsampling width */,
925     1 /* dilation_height */, 1 /* dilation_width */,
926     1 /* groups */,
927     40 /* input channels per group */,
928     240 /* output_channels_per_group */,
929     40 /* input pixel stride */,
930     240 /* output pixel stride */,
931     w132.data(), w133.data(),
932     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
933     0 /* flags */,
934     &caches,
935     &op24);
936   if (status != xnn_status_success) {
937     std::cerr << "failed to create operation #24" << std::endl;
938     return ExecutionPlan();
939   }
940   operators.emplace_back(op24, xnn_delete_operator);
941 
942   xnn_operator_t op25 = nullptr;
943   status = xnn_create_hardswish_nc_f16(
944     240 /* channels */,
945     240 /* input stride */,
946     240 /* output stride */,
947     0 /* flags */,
948     &op25);
949   if (status != xnn_status_success) {
950     std::cerr << "failed to create operation #25" << std::endl;
951     return ExecutionPlan();
952   }
953   operators.emplace_back(op25, xnn_delete_operator);
954 
955   xnn_operator_t op26 = nullptr;
956   status = xnn_create_convolution2d_nhwc_f16(
957     2 /* top padding */, 2 /* right padding */,
958     2 /* bottom padding */, 2 /* left padding */,
959     5 /* kernel height */, 5 /* kernel width */,
960     1 /* subsampling height */, 1 /* subsampling width */,
961     1 /* dilation_height */, 1 /* dilation_width */,
962     240 /* groups */,
963     1 /* input channels per group */,
964     1 /* output_channels_per_group */,
965     240 /* input pixel stride */,
966     240 /* output pixel stride */,
967     w134.data(), w135.data(),
968     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
969     0 /* flags */,
970     &caches,
971     &op26);
972   if (status != xnn_status_success) {
973     std::cerr << "failed to create operation #26" << std::endl;
974     return ExecutionPlan();
975   }
976   operators.emplace_back(op26, xnn_delete_operator);
977 
978   xnn_operator_t op27 = nullptr;
979   status = xnn_create_hardswish_nc_f16(
980     240 /* channels */,
981     240 /* input stride */,
982     240 /* output stride */,
983     0 /* flags */,
984     &op27);
985   if (status != xnn_status_success) {
986     std::cerr << "failed to create operation #27" << std::endl;
987     return ExecutionPlan();
988   }
989   operators.emplace_back(op27, xnn_delete_operator);
990 
991   xnn_operator_t op28 = nullptr;
992   status = xnn_create_global_average_pooling_nwc_f16(
993     240 /* channels */, 240 /* input stride */, 240 /* output stride */,
994     -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
995     0 /* flags */,
996     &op28);
997   if (status != xnn_status_success) {
998     std::cerr << "failed to create operation #28" << std::endl;
999     return ExecutionPlan();
1000   }
1001   operators.emplace_back(op28, xnn_delete_operator);
1002 
1003   xnn_operator_t op29 = nullptr;
1004   status = xnn_create_convolution2d_nhwc_f16(
1005     0 /* top padding */, 0 /* right padding */,
1006     0 /* bottom padding */, 0 /* left padding */,
1007     1 /* kernel height */, 1 /* kernel width */,
1008     1 /* subsampling height */, 1 /* subsampling width */,
1009     1 /* dilation_height */, 1 /* dilation_width */,
1010     1 /* groups */,
1011     240 /* input channels per group */,
1012     64 /* output_channels_per_group */,
1013     240 /* input pixel stride */,
1014     64 /* output pixel stride */,
1015     w136.data(), w137.data(),
1016     0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1017     0 /* flags */,
1018     &caches,
1019     &op29);
1020   if (status != xnn_status_success) {
1021     std::cerr << "failed to create operation #29" << std::endl;
1022     return ExecutionPlan();
1023   }
1024   operators.emplace_back(op29, xnn_delete_operator);
1025 
1026   xnn_operator_t op30 = nullptr;
1027   status = xnn_create_convolution2d_nhwc_f16(
1028     0 /* top padding */, 0 /* right padding */,
1029     0 /* bottom padding */, 0 /* left padding */,
1030     1 /* kernel height */, 1 /* kernel width */,
1031     1 /* subsampling height */, 1 /* subsampling width */,
1032     1 /* dilation_height */, 1 /* dilation_width */,
1033     1 /* groups */,
1034     64 /* input channels per group */,
1035     240 /* output_channels_per_group */,
1036     64 /* input pixel stride */,
1037     240 /* output pixel stride */,
1038     w138.data(), w139.data(),
1039     0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
1040     0 /* flags */,
1041     &caches,
1042     &op30);
1043   if (status != xnn_status_success) {
1044     std::cerr << "failed to create operation #30" << std::endl;
1045     return ExecutionPlan();
1046   }
1047   operators.emplace_back(op30, xnn_delete_operator);
1048 
1049   xnn_operator_t op31 = nullptr;
1050   status = xnn_create_multiply_nd_f16(
1051     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1052     0 /* flags */,
1053     &op31);
1054   if (status != xnn_status_success) {
1055     std::cerr << "failed to create operation #31" << std::endl;
1056     return ExecutionPlan();
1057   }
1058   operators.emplace_back(op31, xnn_delete_operator);
1059 
1060   xnn_operator_t op32 = nullptr;
1061   status = xnn_create_convolution2d_nhwc_f16(
1062     0 /* top padding */, 0 /* right padding */,
1063     0 /* bottom padding */, 0 /* left padding */,
1064     1 /* kernel height */, 1 /* kernel width */,
1065     1 /* subsampling height */, 1 /* subsampling width */,
1066     1 /* dilation_height */, 1 /* dilation_width */,
1067     1 /* groups */,
1068     240 /* input channels per group */,
1069     40 /* output_channels_per_group */,
1070     240 /* input pixel stride */,
1071     40 /* output pixel stride */,
1072     w140.data(), w141.data(),
1073     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1074     0 /* flags */,
1075     &caches,
1076     &op32);
1077   if (status != xnn_status_success) {
1078     std::cerr << "failed to create operation #32" << std::endl;
1079     return ExecutionPlan();
1080   }
1081   operators.emplace_back(op32, xnn_delete_operator);
1082 
1083   xnn_operator_t op33 = nullptr;
1084   status = xnn_create_add_nd_f16(
1085     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1086     0 /* flags */,
1087     &op33);
1088   if (status != xnn_status_success) {
1089     std::cerr << "failed to create operation #33" << std::endl;
1090     return ExecutionPlan();
1091   }
1092   operators.emplace_back(op33, xnn_delete_operator);
1093 
1094   xnn_operator_t op34 = nullptr;
1095   status = xnn_create_convolution2d_nhwc_f16(
1096     0 /* top padding */, 0 /* right padding */,
1097     0 /* bottom padding */, 0 /* left padding */,
1098     1 /* kernel height */, 1 /* kernel width */,
1099     1 /* subsampling height */, 1 /* subsampling width */,
1100     1 /* dilation_height */, 1 /* dilation_width */,
1101     1 /* groups */,
1102     40 /* input channels per group */,
1103     240 /* output_channels_per_group */,
1104     40 /* input pixel stride */,
1105     240 /* output pixel stride */,
1106     w142.data(), w143.data(),
1107     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1108     0 /* flags */,
1109     &caches,
1110     &op34);
1111   if (status != xnn_status_success) {
1112     std::cerr << "failed to create operation #34" << std::endl;
1113     return ExecutionPlan();
1114   }
1115   operators.emplace_back(op34, xnn_delete_operator);
1116 
1117   xnn_operator_t op35 = nullptr;
1118   status = xnn_create_hardswish_nc_f16(
1119     240 /* channels */,
1120     240 /* input stride */,
1121     240 /* output stride */,
1122     0 /* flags */,
1123     &op35);
1124   if (status != xnn_status_success) {
1125     std::cerr << "failed to create operation #35" << std::endl;
1126     return ExecutionPlan();
1127   }
1128   operators.emplace_back(op35, xnn_delete_operator);
1129 
1130   xnn_operator_t op36 = nullptr;
1131   status = xnn_create_convolution2d_nhwc_f16(
1132     2 /* top padding */, 2 /* right padding */,
1133     2 /* bottom padding */, 2 /* left padding */,
1134     5 /* kernel height */, 5 /* kernel width */,
1135     1 /* subsampling height */, 1 /* subsampling width */,
1136     1 /* dilation_height */, 1 /* dilation_width */,
1137     240 /* groups */,
1138     1 /* input channels per group */,
1139     1 /* output_channels_per_group */,
1140     240 /* input pixel stride */,
1141     240 /* output pixel stride */,
1142     w144.data(), w145.data(),
1143     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1144     0 /* flags */,
1145     &caches,
1146     &op36);
1147   if (status != xnn_status_success) {
1148     std::cerr << "failed to create operation #36" << std::endl;
1149     return ExecutionPlan();
1150   }
1151   operators.emplace_back(op36, xnn_delete_operator);
1152 
1153   xnn_operator_t op37 = nullptr;
1154   status = xnn_create_hardswish_nc_f16(
1155     240 /* channels */,
1156     240 /* input stride */,
1157     240 /* output stride */,
1158     0 /* flags */,
1159     &op37);
1160   if (status != xnn_status_success) {
1161     std::cerr << "failed to create operation #37" << std::endl;
1162     return ExecutionPlan();
1163   }
1164   operators.emplace_back(op37, xnn_delete_operator);
1165 
1166   xnn_operator_t op38 = nullptr;
1167   status = xnn_create_global_average_pooling_nwc_f16(
1168     240 /* channels */, 240 /* input stride */, 240 /* output stride */,
1169     -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
1170     0 /* flags */,
1171     &op38);
1172   if (status != xnn_status_success) {
1173     std::cerr << "failed to create operation #38" << std::endl;
1174     return ExecutionPlan();
1175   }
1176   operators.emplace_back(op38, xnn_delete_operator);
1177 
1178   xnn_operator_t op39 = nullptr;
1179   status = xnn_create_convolution2d_nhwc_f16(
1180     0 /* top padding */, 0 /* right padding */,
1181     0 /* bottom padding */, 0 /* left padding */,
1182     1 /* kernel height */, 1 /* kernel width */,
1183     1 /* subsampling height */, 1 /* subsampling width */,
1184     1 /* dilation_height */, 1 /* dilation_width */,
1185     1 /* groups */,
1186     240 /* input channels per group */,
1187     64 /* output_channels_per_group */,
1188     240 /* input pixel stride */,
1189     64 /* output pixel stride */,
1190     w146.data(), w147.data(),
1191     0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1192     0 /* flags */,
1193     &caches,
1194     &op39);
1195   if (status != xnn_status_success) {
1196     std::cerr << "failed to create operation #39" << std::endl;
1197     return ExecutionPlan();
1198   }
1199   operators.emplace_back(op39, xnn_delete_operator);
1200 
1201   xnn_operator_t op40 = nullptr;
1202   status = xnn_create_convolution2d_nhwc_f16(
1203     0 /* top padding */, 0 /* right padding */,
1204     0 /* bottom padding */, 0 /* left padding */,
1205     1 /* kernel height */, 1 /* kernel width */,
1206     1 /* subsampling height */, 1 /* subsampling width */,
1207     1 /* dilation_height */, 1 /* dilation_width */,
1208     1 /* groups */,
1209     64 /* input channels per group */,
1210     240 /* output_channels_per_group */,
1211     64 /* input pixel stride */,
1212     240 /* output pixel stride */,
1213     w148.data(), w149.data(),
1214     0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
1215     0 /* flags */,
1216     &caches,
1217     &op40);
1218   if (status != xnn_status_success) {
1219     std::cerr << "failed to create operation #40" << std::endl;
1220     return ExecutionPlan();
1221   }
1222   operators.emplace_back(op40, xnn_delete_operator);
1223 
1224   xnn_operator_t op41 = nullptr;
1225   status = xnn_create_multiply_nd_f16(
1226     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1227     0 /* flags */,
1228     &op41);
1229   if (status != xnn_status_success) {
1230     std::cerr << "failed to create operation #41" << std::endl;
1231     return ExecutionPlan();
1232   }
1233   operators.emplace_back(op41, xnn_delete_operator);
1234 
1235   xnn_operator_t op42 = nullptr;
1236   status = xnn_create_convolution2d_nhwc_f16(
1237     0 /* top padding */, 0 /* right padding */,
1238     0 /* bottom padding */, 0 /* left padding */,
1239     1 /* kernel height */, 1 /* kernel width */,
1240     1 /* subsampling height */, 1 /* subsampling width */,
1241     1 /* dilation_height */, 1 /* dilation_width */,
1242     1 /* groups */,
1243     240 /* input channels per group */,
1244     40 /* output_channels_per_group */,
1245     240 /* input pixel stride */,
1246     40 /* output pixel stride */,
1247     w150.data(), w151.data(),
1248     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1249     0 /* flags */,
1250     &caches,
1251     &op42);
1252   if (status != xnn_status_success) {
1253     std::cerr << "failed to create operation #42" << std::endl;
1254     return ExecutionPlan();
1255   }
1256   operators.emplace_back(op42, xnn_delete_operator);
1257 
1258   xnn_operator_t op43 = nullptr;
1259   status = xnn_create_add_nd_f16(
1260     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1261     0 /* flags */,
1262     &op43);
1263   if (status != xnn_status_success) {
1264     std::cerr << "failed to create operation #43" << std::endl;
1265     return ExecutionPlan();
1266   }
1267   operators.emplace_back(op43, xnn_delete_operator);
1268 
1269   xnn_operator_t op44 = nullptr;
1270   status = xnn_create_convolution2d_nhwc_f16(
1271     0 /* top padding */, 0 /* right padding */,
1272     0 /* bottom padding */, 0 /* left padding */,
1273     1 /* kernel height */, 1 /* kernel width */,
1274     1 /* subsampling height */, 1 /* subsampling width */,
1275     1 /* dilation_height */, 1 /* dilation_width */,
1276     1 /* groups */,
1277     40 /* input channels per group */,
1278     120 /* output_channels_per_group */,
1279     40 /* input pixel stride */,
1280     120 /* output pixel stride */,
1281     w152.data(), w153.data(),
1282     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1283     0 /* flags */,
1284     &caches,
1285     &op44);
1286   if (status != xnn_status_success) {
1287     std::cerr << "failed to create operation #44" << std::endl;
1288     return ExecutionPlan();
1289   }
1290   operators.emplace_back(op44, xnn_delete_operator);
1291 
1292   xnn_operator_t op45 = nullptr;
1293   status = xnn_create_hardswish_nc_f16(
1294     120 /* channels */,
1295     120 /* input stride */,
1296     120 /* output stride */,
1297     0 /* flags */,
1298     &op45);
1299   if (status != xnn_status_success) {
1300     std::cerr << "failed to create operation #45" << std::endl;
1301     return ExecutionPlan();
1302   }
1303   operators.emplace_back(op45, xnn_delete_operator);
1304 
1305   xnn_operator_t op46 = nullptr;
1306   status = xnn_create_convolution2d_nhwc_f16(
1307     2 /* top padding */, 2 /* right padding */,
1308     2 /* bottom padding */, 2 /* left padding */,
1309     5 /* kernel height */, 5 /* kernel width */,
1310     1 /* subsampling height */, 1 /* subsampling width */,
1311     1 /* dilation_height */, 1 /* dilation_width */,
1312     120 /* groups */,
1313     1 /* input channels per group */,
1314     1 /* output_channels_per_group */,
1315     120 /* input pixel stride */,
1316     120 /* output pixel stride */,
1317     w154.data(), w155.data(),
1318     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1319     0 /* flags */,
1320     &caches,
1321     &op46);
1322   if (status != xnn_status_success) {
1323     std::cerr << "failed to create operation #46" << std::endl;
1324     return ExecutionPlan();
1325   }
1326   operators.emplace_back(op46, xnn_delete_operator);
1327 
1328   xnn_operator_t op47 = nullptr;
1329   status = xnn_create_hardswish_nc_f16(
1330     120 /* channels */,
1331     120 /* input stride */,
1332     120 /* output stride */,
1333     0 /* flags */,
1334     &op47);
1335   if (status != xnn_status_success) {
1336     std::cerr << "failed to create operation #47" << std::endl;
1337     return ExecutionPlan();
1338   }
1339   operators.emplace_back(op47, xnn_delete_operator);
1340 
1341   xnn_operator_t op48 = nullptr;
1342   status = xnn_create_global_average_pooling_nwc_f16(
1343     120 /* channels */, 120 /* input stride */, 120 /* output stride */,
1344     -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
1345     0 /* flags */,
1346     &op48);
1347   if (status != xnn_status_success) {
1348     std::cerr << "failed to create operation #48" << std::endl;
1349     return ExecutionPlan();
1350   }
1351   operators.emplace_back(op48, xnn_delete_operator);
1352 
1353   xnn_operator_t op49 = nullptr;
1354   status = xnn_create_convolution2d_nhwc_f16(
1355     0 /* top padding */, 0 /* right padding */,
1356     0 /* bottom padding */, 0 /* left padding */,
1357     1 /* kernel height */, 1 /* kernel width */,
1358     1 /* subsampling height */, 1 /* subsampling width */,
1359     1 /* dilation_height */, 1 /* dilation_width */,
1360     1 /* groups */,
1361     120 /* input channels per group */,
1362     32 /* output_channels_per_group */,
1363     120 /* input pixel stride */,
1364     32 /* output pixel stride */,
1365     w156.data(), w157.data(),
1366     0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1367     0 /* flags */,
1368     &caches,
1369     &op49);
1370   if (status != xnn_status_success) {
1371     std::cerr << "failed to create operation #49" << std::endl;
1372     return ExecutionPlan();
1373   }
1374   operators.emplace_back(op49, xnn_delete_operator);
1375 
1376   xnn_operator_t op50 = nullptr;
1377   status = xnn_create_convolution2d_nhwc_f16(
1378     0 /* top padding */, 0 /* right padding */,
1379     0 /* bottom padding */, 0 /* left padding */,
1380     1 /* kernel height */, 1 /* kernel width */,
1381     1 /* subsampling height */, 1 /* subsampling width */,
1382     1 /* dilation_height */, 1 /* dilation_width */,
1383     1 /* groups */,
1384     32 /* input channels per group */,
1385     120 /* output_channels_per_group */,
1386     32 /* input pixel stride */,
1387     120 /* output pixel stride */,
1388     w158.data(), w159.data(),
1389     0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
1390     0 /* flags */,
1391     &caches,
1392     &op50);
1393   if (status != xnn_status_success) {
1394     std::cerr << "failed to create operation #50" << std::endl;
1395     return ExecutionPlan();
1396   }
1397   operators.emplace_back(op50, xnn_delete_operator);
1398 
1399   xnn_operator_t op51 = nullptr;
1400   status = xnn_create_multiply_nd_f16(
1401     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1402     0 /* flags */,
1403     &op51);
1404   if (status != xnn_status_success) {
1405     std::cerr << "failed to create operation #51" << std::endl;
1406     return ExecutionPlan();
1407   }
1408   operators.emplace_back(op51, xnn_delete_operator);
1409 
1410   xnn_operator_t op52 = nullptr;
1411   status = xnn_create_convolution2d_nhwc_f16(
1412     0 /* top padding */, 0 /* right padding */,
1413     0 /* bottom padding */, 0 /* left padding */,
1414     1 /* kernel height */, 1 /* kernel width */,
1415     1 /* subsampling height */, 1 /* subsampling width */,
1416     1 /* dilation_height */, 1 /* dilation_width */,
1417     1 /* groups */,
1418     120 /* input channels per group */,
1419     48 /* output_channels_per_group */,
1420     120 /* input pixel stride */,
1421     48 /* output pixel stride */,
1422     w160.data(), w161.data(),
1423     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1424     0 /* flags */,
1425     &caches,
1426     &op52);
1427   if (status != xnn_status_success) {
1428     std::cerr << "failed to create operation #52" << std::endl;
1429     return ExecutionPlan();
1430   }
1431   operators.emplace_back(op52, xnn_delete_operator);
1432 
1433   xnn_operator_t op53 = nullptr;
1434   status = xnn_create_convolution2d_nhwc_f16(
1435     0 /* top padding */, 0 /* right padding */,
1436     0 /* bottom padding */, 0 /* left padding */,
1437     1 /* kernel height */, 1 /* kernel width */,
1438     1 /* subsampling height */, 1 /* subsampling width */,
1439     1 /* dilation_height */, 1 /* dilation_width */,
1440     1 /* groups */,
1441     48 /* input channels per group */,
1442     144 /* output_channels_per_group */,
1443     48 /* input pixel stride */,
1444     144 /* output pixel stride */,
1445     w162.data(), w163.data(),
1446     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1447     0 /* flags */,
1448     &caches,
1449     &op53);
1450   if (status != xnn_status_success) {
1451     std::cerr << "failed to create operation #53" << std::endl;
1452     return ExecutionPlan();
1453   }
1454   operators.emplace_back(op53, xnn_delete_operator);
1455 
1456   xnn_operator_t op54 = nullptr;
1457   status = xnn_create_hardswish_nc_f16(
1458     144 /* channels */,
1459     144 /* input stride */,
1460     144 /* output stride */,
1461     0 /* flags */,
1462     &op54);
1463   if (status != xnn_status_success) {
1464     std::cerr << "failed to create operation #54" << std::endl;
1465     return ExecutionPlan();
1466   }
1467   operators.emplace_back(op54, xnn_delete_operator);
1468 
1469   xnn_operator_t op55 = nullptr;
1470   status = xnn_create_convolution2d_nhwc_f16(
1471     2 /* top padding */, 2 /* right padding */,
1472     2 /* bottom padding */, 2 /* left padding */,
1473     5 /* kernel height */, 5 /* kernel width */,
1474     1 /* subsampling height */, 1 /* subsampling width */,
1475     1 /* dilation_height */, 1 /* dilation_width */,
1476     144 /* groups */,
1477     1 /* input channels per group */,
1478     1 /* output_channels_per_group */,
1479     144 /* input pixel stride */,
1480     144 /* output pixel stride */,
1481     w164.data(), w165.data(),
1482     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1483     0 /* flags */,
1484     &caches,
1485     &op55);
1486   if (status != xnn_status_success) {
1487     std::cerr << "failed to create operation #55" << std::endl;
1488     return ExecutionPlan();
1489   }
1490   operators.emplace_back(op55, xnn_delete_operator);
1491 
1492   xnn_operator_t op56 = nullptr;
1493   status = xnn_create_hardswish_nc_f16(
1494     144 /* channels */,
1495     144 /* input stride */,
1496     144 /* output stride */,
1497     0 /* flags */,
1498     &op56);
1499   if (status != xnn_status_success) {
1500     std::cerr << "failed to create operation #56" << std::endl;
1501     return ExecutionPlan();
1502   }
1503   operators.emplace_back(op56, xnn_delete_operator);
1504 
1505   xnn_operator_t op57 = nullptr;
1506   status = xnn_create_global_average_pooling_nwc_f16(
1507     144 /* channels */, 144 /* input stride */, 144 /* output stride */,
1508     -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
1509     0 /* flags */,
1510     &op57);
1511   if (status != xnn_status_success) {
1512     std::cerr << "failed to create operation #57" << std::endl;
1513     return ExecutionPlan();
1514   }
1515   operators.emplace_back(op57, xnn_delete_operator);
1516 
1517   xnn_operator_t op58 = nullptr;
1518   status = xnn_create_convolution2d_nhwc_f16(
1519     0 /* top padding */, 0 /* right padding */,
1520     0 /* bottom padding */, 0 /* left padding */,
1521     1 /* kernel height */, 1 /* kernel width */,
1522     1 /* subsampling height */, 1 /* subsampling width */,
1523     1 /* dilation_height */, 1 /* dilation_width */,
1524     1 /* groups */,
1525     144 /* input channels per group */,
1526     40 /* output_channels_per_group */,
1527     144 /* input pixel stride */,
1528     40 /* output pixel stride */,
1529     w166.data(), w167.data(),
1530     0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1531     0 /* flags */,
1532     &caches,
1533     &op58);
1534   if (status != xnn_status_success) {
1535     std::cerr << "failed to create operation #58" << std::endl;
1536     return ExecutionPlan();
1537   }
1538   operators.emplace_back(op58, xnn_delete_operator);
1539 
1540   xnn_operator_t op59 = nullptr;
1541   status = xnn_create_convolution2d_nhwc_f16(
1542     0 /* top padding */, 0 /* right padding */,
1543     0 /* bottom padding */, 0 /* left padding */,
1544     1 /* kernel height */, 1 /* kernel width */,
1545     1 /* subsampling height */, 1 /* subsampling width */,
1546     1 /* dilation_height */, 1 /* dilation_width */,
1547     1 /* groups */,
1548     40 /* input channels per group */,
1549     144 /* output_channels_per_group */,
1550     40 /* input pixel stride */,
1551     144 /* output pixel stride */,
1552     w168.data(), w169.data(),
1553     0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
1554     0 /* flags */,
1555     &caches,
1556     &op59);
1557   if (status != xnn_status_success) {
1558     std::cerr << "failed to create operation #59" << std::endl;
1559     return ExecutionPlan();
1560   }
1561   operators.emplace_back(op59, xnn_delete_operator);
1562 
1563   xnn_operator_t op60 = nullptr;
1564   status = xnn_create_multiply_nd_f16(
1565     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1566     0 /* flags */,
1567     &op60);
1568   if (status != xnn_status_success) {
1569     std::cerr << "failed to create operation #60" << std::endl;
1570     return ExecutionPlan();
1571   }
1572   operators.emplace_back(op60, xnn_delete_operator);
1573 
1574   xnn_operator_t op61 = nullptr;
1575   status = xnn_create_convolution2d_nhwc_f16(
1576     0 /* top padding */, 0 /* right padding */,
1577     0 /* bottom padding */, 0 /* left padding */,
1578     1 /* kernel height */, 1 /* kernel width */,
1579     1 /* subsampling height */, 1 /* subsampling width */,
1580     1 /* dilation_height */, 1 /* dilation_width */,
1581     1 /* groups */,
1582     144 /* input channels per group */,
1583     48 /* output_channels_per_group */,
1584     144 /* input pixel stride */,
1585     48 /* output pixel stride */,
1586     w170.data(), w171.data(),
1587     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1588     0 /* flags */,
1589     &caches,
1590     &op61);
1591   if (status != xnn_status_success) {
1592     std::cerr << "failed to create operation #61" << std::endl;
1593     return ExecutionPlan();
1594   }
1595   operators.emplace_back(op61, xnn_delete_operator);
1596 
1597   xnn_operator_t op62 = nullptr;
1598   status = xnn_create_add_nd_f16(
1599     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1600     0 /* flags */,
1601     &op62);
1602   if (status != xnn_status_success) {
1603     std::cerr << "failed to create operation #62" << std::endl;
1604     return ExecutionPlan();
1605   }
1606   operators.emplace_back(op62, xnn_delete_operator);
1607 
1608   xnn_operator_t op63 = nullptr;
1609   status = xnn_create_convolution2d_nhwc_f16(
1610     0 /* top padding */, 0 /* right padding */,
1611     0 /* bottom padding */, 0 /* left padding */,
1612     1 /* kernel height */, 1 /* kernel width */,
1613     1 /* subsampling height */, 1 /* subsampling width */,
1614     1 /* dilation_height */, 1 /* dilation_width */,
1615     1 /* groups */,
1616     48 /* input channels per group */,
1617     288 /* output_channels_per_group */,
1618     48 /* input pixel stride */,
1619     288 /* output pixel stride */,
1620     w172.data(), w173.data(),
1621     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1622     0 /* flags */,
1623     &caches,
1624     &op63);
1625   if (status != xnn_status_success) {
1626     std::cerr << "failed to create operation #63" << std::endl;
1627     return ExecutionPlan();
1628   }
1629   operators.emplace_back(op63, xnn_delete_operator);
1630 
1631   xnn_operator_t op64 = nullptr;
1632   status = xnn_create_hardswish_nc_f16(
1633     288 /* channels */,
1634     288 /* input stride */,
1635     288 /* output stride */,
1636     0 /* flags */,
1637     &op64);
1638   if (status != xnn_status_success) {
1639     std::cerr << "failed to create operation #64" << std::endl;
1640     return ExecutionPlan();
1641   }
1642   operators.emplace_back(op64, xnn_delete_operator);
1643 
1644   xnn_operator_t op65 = nullptr;
1645   status = xnn_create_convolution2d_nhwc_f16(
1646     1 /* top padding */, 2 /* right padding */,
1647     2 /* bottom padding */, 1 /* left padding */,
1648     5 /* kernel height */, 5 /* kernel width */,
1649     2 /* subsampling height */, 2 /* subsampling width */,
1650     1 /* dilation_height */, 1 /* dilation_width */,
1651     288 /* groups */,
1652     1 /* input channels per group */,
1653     1 /* output_channels_per_group */,
1654     288 /* input pixel stride */,
1655     288 /* output pixel stride */,
1656     w174.data(), w175.data(),
1657     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1658     0 /* flags */,
1659     &caches,
1660     &op65);
1661   if (status != xnn_status_success) {
1662     std::cerr << "failed to create operation #65" << std::endl;
1663     return ExecutionPlan();
1664   }
1665   operators.emplace_back(op65, xnn_delete_operator);
1666 
1667   xnn_operator_t op66 = nullptr;
1668   status = xnn_create_hardswish_nc_f16(
1669     288 /* channels */,
1670     288 /* input stride */,
1671     288 /* output stride */,
1672     0 /* flags */,
1673     &op66);
1674   if (status != xnn_status_success) {
1675     std::cerr << "failed to create operation #66" << std::endl;
1676     return ExecutionPlan();
1677   }
1678   operators.emplace_back(op66, xnn_delete_operator);
1679 
1680   xnn_operator_t op67 = nullptr;
1681   status = xnn_create_global_average_pooling_nwc_f16(
1682     288 /* channels */, 288 /* input stride */, 288 /* output stride */,
1683     -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
1684     0 /* flags */,
1685     &op67);
1686   if (status != xnn_status_success) {
1687     std::cerr << "failed to create operation #67" << std::endl;
1688     return ExecutionPlan();
1689   }
1690   operators.emplace_back(op67, xnn_delete_operator);
1691 
1692   xnn_operator_t op68 = nullptr;
1693   status = xnn_create_convolution2d_nhwc_f16(
1694     0 /* top padding */, 0 /* right padding */,
1695     0 /* bottom padding */, 0 /* left padding */,
1696     1 /* kernel height */, 1 /* kernel width */,
1697     1 /* subsampling height */, 1 /* subsampling width */,
1698     1 /* dilation_height */, 1 /* dilation_width */,
1699     1 /* groups */,
1700     288 /* input channels per group */,
1701     72 /* output_channels_per_group */,
1702     288 /* input pixel stride */,
1703     72 /* output pixel stride */,
1704     w176.data(), w177.data(),
1705     0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1706     0 /* flags */,
1707     &caches,
1708     &op68);
1709   if (status != xnn_status_success) {
1710     std::cerr << "failed to create operation #68" << std::endl;
1711     return ExecutionPlan();
1712   }
1713   operators.emplace_back(op68, xnn_delete_operator);
1714 
1715   xnn_operator_t op69 = nullptr;
1716   status = xnn_create_convolution2d_nhwc_f16(
1717     0 /* top padding */, 0 /* right padding */,
1718     0 /* bottom padding */, 0 /* left padding */,
1719     1 /* kernel height */, 1 /* kernel width */,
1720     1 /* subsampling height */, 1 /* subsampling width */,
1721     1 /* dilation_height */, 1 /* dilation_width */,
1722     1 /* groups */,
1723     72 /* input channels per group */,
1724     288 /* output_channels_per_group */,
1725     72 /* input pixel stride */,
1726     288 /* output pixel stride */,
1727     w178.data(), w179.data(),
1728     0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
1729     0 /* flags */,
1730     &caches,
1731     &op69);
1732   if (status != xnn_status_success) {
1733     std::cerr << "failed to create operation #69" << std::endl;
1734     return ExecutionPlan();
1735   }
1736   operators.emplace_back(op69, xnn_delete_operator);
1737 
1738   xnn_operator_t op70 = nullptr;
1739   status = xnn_create_multiply_nd_f16(
1740     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1741     0 /* flags */,
1742     &op70);
1743   if (status != xnn_status_success) {
1744     std::cerr << "failed to create operation #70" << std::endl;
1745     return ExecutionPlan();
1746   }
1747   operators.emplace_back(op70, xnn_delete_operator);
1748 
1749   xnn_operator_t op71 = nullptr;
1750   status = xnn_create_convolution2d_nhwc_f16(
1751     0 /* top padding */, 0 /* right padding */,
1752     0 /* bottom padding */, 0 /* left padding */,
1753     1 /* kernel height */, 1 /* kernel width */,
1754     1 /* subsampling height */, 1 /* subsampling width */,
1755     1 /* dilation_height */, 1 /* dilation_width */,
1756     1 /* groups */,
1757     288 /* input channels per group */,
1758     96 /* output_channels_per_group */,
1759     288 /* input pixel stride */,
1760     96 /* output pixel stride */,
1761     w180.data(), w181.data(),
1762     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1763     0 /* flags */,
1764     &caches,
1765     &op71);
1766   if (status != xnn_status_success) {
1767     std::cerr << "failed to create operation #71" << std::endl;
1768     return ExecutionPlan();
1769   }
1770   operators.emplace_back(op71, xnn_delete_operator);
1771 
1772   xnn_operator_t op72 = nullptr;
1773   status = xnn_create_convolution2d_nhwc_f16(
1774     0 /* top padding */, 0 /* right padding */,
1775     0 /* bottom padding */, 0 /* left padding */,
1776     1 /* kernel height */, 1 /* kernel width */,
1777     1 /* subsampling height */, 1 /* subsampling width */,
1778     1 /* dilation_height */, 1 /* dilation_width */,
1779     1 /* groups */,
1780     96 /* input channels per group */,
1781     576 /* output_channels_per_group */,
1782     96 /* input pixel stride */,
1783     576 /* output pixel stride */,
1784     w182.data(), w183.data(),
1785     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1786     0 /* flags */,
1787     &caches,
1788     &op72);
1789   if (status != xnn_status_success) {
1790     std::cerr << "failed to create operation #72" << std::endl;
1791     return ExecutionPlan();
1792   }
1793   operators.emplace_back(op72, xnn_delete_operator);
1794 
1795   xnn_operator_t op73 = nullptr;
1796   status = xnn_create_hardswish_nc_f16(
1797     576 /* channels */,
1798     576 /* input stride */,
1799     576 /* output stride */,
1800     0 /* flags */,
1801     &op73);
1802   if (status != xnn_status_success) {
1803     std::cerr << "failed to create operation #73" << std::endl;
1804     return ExecutionPlan();
1805   }
1806   operators.emplace_back(op73, xnn_delete_operator);
1807 
1808   xnn_operator_t op74 = nullptr;
1809   status = xnn_create_convolution2d_nhwc_f16(
1810     2 /* top padding */, 2 /* right padding */,
1811     2 /* bottom padding */, 2 /* left padding */,
1812     5 /* kernel height */, 5 /* kernel width */,
1813     1 /* subsampling height */, 1 /* subsampling width */,
1814     1 /* dilation_height */, 1 /* dilation_width */,
1815     576 /* groups */,
1816     1 /* input channels per group */,
1817     1 /* output_channels_per_group */,
1818     576 /* input pixel stride */,
1819     576 /* output pixel stride */,
1820     w184.data(), w185.data(),
1821     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1822     0 /* flags */,
1823     &caches,
1824     &op74);
1825   if (status != xnn_status_success) {
1826     std::cerr << "failed to create operation #74" << std::endl;
1827     return ExecutionPlan();
1828   }
1829   operators.emplace_back(op74, xnn_delete_operator);
1830 
1831   xnn_operator_t op75 = nullptr;
1832   status = xnn_create_hardswish_nc_f16(
1833     576 /* channels */,
1834     576 /* input stride */,
1835     576 /* output stride */,
1836     0 /* flags */,
1837     &op75);
1838   if (status != xnn_status_success) {
1839     std::cerr << "failed to create operation #75" << std::endl;
1840     return ExecutionPlan();
1841   }
1842   operators.emplace_back(op75, xnn_delete_operator);
1843 
1844   xnn_operator_t op76 = nullptr;
1845   status = xnn_create_global_average_pooling_nwc_f16(
1846     576 /* channels */, 576 /* input stride */, 576 /* output stride */,
1847     -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
1848     0 /* flags */,
1849     &op76);
1850   if (status != xnn_status_success) {
1851     std::cerr << "failed to create operation #76" << std::endl;
1852     return ExecutionPlan();
1853   }
1854   operators.emplace_back(op76, xnn_delete_operator);
1855 
1856   xnn_operator_t op77 = nullptr;
1857   status = xnn_create_convolution2d_nhwc_f16(
1858     0 /* top padding */, 0 /* right padding */,
1859     0 /* bottom padding */, 0 /* left padding */,
1860     1 /* kernel height */, 1 /* kernel width */,
1861     1 /* subsampling height */, 1 /* subsampling width */,
1862     1 /* dilation_height */, 1 /* dilation_width */,
1863     1 /* groups */,
1864     576 /* input channels per group */,
1865     144 /* output_channels_per_group */,
1866     576 /* input pixel stride */,
1867     144 /* output pixel stride */,
1868     w186.data(), w187.data(),
1869     0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1870     0 /* flags */,
1871     &caches,
1872     &op77);
1873   if (status != xnn_status_success) {
1874     std::cerr << "failed to create operation #77" << std::endl;
1875     return ExecutionPlan();
1876   }
1877   operators.emplace_back(op77, xnn_delete_operator);
1878 
1879   xnn_operator_t op78 = nullptr;
1880   status = xnn_create_convolution2d_nhwc_f16(
1881     0 /* top padding */, 0 /* right padding */,
1882     0 /* bottom padding */, 0 /* left padding */,
1883     1 /* kernel height */, 1 /* kernel width */,
1884     1 /* subsampling height */, 1 /* subsampling width */,
1885     1 /* dilation_height */, 1 /* dilation_width */,
1886     1 /* groups */,
1887     144 /* input channels per group */,
1888     576 /* output_channels_per_group */,
1889     144 /* input pixel stride */,
1890     576 /* output pixel stride */,
1891     w188.data(), w189.data(),
1892     0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
1893     0 /* flags */,
1894     &caches,
1895     &op78);
1896   if (status != xnn_status_success) {
1897     std::cerr << "failed to create operation #78" << std::endl;
1898     return ExecutionPlan();
1899   }
1900   operators.emplace_back(op78, xnn_delete_operator);
1901 
1902   xnn_operator_t op79 = nullptr;
1903   status = xnn_create_multiply_nd_f16(
1904     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1905     0 /* flags */,
1906     &op79);
1907   if (status != xnn_status_success) {
1908     std::cerr << "failed to create operation #79" << std::endl;
1909     return ExecutionPlan();
1910   }
1911   operators.emplace_back(op79, xnn_delete_operator);
1912 
1913   xnn_operator_t op80 = nullptr;
1914   status = xnn_create_convolution2d_nhwc_f16(
1915     0 /* top padding */, 0 /* right padding */,
1916     0 /* bottom padding */, 0 /* left padding */,
1917     1 /* kernel height */, 1 /* kernel width */,
1918     1 /* subsampling height */, 1 /* subsampling width */,
1919     1 /* dilation_height */, 1 /* dilation_width */,
1920     1 /* groups */,
1921     576 /* input channels per group */,
1922     96 /* output_channels_per_group */,
1923     576 /* input pixel stride */,
1924     96 /* output pixel stride */,
1925     w190.data(), w191.data(),
1926     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1927     0 /* flags */,
1928     &caches,
1929     &op80);
1930   if (status != xnn_status_success) {
1931     std::cerr << "failed to create operation #80" << std::endl;
1932     return ExecutionPlan();
1933   }
1934   operators.emplace_back(op80, xnn_delete_operator);
1935 
1936   xnn_operator_t op81 = nullptr;
1937   status = xnn_create_add_nd_f16(
1938     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1939     0 /* flags */,
1940     &op81);
1941   if (status != xnn_status_success) {
1942     std::cerr << "failed to create operation #81" << std::endl;
1943     return ExecutionPlan();
1944   }
1945   operators.emplace_back(op81, xnn_delete_operator);
1946 
1947   xnn_operator_t op82 = nullptr;
1948   status = xnn_create_convolution2d_nhwc_f16(
1949     0 /* top padding */, 0 /* right padding */,
1950     0 /* bottom padding */, 0 /* left padding */,
1951     1 /* kernel height */, 1 /* kernel width */,
1952     1 /* subsampling height */, 1 /* subsampling width */,
1953     1 /* dilation_height */, 1 /* dilation_width */,
1954     1 /* groups */,
1955     96 /* input channels per group */,
1956     576 /* output_channels_per_group */,
1957     96 /* input pixel stride */,
1958     576 /* output pixel stride */,
1959     w192.data(), w193.data(),
1960     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1961     0 /* flags */,
1962     &caches,
1963     &op82);
1964   if (status != xnn_status_success) {
1965     std::cerr << "failed to create operation #82" << std::endl;
1966     return ExecutionPlan();
1967   }
1968   operators.emplace_back(op82, xnn_delete_operator);
1969 
1970   xnn_operator_t op83 = nullptr;
1971   status = xnn_create_hardswish_nc_f16(
1972     576 /* channels */,
1973     576 /* input stride */,
1974     576 /* output stride */,
1975     0 /* flags */,
1976     &op83);
1977   if (status != xnn_status_success) {
1978     std::cerr << "failed to create operation #83" << std::endl;
1979     return ExecutionPlan();
1980   }
1981   operators.emplace_back(op83, xnn_delete_operator);
1982 
1983   xnn_operator_t op84 = nullptr;
1984   status = xnn_create_convolution2d_nhwc_f16(
1985     2 /* top padding */, 2 /* right padding */,
1986     2 /* bottom padding */, 2 /* left padding */,
1987     5 /* kernel height */, 5 /* kernel width */,
1988     1 /* subsampling height */, 1 /* subsampling width */,
1989     1 /* dilation_height */, 1 /* dilation_width */,
1990     576 /* groups */,
1991     1 /* input channels per group */,
1992     1 /* output_channels_per_group */,
1993     576 /* input pixel stride */,
1994     576 /* output pixel stride */,
1995     w194.data(), w195.data(),
1996     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1997     0 /* flags */,
1998     &caches,
1999     &op84);
2000   if (status != xnn_status_success) {
2001     std::cerr << "failed to create operation #84" << std::endl;
2002     return ExecutionPlan();
2003   }
2004   operators.emplace_back(op84, xnn_delete_operator);
2005 
2006   xnn_operator_t op85 = nullptr;
2007   status = xnn_create_hardswish_nc_f16(
2008     576 /* channels */,
2009     576 /* input stride */,
2010     576 /* output stride */,
2011     0 /* flags */,
2012     &op85);
2013   if (status != xnn_status_success) {
2014     std::cerr << "failed to create operation #85" << std::endl;
2015     return ExecutionPlan();
2016   }
2017   operators.emplace_back(op85, xnn_delete_operator);
2018 
2019   xnn_operator_t op86 = nullptr;
2020   status = xnn_create_global_average_pooling_nwc_f16(
2021     576 /* channels */, 576 /* input stride */, 576 /* output stride */,
2022     -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
2023     0 /* flags */,
2024     &op86);
2025   if (status != xnn_status_success) {
2026     std::cerr << "failed to create operation #86" << std::endl;
2027     return ExecutionPlan();
2028   }
2029   operators.emplace_back(op86, xnn_delete_operator);
2030 
2031   xnn_operator_t op87 = nullptr;
2032   status = xnn_create_convolution2d_nhwc_f16(
2033     0 /* top padding */, 0 /* right padding */,
2034     0 /* bottom padding */, 0 /* left padding */,
2035     1 /* kernel height */, 1 /* kernel width */,
2036     1 /* subsampling height */, 1 /* subsampling width */,
2037     1 /* dilation_height */, 1 /* dilation_width */,
2038     1 /* groups */,
2039     576 /* input channels per group */,
2040     144 /* output_channels_per_group */,
2041     576 /* input pixel stride */,
2042     144 /* output pixel stride */,
2043     w196.data(), w197.data(),
2044     0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2045     0 /* flags */,
2046     &caches,
2047     &op87);
2048   if (status != xnn_status_success) {
2049     std::cerr << "failed to create operation #87" << std::endl;
2050     return ExecutionPlan();
2051   }
2052   operators.emplace_back(op87, xnn_delete_operator);
2053 
2054   xnn_operator_t op88 = nullptr;
2055   status = xnn_create_convolution2d_nhwc_f16(
2056     0 /* top padding */, 0 /* right padding */,
2057     0 /* bottom padding */, 0 /* left padding */,
2058     1 /* kernel height */, 1 /* kernel width */,
2059     1 /* subsampling height */, 1 /* subsampling width */,
2060     1 /* dilation_height */, 1 /* dilation_width */,
2061     1 /* groups */,
2062     144 /* input channels per group */,
2063     576 /* output_channels_per_group */,
2064     144 /* input pixel stride */,
2065     576 /* output pixel stride */,
2066     w198.data(), w199.data(),
2067     0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
2068     0 /* flags */,
2069     &caches,
2070     &op88);
2071   if (status != xnn_status_success) {
2072     std::cerr << "failed to create operation #88" << std::endl;
2073     return ExecutionPlan();
2074   }
2075   operators.emplace_back(op88, xnn_delete_operator);
2076 
2077   xnn_operator_t op89 = nullptr;
2078   status = xnn_create_multiply_nd_f16(
2079     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2080     0 /* flags */,
2081     &op89);
2082   if (status != xnn_status_success) {
2083     std::cerr << "failed to create operation #89" << std::endl;
2084     return ExecutionPlan();
2085   }
2086   operators.emplace_back(op89, xnn_delete_operator);
2087 
2088   xnn_operator_t op90 = nullptr;
2089   status = xnn_create_convolution2d_nhwc_f16(
2090     0 /* top padding */, 0 /* right padding */,
2091     0 /* bottom padding */, 0 /* left padding */,
2092     1 /* kernel height */, 1 /* kernel width */,
2093     1 /* subsampling height */, 1 /* subsampling width */,
2094     1 /* dilation_height */, 1 /* dilation_width */,
2095     1 /* groups */,
2096     576 /* input channels per group */,
2097     96 /* output_channels_per_group */,
2098     576 /* input pixel stride */,
2099     96 /* output pixel stride */,
2100     w200.data(), w201.data(),
2101     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2102     0 /* flags */,
2103     &caches,
2104     &op90);
2105   if (status != xnn_status_success) {
2106     std::cerr << "failed to create operation #90" << std::endl;
2107     return ExecutionPlan();
2108   }
2109   operators.emplace_back(op90, xnn_delete_operator);
2110 
2111   xnn_operator_t op91 = nullptr;
2112   status = xnn_create_add_nd_f16(
2113     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2114     0 /* flags */,
2115     &op91);
2116   if (status != xnn_status_success) {
2117     std::cerr << "failed to create operation #91" << std::endl;
2118     return ExecutionPlan();
2119   }
2120   operators.emplace_back(op91, xnn_delete_operator);
2121 
2122   xnn_operator_t op92 = nullptr;
2123   status = xnn_create_convolution2d_nhwc_f16(
2124     0 /* top padding */, 0 /* right padding */,
2125     0 /* bottom padding */, 0 /* left padding */,
2126     1 /* kernel height */, 1 /* kernel width */,
2127     1 /* subsampling height */, 1 /* subsampling width */,
2128     1 /* dilation_height */, 1 /* dilation_width */,
2129     1 /* groups */,
2130     96 /* input channels per group */,
2131     576 /* output_channels_per_group */,
2132     96 /* input pixel stride */,
2133     576 /* output pixel stride */,
2134     w202.data(), w203.data(),
2135     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2136     0 /* flags */,
2137     &caches,
2138     &op92);
2139   if (status != xnn_status_success) {
2140     std::cerr << "failed to create operation #92" << std::endl;
2141     return ExecutionPlan();
2142   }
2143   operators.emplace_back(op92, xnn_delete_operator);
2144 
2145   xnn_operator_t op93 = nullptr;
2146   status = xnn_create_hardswish_nc_f16(
2147     576 /* channels */,
2148     576 /* input stride */,
2149     576 /* output stride */,
2150     0 /* flags */,
2151     &op93);
2152   if (status != xnn_status_success) {
2153     std::cerr << "failed to create operation #93" << std::endl;
2154     return ExecutionPlan();
2155   }
2156   operators.emplace_back(op93, xnn_delete_operator);
2157 
2158   xnn_operator_t op94 = nullptr;
2159   status = xnn_create_global_average_pooling_nwc_f16(
2160     576 /* channels */, 576 /* input stride */, 576 /* output stride */,
2161     -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
2162     0 /* flags */,
2163     &op94);
2164   if (status != xnn_status_success) {
2165     std::cerr << "failed to create operation #94" << std::endl;
2166     return ExecutionPlan();
2167   }
2168   operators.emplace_back(op94, xnn_delete_operator);
2169 
2170   xnn_operator_t op95 = nullptr;
2171   status = xnn_create_convolution2d_nhwc_f16(
2172     0 /* top padding */, 0 /* right padding */,
2173     0 /* bottom padding */, 0 /* left padding */,
2174     1 /* kernel height */, 1 /* kernel width */,
2175     1 /* subsampling height */, 1 /* subsampling width */,
2176     1 /* dilation_height */, 1 /* dilation_width */,
2177     1 /* groups */,
2178     576 /* input channels per group */,
2179     1024 /* output_channels_per_group */,
2180     576 /* input pixel stride */,
2181     1024 /* output pixel stride */,
2182     w204.data(), w205.data(),
2183     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2184     0 /* flags */,
2185     &caches,
2186     &op95);
2187   if (status != xnn_status_success) {
2188     std::cerr << "failed to create operation #95" << std::endl;
2189     return ExecutionPlan();
2190   }
2191   operators.emplace_back(op95, xnn_delete_operator);
2192 
2193   xnn_operator_t op96 = nullptr;
2194   status = xnn_create_hardswish_nc_f16(
2195     1024 /* channels */,
2196     1024 /* input stride */,
2197     1024 /* output stride */,
2198     0 /* flags */,
2199     &op96);
2200   if (status != xnn_status_success) {
2201     std::cerr << "failed to create operation #96" << std::endl;
2202     return ExecutionPlan();
2203   }
2204   operators.emplace_back(op96, xnn_delete_operator);
2205 
2206   xnn_operator_t op97 = nullptr;
2207   status = xnn_create_global_average_pooling_nwc_f16(
2208     1024 /* channels */, 1024 /* input stride */, 1024 /* output stride */,
2209     -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
2210     0 /* flags */,
2211     &op97);
2212   if (status != xnn_status_success) {
2213     std::cerr << "failed to create operation #97" << std::endl;
2214     return ExecutionPlan();
2215   }
2216   operators.emplace_back(op97, xnn_delete_operator);
2217 
2218   xnn_operator_t op98 = nullptr;
2219   status = xnn_create_convolution2d_nhwc_f16(
2220     0 /* top padding */, 0 /* right padding */,
2221     0 /* bottom padding */, 0 /* left padding */,
2222     1 /* kernel height */, 1 /* kernel width */,
2223     1 /* subsampling height */, 1 /* subsampling width */,
2224     1 /* dilation_height */, 1 /* dilation_width */,
2225     1 /* groups */,
2226     1024 /* input channels per group */,
2227     1001 /* output_channels_per_group */,
2228     1024 /* input pixel stride */,
2229     1001 /* output pixel stride */,
2230     w206.data(), w207.data(),
2231     -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2232     0 /* flags */,
2233     &caches,
2234     &op98);
2235   if (status != xnn_status_success) {
2236     std::cerr << "failed to create operation #98" << std::endl;
2237     return ExecutionPlan();
2238   }
2239   operators.emplace_back(op98, xnn_delete_operator);
2240 
2241 #if XNN_PLATFORM_JIT
2242   xnn_finalize_code_memory(&code_cache.cache.code);
2243 #endif
2244 
2245   status = xnn_setup_convolution2d_nhwc_f16(
2246     op0,
2247     1 /* batch size */, 224 /* input height */, 224 /* input width */,
2248     v0.data() /* input */, v1.data() /* output */,
2249     threadpool /* threadpool */);
2250   if (status != xnn_status_success) {
2251     std::cerr << "failed to setup operation #0" << std::endl;
2252     return ExecutionPlan();
2253   }
2254 
2255   status = xnn_setup_hardswish_nc_f16(
2256     op1,
2257     12544 /* batch size */,
2258     v1.data() /* input */, v2.data() /* output */,
2259     threadpool /* threadpool */);
2260   if (status != xnn_status_success) {
2261     std::cerr << "failed to setup operation #1" << std::endl;
2262     return ExecutionPlan();
2263   }
2264 
2265   status = xnn_setup_convolution2d_nhwc_f16(
2266     op2,
2267     1 /* batch size */, 112 /* input height */, 112 /* input width */,
2268     v2.data() /* input */, v3.data() /* output */,
2269     threadpool /* threadpool */);
2270   if (status != xnn_status_success) {
2271     std::cerr << "failed to setup operation #2" << std::endl;
2272     return ExecutionPlan();
2273   }
2274 
2275   status = xnn_setup_global_average_pooling_nwc_f16(
2276     op3,
2277     1 /* batch size */, 3136 /* width */,
2278     v3.data() /* input */, v4.data() /* output */,
2279     threadpool /* threadpool */);
2280   if (status != xnn_status_success) {
2281     std::cerr << "failed to setup operation #3" << std::endl;
2282     return ExecutionPlan();
2283   }
2284 
2285   status = xnn_setup_convolution2d_nhwc_f16(
2286     op4,
2287     1 /* batch size */, 1 /* input height */, 1 /* input width */,
2288     v4.data() /* input */, v5.data() /* output */,
2289     threadpool /* threadpool */);
2290   if (status != xnn_status_success) {
2291     std::cerr << "failed to setup operation #4" << std::endl;
2292     return ExecutionPlan();
2293   }
2294 
2295   status = xnn_setup_convolution2d_nhwc_f16(
2296     op5,
2297     1 /* batch size */, 1 /* input height */, 1 /* input width */,
2298     v5.data() /* input */, v6.data() /* output */,
2299     threadpool /* threadpool */);
2300   if (status != xnn_status_success) {
2301     std::cerr << "failed to setup operation #5" << std::endl;
2302     return ExecutionPlan();
2303   }
2304 
2305   {
2306     const size_t a_shape[] = { 1, 56, 56, 16 };
2307     const size_t b_shape[] = { 1, 1, 1, 16 };
2308     status = xnn_setup_multiply_nd_f16(
2309       op6,
2310       4, a_shape, 4, b_shape,
2311       v3.data() /* a */, v6.data() /* b */, v7.data() /* output */,
2312       threadpool /* threadpool */);
2313   }
2314   if (status != xnn_status_success) {
2315     std::cerr << "failed to setup operation #6" << std::endl;
2316     return ExecutionPlan();
2317   }
2318 
2319   status = xnn_setup_convolution2d_nhwc_f16(
2320     op7,
2321     1 /* batch size */, 56 /* input height */, 56 /* input width */,
2322     v7.data() /* input */, v8.data() /* output */,
2323     threadpool /* threadpool */);
2324   if (status != xnn_status_success) {
2325     std::cerr << "failed to setup operation #7" << std::endl;
2326     return ExecutionPlan();
2327   }
2328 
2329   status = xnn_setup_convolution2d_nhwc_f16(
2330     op8,
2331     1 /* batch size */, 56 /* input height */, 56 /* input width */,
2332     v8.data() /* input */, v9.data() /* output */,
2333     threadpool /* threadpool */);
2334   if (status != xnn_status_success) {
2335     std::cerr << "failed to setup operation #8" << std::endl;
2336     return ExecutionPlan();
2337   }
2338 
2339   status = xnn_setup_convolution2d_nhwc_f16(
2340     op9,
2341     1 /* batch size */, 56 /* input height */, 56 /* input width */,
2342     v9.data() /* input */, v10.data() /* output */,
2343     threadpool /* threadpool */);
2344   if (status != xnn_status_success) {
2345     std::cerr << "failed to setup operation #9" << std::endl;
2346     return ExecutionPlan();
2347   }
2348 
2349   status = xnn_setup_convolution2d_nhwc_f16(
2350     op10,
2351     1 /* batch size */, 28 /* input height */, 28 /* input width */,
2352     v10.data() /* input */, v11.data() /* output */,
2353     threadpool /* threadpool */);
2354   if (status != xnn_status_success) {
2355     std::cerr << "failed to setup operation #10" << std::endl;
2356     return ExecutionPlan();
2357   }
2358 
2359   status = xnn_setup_convolution2d_nhwc_f16(
2360     op11,
2361     1 /* batch size */, 28 /* input height */, 28 /* input width */,
2362     v11.data() /* input */, v12.data() /* output */,
2363     threadpool /* threadpool */);
2364   if (status != xnn_status_success) {
2365     std::cerr << "failed to setup operation #11" << std::endl;
2366     return ExecutionPlan();
2367   }
2368 
2369   status = xnn_setup_convolution2d_nhwc_f16(
2370     op12,
2371     1 /* batch size */, 28 /* input height */, 28 /* input width */,
2372     v12.data() /* input */, v13.data() /* output */,
2373     threadpool /* threadpool */);
2374   if (status != xnn_status_success) {
2375     std::cerr << "failed to setup operation #12" << std::endl;
2376     return ExecutionPlan();
2377   }
2378 
2379   status = xnn_setup_convolution2d_nhwc_f16(
2380     op13,
2381     1 /* batch size */, 28 /* input height */, 28 /* input width */,
2382     v13.data() /* input */, v14.data() /* output */,
2383     threadpool /* threadpool */);
2384   if (status != xnn_status_success) {
2385     std::cerr << "failed to setup operation #13" << std::endl;
2386     return ExecutionPlan();
2387   }
2388 
2389   {
2390     const size_t a_shape[] = { 1, 28, 28, 24 };
2391     const size_t b_shape[] = { 1, 28, 28, 24 };
2392     status = xnn_setup_add_nd_f16(
2393       op14,
2394       4, a_shape, 4, b_shape,
2395       v14.data() /* a */, v11.data() /* b */, v15.data() /* output */,
2396       threadpool /* threadpool */);
2397   }
2398   if (status != xnn_status_success) {
2399     std::cerr << "failed to setup operation #14" << std::endl;
2400     return ExecutionPlan();
2401   }
2402 
2403   status = xnn_setup_convolution2d_nhwc_f16(
2404     op15,
2405     1 /* batch size */, 28 /* input height */, 28 /* input width */,
2406     v15.data() /* input */, v16.data() /* output */,
2407     threadpool /* threadpool */);
2408   if (status != xnn_status_success) {
2409     std::cerr << "failed to setup operation #15" << std::endl;
2410     return ExecutionPlan();
2411   }
2412 
2413   status = xnn_setup_hardswish_nc_f16(
2414     op16,
2415     784 /* batch size */,
2416     v16.data() /* input */, v17.data() /* output */,
2417     threadpool /* threadpool */);
2418   if (status != xnn_status_success) {
2419     std::cerr << "failed to setup operation #16" << std::endl;
2420     return ExecutionPlan();
2421   }
2422 
2423   status = xnn_setup_convolution2d_nhwc_f16(
2424     op17,
2425     1 /* batch size */, 28 /* input height */, 28 /* input width */,
2426     v17.data() /* input */, v18.data() /* output */,
2427     threadpool /* threadpool */);
2428   if (status != xnn_status_success) {
2429     std::cerr << "failed to setup operation #17" << std::endl;
2430     return ExecutionPlan();
2431   }
2432 
2433   status = xnn_setup_hardswish_nc_f16(
2434     op18,
2435     196 /* batch size */,
2436     v18.data() /* input */, v19.data() /* output */,
2437     threadpool /* threadpool */);
2438   if (status != xnn_status_success) {
2439     std::cerr << "failed to setup operation #18" << std::endl;
2440     return ExecutionPlan();
2441   }
2442 
2443   status = xnn_setup_global_average_pooling_nwc_f16(
2444     op19,
2445     1 /* batch size */, 196 /* width */,
2446     v19.data() /* input */, v20.data() /* output */,
2447     threadpool /* threadpool */);
2448   if (status != xnn_status_success) {
2449     std::cerr << "failed to setup operation #19" << std::endl;
2450     return ExecutionPlan();
2451   }
2452 
2453   status = xnn_setup_convolution2d_nhwc_f16(
2454     op20,
2455     1 /* batch size */, 1 /* input height */, 1 /* input width */,
2456     v20.data() /* input */, v21.data() /* output */,
2457     threadpool /* threadpool */);
2458   if (status != xnn_status_success) {
2459     std::cerr << "failed to setup operation #20" << std::endl;
2460     return ExecutionPlan();
2461   }
2462 
2463   status = xnn_setup_convolution2d_nhwc_f16(
2464     op21,
2465     1 /* batch size */, 1 /* input height */, 1 /* input width */,
2466     v21.data() /* input */, v22.data() /* output */,
2467     threadpool /* threadpool */);
2468   if (status != xnn_status_success) {
2469     std::cerr << "failed to setup operation #21" << std::endl;
2470     return ExecutionPlan();
2471   }
2472 
2473   {
2474     const size_t a_shape[] = { 1, 14, 14, 96 };
2475     const size_t b_shape[] = { 1, 1, 1, 96 };
2476     status = xnn_setup_multiply_nd_f16(
2477       op22,
2478       4, a_shape, 4, b_shape,
2479       v19.data() /* a */, v22.data() /* b */, v23.data() /* output */,
2480       threadpool /* threadpool */);
2481   }
2482   if (status != xnn_status_success) {
2483     std::cerr << "failed to setup operation #22" << std::endl;
2484     return ExecutionPlan();
2485   }
2486 
2487   status = xnn_setup_convolution2d_nhwc_f16(
2488     op23,
2489     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2490     v23.data() /* input */, v24.data() /* output */,
2491     threadpool /* threadpool */);
2492   if (status != xnn_status_success) {
2493     std::cerr << "failed to setup operation #23" << std::endl;
2494     return ExecutionPlan();
2495   }
2496 
2497   status = xnn_setup_convolution2d_nhwc_f16(
2498     op24,
2499     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2500     v24.data() /* input */, v25.data() /* output */,
2501     threadpool /* threadpool */);
2502   if (status != xnn_status_success) {
2503     std::cerr << "failed to setup operation #24" << std::endl;
2504     return ExecutionPlan();
2505   }
2506 
2507   status = xnn_setup_hardswish_nc_f16(
2508     op25,
2509     196 /* batch size */,
2510     v25.data() /* input */, v26.data() /* output */,
2511     threadpool /* threadpool */);
2512   if (status != xnn_status_success) {
2513     std::cerr << "failed to setup operation #25" << std::endl;
2514     return ExecutionPlan();
2515   }
2516 
2517   status = xnn_setup_convolution2d_nhwc_f16(
2518     op26,
2519     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2520     v26.data() /* input */, v27.data() /* output */,
2521     threadpool /* threadpool */);
2522   if (status != xnn_status_success) {
2523     std::cerr << "failed to setup operation #26" << std::endl;
2524     return ExecutionPlan();
2525   }
2526 
2527   status = xnn_setup_hardswish_nc_f16(
2528     op27,
2529     196 /* batch size */,
2530     v27.data() /* input */, v28.data() /* output */,
2531     threadpool /* threadpool */);
2532   if (status != xnn_status_success) {
2533     std::cerr << "failed to setup operation #27" << std::endl;
2534     return ExecutionPlan();
2535   }
2536 
2537   status = xnn_setup_global_average_pooling_nwc_f16(
2538     op28,
2539     1 /* batch size */, 196 /* width */,
2540     v28.data() /* input */, v29.data() /* output */,
2541     threadpool /* threadpool */);
2542   if (status != xnn_status_success) {
2543     std::cerr << "failed to setup operation #28" << std::endl;
2544     return ExecutionPlan();
2545   }
2546 
2547   status = xnn_setup_convolution2d_nhwc_f16(
2548     op29,
2549     1 /* batch size */, 1 /* input height */, 1 /* input width */,
2550     v29.data() /* input */, v30.data() /* output */,
2551     threadpool /* threadpool */);
2552   if (status != xnn_status_success) {
2553     std::cerr << "failed to setup operation #29" << std::endl;
2554     return ExecutionPlan();
2555   }
2556 
2557   status = xnn_setup_convolution2d_nhwc_f16(
2558     op30,
2559     1 /* batch size */, 1 /* input height */, 1 /* input width */,
2560     v30.data() /* input */, v31.data() /* output */,
2561     threadpool /* threadpool */);
2562   if (status != xnn_status_success) {
2563     std::cerr << "failed to setup operation #30" << std::endl;
2564     return ExecutionPlan();
2565   }
2566 
2567   {
2568     const size_t a_shape[] = { 1, 14, 14, 240 };
2569     const size_t b_shape[] = { 1, 1, 1, 240 };
2570     status = xnn_setup_multiply_nd_f16(
2571       op31,
2572       4, a_shape, 4, b_shape,
2573       v28.data() /* a */, v31.data() /* b */, v32.data() /* output */,
2574       threadpool /* threadpool */);
2575   }
2576   if (status != xnn_status_success) {
2577     std::cerr << "failed to setup operation #31" << std::endl;
2578     return ExecutionPlan();
2579   }
2580 
2581   status = xnn_setup_convolution2d_nhwc_f16(
2582     op32,
2583     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2584     v32.data() /* input */, v33.data() /* output */,
2585     threadpool /* threadpool */);
2586   if (status != xnn_status_success) {
2587     std::cerr << "failed to setup operation #32" << std::endl;
2588     return ExecutionPlan();
2589   }
2590 
2591   {
2592     const size_t a_shape[] = { 1, 14, 14, 40 };
2593     const size_t b_shape[] = { 1, 14, 14, 40 };
2594     status = xnn_setup_add_nd_f16(
2595       op33,
2596       4, a_shape, 4, b_shape,
2597       v33.data() /* a */, v24.data() /* b */, v34.data() /* output */,
2598       threadpool /* threadpool */);
2599   }
2600   if (status != xnn_status_success) {
2601     std::cerr << "failed to setup operation #33" << std::endl;
2602     return ExecutionPlan();
2603   }
2604 
2605   status = xnn_setup_convolution2d_nhwc_f16(
2606     op34,
2607     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2608     v34.data() /* input */, v35.data() /* output */,
2609     threadpool /* threadpool */);
2610   if (status != xnn_status_success) {
2611     std::cerr << "failed to setup operation #34" << std::endl;
2612     return ExecutionPlan();
2613   }
2614 
2615   status = xnn_setup_hardswish_nc_f16(
2616     op35,
2617     196 /* batch size */,
2618     v35.data() /* input */, v36.data() /* output */,
2619     threadpool /* threadpool */);
2620   if (status != xnn_status_success) {
2621     std::cerr << "failed to setup operation #35" << std::endl;
2622     return ExecutionPlan();
2623   }
2624 
2625   status = xnn_setup_convolution2d_nhwc_f16(
2626     op36,
2627     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2628     v36.data() /* input */, v37.data() /* output */,
2629     threadpool /* threadpool */);
2630   if (status != xnn_status_success) {
2631     std::cerr << "failed to setup operation #36" << std::endl;
2632     return ExecutionPlan();
2633   }
2634 
2635   status = xnn_setup_hardswish_nc_f16(
2636     op37,
2637     196 /* batch size */,
2638     v37.data() /* input */, v38.data() /* output */,
2639     threadpool /* threadpool */);
2640   if (status != xnn_status_success) {
2641     std::cerr << "failed to setup operation #37" << std::endl;
2642     return ExecutionPlan();
2643   }
2644 
2645   status = xnn_setup_global_average_pooling_nwc_f16(
2646     op38,
2647     1 /* batch size */, 196 /* width */,
2648     v38.data() /* input */, v39.data() /* output */,
2649     threadpool /* threadpool */);
2650   if (status != xnn_status_success) {
2651     std::cerr << "failed to setup operation #38" << std::endl;
2652     return ExecutionPlan();
2653   }
2654 
2655   status = xnn_setup_convolution2d_nhwc_f16(
2656     op39,
2657     1 /* batch size */, 1 /* input height */, 1 /* input width */,
2658     v39.data() /* input */, v40.data() /* output */,
2659     threadpool /* threadpool */);
2660   if (status != xnn_status_success) {
2661     std::cerr << "failed to setup operation #39" << std::endl;
2662     return ExecutionPlan();
2663   }
2664 
2665   status = xnn_setup_convolution2d_nhwc_f16(
2666     op40,
2667     1 /* batch size */, 1 /* input height */, 1 /* input width */,
2668     v40.data() /* input */, v41.data() /* output */,
2669     threadpool /* threadpool */);
2670   if (status != xnn_status_success) {
2671     std::cerr << "failed to setup operation #40" << std::endl;
2672     return ExecutionPlan();
2673   }
2674 
2675   {
2676     const size_t a_shape[] = { 1, 14, 14, 240 };
2677     const size_t b_shape[] = { 1, 1, 1, 240 };
2678     status = xnn_setup_multiply_nd_f16(
2679       op41,
2680       4, a_shape, 4, b_shape,
2681       v38.data() /* a */, v41.data() /* b */, v42.data() /* output */,
2682       threadpool /* threadpool */);
2683   }
2684   if (status != xnn_status_success) {
2685     std::cerr << "failed to setup operation #41" << std::endl;
2686     return ExecutionPlan();
2687   }
2688 
2689   status = xnn_setup_convolution2d_nhwc_f16(
2690     op42,
2691     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2692     v42.data() /* input */, v43.data() /* output */,
2693     threadpool /* threadpool */);
2694   if (status != xnn_status_success) {
2695     std::cerr << "failed to setup operation #42" << std::endl;
2696     return ExecutionPlan();
2697   }
2698 
2699   {
2700     const size_t a_shape[] = { 1, 14, 14, 40 };
2701     const size_t b_shape[] = { 1, 14, 14, 40 };
2702     status = xnn_setup_add_nd_f16(
2703       op43,
2704       4, a_shape, 4, b_shape,
2705       v43.data() /* a */, v34.data() /* b */, v44.data() /* output */,
2706       threadpool /* threadpool */);
2707   }
2708   if (status != xnn_status_success) {
2709     std::cerr << "failed to setup operation #43" << std::endl;
2710     return ExecutionPlan();
2711   }
2712 
2713   status = xnn_setup_convolution2d_nhwc_f16(
2714     op44,
2715     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2716     v44.data() /* input */, v45.data() /* output */,
2717     threadpool /* threadpool */);
2718   if (status != xnn_status_success) {
2719     std::cerr << "failed to setup operation #44" << std::endl;
2720     return ExecutionPlan();
2721   }
2722 
2723   status = xnn_setup_hardswish_nc_f16(
2724     op45,
2725     196 /* batch size */,
2726     v45.data() /* input */, v46.data() /* output */,
2727     threadpool /* threadpool */);
2728   if (status != xnn_status_success) {
2729     std::cerr << "failed to setup operation #45" << std::endl;
2730     return ExecutionPlan();
2731   }
2732 
2733   status = xnn_setup_convolution2d_nhwc_f16(
2734     op46,
2735     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2736     v46.data() /* input */, v47.data() /* output */,
2737     threadpool /* threadpool */);
2738   if (status != xnn_status_success) {
2739     std::cerr << "failed to setup operation #46" << std::endl;
2740     return ExecutionPlan();
2741   }
2742 
2743   status = xnn_setup_hardswish_nc_f16(
2744     op47,
2745     196 /* batch size */,
2746     v47.data() /* input */, v48.data() /* output */,
2747     threadpool /* threadpool */);
2748   if (status != xnn_status_success) {
2749     std::cerr << "failed to setup operation #47" << std::endl;
2750     return ExecutionPlan();
2751   }
2752 
2753   status = xnn_setup_global_average_pooling_nwc_f16(
2754     op48,
2755     1 /* batch size */, 196 /* width */,
2756     v48.data() /* input */, v49.data() /* output */,
2757     threadpool /* threadpool */);
2758   if (status != xnn_status_success) {
2759     std::cerr << "failed to setup operation #48" << std::endl;
2760     return ExecutionPlan();
2761   }
2762 
2763   status = xnn_setup_convolution2d_nhwc_f16(
2764     op49,
2765     1 /* batch size */, 1 /* input height */, 1 /* input width */,
2766     v49.data() /* input */, v50.data() /* output */,
2767     threadpool /* threadpool */);
2768   if (status != xnn_status_success) {
2769     std::cerr << "failed to setup operation #49" << std::endl;
2770     return ExecutionPlan();
2771   }
2772 
2773   status = xnn_setup_convolution2d_nhwc_f16(
2774     op50,
2775     1 /* batch size */, 1 /* input height */, 1 /* input width */,
2776     v50.data() /* input */, v51.data() /* output */,
2777     threadpool /* threadpool */);
2778   if (status != xnn_status_success) {
2779     std::cerr << "failed to setup operation #50" << std::endl;
2780     return ExecutionPlan();
2781   }
2782 
2783   {
2784     const size_t a_shape[] = { 1, 14, 14, 120 };
2785     const size_t b_shape[] = { 1, 1, 1, 120 };
2786     status = xnn_setup_multiply_nd_f16(
2787       op51,
2788       4, a_shape, 4, b_shape,
2789       v48.data() /* a */, v51.data() /* b */, v52.data() /* output */,
2790       threadpool /* threadpool */);
2791   }
2792   if (status != xnn_status_success) {
2793     std::cerr << "failed to setup operation #51" << std::endl;
2794     return ExecutionPlan();
2795   }
2796 
2797   status = xnn_setup_convolution2d_nhwc_f16(
2798     op52,
2799     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2800     v52.data() /* input */, v53.data() /* output */,
2801     threadpool /* threadpool */);
2802   if (status != xnn_status_success) {
2803     std::cerr << "failed to setup operation #52" << std::endl;
2804     return ExecutionPlan();
2805   }
2806 
2807   status = xnn_setup_convolution2d_nhwc_f16(
2808     op53,
2809     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2810     v53.data() /* input */, v54.data() /* output */,
2811     threadpool /* threadpool */);
2812   if (status != xnn_status_success) {
2813     std::cerr << "failed to setup operation #53" << std::endl;
2814     return ExecutionPlan();
2815   }
2816 
2817   status = xnn_setup_hardswish_nc_f16(
2818     op54,
2819     196 /* batch size */,
2820     v54.data() /* input */, v55.data() /* output */,
2821     threadpool /* threadpool */);
2822   if (status != xnn_status_success) {
2823     std::cerr << "failed to setup operation #54" << std::endl;
2824     return ExecutionPlan();
2825   }
2826 
2827   status = xnn_setup_convolution2d_nhwc_f16(
2828     op55,
2829     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2830     v55.data() /* input */, v56.data() /* output */,
2831     threadpool /* threadpool */);
2832   if (status != xnn_status_success) {
2833     std::cerr << "failed to setup operation #55" << std::endl;
2834     return ExecutionPlan();
2835   }
2836 
2837   status = xnn_setup_hardswish_nc_f16(
2838     op56,
2839     196 /* batch size */,
2840     v56.data() /* input */, v57.data() /* output */,
2841     threadpool /* threadpool */);
2842   if (status != xnn_status_success) {
2843     std::cerr << "failed to setup operation #56" << std::endl;
2844     return ExecutionPlan();
2845   }
2846 
2847   status = xnn_setup_global_average_pooling_nwc_f16(
2848     op57,
2849     1 /* batch size */, 196 /* width */,
2850     v57.data() /* input */, v58.data() /* output */,
2851     threadpool /* threadpool */);
2852   if (status != xnn_status_success) {
2853     std::cerr << "failed to setup operation #57" << std::endl;
2854     return ExecutionPlan();
2855   }
2856 
2857   status = xnn_setup_convolution2d_nhwc_f16(
2858     op58,
2859     1 /* batch size */, 1 /* input height */, 1 /* input width */,
2860     v58.data() /* input */, v59.data() /* output */,
2861     threadpool /* threadpool */);
2862   if (status != xnn_status_success) {
2863     std::cerr << "failed to setup operation #58" << std::endl;
2864     return ExecutionPlan();
2865   }
2866 
2867   status = xnn_setup_convolution2d_nhwc_f16(
2868     op59,
2869     1 /* batch size */, 1 /* input height */, 1 /* input width */,
2870     v59.data() /* input */, v60.data() /* output */,
2871     threadpool /* threadpool */);
2872   if (status != xnn_status_success) {
2873     std::cerr << "failed to setup operation #59" << std::endl;
2874     return ExecutionPlan();
2875   }
2876 
2877   {
2878     const size_t a_shape[] = { 1, 14, 14, 144 };
2879     const size_t b_shape[] = { 1, 1, 1, 144 };
2880     status = xnn_setup_multiply_nd_f16(
2881       op60,
2882       4, a_shape, 4, b_shape,
2883       v57.data() /* a */, v60.data() /* b */, v61.data() /* output */,
2884       threadpool /* threadpool */);
2885   }
2886   if (status != xnn_status_success) {
2887     std::cerr << "failed to setup operation #60" << std::endl;
2888     return ExecutionPlan();
2889   }
2890 
2891   status = xnn_setup_convolution2d_nhwc_f16(
2892     op61,
2893     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2894     v61.data() /* input */, v62.data() /* output */,
2895     threadpool /* threadpool */);
2896   if (status != xnn_status_success) {
2897     std::cerr << "failed to setup operation #61" << std::endl;
2898     return ExecutionPlan();
2899   }
2900 
2901   {
2902     const size_t a_shape[] = { 1, 14, 14, 48 };
2903     const size_t b_shape[] = { 1, 14, 14, 48 };
2904     status = xnn_setup_add_nd_f16(
2905       op62,
2906       4, a_shape, 4, b_shape,
2907       v62.data() /* a */, v53.data() /* b */, v63.data() /* output */,
2908       threadpool /* threadpool */);
2909   }
2910   if (status != xnn_status_success) {
2911     std::cerr << "failed to setup operation #62" << std::endl;
2912     return ExecutionPlan();
2913   }
2914 
2915   status = xnn_setup_convolution2d_nhwc_f16(
2916     op63,
2917     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2918     v63.data() /* input */, v64.data() /* output */,
2919     threadpool /* threadpool */);
2920   if (status != xnn_status_success) {
2921     std::cerr << "failed to setup operation #63" << std::endl;
2922     return ExecutionPlan();
2923   }
2924 
2925   status = xnn_setup_hardswish_nc_f16(
2926     op64,
2927     196 /* batch size */,
2928     v64.data() /* input */, v65.data() /* output */,
2929     threadpool /* threadpool */);
2930   if (status != xnn_status_success) {
2931     std::cerr << "failed to setup operation #64" << std::endl;
2932     return ExecutionPlan();
2933   }
2934 
2935   status = xnn_setup_convolution2d_nhwc_f16(
2936     op65,
2937     1 /* batch size */, 14 /* input height */, 14 /* input width */,
2938     v65.data() /* input */, v66.data() /* output */,
2939     threadpool /* threadpool */);
2940   if (status != xnn_status_success) {
2941     std::cerr << "failed to setup operation #65" << std::endl;
2942     return ExecutionPlan();
2943   }
2944 
2945   status = xnn_setup_hardswish_nc_f16(
2946     op66,
2947     49 /* batch size */,
2948     v66.data() /* input */, v67.data() /* output */,
2949     threadpool /* threadpool */);
2950   if (status != xnn_status_success) {
2951     std::cerr << "failed to setup operation #66" << std::endl;
2952     return ExecutionPlan();
2953   }
2954 
2955   status = xnn_setup_global_average_pooling_nwc_f16(
2956     op67,
2957     1 /* batch size */, 49 /* width */,
2958     v67.data() /* input */, v68.data() /* output */,
2959     threadpool /* threadpool */);
2960   if (status != xnn_status_success) {
2961     std::cerr << "failed to setup operation #67" << std::endl;
2962     return ExecutionPlan();
2963   }
2964 
2965   status = xnn_setup_convolution2d_nhwc_f16(
2966     op68,
2967     1 /* batch size */, 1 /* input height */, 1 /* input width */,
2968     v68.data() /* input */, v69.data() /* output */,
2969     threadpool /* threadpool */);
2970   if (status != xnn_status_success) {
2971     std::cerr << "failed to setup operation #68" << std::endl;
2972     return ExecutionPlan();
2973   }
2974 
2975   status = xnn_setup_convolution2d_nhwc_f16(
2976     op69,
2977     1 /* batch size */, 1 /* input height */, 1 /* input width */,
2978     v69.data() /* input */, v70.data() /* output */,
2979     threadpool /* threadpool */);
2980   if (status != xnn_status_success) {
2981     std::cerr << "failed to setup operation #69" << std::endl;
2982     return ExecutionPlan();
2983   }
2984 
2985   {
2986     const size_t a_shape[] = { 1, 7, 7, 288 };
2987     const size_t b_shape[] = { 1, 1, 1, 288 };
2988     status = xnn_setup_multiply_nd_f16(
2989       op70,
2990       4, a_shape, 4, b_shape,
2991       v67.data() /* a */, v70.data() /* b */, v71.data() /* output */,
2992       threadpool /* threadpool */);
2993   }
2994   if (status != xnn_status_success) {
2995     std::cerr << "failed to setup operation #70" << std::endl;
2996     return ExecutionPlan();
2997   }
2998 
2999   status = xnn_setup_convolution2d_nhwc_f16(
3000     op71,
3001     1 /* batch size */, 7 /* input height */, 7 /* input width */,
3002     v71.data() /* input */, v72.data() /* output */,
3003     threadpool /* threadpool */);
3004   if (status != xnn_status_success) {
3005     std::cerr << "failed to setup operation #71" << std::endl;
3006     return ExecutionPlan();
3007   }
3008 
3009   status = xnn_setup_convolution2d_nhwc_f16(
3010     op72,
3011     1 /* batch size */, 7 /* input height */, 7 /* input width */,
3012     v72.data() /* input */, v73.data() /* output */,
3013     threadpool /* threadpool */);
3014   if (status != xnn_status_success) {
3015     std::cerr << "failed to setup operation #72" << std::endl;
3016     return ExecutionPlan();
3017   }
3018 
3019   status = xnn_setup_hardswish_nc_f16(
3020     op73,
3021     49 /* batch size */,
3022     v73.data() /* input */, v74.data() /* output */,
3023     threadpool /* threadpool */);
3024   if (status != xnn_status_success) {
3025     std::cerr << "failed to setup operation #73" << std::endl;
3026     return ExecutionPlan();
3027   }
3028 
3029   status = xnn_setup_convolution2d_nhwc_f16(
3030     op74,
3031     1 /* batch size */, 7 /* input height */, 7 /* input width */,
3032     v74.data() /* input */, v75.data() /* output */,
3033     threadpool /* threadpool */);
3034   if (status != xnn_status_success) {
3035     std::cerr << "failed to setup operation #74" << std::endl;
3036     return ExecutionPlan();
3037   }
3038 
3039   status = xnn_setup_hardswish_nc_f16(
3040     op75,
3041     49 /* batch size */,
3042     v75.data() /* input */, v76.data() /* output */,
3043     threadpool /* threadpool */);
3044   if (status != xnn_status_success) {
3045     std::cerr << "failed to setup operation #75" << std::endl;
3046     return ExecutionPlan();
3047   }
3048 
3049   status = xnn_setup_global_average_pooling_nwc_f16(
3050     op76,
3051     1 /* batch size */, 49 /* width */,
3052     v76.data() /* input */, v77.data() /* output */,
3053     threadpool /* threadpool */);
3054   if (status != xnn_status_success) {
3055     std::cerr << "failed to setup operation #76" << std::endl;
3056     return ExecutionPlan();
3057   }
3058 
3059   status = xnn_setup_convolution2d_nhwc_f16(
3060     op77,
3061     1 /* batch size */, 1 /* input height */, 1 /* input width */,
3062     v77.data() /* input */, v78.data() /* output */,
3063     threadpool /* threadpool */);
3064   if (status != xnn_status_success) {
3065     std::cerr << "failed to setup operation #77" << std::endl;
3066     return ExecutionPlan();
3067   }
3068 
3069   status = xnn_setup_convolution2d_nhwc_f16(
3070     op78,
3071     1 /* batch size */, 1 /* input height */, 1 /* input width */,
3072     v78.data() /* input */, v79.data() /* output */,
3073     threadpool /* threadpool */);
3074   if (status != xnn_status_success) {
3075     std::cerr << "failed to setup operation #78" << std::endl;
3076     return ExecutionPlan();
3077   }
3078 
3079   {
3080     const size_t a_shape[] = { 1, 7, 7, 576 };
3081     const size_t b_shape[] = { 1, 1, 1, 576 };
3082     status = xnn_setup_multiply_nd_f16(
3083       op79,
3084       4, a_shape, 4, b_shape,
3085       v76.data() /* a */, v79.data() /* b */, v80.data() /* output */,
3086       threadpool /* threadpool */);
3087   }
3088   if (status != xnn_status_success) {
3089     std::cerr << "failed to setup operation #79" << std::endl;
3090     return ExecutionPlan();
3091   }
3092 
3093   status = xnn_setup_convolution2d_nhwc_f16(
3094     op80,
3095     1 /* batch size */, 7 /* input height */, 7 /* input width */,
3096     v80.data() /* input */, v81.data() /* output */,
3097     threadpool /* threadpool */);
3098   if (status != xnn_status_success) {
3099     std::cerr << "failed to setup operation #80" << std::endl;
3100     return ExecutionPlan();
3101   }
3102 
3103   {
3104     const size_t a_shape[] = { 1, 7, 7, 96 };
3105     const size_t b_shape[] = { 1, 7, 7, 96 };
3106     status = xnn_setup_add_nd_f16(
3107       op81,
3108       4, a_shape, 4, b_shape,
3109       v81.data() /* a */, v72.data() /* b */, v82.data() /* output */,
3110       threadpool /* threadpool */);
3111   }
3112   if (status != xnn_status_success) {
3113     std::cerr << "failed to setup operation #81" << std::endl;
3114     return ExecutionPlan();
3115   }
3116 
3117   status = xnn_setup_convolution2d_nhwc_f16(
3118     op82,
3119     1 /* batch size */, 7 /* input height */, 7 /* input width */,
3120     v82.data() /* input */, v83.data() /* output */,
3121     threadpool /* threadpool */);
3122   if (status != xnn_status_success) {
3123     std::cerr << "failed to setup operation #82" << std::endl;
3124     return ExecutionPlan();
3125   }
3126 
3127   status = xnn_setup_hardswish_nc_f16(
3128     op83,
3129     49 /* batch size */,
3130     v83.data() /* input */, v84.data() /* output */,
3131     threadpool /* threadpool */);
3132   if (status != xnn_status_success) {
3133     std::cerr << "failed to setup operation #83" << std::endl;
3134     return ExecutionPlan();
3135   }
3136 
3137   status = xnn_setup_convolution2d_nhwc_f16(
3138     op84,
3139     1 /* batch size */, 7 /* input height */, 7 /* input width */,
3140     v84.data() /* input */, v85.data() /* output */,
3141     threadpool /* threadpool */);
3142   if (status != xnn_status_success) {
3143     std::cerr << "failed to setup operation #84" << std::endl;
3144     return ExecutionPlan();
3145   }
3146 
3147   status = xnn_setup_hardswish_nc_f16(
3148     op85,
3149     49 /* batch size */,
3150     v85.data() /* input */, v86.data() /* output */,
3151     threadpool /* threadpool */);
3152   if (status != xnn_status_success) {
3153     std::cerr << "failed to setup operation #85" << std::endl;
3154     return ExecutionPlan();
3155   }
3156 
3157   status = xnn_setup_global_average_pooling_nwc_f16(
3158     op86,
3159     1 /* batch size */, 49 /* width */,
3160     v86.data() /* input */, v87.data() /* output */,
3161     threadpool /* threadpool */);
3162   if (status != xnn_status_success) {
3163     std::cerr << "failed to setup operation #86" << std::endl;
3164     return ExecutionPlan();
3165   }
3166 
3167   status = xnn_setup_convolution2d_nhwc_f16(
3168     op87,
3169     1 /* batch size */, 1 /* input height */, 1 /* input width */,
3170     v87.data() /* input */, v88.data() /* output */,
3171     threadpool /* threadpool */);
3172   if (status != xnn_status_success) {
3173     std::cerr << "failed to setup operation #87" << std::endl;
3174     return ExecutionPlan();
3175   }
3176 
3177   status = xnn_setup_convolution2d_nhwc_f16(
3178     op88,
3179     1 /* batch size */, 1 /* input height */, 1 /* input width */,
3180     v88.data() /* input */, v89.data() /* output */,
3181     threadpool /* threadpool */);
3182   if (status != xnn_status_success) {
3183     std::cerr << "failed to setup operation #88" << std::endl;
3184     return ExecutionPlan();
3185   }
3186 
3187   {
3188     const size_t a_shape[] = { 1, 7, 7, 576 };
3189     const size_t b_shape[] = { 1, 1, 1, 576 };
3190     status = xnn_setup_multiply_nd_f16(
3191       op89,
3192       4, a_shape, 4, b_shape,
3193       v86.data() /* a */, v89.data() /* b */, v90.data() /* output */,
3194       threadpool /* threadpool */);
3195   }
3196   if (status != xnn_status_success) {
3197     std::cerr << "failed to setup operation #89" << std::endl;
3198     return ExecutionPlan();
3199   }
3200 
3201   status = xnn_setup_convolution2d_nhwc_f16(
3202     op90,
3203     1 /* batch size */, 7 /* input height */, 7 /* input width */,
3204     v90.data() /* input */, v91.data() /* output */,
3205     threadpool /* threadpool */);
3206   if (status != xnn_status_success) {
3207     std::cerr << "failed to setup operation #90" << std::endl;
3208     return ExecutionPlan();
3209   }
3210 
3211   {
3212     const size_t a_shape[] = { 1, 7, 7, 96 };
3213     const size_t b_shape[] = { 1, 7, 7, 96 };
3214     status = xnn_setup_add_nd_f16(
3215       op91,
3216       4, a_shape, 4, b_shape,
3217       v91.data() /* a */, v82.data() /* b */, v92.data() /* output */,
3218       threadpool /* threadpool */);
3219   }
3220   if (status != xnn_status_success) {
3221     std::cerr << "failed to setup operation #91" << std::endl;
3222     return ExecutionPlan();
3223   }
3224 
3225   status = xnn_setup_convolution2d_nhwc_f16(
3226     op92,
3227     1 /* batch size */, 7 /* input height */, 7 /* input width */,
3228     v92.data() /* input */, v93.data() /* output */,
3229     threadpool /* threadpool */);
3230   if (status != xnn_status_success) {
3231     std::cerr << "failed to setup operation #92" << std::endl;
3232     return ExecutionPlan();
3233   }
3234 
3235   status = xnn_setup_hardswish_nc_f16(
3236     op93,
3237     49 /* batch size */,
3238     v93.data() /* input */, v94.data() /* output */,
3239     threadpool /* threadpool */);
3240   if (status != xnn_status_success) {
3241     std::cerr << "failed to setup operation #93" << std::endl;
3242     return ExecutionPlan();
3243   }
3244 
3245   status = xnn_setup_global_average_pooling_nwc_f16(
3246     op94,
3247     1 /* batch size */, 49 /* width */,
3248     v94.data() /* input */, v95.data() /* output */,
3249     threadpool /* threadpool */);
3250   if (status != xnn_status_success) {
3251     std::cerr << "failed to setup operation #94" << std::endl;
3252     return ExecutionPlan();
3253   }
3254 
3255   status = xnn_setup_convolution2d_nhwc_f16(
3256     op95,
3257     1 /* batch size */, 1 /* input height */, 1 /* input width */,
3258     v95.data() /* input */, v96.data() /* output */,
3259     threadpool /* threadpool */);
3260   if (status != xnn_status_success) {
3261     std::cerr << "failed to setup operation #95" << std::endl;
3262     return ExecutionPlan();
3263   }
3264 
3265   status = xnn_setup_hardswish_nc_f16(
3266     op96,
3267     1 /* batch size */,
3268     v96.data() /* input */, v97.data() /* output */,
3269     threadpool /* threadpool */);
3270   if (status != xnn_status_success) {
3271     std::cerr << "failed to setup operation #96" << std::endl;
3272     return ExecutionPlan();
3273   }
3274 
3275   status = xnn_setup_global_average_pooling_nwc_f16(
3276     op97,
3277     1 /* batch size */, 1 /* width */,
3278     v97.data() /* input */, v98.data() /* output */,
3279     threadpool /* threadpool */);
3280   if (status != xnn_status_success) {
3281     std::cerr << "failed to setup operation #97" << std::endl;
3282     return ExecutionPlan();
3283   }
3284 
3285   status = xnn_setup_convolution2d_nhwc_f16(
3286     op98,
3287     1 /* batch size */, 1 /* input height */, 1 /* input width */,
3288     v98.data() /* input */, v99.data() /* output */,
3289     threadpool /* threadpool */);
3290   if (status != xnn_status_success) {
3291     std::cerr << "failed to setup operation #98" << std::endl;
3292     return ExecutionPlan();
3293   }
3294 
3295   #pragma clang diagnostic push
3296   #pragma clang diagnostic ignored "-Wpessimizing-move"
3297   return operators;
3298   #pragma clang diagnostic pop
3299 }
3300 
3301 }  // namespace models
3302