# Copyright 2021 Google LLC
#
# This source code is licensed under the BSD-style license found in the
# LICENSE file in the root directory of this source tree.

# ARM NEON
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x3__aarch32_neonv8_mla8_cortex_a35
  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x3__neon_mla8_ld64
  init: xnn_init_qc8_conv_minmax_fp32_neon_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x3__neonv8_mla8_ld64
  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x9__neon_mla8_ld64
  init: xnn_init_qc8_conv_minmax_fp32_neon_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x9__neon_mul8_ld64
  init: xnn_init_qc8_conv_minmax_fp32_neon_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x9__neon_mul16
  init: xnn_init_qc8_conv_minmax_fp32_neon_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x9__neonv8_mla8_ld64
  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x9__neonv8_mul8_ld64
  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x9__neonv8_mul16
  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x25__neon_mla8_ld64
  init: xnn_init_qc8_conv_minmax_fp32_neon_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x25__neon_mul8_ld64
  init: xnn_init_qc8_conv_minmax_fp32_neon_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x25__neon_mul16
  init: xnn_init_qc8_conv_minmax_fp32_neon_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x25__neonv8_mla8_ld64
  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x25__neonv8_mul8_ld64
  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x25__neonv8_mul16
  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x3__aarch32_neonv8_mla8_cortex_a35
  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x3__neon_mla8_ld64
  init: xnn_init_qc8_conv_minmax_fp32_neon_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x3__neon_mla8_ld128
  init: xnn_init_qc8_conv_minmax_fp32_neon_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x3__neonv8_mla8_ld64
  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x3__neonv8_mla8_ld128
  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__neon_mla8_ld64
  init: xnn_init_qc8_conv_minmax_fp32_neon_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__neon_mla8_ld128
  init: xnn_init_qc8_conv_minmax_fp32_neon_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__neon_mul8_ld64
  init: xnn_init_qc8_conv_minmax_fp32_neon_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__neon_mul8_ld128
  init: xnn_init_qc8_conv_minmax_fp32_neon_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__neon_mul16
  init: xnn_init_qc8_conv_minmax_fp32_neon_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__neonv8_mla8_ld64
  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__neonv8_mla8_ld128
  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__neonv8_mul8_ld64
  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__neonv8_mul8_ld128
  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__neonv8_mul16
  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__neon_mla8_ld64
  init: xnn_init_qc8_conv_minmax_fp32_neon_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__neon_mla8_ld128
  init: xnn_init_qc8_conv_minmax_fp32_neon_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__neon_mul8_ld64
  init: xnn_init_qc8_conv_minmax_fp32_neon_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__neon_mul8_ld128
  init: xnn_init_qc8_conv_minmax_fp32_neon_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__neon_mul16
  init: xnn_init_qc8_conv_minmax_fp32_neon_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__neonv8_mla8_ld64
  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__neonv8_mla8_ld128
  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__neonv8_mul8_ld64
  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__neonv8_mul8_ld128
  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__neonv8_mul16
  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up24x9__neon_mul16
  init: xnn_init_qc8_conv_minmax_fp32_neon_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up24x9__neonv8_mul16
  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up24x25__neon_mul16
  init: xnn_init_qc8_conv_minmax_fp32_neon_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up24x25__neonv8_mul16
  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up32x9__neon_mul16
  init: xnn_init_qc8_conv_minmax_fp32_neon_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up32x9__neonv8_mul16
  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up32x25__neon_mul16
  init: xnn_init_qc8_conv_minmax_fp32_neon_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up32x25__neonv8_mul16
  init: xnn_init_qc8_conv_minmax_fp32_neonv8_params
