1*4bdc9457SAndroid Build Coastguard Worker // Copyright 2019 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 <stddef.h> 9*4bdc9457SAndroid Build Coastguard Worker #include <stdint.h> 10*4bdc9457SAndroid Build Coastguard Worker 11*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/common.h> 12*4bdc9457SAndroid Build Coastguard Worker 13*4bdc9457SAndroid Build Coastguard Worker #ifdef __cplusplus 14*4bdc9457SAndroid Build Coastguard Worker extern "C" { 15*4bdc9457SAndroid Build Coastguard Worker #endif 16*4bdc9457SAndroid Build Coastguard Worker 17*4bdc9457SAndroid Build Coastguard Worker 18*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_F16_PRELU_UKERNEL_FUNCTION(fn_name) \ 19*4bdc9457SAndroid Build Coastguard Worker XNN_INTERNAL void fn_name( \ 20*4bdc9457SAndroid Build Coastguard Worker size_t rows, \ 21*4bdc9457SAndroid Build Coastguard Worker size_t channels, \ 22*4bdc9457SAndroid Build Coastguard Worker const void* input, \ 23*4bdc9457SAndroid Build Coastguard Worker size_t input_stride, \ 24*4bdc9457SAndroid Build Coastguard Worker const void* weights, \ 25*4bdc9457SAndroid Build Coastguard Worker void* output, \ 26*4bdc9457SAndroid Build Coastguard Worker size_t output_stride); 27*4bdc9457SAndroid Build Coastguard Worker 28*4bdc9457SAndroid Build Coastguard Worker DECLARE_F16_PRELU_UKERNEL_FUNCTION(xnn_f16_prelu_ukernel__neonfp16arith_2x8) 29*4bdc9457SAndroid Build Coastguard Worker DECLARE_F16_PRELU_UKERNEL_FUNCTION(xnn_f16_prelu_ukernel__neonfp16arith_2x16) 30*4bdc9457SAndroid Build Coastguard Worker 31*4bdc9457SAndroid Build Coastguard Worker DECLARE_F16_PRELU_UKERNEL_FUNCTION(xnn_f16_prelu_ukernel__f16c_2x8) 32*4bdc9457SAndroid Build Coastguard Worker DECLARE_F16_PRELU_UKERNEL_FUNCTION(xnn_f16_prelu_ukernel__f16c_2x16) 33*4bdc9457SAndroid Build Coastguard Worker 34*4bdc9457SAndroid Build Coastguard Worker 35*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_F32_PRELU_UKERNEL_FUNCTION(fn_name) \ 36*4bdc9457SAndroid Build Coastguard Worker XNN_INTERNAL void fn_name( \ 37*4bdc9457SAndroid Build Coastguard Worker size_t rows, \ 38*4bdc9457SAndroid Build Coastguard Worker size_t channels, \ 39*4bdc9457SAndroid Build Coastguard Worker const float* input, \ 40*4bdc9457SAndroid Build Coastguard Worker size_t input_stride, \ 41*4bdc9457SAndroid Build Coastguard Worker const float* weights, \ 42*4bdc9457SAndroid Build Coastguard Worker float* output, \ 43*4bdc9457SAndroid Build Coastguard Worker size_t output_stride); 44*4bdc9457SAndroid Build Coastguard Worker 45*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__neon_1x4) 46*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__neon_1x8) 47*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__neon_1x16) 48*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__neon_2x4) 49*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__neon_2x8) 50*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__neon_2x16) 51*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__neon_4x4) 52*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__neon_4x8) 53*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__neon_4x16) 54*4bdc9457SAndroid Build Coastguard Worker 55*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__sse_2x4) 56*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__sse_2x8) 57*4bdc9457SAndroid Build Coastguard Worker 58*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__sse2_2x4) 59*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__sse2_2x8) 60*4bdc9457SAndroid Build Coastguard Worker 61*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__sse41_2x4) 62*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__sse41_2x8) 63*4bdc9457SAndroid Build Coastguard Worker 64*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__avx_2x8) 65*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__avx_2x16) 66*4bdc9457SAndroid Build Coastguard Worker 67*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__avx512f_2x16) 68*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__avx512f_2x32) 69*4bdc9457SAndroid Build Coastguard Worker 70*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x4) 71*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x8) 72*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x16) 73*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x4) 74*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x8) 75*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x16) 76*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x4) 77*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x8) 78*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x16) 79*4bdc9457SAndroid Build Coastguard Worker 80*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x4) 81*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x8) 82*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x16) 83*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x4) 84*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x8) 85*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x16) 86*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x4) 87*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x8) 88*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x16) 89*4bdc9457SAndroid Build Coastguard Worker 90*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasm_2x1) 91*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasm_2x4) 92*4bdc9457SAndroid Build Coastguard Worker 93*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__scalar_2x1) 94*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__scalar_2x4) 95*4bdc9457SAndroid Build Coastguard Worker 96*4bdc9457SAndroid Build Coastguard Worker 97*4bdc9457SAndroid Build Coastguard Worker #ifdef __cplusplus 98*4bdc9457SAndroid Build Coastguard Worker } // extern "C" 99*4bdc9457SAndroid Build Coastguard Worker #endif 100