xref: /aosp_15_r20/external/XNNPACK/src/xnnpack/microparams-init.h (revision 4bdc94577ba0e567308109d787f7fec7b531ce36)
1*4bdc9457SAndroid Build Coastguard Worker // Copyright 2021 Google LLC
2*4bdc9457SAndroid Build Coastguard Worker //
3*4bdc9457SAndroid Build Coastguard Worker // This source code is licensed under the BSD-style license found in the
4*4bdc9457SAndroid Build Coastguard Worker // LICENSE file in the root directory of this source tree.
5*4bdc9457SAndroid Build Coastguard Worker 
6*4bdc9457SAndroid Build Coastguard Worker #pragma once
7*4bdc9457SAndroid Build Coastguard Worker 
8*4bdc9457SAndroid Build Coastguard Worker #include <stdint.h>
9*4bdc9457SAndroid Build Coastguard Worker #include <stddef.h>
10*4bdc9457SAndroid Build Coastguard Worker 
11*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/common.h>
12*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/microparams.h>
13*4bdc9457SAndroid Build Coastguard Worker 
14*4bdc9457SAndroid Build Coastguard Worker 
15*4bdc9457SAndroid Build Coastguard Worker #ifdef __cplusplus
16*4bdc9457SAndroid Build Coastguard Worker extern "C" {
17*4bdc9457SAndroid Build Coastguard Worker #endif
18*4bdc9457SAndroid Build Coastguard Worker 
19*4bdc9457SAndroid Build Coastguard Worker 
20*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_QC8_CONV_MINMAX_PARAMS_FUNCTION(fn_name)     \
21*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                                    \
22*4bdc9457SAndroid Build Coastguard Worker     union xnn_qc8_conv_minmax_params params[XNN_MIN_ELEMENTS(1)], \
23*4bdc9457SAndroid Build Coastguard Worker     int8_t output_zero_point,                                     \
24*4bdc9457SAndroid Build Coastguard Worker     int8_t output_min,                                            \
25*4bdc9457SAndroid Build Coastguard Worker     int8_t output_max);
26*4bdc9457SAndroid Build Coastguard Worker 
27*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QC8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qc8_conv_minmax_fp32_scalar_fmagic_params)
28*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QC8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qc8_conv_minmax_fp32_scalar_imagic_params)
29*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QC8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qc8_conv_minmax_fp32_scalar_lrintf_params)
30*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM
31*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QC8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qc8_conv_minmax_fp32_armsimd32_params)
32*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM
33*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
34*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QC8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qc8_conv_minmax_fp32_neon_params)
35*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QC8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qc8_conv_minmax_fp32_neonv8_params)
36*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
37*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
38*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QC8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qc8_conv_minmax_fp32_sse2_params)
39*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QC8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qc8_conv_minmax_fp32_sse4_params)
40*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QC8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qc8_conv_minmax_fp32_avx2_params)
41*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QC8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qc8_conv_minmax_fp32_avx512_params)
42*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
43*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
44*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QC8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qc8_conv_minmax_fp32_wasmsimd_params)
45*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
46*4bdc9457SAndroid Build Coastguard Worker 
47*4bdc9457SAndroid Build Coastguard Worker 
48*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_QS8_CONV_MINMAX_PARAMS_FUNCTION(fn_name)     \
49*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                                    \
50*4bdc9457SAndroid Build Coastguard Worker     union xnn_qs8_conv_minmax_params params[XNN_MIN_ELEMENTS(1)], \
51*4bdc9457SAndroid Build Coastguard Worker     float scale,                                                  \
52*4bdc9457SAndroid Build Coastguard Worker     int8_t output_zero_point,                                     \
53*4bdc9457SAndroid Build Coastguard Worker     int8_t output_min,                                            \
54*4bdc9457SAndroid Build Coastguard Worker     int8_t output_max);
55*4bdc9457SAndroid Build Coastguard Worker 
56*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QS8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_conv_minmax_fp32_scalar_fmagic_params)
57*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QS8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_conv_minmax_fp32_scalar_imagic_params)
58*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QS8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_conv_minmax_fp32_scalar_lrintf_params)
59*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM
60*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_conv_minmax_fp32_armsimd32_params)
61*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM
62*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
63*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_conv_minmax_fp32_neon_params)
64*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_conv_minmax_fp32_neonv8_params)
65*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_conv_minmax_rndnu_neon_params)
66*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
67*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
68*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_conv_minmax_fp32_sse2_params)
69*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_conv_minmax_fp32_sse4_params)
70*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_conv_minmax_fp32_avx2_params)
71*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_conv_minmax_fp32_avx512_params)
72*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
73*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
74*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_conv_minmax_fp32_wasmsimd_params)
75*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
76*4bdc9457SAndroid Build Coastguard Worker 
77*4bdc9457SAndroid Build Coastguard Worker 
78*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_QU8_CONV_MINMAX_PARAMS_FUNCTION(fn_name)     \
79*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                                    \
80*4bdc9457SAndroid Build Coastguard Worker     union xnn_qu8_conv_minmax_params params[XNN_MIN_ELEMENTS(1)], \
81*4bdc9457SAndroid Build Coastguard Worker     uint8_t kernel_zero_point,                                    \
82*4bdc9457SAndroid Build Coastguard Worker     float scale,                                                  \
83*4bdc9457SAndroid Build Coastguard Worker     uint8_t output_zero_point,                                    \
84*4bdc9457SAndroid Build Coastguard Worker     uint8_t output_min,                                           \
85*4bdc9457SAndroid Build Coastguard Worker     uint8_t output_max);
86*4bdc9457SAndroid Build Coastguard Worker 
87*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QU8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qu8_conv_minmax_fp32_scalar_fmagic_params)
88*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QU8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qu8_conv_minmax_fp32_scalar_imagic_params)
89*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QU8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qu8_conv_minmax_fp32_scalar_lrintf_params)
90*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM
91*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qu8_conv_minmax_fp32_armsimd32_params)
92*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM
93*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
94*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qu8_conv_minmax_fp32_neon_params)
95*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qu8_conv_minmax_fp32_neonv8_params)
96*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qu8_conv_minmax_rndnu_neon_params)
97*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
98*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
99*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qu8_conv_minmax_fp32_sse2_params)
100*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qu8_conv_minmax_fp32_avx2_params)
101*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qu8_conv_minmax_fp32_avx512_params)
102*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
103*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
104*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_CONV_MINMAX_PARAMS_FUNCTION(xnn_init_qu8_conv_minmax_fp32_wasmsimd_params)
105*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
106*4bdc9457SAndroid Build Coastguard Worker 
107*4bdc9457SAndroid Build Coastguard Worker 
108*4bdc9457SAndroid Build Coastguard Worker XNN_INTERNAL void xnn_init_qc8_scale_fp32_params(
109*4bdc9457SAndroid Build Coastguard Worker   size_t channels,
110*4bdc9457SAndroid Build Coastguard Worker   size_t channels_tile,
111*4bdc9457SAndroid Build Coastguard Worker   size_t stride,
112*4bdc9457SAndroid Build Coastguard Worker   const float scale[XNN_MIN_ELEMENTS(1)],
113*4bdc9457SAndroid Build Coastguard Worker   void* packed_w);
114*4bdc9457SAndroid Build Coastguard Worker 
115*4bdc9457SAndroid Build Coastguard Worker 
116*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_QS8_AVGPOOL_PARAMS_FUNCTION(fn_name)            \
117*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                                       \
118*4bdc9457SAndroid Build Coastguard Worker     union xnn_qs8_avgpool_minmax_params params[XNN_MIN_ELEMENTS(1)], \
119*4bdc9457SAndroid Build Coastguard Worker     int32_t bias,                                                    \
120*4bdc9457SAndroid Build Coastguard Worker     float scale,                                                     \
121*4bdc9457SAndroid Build Coastguard Worker     int8_t output_zero_point,                                        \
122*4bdc9457SAndroid Build Coastguard Worker     int8_t output_min,                                               \
123*4bdc9457SAndroid Build Coastguard Worker     int8_t output_max);
124*4bdc9457SAndroid Build Coastguard Worker 
125*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QS8_AVGPOOL_PARAMS_FUNCTION(xnn_init_qs8_avgpool_minmax_fp32_scalar_fmagic_params)
126*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QS8_AVGPOOL_PARAMS_FUNCTION(xnn_init_qs8_avgpool_minmax_fp32_scalar_imagic_params)
127*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QS8_AVGPOOL_PARAMS_FUNCTION(xnn_init_qs8_avgpool_minmax_fp32_scalar_lrintf_params)
128*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
129*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_AVGPOOL_PARAMS_FUNCTION(xnn_init_qs8_avgpool_minmax_fp32_neon_params)
130*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_AVGPOOL_PARAMS_FUNCTION(xnn_init_qs8_avgpool_minmax_fp32_neonv8_params)
131*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_AVGPOOL_PARAMS_FUNCTION(xnn_init_qs8_avgpool_minmax_rndnu_neon_params)
132*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
133*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
134*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_AVGPOOL_PARAMS_FUNCTION(xnn_init_qs8_avgpool_minmax_fp32_sse2_params)
135*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_AVGPOOL_PARAMS_FUNCTION(xnn_init_qs8_avgpool_minmax_fp32_sse4_params)
136*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
137*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
138*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_AVGPOOL_PARAMS_FUNCTION(xnn_init_qs8_avgpool_minmax_fp32_wasmsimd_params)
139*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
140*4bdc9457SAndroid Build Coastguard Worker 
141*4bdc9457SAndroid Build Coastguard Worker 
142*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_UPDATE_QS8_AVGPOOL_PARAMS_FUNCTION(fn_name)          \
143*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL void fn_name(                                         \
144*4bdc9457SAndroid Build Coastguard Worker     union xnn_qs8_avgpool_minmax_params params[XNN_MIN_ELEMENTS(1)], \
145*4bdc9457SAndroid Build Coastguard Worker     int32_t bias,                                                    \
146*4bdc9457SAndroid Build Coastguard Worker     float scale);
147*4bdc9457SAndroid Build Coastguard Worker 
148*4bdc9457SAndroid Build Coastguard Worker DECLARE_UPDATE_QS8_AVGPOOL_PARAMS_FUNCTION(xnn_update_qs8_avgpool_minmax_fp32_scalar_fmagic_params)
149*4bdc9457SAndroid Build Coastguard Worker DECLARE_UPDATE_QS8_AVGPOOL_PARAMS_FUNCTION(xnn_update_qs8_avgpool_minmax_fp32_scalar_imagic_params)
150*4bdc9457SAndroid Build Coastguard Worker DECLARE_UPDATE_QS8_AVGPOOL_PARAMS_FUNCTION(xnn_update_qs8_avgpool_minmax_fp32_scalar_lrintf_params)
151*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
152*4bdc9457SAndroid Build Coastguard Worker   DECLARE_UPDATE_QS8_AVGPOOL_PARAMS_FUNCTION(xnn_update_qs8_avgpool_minmax_fp32_neon_params)
153*4bdc9457SAndroid Build Coastguard Worker   DECLARE_UPDATE_QS8_AVGPOOL_PARAMS_FUNCTION(xnn_update_qs8_avgpool_minmax_fp32_neonv8_params)
154*4bdc9457SAndroid Build Coastguard Worker   DECLARE_UPDATE_QS8_AVGPOOL_PARAMS_FUNCTION(xnn_update_qs8_avgpool_minmax_rndnu_neon_params)
155*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
156*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
157*4bdc9457SAndroid Build Coastguard Worker   DECLARE_UPDATE_QS8_AVGPOOL_PARAMS_FUNCTION(xnn_update_qs8_avgpool_minmax_fp32_sse2_params)
158*4bdc9457SAndroid Build Coastguard Worker   DECLARE_UPDATE_QS8_AVGPOOL_PARAMS_FUNCTION(xnn_update_qs8_avgpool_minmax_fp32_sse4_params)
159*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
160*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
161*4bdc9457SAndroid Build Coastguard Worker   DECLARE_UPDATE_QS8_AVGPOOL_PARAMS_FUNCTION(xnn_update_qs8_avgpool_minmax_fp32_wasmsimd_params)
162*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
163*4bdc9457SAndroid Build Coastguard Worker 
164*4bdc9457SAndroid Build Coastguard Worker 
165*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_QU8_AVGPOOL_PARAMS_FUNCTION(fn_name)            \
166*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                                       \
167*4bdc9457SAndroid Build Coastguard Worker     union xnn_qu8_avgpool_minmax_params params[XNN_MIN_ELEMENTS(1)], \
168*4bdc9457SAndroid Build Coastguard Worker     int32_t bias,                                                    \
169*4bdc9457SAndroid Build Coastguard Worker     float scale,                                                     \
170*4bdc9457SAndroid Build Coastguard Worker     uint8_t output_zero_point,                                       \
171*4bdc9457SAndroid Build Coastguard Worker     uint8_t output_min,                                              \
172*4bdc9457SAndroid Build Coastguard Worker     uint8_t output_max);
173*4bdc9457SAndroid Build Coastguard Worker 
174*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QU8_AVGPOOL_PARAMS_FUNCTION(xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params)
175*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QU8_AVGPOOL_PARAMS_FUNCTION(xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params)
176*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QU8_AVGPOOL_PARAMS_FUNCTION(xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params)
177*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
178*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_AVGPOOL_PARAMS_FUNCTION(xnn_init_qu8_avgpool_minmax_fp32_neon_params)
179*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_AVGPOOL_PARAMS_FUNCTION(xnn_init_qu8_avgpool_minmax_fp32_neonv8_params)
180*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_AVGPOOL_PARAMS_FUNCTION(xnn_init_qu8_avgpool_minmax_rndnu_neon_params)
181*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
182*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
183*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_AVGPOOL_PARAMS_FUNCTION(xnn_init_qu8_avgpool_minmax_fp32_sse2_params)
184*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_AVGPOOL_PARAMS_FUNCTION(xnn_init_qu8_avgpool_minmax_fp32_sse4_params)
185*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
186*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
187*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_AVGPOOL_PARAMS_FUNCTION(xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params)
188*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
189*4bdc9457SAndroid Build Coastguard Worker 
190*4bdc9457SAndroid Build Coastguard Worker 
191*4bdc9457SAndroid Build Coastguard Worker // TODO: refactor to new FP32/RNDNU-requantization functions
192*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QU8_AVGPOOL_PARAMS_FUNCTION(xnn_init_qu8_avgpool_minmax_scalar_params)
193*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
194*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_AVGPOOL_PARAMS_FUNCTION(xnn_init_qu8_avgpool_minmax_neon_params)
195*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
196*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
197*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_AVGPOOL_PARAMS_FUNCTION(xnn_init_qu8_avgpool_minmax_sse2_params)
198*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
199*4bdc9457SAndroid Build Coastguard Worker 
200*4bdc9457SAndroid Build Coastguard Worker 
201*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_UPDATE_QU8_AVGPOOL_PARAMS_FUNCTION(fn_name)          \
202*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL void fn_name(                                         \
203*4bdc9457SAndroid Build Coastguard Worker     union xnn_qu8_avgpool_minmax_params params[XNN_MIN_ELEMENTS(1)], \
204*4bdc9457SAndroid Build Coastguard Worker     int32_t bias,                                                    \
205*4bdc9457SAndroid Build Coastguard Worker     float scale);
206*4bdc9457SAndroid Build Coastguard Worker 
207*4bdc9457SAndroid Build Coastguard Worker DECLARE_UPDATE_QU8_AVGPOOL_PARAMS_FUNCTION(xnn_update_qu8_avgpool_minmax_fp32_scalar_fmagic_params)
208*4bdc9457SAndroid Build Coastguard Worker DECLARE_UPDATE_QU8_AVGPOOL_PARAMS_FUNCTION(xnn_update_qu8_avgpool_minmax_fp32_scalar_imagic_params)
209*4bdc9457SAndroid Build Coastguard Worker DECLARE_UPDATE_QU8_AVGPOOL_PARAMS_FUNCTION(xnn_update_qu8_avgpool_minmax_fp32_scalar_lrintf_params)
210*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
211*4bdc9457SAndroid Build Coastguard Worker   DECLARE_UPDATE_QU8_AVGPOOL_PARAMS_FUNCTION(xnn_update_qu8_avgpool_minmax_fp32_neon_params)
212*4bdc9457SAndroid Build Coastguard Worker   DECLARE_UPDATE_QU8_AVGPOOL_PARAMS_FUNCTION(xnn_update_qu8_avgpool_minmax_fp32_neonv8_params)
213*4bdc9457SAndroid Build Coastguard Worker   DECLARE_UPDATE_QU8_AVGPOOL_PARAMS_FUNCTION(xnn_update_qu8_avgpool_minmax_rndnu_neon_params)
214*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
215*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
216*4bdc9457SAndroid Build Coastguard Worker   DECLARE_UPDATE_QU8_AVGPOOL_PARAMS_FUNCTION(xnn_update_qu8_avgpool_minmax_fp32_sse2_params)
217*4bdc9457SAndroid Build Coastguard Worker   DECLARE_UPDATE_QU8_AVGPOOL_PARAMS_FUNCTION(xnn_update_qu8_avgpool_minmax_fp32_sse4_params)
218*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
219*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
220*4bdc9457SAndroid Build Coastguard Worker   DECLARE_UPDATE_QU8_AVGPOOL_PARAMS_FUNCTION(xnn_update_qu8_avgpool_minmax_fp32_wasmsimd_params)
221*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
222*4bdc9457SAndroid Build Coastguard Worker 
223*4bdc9457SAndroid Build Coastguard Worker // TODO: refactor to new FP32/RNDNU-requantization functions
224*4bdc9457SAndroid Build Coastguard Worker DECLARE_UPDATE_QU8_AVGPOOL_PARAMS_FUNCTION(xnn_update_qu8_avgpool_minmax_scalar_params)
225*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
226*4bdc9457SAndroid Build Coastguard Worker   DECLARE_UPDATE_QU8_AVGPOOL_PARAMS_FUNCTION(xnn_update_qu8_avgpool_minmax_neon_params)
227*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
228*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
229*4bdc9457SAndroid Build Coastguard Worker   DECLARE_UPDATE_QU8_AVGPOOL_PARAMS_FUNCTION(xnn_update_qu8_avgpool_minmax_sse2_params)
230*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
231*4bdc9457SAndroid Build Coastguard Worker 
232*4bdc9457SAndroid Build Coastguard Worker 
233*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_F16_SCALEMINMAX_PARAMS_FUNCTION(fn_name)     \
234*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                                    \
235*4bdc9457SAndroid Build Coastguard Worker     union xnn_f16_scaleminmax_params params[XNN_MIN_ELEMENTS(1)], \
236*4bdc9457SAndroid Build Coastguard Worker     uint16_t scale,                                               \
237*4bdc9457SAndroid Build Coastguard Worker     uint16_t min,                                                 \
238*4bdc9457SAndroid Build Coastguard Worker     uint16_t max);
239*4bdc9457SAndroid Build Coastguard Worker 
240*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
241*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F16_SCALEMINMAX_PARAMS_FUNCTION(xnn_init_f16_scaleminmax_neon_params)
242*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
243*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
244*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F16_SCALEMINMAX_PARAMS_FUNCTION(xnn_init_f16_scaleminmax_avx_params)
245*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
246*4bdc9457SAndroid Build Coastguard Worker 
247*4bdc9457SAndroid Build Coastguard Worker 
248*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_UPDATE_F16_SCALEMINMAX_PARAMS_FUNCTION(fn_name)   \
249*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL void fn_name(                                      \
250*4bdc9457SAndroid Build Coastguard Worker     union xnn_f16_scaleminmax_params params[XNN_MIN_ELEMENTS(1)], \
251*4bdc9457SAndroid Build Coastguard Worker     uint16_t scale);
252*4bdc9457SAndroid Build Coastguard Worker 
253*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
254*4bdc9457SAndroid Build Coastguard Worker   DECLARE_UPDATE_F16_SCALEMINMAX_PARAMS_FUNCTION(xnn_update_f16_scaleminmax_neon_params)
255*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
256*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
257*4bdc9457SAndroid Build Coastguard Worker   DECLARE_UPDATE_F16_SCALEMINMAX_PARAMS_FUNCTION(xnn_update_f16_scaleminmax_avx_params)
258*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
259*4bdc9457SAndroid Build Coastguard Worker 
260*4bdc9457SAndroid Build Coastguard Worker 
261*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_F32_SCALEMINMAX_PARAMS_FUNCTION(fn_name)     \
262*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                                    \
263*4bdc9457SAndroid Build Coastguard Worker     union xnn_f32_scaleminmax_params params[XNN_MIN_ELEMENTS(1)], \
264*4bdc9457SAndroid Build Coastguard Worker     float scale,                                                  \
265*4bdc9457SAndroid Build Coastguard Worker     float min,                                                    \
266*4bdc9457SAndroid Build Coastguard Worker     float max);
267*4bdc9457SAndroid Build Coastguard Worker 
268*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_F32_SCALEMINMAX_PARAMS_FUNCTION(xnn_init_f32_scaleminmax_scalar_params)
269*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
270*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_SCALEMINMAX_PARAMS_FUNCTION(xnn_init_f32_scaleminmax_sse_params)
271*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
272*4bdc9457SAndroid Build Coastguard Worker 
273*4bdc9457SAndroid Build Coastguard Worker 
274*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_UPDATE_F32_SCALEMINMAX_PARAMS_FUNCTION(fn_name)   \
275*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL void fn_name(                                      \
276*4bdc9457SAndroid Build Coastguard Worker     union xnn_f32_scaleminmax_params params[XNN_MIN_ELEMENTS(1)], \
277*4bdc9457SAndroid Build Coastguard Worker     float scale);
278*4bdc9457SAndroid Build Coastguard Worker 
279*4bdc9457SAndroid Build Coastguard Worker DECLARE_UPDATE_F32_SCALEMINMAX_PARAMS_FUNCTION(xnn_update_f32_scaleminmax_scalar_params)
280*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
281*4bdc9457SAndroid Build Coastguard Worker   DECLARE_UPDATE_F32_SCALEMINMAX_PARAMS_FUNCTION(xnn_update_f32_scaleminmax_sse_params)
282*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
283*4bdc9457SAndroid Build Coastguard Worker 
284*4bdc9457SAndroid Build Coastguard Worker 
285*4bdc9457SAndroid Build Coastguard Worker XNN_INTERNAL size_t xnn_init_f16_gavgpool_neonfp16arith_x4_params(
286*4bdc9457SAndroid Build Coastguard Worker   union xnn_f16_gavgpool_params params[XNN_MIN_ELEMENTS(1)],
287*4bdc9457SAndroid Build Coastguard Worker   uint16_t multiplier,
288*4bdc9457SAndroid Build Coastguard Worker   uint16_t output_min,
289*4bdc9457SAndroid Build Coastguard Worker   uint16_t output_max,
290*4bdc9457SAndroid Build Coastguard Worker   uint32_t width);
291*4bdc9457SAndroid Build Coastguard Worker 
292*4bdc9457SAndroid Build Coastguard Worker XNN_INTERNAL size_t xnn_init_f16_gavgpool_neonfp16arith_x8_params(
293*4bdc9457SAndroid Build Coastguard Worker   union xnn_f16_gavgpool_params params[XNN_MIN_ELEMENTS(1)],
294*4bdc9457SAndroid Build Coastguard Worker   uint16_t multiplier,
295*4bdc9457SAndroid Build Coastguard Worker   uint16_t output_min,
296*4bdc9457SAndroid Build Coastguard Worker   uint16_t output_max,
297*4bdc9457SAndroid Build Coastguard Worker   uint32_t width);
298*4bdc9457SAndroid Build Coastguard Worker 
299*4bdc9457SAndroid Build Coastguard Worker XNN_INTERNAL size_t xnn_init_f32_gavgpool_params(
300*4bdc9457SAndroid Build Coastguard Worker   union xnn_f32_gavgpool_params params[XNN_MIN_ELEMENTS(1)],
301*4bdc9457SAndroid Build Coastguard Worker   float multiplier,
302*4bdc9457SAndroid Build Coastguard Worker   float output_min,
303*4bdc9457SAndroid Build Coastguard Worker   float output_max,
304*4bdc9457SAndroid Build Coastguard Worker   uint32_t width);
305*4bdc9457SAndroid Build Coastguard Worker 
306*4bdc9457SAndroid Build Coastguard Worker XNN_INTERNAL void xnn_update_f32_gavgpool_params(
307*4bdc9457SAndroid Build Coastguard Worker   union xnn_f32_gavgpool_params* params,
308*4bdc9457SAndroid Build Coastguard Worker   float multiplier,
309*4bdc9457SAndroid Build Coastguard Worker   uint32_t width);
310*4bdc9457SAndroid Build Coastguard Worker 
311*4bdc9457SAndroid Build Coastguard Worker XNN_INTERNAL size_t xnn_init_scalar_f32_gavgpool_params(
312*4bdc9457SAndroid Build Coastguard Worker   union xnn_f32_gavgpool_params params[XNN_MIN_ELEMENTS(1)],
313*4bdc9457SAndroid Build Coastguard Worker   float multiplier,
314*4bdc9457SAndroid Build Coastguard Worker   float output_min,
315*4bdc9457SAndroid Build Coastguard Worker   float output_max,
316*4bdc9457SAndroid Build Coastguard Worker   uint32_t width);
317*4bdc9457SAndroid Build Coastguard Worker 
318*4bdc9457SAndroid Build Coastguard Worker 
319*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_F32_DEFAULT_PARAMS_FUNCTION(fn_name)      \
320*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                                 \
321*4bdc9457SAndroid Build Coastguard Worker     union xnn_f32_default_params params[XNN_MIN_ELEMENTS(1)]);
322*4bdc9457SAndroid Build Coastguard Worker 
323*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
324*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_DEFAULT_PARAMS_FUNCTION(xnn_init_f32_default_avx_params)
325*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
326*4bdc9457SAndroid Build Coastguard Worker 
327*4bdc9457SAndroid Build Coastguard Worker 
328*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_BF16_MINMAX_PARAMS_FUNCTION(fn_name)     \
329*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                                \
330*4bdc9457SAndroid Build Coastguard Worker     union xnn_bf16_minmax_params params[XNN_MIN_ELEMENTS(1)], \
331*4bdc9457SAndroid Build Coastguard Worker     uint16_t output_min,                                      \
332*4bdc9457SAndroid Build Coastguard Worker     uint16_t output_max);
333*4bdc9457SAndroid Build Coastguard Worker 
334*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_BF16_MINMAX_PARAMS_FUNCTION(xnn_init_bf16_minmax_scalar_params)
335*4bdc9457SAndroid Build Coastguard Worker 
336*4bdc9457SAndroid Build Coastguard Worker 
337*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_F16_MINMAX_PARAMS_FUNCTION(fn_name)     \
338*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                               \
339*4bdc9457SAndroid Build Coastguard Worker     union xnn_f16_minmax_params params[XNN_MIN_ELEMENTS(1)], \
340*4bdc9457SAndroid Build Coastguard Worker     uint16_t output_min,                                     \
341*4bdc9457SAndroid Build Coastguard Worker     uint16_t output_max);
342*4bdc9457SAndroid Build Coastguard Worker 
343*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
344*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F16_MINMAX_PARAMS_FUNCTION(xnn_init_f16_minmax_neon_params)
345*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
346*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
347*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F16_MINMAX_PARAMS_FUNCTION(xnn_init_f16_minmax_avx_params)
348*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
349*4bdc9457SAndroid Build Coastguard Worker 
350*4bdc9457SAndroid Build Coastguard Worker 
351*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_F32_MINMAX_PARAMS_FUNCTION(fn_name)     \
352*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                               \
353*4bdc9457SAndroid Build Coastguard Worker     union xnn_f32_minmax_params params[XNN_MIN_ELEMENTS(1)], \
354*4bdc9457SAndroid Build Coastguard Worker     float output_min,                                        \
355*4bdc9457SAndroid Build Coastguard Worker     float output_max);
356*4bdc9457SAndroid Build Coastguard Worker 
357*4bdc9457SAndroid Build Coastguard Worker // TODO: refactor to use ISA-specific initialization function
358*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_F32_MINMAX_PARAMS_FUNCTION(xnn_init_f32_minmax_params)
359*4bdc9457SAndroid Build Coastguard Worker 
360*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
361*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_MINMAX_PARAMS_FUNCTION(xnn_init_f32_minmax_sse_params)
362*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_MINMAX_PARAMS_FUNCTION(xnn_init_f32_minmax_avx_params)
363*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
364*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
365*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_MINMAX_PARAMS_FUNCTION(xnn_init_f32_minmax_wasmsimd_params)
366*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
367*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_F32_MINMAX_PARAMS_FUNCTION(xnn_init_f32_minmax_scalar_params)
368*4bdc9457SAndroid Build Coastguard Worker 
369*4bdc9457SAndroid Build Coastguard Worker 
370*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_F16_HSWISH_PARAMS_FUNCTION(fn_name) \
371*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                           \
372*4bdc9457SAndroid Build Coastguard Worker     union xnn_f16_hswish_params params[XNN_MIN_ELEMENTS(1)]);
373*4bdc9457SAndroid Build Coastguard Worker 
374*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
375*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F16_HSWISH_PARAMS_FUNCTION(xnn_init_f16_hswish_neon_params)
376*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
377*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
378*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F16_HSWISH_PARAMS_FUNCTION(xnn_init_f16_hswish_avx_params)
379*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
380*4bdc9457SAndroid Build Coastguard Worker 
381*4bdc9457SAndroid Build Coastguard Worker 
382*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_F32_HSWISH_PARAMS_FUNCTION(fn_name) \
383*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                           \
384*4bdc9457SAndroid Build Coastguard Worker     union xnn_f32_hswish_params params[XNN_MIN_ELEMENTS(1)]);
385*4bdc9457SAndroid Build Coastguard Worker 
386*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_F32_HSWISH_PARAMS_FUNCTION(xnn_init_f32_hswish_scalar_params)
387*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
388*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_HSWISH_PARAMS_FUNCTION(xnn_init_f32_hswish_sse_params)
389*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_HSWISH_PARAMS_FUNCTION(xnn_init_f32_hswish_avx_params)
390*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_HSWISH_PARAMS_FUNCTION(xnn_init_f32_hswish_avx512_params)
391*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
392*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
393*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_HSWISH_PARAMS_FUNCTION(xnn_init_f32_hswish_wasmsimd_params)
394*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
395*4bdc9457SAndroid Build Coastguard Worker 
396*4bdc9457SAndroid Build Coastguard Worker 
397*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_F16_SIGMOID_PARAMS_FUNCTION(fn_name)      \
398*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                                 \
399*4bdc9457SAndroid Build Coastguard Worker     union xnn_f16_sigmoid_params params[XNN_MIN_ELEMENTS(1)]);
400*4bdc9457SAndroid Build Coastguard Worker 
401*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
402*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F16_SIGMOID_PARAMS_FUNCTION(xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params)
403*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
404*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
405*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F16_SIGMOID_PARAMS_FUNCTION(xnn_init_f16_sigmoid_avx2_rr1_p2_params)
406*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
407*4bdc9457SAndroid Build Coastguard Worker 
408*4bdc9457SAndroid Build Coastguard Worker 
409*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_F32_SIGMOID_PARAMS_FUNCTION(fn_name)      \
410*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                                 \
411*4bdc9457SAndroid Build Coastguard Worker     union xnn_f32_sigmoid_params params[XNN_MIN_ELEMENTS(1)]);
412*4bdc9457SAndroid Build Coastguard Worker 
413*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_F32_SIGMOID_PARAMS_FUNCTION(xnn_init_f32_sigmoid_scalar_rr2_lut64_p2_params)
414*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_F32_SIGMOID_PARAMS_FUNCTION(xnn_init_f32_sigmoid_scalar_rr2_lut2048_p1_params)
415*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_F32_SIGMOID_PARAMS_FUNCTION(xnn_init_f32_sigmoid_scalar_rr2_p5_params)
416*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
417*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_SIGMOID_PARAMS_FUNCTION(xnn_init_f32_sigmoid_neon_rr2_lut2048_p1_params)
418*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_SIGMOID_PARAMS_FUNCTION(xnn_init_f32_sigmoid_neon_rr2_lut64_p2_params)
419*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_SIGMOID_PARAMS_FUNCTION(xnn_init_f32_sigmoid_neon_rr2_p5_params)
420*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_SIGMOID_PARAMS_FUNCTION(xnn_init_f32_sigmoid_neonfma_rr1_lut2048_p1_params)
421*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_SIGMOID_PARAMS_FUNCTION(xnn_init_f32_sigmoid_neonfma_rr1_lut64_p2_params)
422*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_SIGMOID_PARAMS_FUNCTION(xnn_init_f32_sigmoid_neonfma_rr1_p5_params)
423*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
424*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
425*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_SIGMOID_PARAMS_FUNCTION(xnn_init_f32_sigmoid_sse2_rr2_lut64_p2_params)
426*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_SIGMOID_PARAMS_FUNCTION(xnn_init_f32_sigmoid_sse2_rr2_p5_params)
427*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_SIGMOID_PARAMS_FUNCTION(xnn_init_f32_sigmoid_avx_rr2_p5_params)
428*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_SIGMOID_PARAMS_FUNCTION(xnn_init_f32_sigmoid_avx2_rr1_p5_params)
429*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_SIGMOID_PARAMS_FUNCTION(xnn_init_f32_sigmoid_avx512_rr1_lut16_p3_params)
430*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_SIGMOID_PARAMS_FUNCTION(xnn_init_f32_sigmoid_avx512_rr2_lut32_p2_params)
431*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_SIGMOID_PARAMS_FUNCTION(xnn_init_f32_sigmoid_avx512_rr1_p5_params)
432*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
433*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
434*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_SIGMOID_PARAMS_FUNCTION(xnn_init_f32_sigmoid_wasmsimd_rr2_lut64_p2_params)
435*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_SIGMOID_PARAMS_FUNCTION(xnn_init_f32_sigmoid_wasmsimd_rr2_p5_params)
436*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
437*4bdc9457SAndroid Build Coastguard Worker 
438*4bdc9457SAndroid Build Coastguard Worker 
439*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_F32_ABS_PARAMS_FUNCTION(fn_name)      \
440*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                             \
441*4bdc9457SAndroid Build Coastguard Worker     union xnn_f32_abs_params params[XNN_MIN_ELEMENTS(1)]);
442*4bdc9457SAndroid Build Coastguard Worker 
443*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
444*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_ABS_PARAMS_FUNCTION(xnn_init_f32_abs_sse_params)
445*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_ABS_PARAMS_FUNCTION(xnn_init_f32_abs_avx_params)
446*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_ABS_PARAMS_FUNCTION(xnn_init_f32_abs_avx512_params)
447*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
448*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
449*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_ABS_PARAMS_FUNCTION(xnn_init_f32_abs_wasmsimd_params)
450*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
451*4bdc9457SAndroid Build Coastguard Worker 
452*4bdc9457SAndroid Build Coastguard Worker 
453*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_F32_NEG_PARAMS_FUNCTION(fn_name)      \
454*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                             \
455*4bdc9457SAndroid Build Coastguard Worker     union xnn_f32_neg_params params[XNN_MIN_ELEMENTS(1)]);
456*4bdc9457SAndroid Build Coastguard Worker 
457*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
458*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_NEG_PARAMS_FUNCTION(xnn_init_f32_neg_sse_params)
459*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_NEG_PARAMS_FUNCTION(xnn_init_f32_neg_avx_params)
460*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_NEG_PARAMS_FUNCTION(xnn_init_f32_neg_avx512_params)
461*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
462*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
463*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_NEG_PARAMS_FUNCTION(xnn_init_f32_neg_wasmsimd_params)
464*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
465*4bdc9457SAndroid Build Coastguard Worker 
466*4bdc9457SAndroid Build Coastguard Worker 
467*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_F16_ABS_PARAMS_FUNCTION(fn_name)      \
468*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                             \
469*4bdc9457SAndroid Build Coastguard Worker     union xnn_f16_abs_params params[XNN_MIN_ELEMENTS(1)]);
470*4bdc9457SAndroid Build Coastguard Worker 
471*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
472*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F16_ABS_PARAMS_FUNCTION(xnn_init_f16_abs_sse_params)
473*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
474*4bdc9457SAndroid Build Coastguard Worker 
475*4bdc9457SAndroid Build Coastguard Worker 
476*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_F16_NEG_PARAMS_FUNCTION(fn_name)      \
477*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                             \
478*4bdc9457SAndroid Build Coastguard Worker     union xnn_f16_neg_params params[XNN_MIN_ELEMENTS(1)]);
479*4bdc9457SAndroid Build Coastguard Worker 
480*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
481*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F16_NEG_PARAMS_FUNCTION(xnn_init_f16_neg_sse_params)
482*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
483*4bdc9457SAndroid Build Coastguard Worker 
484*4bdc9457SAndroid Build Coastguard Worker 
485*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_F32_RND_PARAMS_FUNCTION(fn_name)      \
486*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                             \
487*4bdc9457SAndroid Build Coastguard Worker     union xnn_f32_rnd_params params[XNN_MIN_ELEMENTS(1)]);
488*4bdc9457SAndroid Build Coastguard Worker 
489*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
490*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_RND_PARAMS_FUNCTION(xnn_init_f32_rnd_sse2_params)
491*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_RND_PARAMS_FUNCTION(xnn_init_f32_rnd_avx_params)
492*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
493*4bdc9457SAndroid Build Coastguard Worker 
494*4bdc9457SAndroid Build Coastguard Worker 
495*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_F16_ELU_PARAMS_FUNCTION(fn_name)     \
496*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                            \
497*4bdc9457SAndroid Build Coastguard Worker     union xnn_f16_elu_params params[XNN_MIN_ELEMENTS(1)], \
498*4bdc9457SAndroid Build Coastguard Worker     uint16_t prescale,                                    \
499*4bdc9457SAndroid Build Coastguard Worker     uint16_t alpha,                                       \
500*4bdc9457SAndroid Build Coastguard Worker     uint16_t beta);
501*4bdc9457SAndroid Build Coastguard Worker 
502*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
503*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F16_ELU_PARAMS_FUNCTION(xnn_init_f16_elu_neonfp16arith_rr1_p3_params)
504*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
505*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
506*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F16_ELU_PARAMS_FUNCTION(xnn_init_f16_elu_avx2_rr1_p3_params)
507*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
508*4bdc9457SAndroid Build Coastguard Worker 
509*4bdc9457SAndroid Build Coastguard Worker 
510*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_F32_ELU_PARAMS_FUNCTION(fn_name)     \
511*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                            \
512*4bdc9457SAndroid Build Coastguard Worker     union xnn_f32_elu_params params[XNN_MIN_ELEMENTS(1)], \
513*4bdc9457SAndroid Build Coastguard Worker     float prescale,                                       \
514*4bdc9457SAndroid Build Coastguard Worker     float alpha,                                          \
515*4bdc9457SAndroid Build Coastguard Worker     float beta);
516*4bdc9457SAndroid Build Coastguard Worker 
517*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_F32_ELU_PARAMS_FUNCTION(xnn_init_f32_elu_scalar_rr2_lut16_p3_params)
518*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_F32_ELU_PARAMS_FUNCTION(xnn_init_f32_elu_scalar_rr2_p6_params)
519*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
520*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_ELU_PARAMS_FUNCTION(xnn_init_f32_elu_neon_rr2_lut16_p3_params)
521*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_ELU_PARAMS_FUNCTION(xnn_init_f32_elu_neon_rr2_p6_params)
522*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_ELU_PARAMS_FUNCTION(xnn_init_f32_elu_neonfma_rr1_lut16_p3_params)
523*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_ELU_PARAMS_FUNCTION(xnn_init_f32_elu_neonfma_rr1_p6_params)
524*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
525*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
526*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_ELU_PARAMS_FUNCTION(xnn_init_f32_elu_sse2_rr2_lut16_p3_params)
527*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_ELU_PARAMS_FUNCTION(xnn_init_f32_elu_sse2_rr2_p6_params)
528*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_ELU_PARAMS_FUNCTION(xnn_init_f32_elu_avx_rr2_lut16_p3_params)
529*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_ELU_PARAMS_FUNCTION(xnn_init_f32_elu_avx_rr2_lut4_p4_params)
530*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_ELU_PARAMS_FUNCTION(xnn_init_f32_elu_avx_rr2_p6_params)
531*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_ELU_PARAMS_FUNCTION(xnn_init_f32_elu_avx2_rr1_lut16_p3_params)
532*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_ELU_PARAMS_FUNCTION(xnn_init_f32_elu_avx2_rr1_lut8_p4_params)
533*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_ELU_PARAMS_FUNCTION(xnn_init_f32_elu_avx2_rr1_lut4_p4_params)
534*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_ELU_PARAMS_FUNCTION(xnn_init_f32_elu_avx2_rr1_p6_params)
535*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_ELU_PARAMS_FUNCTION(xnn_init_f32_elu_avx512_rr1_lut16_p3_params)
536*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_ELU_PARAMS_FUNCTION(xnn_init_f32_elu_avx512_rr1_p6_params)
537*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
538*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
539*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_ELU_PARAMS_FUNCTION(xnn_init_f32_elu_wasmsimd_rr2_lut16_p3_params)
540*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_ELU_PARAMS_FUNCTION(xnn_init_f32_elu_wasmsimd_rr2_p6_params)
541*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
542*4bdc9457SAndroid Build Coastguard Worker 
543*4bdc9457SAndroid Build Coastguard Worker 
544*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_F16_EXPMINUS_PARAMS_FUNCTION(fn_name)      \
545*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                                  \
546*4bdc9457SAndroid Build Coastguard Worker     union xnn_f16_expminus_params params[XNN_MIN_ELEMENTS(1)]);
547*4bdc9457SAndroid Build Coastguard Worker 
548*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
549*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F16_EXPMINUS_PARAMS_FUNCTION(xnn_init_f16_expminus_neonfp16arith_rr2_p2_params)
550*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
551*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
552*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F16_EXPMINUS_PARAMS_FUNCTION(xnn_init_f16_expminus_avx2_rr1_p2_params)
553*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
554*4bdc9457SAndroid Build Coastguard Worker 
555*4bdc9457SAndroid Build Coastguard Worker 
556*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_F32_EXPMINUS_PARAMS_FUNCTION(fn_name)      \
557*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                                 \
558*4bdc9457SAndroid Build Coastguard Worker     union xnn_f32_expminus_params params[XNN_MIN_ELEMENTS(1)]);
559*4bdc9457SAndroid Build Coastguard Worker 
560*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_F32_EXPMINUS_PARAMS_FUNCTION(xnn_init_f32_expminus_scalar_rr2_lut64_p2_params)
561*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_F32_EXPMINUS_PARAMS_FUNCTION(xnn_init_f32_expminus_scalar_rr2_p5_params)
562*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
563*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_EXPMINUS_PARAMS_FUNCTION(xnn_init_f32_expminus_neon_rr2_lut64_p2_params)
564*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_EXPMINUS_PARAMS_FUNCTION(xnn_init_f32_expminus_neon_rr2_p5_params)
565*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_EXPMINUS_PARAMS_FUNCTION(xnn_init_f32_expminus_neonfma_rr1_lut64_p2_params)
566*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_EXPMINUS_PARAMS_FUNCTION(xnn_init_f32_expminus_neonfma_rr1_p5_params)
567*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
568*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
569*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_EXPMINUS_PARAMS_FUNCTION(xnn_init_f32_expminus_sse2_rr2_p5_params)
570*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_EXPMINUS_PARAMS_FUNCTION(xnn_init_f32_expminus_avx2_rr1_p5_params)
571*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_EXPMINUS_PARAMS_FUNCTION(xnn_init_f32_expminus_avx512_rr1_p5_params)
572*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
573*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
574*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_EXPMINUS_PARAMS_FUNCTION(xnn_init_f32_expminus_wasmsimd_rr2_p5_params)
575*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
576*4bdc9457SAndroid Build Coastguard Worker 
577*4bdc9457SAndroid Build Coastguard Worker 
578*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_F16_LRELU_PARAMS_FUNCTION(fn_name)     \
579*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                              \
580*4bdc9457SAndroid Build Coastguard Worker     union xnn_f16_lrelu_params params[XNN_MIN_ELEMENTS(1)], \
581*4bdc9457SAndroid Build Coastguard Worker     uint16_t slope);
582*4bdc9457SAndroid Build Coastguard Worker 
583*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
584*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F16_LRELU_PARAMS_FUNCTION(xnn_init_f16_lrelu_neon_params)
585*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
586*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
587*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F16_LRELU_PARAMS_FUNCTION(xnn_init_f16_lrelu_avx_params)
588*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
589*4bdc9457SAndroid Build Coastguard Worker 
590*4bdc9457SAndroid Build Coastguard Worker 
591*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_F32_LRELU_PARAMS_FUNCTION(fn_name)     \
592*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                              \
593*4bdc9457SAndroid Build Coastguard Worker     union xnn_f32_lrelu_params params[XNN_MIN_ELEMENTS(1)], \
594*4bdc9457SAndroid Build Coastguard Worker     float slope);
595*4bdc9457SAndroid Build Coastguard Worker 
596*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_F32_LRELU_PARAMS_FUNCTION(xnn_init_f32_lrelu_scalar_params)
597*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
598*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_LRELU_PARAMS_FUNCTION(xnn_init_f32_lrelu_sse_params)
599*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_LRELU_PARAMS_FUNCTION(xnn_init_f32_lrelu_avx_params)
600*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
601*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
602*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_LRELU_PARAMS_FUNCTION(xnn_init_f32_lrelu_wasmsimd_params)
603*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
604*4bdc9457SAndroid Build Coastguard Worker 
605*4bdc9457SAndroid Build Coastguard Worker 
606*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_QS8_LRELU_PARAMS_FUNCTION(fn_name)     \
607*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                              \
608*4bdc9457SAndroid Build Coastguard Worker     union xnn_qs8_lrelu_params params[XNN_MIN_ELEMENTS(1)], \
609*4bdc9457SAndroid Build Coastguard Worker     float positive_scale,                                   \
610*4bdc9457SAndroid Build Coastguard Worker     float negative_scale,                                   \
611*4bdc9457SAndroid Build Coastguard Worker     int8_t input_zero_point,                                \
612*4bdc9457SAndroid Build Coastguard Worker     int8_t output_zero_point);
613*4bdc9457SAndroid Build Coastguard Worker 
614*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QS8_LRELU_PARAMS_FUNCTION(xnn_init_qs8_lrelu_scalar_andxor_params)
615*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QS8_LRELU_PARAMS_FUNCTION(xnn_init_qs8_lrelu_scalar_select_params)
616*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM
617*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_LRELU_PARAMS_FUNCTION(xnn_init_qs8_lrelu_armsimd32_params)
618*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM
619*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
620*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_LRELU_PARAMS_FUNCTION(xnn_init_qs8_lrelu_neon_params)
621*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
622*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
623*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_LRELU_PARAMS_FUNCTION(xnn_init_qs8_lrelu_sse2_params)
624*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_LRELU_PARAMS_FUNCTION(xnn_init_qs8_lrelu_avx_params)
625*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_LRELU_PARAMS_FUNCTION(xnn_init_qs8_lrelu_avx2_params)
626*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
627*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
628*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_LRELU_PARAMS_FUNCTION(xnn_init_qs8_lrelu_wasmsimd_arm_params)
629*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_LRELU_PARAMS_FUNCTION(xnn_init_qs8_lrelu_wasmsimd_x86_params)
630*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
631*4bdc9457SAndroid Build Coastguard Worker 
632*4bdc9457SAndroid Build Coastguard Worker 
633*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_QU8_LRELU_PARAMS_FUNCTION(fn_name)     \
634*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                              \
635*4bdc9457SAndroid Build Coastguard Worker     union xnn_qu8_lrelu_params params[XNN_MIN_ELEMENTS(1)], \
636*4bdc9457SAndroid Build Coastguard Worker     float positive_scale,                                   \
637*4bdc9457SAndroid Build Coastguard Worker     float negative_scale,                                   \
638*4bdc9457SAndroid Build Coastguard Worker     uint8_t input_zero_point,                               \
639*4bdc9457SAndroid Build Coastguard Worker     uint8_t output_zero_point);
640*4bdc9457SAndroid Build Coastguard Worker 
641*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QU8_LRELU_PARAMS_FUNCTION(xnn_init_qu8_lrelu_scalar_andxor_params)
642*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QU8_LRELU_PARAMS_FUNCTION(xnn_init_qu8_lrelu_scalar_select_params)
643*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM
644*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_LRELU_PARAMS_FUNCTION(xnn_init_qu8_lrelu_armsimd32_params)
645*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM
646*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
647*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_LRELU_PARAMS_FUNCTION(xnn_init_qu8_lrelu_neon_params)
648*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
649*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
650*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_LRELU_PARAMS_FUNCTION(xnn_init_qu8_lrelu_sse2_params)
651*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_LRELU_PARAMS_FUNCTION(xnn_init_qu8_lrelu_avx_params)
652*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_LRELU_PARAMS_FUNCTION(xnn_init_qu8_lrelu_avx2_params)
653*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
654*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
655*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_LRELU_PARAMS_FUNCTION(xnn_init_qu8_lrelu_wasmsimd_arm_params)
656*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_LRELU_PARAMS_FUNCTION(xnn_init_qu8_lrelu_wasmsimd_x86_params)
657*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
658*4bdc9457SAndroid Build Coastguard Worker 
659*4bdc9457SAndroid Build Coastguard Worker 
660*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_F32_SQRT_PARAMS_FUNCTION(fn_name)      \
661*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                              \
662*4bdc9457SAndroid Build Coastguard Worker     union xnn_f32_sqrt_params params[XNN_MIN_ELEMENTS(1)]);
663*4bdc9457SAndroid Build Coastguard Worker 
664*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
665*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_SQRT_PARAMS_FUNCTION(xnn_init_f32_sqrt_avx_params)
666*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_SQRT_PARAMS_FUNCTION(xnn_init_f32_sqrt_fma_params)
667*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_SQRT_PARAMS_FUNCTION(xnn_init_f32_sqrt_avx512_params)
668*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
669*4bdc9457SAndroid Build Coastguard Worker 
670*4bdc9457SAndroid Build Coastguard Worker 
671*4bdc9457SAndroid Build Coastguard Worker XNN_INTERNAL size_t xnn_init_f16_chw_params(
672*4bdc9457SAndroid Build Coastguard Worker   union xnn_f16_chw_params params[XNN_MIN_ELEMENTS(1)],
673*4bdc9457SAndroid Build Coastguard Worker   uint32_t width,
674*4bdc9457SAndroid Build Coastguard Worker   uint16_t output_min,
675*4bdc9457SAndroid Build Coastguard Worker   uint16_t output_max);
676*4bdc9457SAndroid Build Coastguard Worker 
677*4bdc9457SAndroid Build Coastguard Worker XNN_INTERNAL size_t xnn_init_f32_chw_params(
678*4bdc9457SAndroid Build Coastguard Worker   union xnn_f32_chw_params params[XNN_MIN_ELEMENTS(1)],
679*4bdc9457SAndroid Build Coastguard Worker   uint32_t width,
680*4bdc9457SAndroid Build Coastguard Worker   float output_min,
681*4bdc9457SAndroid Build Coastguard Worker   float output_max);
682*4bdc9457SAndroid Build Coastguard Worker 
683*4bdc9457SAndroid Build Coastguard Worker XNN_INTERNAL void xnn_update_f32_chw_params(
684*4bdc9457SAndroid Build Coastguard Worker   union xnn_f32_chw_params* params,
685*4bdc9457SAndroid Build Coastguard Worker   uint32_t width);
686*4bdc9457SAndroid Build Coastguard Worker 
687*4bdc9457SAndroid Build Coastguard Worker XNN_INTERNAL size_t xnn_init_scalar_f32_chw_params(
688*4bdc9457SAndroid Build Coastguard Worker   union xnn_f32_chw_params params[XNN_MIN_ELEMENTS(1)],
689*4bdc9457SAndroid Build Coastguard Worker   uint32_t width,
690*4bdc9457SAndroid Build Coastguard Worker   float output_min,
691*4bdc9457SAndroid Build Coastguard Worker   float output_max);
692*4bdc9457SAndroid Build Coastguard Worker 
693*4bdc9457SAndroid Build Coastguard Worker 
694*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_S8_MINMAX_PARAMS_FUNCTION(fn_name)     \
695*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                              \
696*4bdc9457SAndroid Build Coastguard Worker     union xnn_s8_minmax_params params[XNN_MIN_ELEMENTS(1)], \
697*4bdc9457SAndroid Build Coastguard Worker     int8_t output_min,                                      \
698*4bdc9457SAndroid Build Coastguard Worker     int8_t output_max);
699*4bdc9457SAndroid Build Coastguard Worker 
700*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_S8_MINMAX_PARAMS_FUNCTION(xnn_init_s8_minmax_scalar_params)
701*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
702*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_S8_MINMAX_PARAMS_FUNCTION(xnn_init_s8_minmax_neon_params)
703*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
704*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
705*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_S8_MINMAX_PARAMS_FUNCTION(xnn_init_s8_minmax_sse2_params)
706*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_S8_MINMAX_PARAMS_FUNCTION(xnn_init_s8_minmax_sse4_params)
707*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
708*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
709*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_S8_MINMAX_PARAMS_FUNCTION(xnn_init_s8_minmax_wasmsimd_params)
710*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
711*4bdc9457SAndroid Build Coastguard Worker 
712*4bdc9457SAndroid Build Coastguard Worker 
713*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_U8_MINMAX_PARAMS_FUNCTION(fn_name)      \
714*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                               \
715*4bdc9457SAndroid Build Coastguard Worker     union xnn_u8_minmax_params params[XNN_MIN_ELEMENTS(1)],  \
716*4bdc9457SAndroid Build Coastguard Worker     uint8_t output_min,                                      \
717*4bdc9457SAndroid Build Coastguard Worker     uint8_t output_max);
718*4bdc9457SAndroid Build Coastguard Worker 
719*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_U8_MINMAX_PARAMS_FUNCTION(xnn_init_u8_minmax_params)
720*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_U8_MINMAX_PARAMS_FUNCTION(xnn_init_u8_minmax_scalar_params)
721*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
722*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_U8_MINMAX_PARAMS_FUNCTION(xnn_init_u8_minmax_neon_params)
723*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
724*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
725*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_U8_MINMAX_PARAMS_FUNCTION(xnn_init_u8_minmax_sse2_params)
726*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
727*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
728*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_U8_MINMAX_PARAMS_FUNCTION(xnn_init_u8_minmax_wasmsimd_params)
729*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
730*4bdc9457SAndroid Build Coastguard Worker 
731*4bdc9457SAndroid Build Coastguard Worker 
732*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_QS8_ADD_MINMAX_PARAMS_FUNCTION(fn_name)        \
733*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                                      \
734*4bdc9457SAndroid Build Coastguard Worker     union xnn_qs8_add_minmax_params params[XNN_MIN_ELEMENTS(1)], \
735*4bdc9457SAndroid Build Coastguard Worker     int8_t x_zero_point,                                            \
736*4bdc9457SAndroid Build Coastguard Worker     int8_t y_zero_point,                                            \
737*4bdc9457SAndroid Build Coastguard Worker     int8_t output_zero_point,                                       \
738*4bdc9457SAndroid Build Coastguard Worker     float x_output_scale,                                           \
739*4bdc9457SAndroid Build Coastguard Worker     float y_output_scale,                                           \
740*4bdc9457SAndroid Build Coastguard Worker     int8_t output_min,                                              \
741*4bdc9457SAndroid Build Coastguard Worker     int8_t output_max);
742*4bdc9457SAndroid Build Coastguard Worker 
743*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QS8_ADD_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_add_minmax_scalar_params)
744*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
745*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_ADD_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_add_minmax_neon_params)
746*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
747*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
748*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_ADD_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_add_minmax_sse2_params)
749*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_ADD_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_add_minmax_sse4_mul16_params)
750*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_ADD_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_add_minmax_sse4_mul32_params)
751*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_ADD_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_add_minmax_avx2_params)
752*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_ADD_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_add_minmax_avx512_params)
753*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
754*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
755*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_ADD_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_add_minmax_wasmsimd_params)
756*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
757*4bdc9457SAndroid Build Coastguard Worker 
758*4bdc9457SAndroid Build Coastguard Worker 
759*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_QU8_ADD_MINMAX_PARAMS_FUNCTION(fn_name)        \
760*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                                      \
761*4bdc9457SAndroid Build Coastguard Worker     union xnn_qu8_add_minmax_params params[XNN_MIN_ELEMENTS(1)], \
762*4bdc9457SAndroid Build Coastguard Worker     uint8_t x_zero_point,                                           \
763*4bdc9457SAndroid Build Coastguard Worker     uint8_t y_zero_point,                                           \
764*4bdc9457SAndroid Build Coastguard Worker     uint8_t output_zero_point,                                      \
765*4bdc9457SAndroid Build Coastguard Worker     float x_output_scale,                                           \
766*4bdc9457SAndroid Build Coastguard Worker     float y_output_scale,                                           \
767*4bdc9457SAndroid Build Coastguard Worker     uint8_t output_min,                                             \
768*4bdc9457SAndroid Build Coastguard Worker     uint8_t output_max);
769*4bdc9457SAndroid Build Coastguard Worker 
770*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QU8_ADD_MINMAX_PARAMS_FUNCTION(xnn_init_qu8_add_minmax_scalar_params)
771*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
772*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_ADD_MINMAX_PARAMS_FUNCTION(xnn_init_qu8_add_minmax_neon_params)
773*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
774*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
775*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_ADD_MINMAX_PARAMS_FUNCTION(xnn_init_qu8_add_minmax_sse2_params)
776*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_ADD_MINMAX_PARAMS_FUNCTION(xnn_init_qu8_add_minmax_sse4_params)
777*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_ADD_MINMAX_PARAMS_FUNCTION(xnn_init_qu8_add_minmax_avx2_params)
778*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_ADD_MINMAX_PARAMS_FUNCTION(xnn_init_qu8_add_minmax_avx512_params)
779*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
780*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
781*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_ADD_MINMAX_PARAMS_FUNCTION(xnn_init_qu8_add_minmax_wasmsimd_params)
782*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
783*4bdc9457SAndroid Build Coastguard Worker 
784*4bdc9457SAndroid Build Coastguard Worker 
785*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_QS8_MUL_MINMAX_PARAMS_FUNCTION(fn_name)     \
786*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                                   \
787*4bdc9457SAndroid Build Coastguard Worker     union xnn_qs8_mul_minmax_params params[XNN_MIN_ELEMENTS(1)], \
788*4bdc9457SAndroid Build Coastguard Worker     int8_t a_zero_point,                                         \
789*4bdc9457SAndroid Build Coastguard Worker     int8_t b_zero_point,                                         \
790*4bdc9457SAndroid Build Coastguard Worker     int8_t output_zero_point,                                    \
791*4bdc9457SAndroid Build Coastguard Worker     float product_output_scale,                                  \
792*4bdc9457SAndroid Build Coastguard Worker     int8_t output_min,                                           \
793*4bdc9457SAndroid Build Coastguard Worker     int8_t output_max);
794*4bdc9457SAndroid Build Coastguard Worker 
795*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QS8_MUL_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_mul_minmax_fp32_scalar_params)
796*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
797*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_MUL_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_mul_minmax_fp32_neon_params)
798*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_MUL_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_mul_minmax_fp32_neonv8_params)
799*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_MUL_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_mul_minmax_rndnu_neon_params)
800*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
801*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
802*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_MUL_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_mul_minmax_fp32_sse2_params)
803*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_MUL_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_mul_minmax_fp32_sse4_params)
804*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
805*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
806*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_MUL_MINMAX_PARAMS_FUNCTION(xnn_init_qs8_mul_minmax_fp32_wasmsimd_params)
807*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
808*4bdc9457SAndroid Build Coastguard Worker 
809*4bdc9457SAndroid Build Coastguard Worker 
810*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_QU8_MUL_MINMAX_PARAMS_FUNCTION(fn_name)     \
811*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                                   \
812*4bdc9457SAndroid Build Coastguard Worker     union xnn_qu8_mul_minmax_params params[XNN_MIN_ELEMENTS(1)], \
813*4bdc9457SAndroid Build Coastguard Worker     uint8_t a_zero_point,                                        \
814*4bdc9457SAndroid Build Coastguard Worker     uint8_t b_zero_point,                                        \
815*4bdc9457SAndroid Build Coastguard Worker     uint8_t output_zero_point,                                   \
816*4bdc9457SAndroid Build Coastguard Worker     float product_output_scale,                                  \
817*4bdc9457SAndroid Build Coastguard Worker     uint8_t output_min,                                          \
818*4bdc9457SAndroid Build Coastguard Worker     uint8_t output_max);
819*4bdc9457SAndroid Build Coastguard Worker 
820*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QU8_MUL_MINMAX_PARAMS_FUNCTION(xnn_init_qu8_mul_minmax_fp32_scalar_params)
821*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
822*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_MUL_MINMAX_PARAMS_FUNCTION(xnn_init_qu8_mul_minmax_fp32_neon_params)
823*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_MUL_MINMAX_PARAMS_FUNCTION(xnn_init_qu8_mul_minmax_fp32_neonv8_params)
824*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_MUL_MINMAX_PARAMS_FUNCTION(xnn_init_qu8_mul_minmax_rndnu_neon_params)
825*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
826*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
827*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_MUL_MINMAX_PARAMS_FUNCTION(xnn_init_qu8_mul_minmax_fp32_sse2_params)
828*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
829*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
830*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_MUL_MINMAX_PARAMS_FUNCTION(xnn_init_qu8_mul_minmax_fp32_wasmsimd_params)
831*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
832*4bdc9457SAndroid Build Coastguard Worker 
833*4bdc9457SAndroid Build Coastguard Worker 
834*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_F16_F32_CVT_PARAMS_FUNCTION(fn_name)      \
835*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                                 \
836*4bdc9457SAndroid Build Coastguard Worker     union xnn_f16_f32_cvt_params params[XNN_MIN_ELEMENTS(1)]);
837*4bdc9457SAndroid Build Coastguard Worker 
838*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_F16_F32_CVT_PARAMS_FUNCTION(xnn_init_f16_f32_cvt_scalar_params)
839*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
840*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F16_F32_CVT_PARAMS_FUNCTION(xnn_init_f16_f32_cvt_neon_params)
841*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
842*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
843*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F16_F32_CVT_PARAMS_FUNCTION(xnn_init_f16_f32_cvt_sse_int16_params)
844*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F16_F32_CVT_PARAMS_FUNCTION(xnn_init_f16_f32_cvt_sse_int32_params)
845*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
846*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
847*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F16_F32_CVT_PARAMS_FUNCTION(xnn_init_f16_f32_cvt_wasmsimd_int16_params)
848*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F16_F32_CVT_PARAMS_FUNCTION(xnn_init_f16_f32_cvt_wasmsimd_int32_params)
849*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
850*4bdc9457SAndroid Build Coastguard Worker 
851*4bdc9457SAndroid Build Coastguard Worker 
852*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_F32_F16_CVT_PARAMS_FUNCTION(fn_name)      \
853*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                                 \
854*4bdc9457SAndroid Build Coastguard Worker     union xnn_f32_f16_cvt_params params[XNN_MIN_ELEMENTS(1)]);
855*4bdc9457SAndroid Build Coastguard Worker 
856*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_F32_F16_CVT_PARAMS_FUNCTION(xnn_init_f32_f16_cvt_scalar_bitcast_params)
857*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_F32_F16_CVT_PARAMS_FUNCTION(xnn_init_f32_f16_cvt_scalar_fabsf_params)
858*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
859*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_F16_CVT_PARAMS_FUNCTION(xnn_init_f32_f16_cvt_neon_params)
860*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
861*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
862*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_F16_CVT_PARAMS_FUNCTION(xnn_init_f32_f16_cvt_sse2_params)
863*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_F16_CVT_PARAMS_FUNCTION(xnn_init_f32_f16_cvt_f16c_params)
864*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
865*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
866*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_F16_CVT_PARAMS_FUNCTION(xnn_init_f32_f16_cvt_wasmsimd_params)
867*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
868*4bdc9457SAndroid Build Coastguard Worker 
869*4bdc9457SAndroid Build Coastguard Worker 
870*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_F32_QS8_CVT_PARAMS_FUNCTION(fn_name)     \
871*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                                \
872*4bdc9457SAndroid Build Coastguard Worker     union xnn_f32_qs8_cvt_params params[XNN_MIN_ELEMENTS(1)], \
873*4bdc9457SAndroid Build Coastguard Worker     float scale,                                              \
874*4bdc9457SAndroid Build Coastguard Worker     int8_t zero_point,                                        \
875*4bdc9457SAndroid Build Coastguard Worker     int8_t output_min,                                        \
876*4bdc9457SAndroid Build Coastguard Worker     int8_t output_max);
877*4bdc9457SAndroid Build Coastguard Worker 
878*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_F32_QS8_CVT_PARAMS_FUNCTION(xnn_init_f32_qs8_cvt_scalar_fmagic_params)
879*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_F32_QS8_CVT_PARAMS_FUNCTION(xnn_init_f32_qs8_cvt_scalar_imagic_params)
880*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_F32_QS8_CVT_PARAMS_FUNCTION(xnn_init_f32_qs8_cvt_scalar_lrintf_params)
881*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
882*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_QS8_CVT_PARAMS_FUNCTION(xnn_init_f32_qs8_cvt_neon_params)
883*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_QS8_CVT_PARAMS_FUNCTION(xnn_init_f32_qs8_cvt_neonv8_params)
884*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
885*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
886*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_QS8_CVT_PARAMS_FUNCTION(xnn_init_f32_qs8_cvt_sse2_params)
887*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_QS8_CVT_PARAMS_FUNCTION(xnn_init_f32_qs8_cvt_sse4_params)
888*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_QS8_CVT_PARAMS_FUNCTION(xnn_init_f32_qs8_cvt_avx_params)
889*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_QS8_CVT_PARAMS_FUNCTION(xnn_init_f32_qs8_cvt_avx2_params)
890*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_QS8_CVT_PARAMS_FUNCTION(xnn_init_f32_qs8_cvt_avx512_params)
891*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
892*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
893*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_QS8_CVT_PARAMS_FUNCTION(xnn_init_f32_qs8_cvt_wasmsimd_cvt_params)
894*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_QS8_CVT_PARAMS_FUNCTION(xnn_init_f32_qs8_cvt_wasmsimd_magic_params)
895*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
896*4bdc9457SAndroid Build Coastguard Worker 
897*4bdc9457SAndroid Build Coastguard Worker 
898*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_F32_QU8_CVT_PARAMS_FUNCTION(fn_name)     \
899*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                                \
900*4bdc9457SAndroid Build Coastguard Worker     union xnn_f32_qu8_cvt_params params[XNN_MIN_ELEMENTS(1)], \
901*4bdc9457SAndroid Build Coastguard Worker     float scale,                                              \
902*4bdc9457SAndroid Build Coastguard Worker     uint8_t zero_point,                                       \
903*4bdc9457SAndroid Build Coastguard Worker     uint8_t output_min,                                       \
904*4bdc9457SAndroid Build Coastguard Worker     uint8_t output_max);
905*4bdc9457SAndroid Build Coastguard Worker 
906*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_F32_QU8_CVT_PARAMS_FUNCTION(xnn_init_f32_qu8_cvt_scalar_fmagic_params)
907*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_F32_QU8_CVT_PARAMS_FUNCTION(xnn_init_f32_qu8_cvt_scalar_imagic_params)
908*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_F32_QU8_CVT_PARAMS_FUNCTION(xnn_init_f32_qu8_cvt_scalar_lrintf_params)
909*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
910*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_QU8_CVT_PARAMS_FUNCTION(xnn_init_f32_qu8_cvt_neon_params)
911*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_QU8_CVT_PARAMS_FUNCTION(xnn_init_f32_qu8_cvt_neonv8_params)
912*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
913*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
914*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_QU8_CVT_PARAMS_FUNCTION(xnn_init_f32_qu8_cvt_sse2_params)
915*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_QU8_CVT_PARAMS_FUNCTION(xnn_init_f32_qu8_cvt_avx_params)
916*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_QU8_CVT_PARAMS_FUNCTION(xnn_init_f32_qu8_cvt_avx2_params)
917*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_QU8_CVT_PARAMS_FUNCTION(xnn_init_f32_qu8_cvt_avx512_params)
918*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
919*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
920*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_QU8_CVT_PARAMS_FUNCTION(xnn_init_f32_qu8_cvt_wasmsimd_cvt_params)
921*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_F32_QU8_CVT_PARAMS_FUNCTION(xnn_init_f32_qu8_cvt_wasmsimd_magic_params)
922*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
923*4bdc9457SAndroid Build Coastguard Worker 
924*4bdc9457SAndroid Build Coastguard Worker 
925*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_QS8_CVT_PARAMS_FUNCTION(fn_name)     \
926*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                            \
927*4bdc9457SAndroid Build Coastguard Worker     union xnn_qs8_cvt_params params[XNN_MIN_ELEMENTS(1)], \
928*4bdc9457SAndroid Build Coastguard Worker     float input_output_scale,                             \
929*4bdc9457SAndroid Build Coastguard Worker     int8_t input_zero_point,                              \
930*4bdc9457SAndroid Build Coastguard Worker     int8_t output_zero_point);
931*4bdc9457SAndroid Build Coastguard Worker 
932*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QS8_CVT_PARAMS_FUNCTION(xnn_init_qs8_cvt_scalar_params)
933*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM
934*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_CVT_PARAMS_FUNCTION(xnn_init_qs8_cvt_armsimd32_params)
935*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM
936*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
937*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_CVT_PARAMS_FUNCTION(xnn_init_qs8_cvt_neon_params)
938*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
939*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
940*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_CVT_PARAMS_FUNCTION(xnn_init_qs8_cvt_sse2_params)
941*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_CVT_PARAMS_FUNCTION(xnn_init_qs8_cvt_ssse3_params)
942*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_CVT_PARAMS_FUNCTION(xnn_init_qs8_cvt_avx2_params)
943*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
944*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
945*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_CVT_PARAMS_FUNCTION(xnn_init_qs8_cvt_wasmsimd_params)
946*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
947*4bdc9457SAndroid Build Coastguard Worker 
948*4bdc9457SAndroid Build Coastguard Worker 
949*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_QS8_F32_CVT_PARAMS_FUNCTION(fn_name)     \
950*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                                \
951*4bdc9457SAndroid Build Coastguard Worker     union xnn_qs8_f32_cvt_params params[XNN_MIN_ELEMENTS(1)], \
952*4bdc9457SAndroid Build Coastguard Worker     float scale,                                              \
953*4bdc9457SAndroid Build Coastguard Worker     int8_t zero_point);
954*4bdc9457SAndroid Build Coastguard Worker 
955*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QS8_F32_CVT_PARAMS_FUNCTION(xnn_init_qs8_f32_cvt_scalar_params)
956*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
957*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_F32_CVT_PARAMS_FUNCTION(xnn_init_qs8_f32_cvt_neon_params)
958*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
959*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
960*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_F32_CVT_PARAMS_FUNCTION(xnn_init_qs8_f32_cvt_sse2_params)
961*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_F32_CVT_PARAMS_FUNCTION(xnn_init_qs8_f32_cvt_sse4_params)
962*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_F32_CVT_PARAMS_FUNCTION(xnn_init_qs8_f32_cvt_avx_params)
963*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_F32_CVT_PARAMS_FUNCTION(xnn_init_qs8_f32_cvt_avx512_params)
964*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
965*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
966*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QS8_F32_CVT_PARAMS_FUNCTION(xnn_init_qs8_f32_cvt_wasmsimd_params)
967*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
968*4bdc9457SAndroid Build Coastguard Worker 
969*4bdc9457SAndroid Build Coastguard Worker 
970*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_QU8_CVT_PARAMS_FUNCTION(fn_name)     \
971*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                            \
972*4bdc9457SAndroid Build Coastguard Worker     union xnn_qu8_cvt_params params[XNN_MIN_ELEMENTS(1)], \
973*4bdc9457SAndroid Build Coastguard Worker     float input_output_scale,                             \
974*4bdc9457SAndroid Build Coastguard Worker     uint8_t input_zero_point,                             \
975*4bdc9457SAndroid Build Coastguard Worker     uint8_t output_zero_point);
976*4bdc9457SAndroid Build Coastguard Worker 
977*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QU8_CVT_PARAMS_FUNCTION(xnn_init_qu8_cvt_scalar_params)
978*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM
979*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_CVT_PARAMS_FUNCTION(xnn_init_qu8_cvt_armsimd32_params)
980*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM
981*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
982*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_CVT_PARAMS_FUNCTION(xnn_init_qu8_cvt_neon_params)
983*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
984*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
985*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_CVT_PARAMS_FUNCTION(xnn_init_qu8_cvt_sse2_params)
986*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_CVT_PARAMS_FUNCTION(xnn_init_qu8_cvt_ssse3_params)
987*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_CVT_PARAMS_FUNCTION(xnn_init_qu8_cvt_avx2_params)
988*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
989*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
990*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_CVT_PARAMS_FUNCTION(xnn_init_qu8_cvt_wasmsimd_params)
991*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
992*4bdc9457SAndroid Build Coastguard Worker 
993*4bdc9457SAndroid Build Coastguard Worker 
994*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_INIT_QU8_F32_CVT_PARAMS_FUNCTION(fn_name)     \
995*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL size_t fn_name(                                \
996*4bdc9457SAndroid Build Coastguard Worker     union xnn_qu8_f32_cvt_params params[XNN_MIN_ELEMENTS(1)], \
997*4bdc9457SAndroid Build Coastguard Worker     float scale,                                              \
998*4bdc9457SAndroid Build Coastguard Worker     uint8_t zero_point);
999*4bdc9457SAndroid Build Coastguard Worker 
1000*4bdc9457SAndroid Build Coastguard Worker DECLARE_INIT_QU8_F32_CVT_PARAMS_FUNCTION(xnn_init_qu8_f32_cvt_scalar_params)
1001*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
1002*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_F32_CVT_PARAMS_FUNCTION(xnn_init_qu8_f32_cvt_neon_params)
1003*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
1004*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
1005*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_F32_CVT_PARAMS_FUNCTION(xnn_init_qu8_f32_cvt_sse2_params)
1006*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_F32_CVT_PARAMS_FUNCTION(xnn_init_qu8_f32_cvt_sse4_params)
1007*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_F32_CVT_PARAMS_FUNCTION(xnn_init_qu8_f32_cvt_avx_params)
1008*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_F32_CVT_PARAMS_FUNCTION(xnn_init_qu8_f32_cvt_avx512_params)
1009*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1010*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
1011*4bdc9457SAndroid Build Coastguard Worker   DECLARE_INIT_QU8_F32_CVT_PARAMS_FUNCTION(xnn_init_qu8_f32_cvt_wasmsimd_params)
1012*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
1013*4bdc9457SAndroid Build Coastguard Worker 
1014*4bdc9457SAndroid Build Coastguard Worker 
1015*4bdc9457SAndroid Build Coastguard Worker #ifdef __cplusplus
1016*4bdc9457SAndroid Build Coastguard Worker }  // extern "C"
1017*4bdc9457SAndroid Build Coastguard Worker #endif
1018