# x86 SSE
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x3__sse2_mul16
  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x3__sse41_mul16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x9__sse2_mul16
  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x9__sse2_mul16_add16
  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x9__sse41_mul16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x9__sse41_mul16_add16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x9__sse41_mul32
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x25__sse2_mul16
  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x25__sse2_mul16_add16
  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x25__sse41_mul16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x25__sse41_mul16_add16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x25__sse41_mul32
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__sse2_mul16
  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__sse2_mul16_add16
  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__sse41_mul16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__sse41_mul16_add16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__sse41_mul32
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__sse2_mul16
  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__sse2_mul16_add16
  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__sse41_mul16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__sse41_mul16_add16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__sse41_mul32
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up24x9__sse2_mul16
  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up24x9__sse41_mul16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up24x9__sse41_mul32
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up24x25__sse2_mul16
  init: xnn_init_qc8_conv_minmax_fp32_sse2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up24x25__sse41_mul16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up24x25__sse41_mul32
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
# x86 AVX
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x9__avx_mul16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x9__avx_mul16_add16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x9__avx_mul32
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x9__avx2_mul32
  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x9__xop_mul16_add16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x9__xop_mul32
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x25__avx_mul16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x25__avx_mul16_add16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x25__avx_mul32
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x25__avx2_mul32
  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x25__xop_mul16_add16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x25__xop_mul32
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x3__avx_mul16_add16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x3__avx2_mul32
  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x3__xop_mul16_add16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__avx_mul16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__avx_mul16_add16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__avx_mul32
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__avx2_mul16_add16_vpunpck
  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__avx2_mul16_vpmovsx
  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__avx2_mul16_vpunpck
  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__avx2_mul32
  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__xop_mul16_add16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__xop_mul32
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__avx_mul16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__avx_mul16_add16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__avx_mul32
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__avx2_mul16_add16_vpunpck
  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__avx2_mul16_vpmovsx
  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__avx2_mul16_vpunpck
  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__avx2_mul32
  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__xop_mul16_add16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__xop_mul32
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up24x9__avx_mul16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up24x9__avx_mul32
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up24x9__avx2_mul32
  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up24x9__xop_mul32
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up24x25__avx_mul16
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up24x25__avx_mul32
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up24x25__avx2_mul32
  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up24x25__xop_mul32
  init: xnn_init_qc8_conv_minmax_fp32_sse4_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up32x9__avx2_mul16_add16_vpunpck
  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up32x9__avx2_mul16_vpmovsx
  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up32x9__avx2_mul16_vpunpck
  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up32x9__avx2_mul32
  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up32x25__avx2_mul16_add16_vpunpck
  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up32x25__avx2_mul16_vpmovsx
  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up32x25__avx2_mul16_vpunpck
  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up32x25__avx2_mul32
  init: xnn_init_qc8_conv_minmax_fp32_avx2_params
# x86 AVX512
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__avx512skx_mul32
  init: xnn_init_qc8_conv_minmax_fp32_avx512_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__avx512skx_mul32
  init: xnn_init_qc8_conv_minmax_fp32_avx512_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up32x3__avx512skx_mul32
  init: xnn_init_qc8_conv_minmax_fp32_avx512_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up32x9__avx512skx_mul32
  init: xnn_init_qc8_conv_minmax_fp32_avx512_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up32x25__avx512skx_mul32
  init: xnn_init_qc8_conv_minmax_fp32_avx512_params
# WAsm SIMD
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x9__wasmsimd_mul16
  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x9__wasmsimd_mul16_add16
  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x25__wasmsimd_mul16
  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up8x25__wasmsimd_mul16_add16
  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x3__wasmsimd_mul16_add16
  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__wasmsimd_mul16
  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x9__wasmsimd_mul16_add16
  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__wasmsimd_mul16
  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up16x25__wasmsimd_mul16_add16
  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up24x9__wasmsimd_mul16
  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up24x9__wasmsimd_mul16_add16
  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up24x25__wasmsimd_mul16
  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up24x25__wasmsimd_mul16_add16
  init: xnn_init_qc8_conv_minmax_fp32_wasmsimd_params
# WAsm
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up1x9__wasm_fmagic
  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up1x25__wasm_fmagic
  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up2x3__wasm_fmagic
  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up2x9__wasm_fmagic
  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up2x25__wasm_fmagic
  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up4x9__wasm_fmagic
  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up4x25__wasm_fmagic
  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
# Scalar
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up1x9__scalar_fmagic
  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up1x9__scalar_imagic
  init: xnn_init_qc8_conv_minmax_fp32_scalar_imagic_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up1x9__scalar_lrintf
  init: xnn_init_qc8_conv_minmax_fp32_scalar_lrintf_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up1x25__scalar_fmagic
  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up1x25__scalar_imagic
  init: xnn_init_qc8_conv_minmax_fp32_scalar_imagic_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up1x25__scalar_lrintf
  init: xnn_init_qc8_conv_minmax_fp32_scalar_lrintf_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up2x3__scalar_imagic
  init: xnn_init_qc8_conv_minmax_fp32_scalar_imagic_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up2x3__scalar_lrintf
  init: xnn_init_qc8_conv_minmax_fp32_scalar_lrintf_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up2x9__scalar_fmagic
  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up2x9__scalar_imagic
  init: xnn_init_qc8_conv_minmax_fp32_scalar_imagic_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up2x9__scalar_lrintf
  init: xnn_init_qc8_conv_minmax_fp32_scalar_lrintf_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up2x25__scalar_fmagic
  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up2x25__scalar_imagic
  init: xnn_init_qc8_conv_minmax_fp32_scalar_imagic_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up2x25__scalar_lrintf
  init: xnn_init_qc8_conv_minmax_fp32_scalar_lrintf_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up4x9__scalar_fmagic
  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up4x9__scalar_imagic
  init: xnn_init_qc8_conv_minmax_fp32_scalar_imagic_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up4x9__scalar_lrintf
  init: xnn_init_qc8_conv_minmax_fp32_scalar_lrintf_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up4x25__scalar_fmagic
  init: xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up4x25__scalar_imagic
  init: xnn_init_qc8_conv_minmax_fp32_scalar_imagic_params
- name: xnn_qc8_dwconv_minmax_fp32_ukernel_up4x25__scalar_lrintf
  init: xnn_init_qc8_conv_minmax_fp32_scalar_lrintf_params
