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_F32_ARGMAXPOOL_UNIPASS_UKERNEL_FUNCTION(fn_name) \ 19*4bdc9457SAndroid Build Coastguard Worker XNN_INTERNAL void fn_name( \ 20*4bdc9457SAndroid Build Coastguard Worker size_t output_pixels, \ 21*4bdc9457SAndroid Build Coastguard Worker size_t kernel_elements, \ 22*4bdc9457SAndroid Build Coastguard Worker size_t channels, \ 23*4bdc9457SAndroid Build Coastguard Worker const float** input, \ 24*4bdc9457SAndroid Build Coastguard Worker size_t input_offset, \ 25*4bdc9457SAndroid Build Coastguard Worker float* output, \ 26*4bdc9457SAndroid Build Coastguard Worker uint32_t* index, \ 27*4bdc9457SAndroid Build Coastguard Worker size_t input_increment, \ 28*4bdc9457SAndroid Build Coastguard Worker size_t output_increment); 29*4bdc9457SAndroid Build Coastguard Worker 30*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_ARGMAXPOOL_UNIPASS_UKERNEL_FUNCTION(xnn_f32_argmaxpool_ukernel_4x__neon_c4) 31*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_ARGMAXPOOL_UNIPASS_UKERNEL_FUNCTION(xnn_f32_argmaxpool_ukernel_4x__scalar_c1) 32*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_ARGMAXPOOL_UNIPASS_UKERNEL_FUNCTION(xnn_f32_argmaxpool_ukernel_4x__sse2_c4) 33*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_ARGMAXPOOL_UNIPASS_UKERNEL_FUNCTION(xnn_f32_argmaxpool_ukernel_4x__wasmsimd_c4) 34*4bdc9457SAndroid Build Coastguard Worker 35*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_ARGMAXPOOL_UNIPASS_UKERNEL_FUNCTION(xnn_f32_argmaxpool_ukernel_9x__neon_c4) 36*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_ARGMAXPOOL_UNIPASS_UKERNEL_FUNCTION(xnn_f32_argmaxpool_ukernel_9x__scalar_c1) 37*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_ARGMAXPOOL_UNIPASS_UKERNEL_FUNCTION(xnn_f32_argmaxpool_ukernel_9x__sse2_c4) 38*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_ARGMAXPOOL_UNIPASS_UKERNEL_FUNCTION(xnn_f32_argmaxpool_ukernel_9x__wasmsimd_c4) 39*4bdc9457SAndroid Build Coastguard Worker 40*4bdc9457SAndroid Build Coastguard Worker 41*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_F32_ARGMAXPOOL_MULTIPASS_UKERNEL_FUNCTION(fn_name) \ 42*4bdc9457SAndroid Build Coastguard Worker XNN_INTERNAL void fn_name( \ 43*4bdc9457SAndroid Build Coastguard Worker size_t output_pixels, \ 44*4bdc9457SAndroid Build Coastguard Worker size_t kernel_elements, \ 45*4bdc9457SAndroid Build Coastguard Worker size_t channels, \ 46*4bdc9457SAndroid Build Coastguard Worker const float** input, \ 47*4bdc9457SAndroid Build Coastguard Worker size_t input_offset, \ 48*4bdc9457SAndroid Build Coastguard Worker float* accumulation_buffer, \ 49*4bdc9457SAndroid Build Coastguard Worker uint32_t* index_buffer, \ 50*4bdc9457SAndroid Build Coastguard Worker float* output, \ 51*4bdc9457SAndroid Build Coastguard Worker uint32_t* index, \ 52*4bdc9457SAndroid Build Coastguard Worker size_t input_increment, \ 53*4bdc9457SAndroid Build Coastguard Worker size_t output_increment); 54*4bdc9457SAndroid Build Coastguard Worker 55*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_ARGMAXPOOL_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_argmaxpool_ukernel_9p8x__neon_c4) 56*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_ARGMAXPOOL_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_argmaxpool_ukernel_9p8x__scalar_c1) 57*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_ARGMAXPOOL_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_argmaxpool_ukernel_9p8x__sse2_c4) 58*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_ARGMAXPOOL_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_argmaxpool_ukernel_9p8x__wasmsimd_c4) 59*4bdc9457SAndroid Build Coastguard Worker 60*4bdc9457SAndroid Build Coastguard Worker 61*4bdc9457SAndroid Build Coastguard Worker #ifdef __cplusplus 62*4bdc9457SAndroid Build Coastguard Worker } // extern "C" 63*4bdc9457SAndroid Build Coastguard Worker #endif 64