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