blob: aa64cf2b69235ef9cc399f27c411879580644bab [file] [log] [blame]
XNNPACK Teamb455b122019-09-27 18:10:33 -07001// Copyright 2019 Google LLC
2//
3// This source code is licensed under the BSD-style license found in the
4// LICENSE file in the root directory of this source tree.
5
6#pragma once
7
8#include <stddef.h>
9#include <stdint.h>
10
11#include <xnnpack/params.h>
12#include <xnnpack/common.h>
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
18
Marat Dukhan99936602020-04-11 16:47:01 -070019#define DECLARE_F32_PAVGPOOL_MINMAX_MULTIPASS_UKERNEL_FUNCTION(fn_name) \
20 XNN_INTERNAL void fn_name( \
21 size_t output_pixels, \
22 size_t kernel_elements, \
23 size_t channels, \
24 const float** input, \
25 size_t input_offset, \
26 const float* zero, \
27 const float* multiplier, \
28 float* buffer, \
29 float* output, \
30 size_t input_increment, \
31 size_t output_increment, \
Marat Dukhaneb09a6b2020-04-08 17:34:32 -070032 const union xnn_f32_minmax_params* params);
XNNPACK Teamb455b122019-09-27 18:10:33 -070033
Marat Dukhan99936602020-04-11 16:47:01 -070034DECLARE_F32_PAVGPOOL_MINMAX_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_pavgpool_minmax_ukernel_9p8x__neon_c4)
35DECLARE_F32_PAVGPOOL_MINMAX_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_pavgpool_minmax_ukernel_9p8x__sse_c4)
Marat Dukhan1483c532020-07-16 18:08:19 -070036DECLARE_F32_PAVGPOOL_MINMAX_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_pavgpool_minmax_ukernel_9p8x__wasmsimd_arm_c4)
37DECLARE_F32_PAVGPOOL_MINMAX_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_pavgpool_minmax_ukernel_9p8x__wasmsimd_x86_c4)
Marat Dukhan99936602020-04-11 16:47:01 -070038DECLARE_F32_PAVGPOOL_MINMAX_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_pavgpool_minmax_ukernel_9p8x__wasm_c1)
39DECLARE_F32_PAVGPOOL_MINMAX_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_pavgpool_minmax_ukernel_9p8x__scalar_c1)
XNNPACK Teamb455b122019-09-27 18:10:33 -070040
41
Marat Dukhan99936602020-04-11 16:47:01 -070042#define DECLARE_F32_PAVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(fn_name) \
43 XNN_INTERNAL void fn_name( \
44 size_t output_pixels, \
45 size_t kernel_elements, \
46 size_t channels, \
47 const float** input, \
48 size_t input_offset, \
49 const float* zero, \
50 const float* multiplier, \
51 float* output, \
52 size_t input_increment, \
53 size_t output_increment, \
Marat Dukhaneb09a6b2020-04-08 17:34:32 -070054 const union xnn_f32_minmax_params* params);
XNNPACK Teamb455b122019-09-27 18:10:33 -070055
Marat Dukhan99936602020-04-11 16:47:01 -070056DECLARE_F32_PAVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(xnn_f32_pavgpool_minmax_ukernel_9x__neon_c4)
57DECLARE_F32_PAVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(xnn_f32_pavgpool_minmax_ukernel_9x__sse_c4)
Marat Dukhan1483c532020-07-16 18:08:19 -070058DECLARE_F32_PAVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(xnn_f32_pavgpool_minmax_ukernel_9x__wasmsimd_arm_c4)
59DECLARE_F32_PAVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(xnn_f32_pavgpool_minmax_ukernel_9x__wasmsimd_x86_c4)
Marat Dukhan99936602020-04-11 16:47:01 -070060DECLARE_F32_PAVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(xnn_f32_pavgpool_minmax_ukernel_9x__wasm_c1)
61DECLARE_F32_PAVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(xnn_f32_pavgpool_minmax_ukernel_9x__scalar_c1)
XNNPACK Teamb455b122019-09-27 18:10:33 -070062
63
64#ifdef __cplusplus
Marat Dukhan80fc9322019-09-29 21:06:36 -070065} // extern "C"
XNNPACK Teamb455b122019-09-27 18:10:33 -070066#endif