• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2021 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# AArch32 assembly
7- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8__aarch32_neon_mlal_lane_cortex_a7
8  init: xnn_init_qc8_conv_minmax_fp32_neon_params
9  k-block: 8
10  assembly: true
11- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8__aarch32_neon_mlal_lane_prfm_cortex_a7
12  init: xnn_init_qc8_conv_minmax_fp32_neon_params
13  k-block: 8
14  assembly: true
15- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8__aarch32_neonv8_mlal_lane_cortex_a35
16  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
17  k-block: 8
18  assembly: true
19- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8__aarch32_neonv8_mlal_lane_prfm_cortex_a35
20  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
21  k-block: 8
22  assembly: true
23- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x8__aarch32_neon_mlal_lane_cortex_a7
24  init: xnn_init_qc8_conv_minmax_fp32_neon_params
25  k-block: 8
26  assembly: true
27- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x8__aarch32_neon_mlal_lane_cortex_a53
28  init: xnn_init_qc8_conv_minmax_fp32_neon_params
29  k-block: 8
30  assembly: true
31- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x8__aarch32_neon_mlal_lane_ld64
32  init: xnn_init_qc8_conv_minmax_fp32_neon_params
33  k-block: 8
34  assembly: true
35- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x8__aarch32_neon_mlal_lane_prfm_cortex_a7
36  init: xnn_init_qc8_conv_minmax_fp32_neon_params
37  k-block: 8
38  assembly: true
39- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x8__aarch32_neon_mlal_lane_prfm_cortex_a53
40  init: xnn_init_qc8_conv_minmax_fp32_neon_params
41  k-block: 8
42  assembly: true
43- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x8__aarch32_neon_mlal_lane_prfm_ld64
44  init: xnn_init_qc8_conv_minmax_fp32_neon_params
45  k-block: 8
46  assembly: true
47- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x8__aarch32_neonv8_mlal_lane_cortex_a35
48  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
49  k-block: 8
50  assembly: true
51- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x8__aarch32_neonv8_mlal_lane_cortex_a53
52  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
53  k-block: 8
54  assembly: true
55- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x8__aarch32_neonv8_mlal_lane_ld64
56  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
57  k-block: 8
58  assembly: true
59- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x8__aarch32_neonv8_mlal_lane_prfm_cortex_a35
60  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
61  k-block: 8
62  assembly: true
63- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x8__aarch32_neonv8_mlal_lane_prfm_cortex_a53
64  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
65  k-block: 8
66  assembly: true
67- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x8__aarch32_neonv8_mlal_lane_prfm_ld64
68  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
69  k-block: 8
70  assembly: true
71- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x8c4__aarch32_neondot_cortex_a55
72  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
73  k-block: 8
74  assembly: true
75- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x8c4__aarch32_neondot_ld64
76  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
77  k-block: 8
78  assembly: true
79# AArch64 assembly
80- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c8__aarch64_neon_mlal
81  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
82  k-block: 16
83  assembly: true
84- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c8__aarch64_neon_mlal_cortex_a53
85  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
86  k-block: 16
87  assembly: true
88- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c8__aarch64_neon_mlal_prfm
89  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
90  k-block: 16
91  assembly: true
92- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c8__aarch64_neon_mlal_prfm_cortex_a53
93  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
94  k-block: 16
95  assembly: true
96- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x16c4__aarch64_neondot_ld32
97  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
98  k-block: 4
99  assembly: true
100- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x16c4__aarch64_neondot_ld64
101  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
102  k-block: 8
103  assembly: true
104- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c8__aarch64_neon_mlal
105  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
106  k-block: 16
107  assembly: true
108- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c8__aarch64_neon_mlal_cortex_a53
109  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
110  k-block: 16
111  assembly: true
112- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c8__aarch64_neon_mlal_prfm
113  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
114  k-block: 16
115  assembly: true
116- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c8__aarch64_neon_mlal_prfm_cortex_a53
117  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
118  k-block: 16
119  assembly: true
120- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c8__aarch64_neon_mull
121  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
122  k-block: 8
123  assembly: true
124- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c16__aarch64_neon_mlal
125  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
126  k-block: 16
127  assembly: true
128- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x16__aarch64_neon_mlal_lane_cortex_a53
129  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
130  k-block: 8
131  assembly: true
132- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x16__aarch64_neon_mlal_lane_ld64
133  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
134  k-block: 8
135  assembly: true
136- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x16__aarch64_neon_mlal_lane_prfm_cortex_a53
137  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
138  k-block: 8
139  assembly: true
140- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x16__aarch64_neon_mlal_lane_prfm_ld64
141  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
142  k-block: 8
143  assembly: true
144- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x16c4__aarch64_neondot_cortex_a55
145  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
146  k-block: 16
147  assembly: true
148- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x16c4__aarch64_neondot_ld32
149  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
150  k-block: 4
151  assembly: true
152- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x16c4__aarch64_neondot_ld64
153  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
154  k-block: 8
155  assembly: true
156- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x16c4__aarch64_neondot_ld128
157  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
158  k-block: 16
159  assembly: true
160
161# ARMv6 SIMD
162- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x1c4__armsimd32
163  init: xnn_init_qc8_conv_minmax_fp32_armsimd32_params
164  k-block: 4
165- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x2c4__armsimd32
166  init: xnn_init_qc8_conv_minmax_fp32_armsimd32_params
167  k-block: 4
168- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x1c4__armsimd32
169  init: xnn_init_qc8_conv_minmax_fp32_armsimd32_params
170  k-block: 4
171- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x2c4__armsimd32
172  init: xnn_init_qc8_conv_minmax_fp32_armsimd32_params
173  k-block: 4
174
175# ARM NEON
176- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8__neon_mlal_lane
177  init: xnn_init_qc8_conv_minmax_fp32_neon_params
178  k-block: 8
179- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8__neon_mlal_lane_prfm
180  init: xnn_init_qc8_conv_minmax_fp32_neon_params
181  k-block: 8
182- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8__neonv8_mlal_lane
183  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
184  k-block: 8
185- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8__neonv8_mlal_lane_prfm
186  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
187  k-block: 8
188- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c2__neon_mlal_dup
189  init: xnn_init_qc8_conv_minmax_fp32_neon_params
190  k-block: 16
191- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c2__neon_mlal_ld1r
192  init: xnn_init_qc8_conv_minmax_fp32_neon_params
193  k-block: 16
194- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c2__neon_mlal_ld2r
195  init: xnn_init_qc8_conv_minmax_fp32_neon_params
196  k-block: 16
197- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c2__neon_mlal_ld4r
198  init: xnn_init_qc8_conv_minmax_fp32_neon_params
199  k-block: 16
200- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c2__neonv8_mlal_dup
201  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
202  k-block: 16
203- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c2__neonv8_mlal_ld1r
204  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
205  k-block: 16
206- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c2__neonv8_mlal_ld2r
207  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
208  k-block: 16
209- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c2__neonv8_mlal_ld4r
210  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
211  k-block: 16
212- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c2s4__neon_mlal
213  init: xnn_init_qc8_conv_minmax_fp32_neon_params
214  k-block: 16
215- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c2s4__neonv8_mlal
216  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
217  k-block: 16
218- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c4__neon_mlal_dup
219  init: xnn_init_qc8_conv_minmax_fp32_neon_params
220  k-block: 16
221- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c4__neon_mlal_ld1r
222  init: xnn_init_qc8_conv_minmax_fp32_neon_params
223  k-block: 16
224- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c4__neon_mlal_ld2r
225  init: xnn_init_qc8_conv_minmax_fp32_neon_params
226  k-block: 16
227- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c4__neondot
228  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
229  k-block: 8
230- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c4__neonv8_mlal_dup
231  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
232  k-block: 16
233- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c4__neonv8_mlal_ld1r
234  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
235  k-block: 16
236- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c4__neonv8_mlal_ld2r
237  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
238  k-block: 16
239- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c4s2__neon_mlal
240  init: xnn_init_qc8_conv_minmax_fp32_neon_params
241  k-block: 16
242- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c4s2__neonv8_mlal
243  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
244  k-block: 16
245- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c8__neon_mlal
246  init: xnn_init_qc8_conv_minmax_fp32_neon_params
247  k-block: 16
248- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c8__neonv8_mlal
249  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
250  k-block: 16
251- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x16__neon_mlal_lane
252  init: xnn_init_qc8_conv_minmax_fp32_neon_params
253  k-block: 8
254- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x16__neon_mlal_lane_prfm
255  init: xnn_init_qc8_conv_minmax_fp32_neon_params
256  k-block: 8
257- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x16__neonv8_mlal_lane
258  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
259  k-block: 8
260- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x16__neonv8_mlal_lane_prfm
261  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
262  k-block: 8
263- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x16c4__neondot
264  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
265  k-block: 8
266- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8__neon_mlal_lane
267  init: xnn_init_qc8_conv_minmax_fp32_neon_params
268  k-block: 8
269- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8__neon_mlal_lane_prfm
270  init: xnn_init_qc8_conv_minmax_fp32_neon_params
271  k-block: 8
272- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8__neonv8_mlal_lane
273  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
274  k-block: 8
275- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8__neonv8_mlal_lane_prfm
276  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
277  k-block: 8
278- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c2__neon_mlal_dup
279  init: xnn_init_qc8_conv_minmax_fp32_neon_params
280  k-block: 16
281- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c2__neon_mlal_ld1r
282  init: xnn_init_qc8_conv_minmax_fp32_neon_params
283  k-block: 16
284- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c2__neon_mlal_ld2r
285  init: xnn_init_qc8_conv_minmax_fp32_neon_params
286  k-block: 16
287- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c2__neon_mlal_ld4r
288  init: xnn_init_qc8_conv_minmax_fp32_neon_params
289  k-block: 16
290- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c2__neonv8_mlal_dup
291  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
292  k-block: 16
293- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c2__neonv8_mlal_ld1r
294  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
295  k-block: 16
296- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c2__neonv8_mlal_ld2r
297  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
298  k-block: 16
299- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c2__neonv8_mlal_ld4r
300  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
301  k-block: 16
302- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c2s4__neon_mlal
303  init: xnn_init_qc8_conv_minmax_fp32_neon_params
304  k-block: 16
305- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c2s4__neonv8_mlal
306  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
307  k-block: 16
308- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c4__neon_mlal_dup
309  init: xnn_init_qc8_conv_minmax_fp32_neon_params
310  k-block: 16
311- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c4__neon_mlal_ld1r
312  init: xnn_init_qc8_conv_minmax_fp32_neon_params
313  k-block: 16
314- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c4__neon_mlal_ld2r
315  init: xnn_init_qc8_conv_minmax_fp32_neon_params
316  k-block: 16
317- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c4__neonv8_mlal_dup
318  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
319  k-block: 16
320- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c4__neonv8_mlal_ld1r
321  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
322  k-block: 16
323- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c4__neonv8_mlal_ld2r
324  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
325  k-block: 16
326- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c4s2__neon_mlal
327  init: xnn_init_qc8_conv_minmax_fp32_neon_params
328  k-block: 16
329- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c4s2__neonv8_mlal
330  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
331  k-block: 16
332- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c8__neon_mlal
333  init: xnn_init_qc8_conv_minmax_fp32_neon_params
334  k-block: 16
335- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c8__neonv8_mlal
336  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
337  k-block: 16
338- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x16__neon_mlal_lane
339  init: xnn_init_qc8_conv_minmax_fp32_neon_params
340  k-block: 8
341- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x16__neon_mlal_lane_prfm
342  init: xnn_init_qc8_conv_minmax_fp32_neon_params
343  k-block: 8
344- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x16__neonv8_mlal_lane
345  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
346  k-block: 8
347- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x16__neonv8_mlal_lane_prfm
348  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
349  k-block: 8
350- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x8__neon_mlal_lane
351  init: xnn_init_qc8_conv_minmax_fp32_neon_params
352  k-block: 8
353- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x8__neon_mlal_lane_prfm
354  init: xnn_init_qc8_conv_minmax_fp32_neon_params
355  k-block: 8
356- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x8__neonv8_mlal_lane
357  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
358  k-block: 8
359- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x8__neonv8_mlal_lane_prfm
360  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
361  k-block: 8
362- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x16__neon_mlal_lane
363  init: xnn_init_qc8_conv_minmax_fp32_neon_params
364  k-block: 8
365- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x16__neon_mlal_lane_prfm
366  init: xnn_init_qc8_conv_minmax_fp32_neon_params
367  k-block: 8
368- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x16__neonv8_mlal_lane
369  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
370  k-block: 8
371- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x16__neonv8_mlal_lane_prfm
372  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
373  k-block: 8
374- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x8__neon_mlal_lane
375  init: xnn_init_qc8_conv_minmax_fp32_neon_params
376  k-block: 8
377- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x8__neon_mlal_lane_prfm
378  init: xnn_init_qc8_conv_minmax_fp32_neon_params
379  k-block: 8
380- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x8__neonv8_mlal_lane
381  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
382  k-block: 8
383- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x8__neonv8_mlal_lane_prfm
384  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
385  k-block: 8
386- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x8c4__neondot
387  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
388  k-block: 8
389- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x16__neon_mlal_lane
390  init: xnn_init_qc8_conv_minmax_fp32_neon_params
391  k-block: 8
392- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x16__neon_mlal_lane_prfm
393  init: xnn_init_qc8_conv_minmax_fp32_neon_params
394  k-block: 8
395- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x16__neonv8_mlal_lane
396  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
397  k-block: 8
398- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x16__neonv8_mlal_lane_prfm
399  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
400  k-block: 8
401- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x16c4__neondot
402  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
403  k-block: 8
404- name: xnn_qc8_gemm_minmax_fp32_ukernel_6x8__neon_mlal_lane
405  init: xnn_init_qc8_conv_minmax_fp32_neon_params
406  k-block: 8
407- name: xnn_qc8_gemm_minmax_fp32_ukernel_6x8__neon_mlal_lane_prfm
408  init: xnn_init_qc8_conv_minmax_fp32_neon_params
409  k-block: 8
410- name: xnn_qc8_gemm_minmax_fp32_ukernel_6x8__neonv8_mlal_lane
411  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
412  k-block: 8
413- name: xnn_qc8_gemm_minmax_fp32_ukernel_6x8__neonv8_mlal_lane_prfm
414  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
415  k-block: 8
416- name: xnn_qc8_gemm_minmax_fp32_ukernel_6x8c4__neondot
417  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
418  k-block: 8
419- name: xnn_qc8_gemm_minmax_fp32_ukernel_6x16__neon_mlal_lane
420  init: xnn_init_qc8_conv_minmax_fp32_neon_params
421  k-block: 8
422- name: xnn_qc8_gemm_minmax_fp32_ukernel_6x16__neon_mlal_lane_prfm
423  init: xnn_init_qc8_conv_minmax_fp32_neon_params
424  k-block: 8
425- name: xnn_qc8_gemm_minmax_fp32_ukernel_6x16__neonv8_mlal_lane
426  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
427  k-block: 8
428- name: xnn_qc8_gemm_minmax_fp32_ukernel_6x16__neonv8_mlal_lane_prfm
429  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
430  k-block: 8
431- name: xnn_qc8_gemm_minmax_fp32_ukernel_6x16c4__neondot
432  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
433  k-block: 8
434- name: xnn_qc8_gemm_minmax_fp32_ukernel_8x8c4__neondot
435  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
436  k-block: 8
437- name: xnn_qc8_gemm_minmax_fp32_ukernel_8x16c4__neondot
438  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
439  k-block: 8
440# x86 SSE
441- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c2__sse2_ld64
442  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
443  k-block: 8
444- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c2__sse41_ld64
445  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
446  k-block: 8
447- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c2__sse2_ld64
448  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
449  k-block: 8
450- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c2__sse41_ld64
451  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
452  k-block: 8
453- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c2__sse2_ld64
454  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
455  k-block: 8
456- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c2__sse41_ld64
457  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
458  k-block: 8
459- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4c2__sse2_ld64
460  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
461  k-block: 8
462- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4c2__sse41_ld64
463  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
464  k-block: 8
465# x86 AVX
466- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c2__avx_ld64
467  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
468  k-block: 8
469- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c2__xop_ld64
470  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
471  k-block: 8
472- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c2__avx_ld64
473  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
474  k-block: 8
475- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c2__xop_ld64
476  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
477  k-block: 8
478- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c2__avx_ld64
479  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
480  k-block: 8
481- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c2__xop_ld64
482  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
483  k-block: 8
484- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4c2__avx_ld64
485  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
486  k-block: 8
487- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4c2__xop_ld64
488  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
489  k-block: 8
490# x86 SSE
491- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c2__sse2_ld128
492  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
493  k-block: 8
494- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c2__sse41_ld128
495  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
496  k-block: 8
497- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c2__sse2_ld128
498  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
499  k-block: 8
500- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c2__sse41_ld128
501  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
502  k-block: 8
503- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c2__sse2_ld128
504  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
505  k-block: 8
506- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c2__sse41_ld128
507  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
508  k-block: 8
509- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4c2__sse2_ld128
510  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
511  k-block: 8
512- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4c2__sse41_ld128
513  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
514  k-block: 8
515# x86 AVX
516- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c2__avx_ld128
517  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
518  k-block: 8
519- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c2__xop_ld128
520  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
521  k-block: 8
522- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c2__avx_ld128
523  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
524  k-block: 8
525- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c2__xop_ld128
526  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
527  k-block: 8
528- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c2__avx_ld128
529  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
530  k-block: 8
531- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c2__xop_ld128
532  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
533  k-block: 8
534- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4c2__avx_ld128
535  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
536  k-block: 8
537- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4c2__xop_ld128
538  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
539  k-block: 8
540# x86 SSE
541- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c2s4__sse2_ld64
542  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
543  k-block: 8
544- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c2s4__sse41_ld64
545  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
546  k-block: 8
547- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c2s4__sse2_ld64
548  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
549  k-block: 8
550- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c2s4__sse41_ld64
551  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
552  k-block: 8
553- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c2s4__sse2_ld64
554  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
555  k-block: 8
556- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c2s4__sse41_ld64
557  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
558  k-block: 8
559- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4c2s4__sse2_ld64
560  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
561  k-block: 8
562- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4c2s4__sse41_ld64
563  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
564  k-block: 8
565# x86 AVX
566- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c2s4__avx_ld64
567  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
568  k-block: 8
569- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c2s4__xop_ld64
570  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
571  k-block: 8
572- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c2s4__avx_ld64
573  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
574  k-block: 8
575- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c2s4__xop_ld64
576  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
577  k-block: 8
578- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c2s4__avx_ld64
579  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
580  k-block: 8
581- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c2s4__xop_ld64
582  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
583  k-block: 8
584- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4c2s4__avx_ld64
585  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
586  k-block: 8
587- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4c2s4__xop_ld64
588  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
589  k-block: 8
590# x86 SSE
591- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c2s4__sse2_ld128
592  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
593  k-block: 8
594- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c2s4__sse41_ld128
595  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
596  k-block: 8
597- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c2s4__sse2_ld128
598  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
599  k-block: 8
600- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c2s4__sse41_ld128
601  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
602  k-block: 8
603- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c2s4__sse2_ld128
604  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
605  k-block: 8
606- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c2s4__sse41_ld128
607  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
608  k-block: 8
609- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4c2s4__sse2_ld128
610  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
611  k-block: 8
612- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4c2s4__sse41_ld128
613  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
614  k-block: 8
615# x86 AVX
616- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c2s4__avx_ld128
617  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
618  k-block: 8
619- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c2s4__xop_ld128
620  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
621  k-block: 8
622- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c2s4__avx_ld128
623  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
624  k-block: 8
625- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c2s4__xop_ld128
626  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
627  k-block: 8
628- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c2s4__avx_ld128
629  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
630  k-block: 8
631- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c2s4__xop_ld128
632  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
633  k-block: 8
634- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4c2s4__avx_ld128
635  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
636  k-block: 8
637- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4c2s4__xop_ld128
638  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
639  k-block: 8
640# x86 SSE
641- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c8__sse2_ld64
642  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
643  k-block: 8
644- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c8__sse41_ld64
645  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
646  k-block: 8
647- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c8__sse2_ld64
648  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
649  k-block: 8
650- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c8__sse41_ld64
651  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
652  k-block: 8
653- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c8__sse2_ld64
654  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
655  k-block: 8
656- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c8__sse41_ld64
657  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
658  k-block: 8
659# x86 AVX
660- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c8__avx_ld64
661  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
662  k-block: 8
663- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c8__xop_ld64
664  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
665  k-block: 8
666- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c8__avx_ld64
667  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
668  k-block: 8
669- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c8__xop_ld64
670  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
671  k-block: 8
672- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c8__avx_ld64
673  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
674  k-block: 8
675- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c8__xop_ld64
676  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
677  k-block: 8
678# x86 SSE
679- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c8__sse2_ld128
680  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
681  k-block: 8
682- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c8__sse41_ld128
683  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
684  k-block: 8
685- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c8__sse2_ld128
686  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
687  k-block: 8
688- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c8__sse41_ld128
689  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
690  k-block: 8
691- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c8__sse2_ld128
692  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
693  k-block: 8
694- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c8__sse41_ld128
695  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
696  k-block: 8
697# x86 AVX
698- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c8__avx_ld128
699  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
700  k-block: 8
701- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c8__xop_ld128
702  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
703  k-block: 8
704- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c8__avx_ld128
705  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
706  k-block: 8
707- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c8__xop_ld128
708  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
709  k-block: 8
710- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c8__avx_ld128
711  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
712  k-block: 8
713- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c8__xop_ld128
714  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
715  k-block: 8
716# x86 AVX
717- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x8c8__avx2
718  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
719  k-block: 8
720- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x8c8__avx2
721  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
722  k-block: 8
723- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x8c8__avx2
724  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
725  k-block: 8
726- name: xnn_qc8_gemm_xw_minmax_fp32_ukernel_1x8c8__avx2
727  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
728  k-block: 8
729- name: xnn_qc8_gemm_xw_minmax_fp32_ukernel_2x8c8__avx2
730  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
731  k-block: 8
732- name: xnn_qc8_gemm_xw_minmax_fp32_ukernel_3x8c8__avx2
733  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
734  k-block: 8
735# x86 AVX512
736- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x16c8__avx512skx
737  init: xnn_init_qc8_conv_minmax_fp32_avx512_params
738  k-block: 8
739- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x16c8__avx512skx
740  init: xnn_init_qc8_conv_minmax_fp32_avx512_params
741  k-block: 8
742- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x16c8__avx512skx
743  init: xnn_init_qc8_conv_minmax_fp32_avx512_params
744  k-block: 8
745- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x16c8__avx512skx
746  init: xnn_init_qc8_conv_minmax_fp32_avx512_params
747  k-block: 8
748# WAsm SIMD
749- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c2__wasmsimd_dot16x2_ld64
750  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
751  k-block: 8
752- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c2__wasmsimd_dot16x2_ld128
753  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
754  k-block: 8
755- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c2s4__wasmsimd_dot16x2_ld64
756  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
757  k-block: 8
758- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c2s4__wasmsimd_dot16x2_ld128
759  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
760  k-block: 8
761- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c8__wasmsimd_dot16x2_ld64
762  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
763  k-block: 8
764- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4c8__wasmsimd_dot16x2_ld128
765  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
766  k-block: 8
767- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c2__wasmsimd_dot16x2_ld64
768  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
769  k-block: 8
770- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c2__wasmsimd_dot16x2_ld128
771  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
772  k-block: 8
773- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c2s4__wasmsimd_dot16x2_ld64
774  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
775  k-block: 8
776- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c2s4__wasmsimd_dot16x2_ld128
777  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
778  k-block: 8
779- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c8__wasmsimd_dot16x2_ld64
780  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
781  k-block: 8
782- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4c8__wasmsimd_dot16x2_ld128
783  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
784  k-block: 8
785- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c2__wasmsimd_dot16x2_ld64
786  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
787  k-block: 8
788- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c2__wasmsimd_dot16x2_ld128
789  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
790  k-block: 8
791- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c2s4__wasmsimd_dot16x2_ld64
792  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
793  k-block: 8
794- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c2s4__wasmsimd_dot16x2_ld128
795  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
796  k-block: 8
797- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c8__wasmsimd_dot16x2_ld64
798  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
799  k-block: 8
800- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4c8__wasmsimd_dot16x2_ld128
801  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
802  k-block: 8
803- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4c2__wasmsimd_dot16x2_ld64
804  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
805  k-block: 8
806- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4c2__wasmsimd_dot16x2_ld128
807  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
808  k-block: 8
809- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4c2s4__wasmsimd_dot16x2_ld64
810  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
811  k-block: 8
812- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4c2s4__wasmsimd_dot16x2_ld128
813  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
814  k-block: 8
815- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4c8__wasmsimd_dot16x2_ld64
816  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
817  k-block: 8
818- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4c8__wasmsimd_dot16x2_ld128
819  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
820  k-block: 8
821# WAsm
822- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x2__wasm_fmagic
823  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
824  k-block: 1
825- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4__wasm_fmagic
826  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
827  k-block: 1
828- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x2__wasm_fmagic
829  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
830  k-block: 1
831- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4__wasm_fmagic
832  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
833  k-block: 1
834- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x2__wasm_fmagic
835  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
836  k-block: 1
837- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4__wasm_fmagic
838  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
839  k-block: 1
840- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x2__wasm_fmagic
841  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
842  k-block: 1
843- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4__wasm_fmagic
844  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
845  k-block: 1
846# Scalar
847- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x2__scalar_fmagic
848  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
849  k-block: 1
850- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x2__scalar_imagic
851  init: xnn_init_qc8_conv_minmax_fp32_scalar_imagic_params
852  k-block: 1
853- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x2__scalar_lrintf
854  init: xnn_init_qc8_conv_minmax_fp32_scalar_lrintf_params
855  k-block: 1
856- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4__scalar_fmagic
857  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
858  k-block: 1
859- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4__scalar_imagic
860  init: xnn_init_qc8_conv_minmax_fp32_scalar_imagic_params
861  k-block: 1
862- name: xnn_qc8_gemm_minmax_fp32_ukernel_1x4__scalar_lrintf
863  init: xnn_init_qc8_conv_minmax_fp32_scalar_lrintf_params
864  k-block: 1
865- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x2__scalar_fmagic
866  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
867  k-block: 1
868- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x2__scalar_imagic
869  init: xnn_init_qc8_conv_minmax_fp32_scalar_imagic_params
870  k-block: 1
871- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x2__scalar_lrintf
872  init: xnn_init_qc8_conv_minmax_fp32_scalar_lrintf_params
873  k-block: 1
874- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4__scalar_fmagic
875  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
876  k-block: 1
877- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4__scalar_imagic
878  init: xnn_init_qc8_conv_minmax_fp32_scalar_imagic_params
879  k-block: 1
880- name: xnn_qc8_gemm_minmax_fp32_ukernel_2x4__scalar_lrintf
881  init: xnn_init_qc8_conv_minmax_fp32_scalar_lrintf_params
882  k-block: 1
883- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x2__scalar_fmagic
884  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
885  k-block: 1
886- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x2__scalar_imagic
887  init: xnn_init_qc8_conv_minmax_fp32_scalar_imagic_params
888  k-block: 1
889- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x2__scalar_lrintf
890  init: xnn_init_qc8_conv_minmax_fp32_scalar_lrintf_params
891  k-block: 1
892- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4__scalar_fmagic
893  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
894  k-block: 1
895- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4__scalar_imagic
896  init: xnn_init_qc8_conv_minmax_fp32_scalar_imagic_params
897  k-block: 1
898- name: xnn_qc8_gemm_minmax_fp32_ukernel_3x4__scalar_lrintf
899  init: xnn_init_qc8_conv_minmax_fp32_scalar_lrintf_params
900  k-block: 1
901- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x2__scalar_fmagic
902  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
903  k-block: 1
904- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x2__scalar_imagic
905  init: xnn_init_qc8_conv_minmax_fp32_scalar_imagic_params
906  k-block: 1
907- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x2__scalar_lrintf
908  init: xnn_init_qc8_conv_minmax_fp32_scalar_lrintf_params
909  k-block: 1
910- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4__scalar_fmagic
911  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
912  k-block: 1
913- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4__scalar_imagic
914  init: xnn_init_qc8_conv_minmax_fp32_scalar_imagic_params
915  k-block: 1
916- name: xnn_qc8_gemm_minmax_fp32_ukernel_4x4__scalar_lrintf
917  init: xnn_init_qc8_conv_minmax_fp32_scalar_lrintf_params
918  k-block: 1
919# AArch32 JIT assembly
920- name: xnn_generate_qc8_gemm_fp32_ukernel_4x8__aarch32_neonv8_mlal_lane_ld64
921  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
922  k-block: 8
923  assembly: true
924- name: xnn_generate_qc8_gemm_fp32_ukernel_4x8__aarch32_neonv8_mlal_lane_prfm_ld64
925  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
926  k-block: 8
927  assembly: true
928- name: xnn_generate_qc8_gemm_fp32_ukernel_4x8c4__aarch32_neondot_ld64
929  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
930  k-block: 8
931  assembly: true
932