blob: f2505576e46856725e7ca3e2b36d33ec4c3c2b7b [file] [log] [blame]
XNNPACK Teamb455b122019-09-27 18:10:33 -07001// Copyright (c) Facebook, Inc. and its affiliates.
2// All rights reserved.
3//
4// Copyright 2019 Google LLC
5//
6// This source code is licensed under the BSD-style license found in the
7// LICENSE file in the root directory of this source tree.
8
9#pragma once
10
11#include <stddef.h>
12#include <stdint.h>
13
14#include <xnnpack/params.h>
15#include <xnnpack/common.h>
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
21
Marat Dukhan99936602020-04-11 16:47:01 -070022#define DECLARE_F32_AVGPOOL_MINMAX_MULTIPASS_UKERNEL_FUNCTION(fn_name) \
23 XNN_INTERNAL void fn_name( \
24 size_t output_pixels, \
25 size_t kernel_elements, \
26 size_t channels, \
27 const float** input, \
28 size_t input_offset, \
29 const float* zero, \
30 float* buffer, \
31 float* output, \
32 size_t input_increment, \
33 size_t output_increment, \
Marat Dukhan8452ff52020-04-08 20:44:58 -070034 const union xnn_f32_scaleminmax_params* params);
XNNPACK Teamb455b122019-09-27 18:10:33 -070035
Marat Dukhan99936602020-04-11 16:47:01 -070036DECLARE_F32_AVGPOOL_MINMAX_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_avgpool_minmax_ukernel_9p8x__neon_c4)
37DECLARE_F32_AVGPOOL_MINMAX_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_avgpool_minmax_ukernel_9p8x__sse_c4)
38DECLARE_F32_AVGPOOL_MINMAX_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_avgpool_minmax_ukernel_9p8x__psimd_c4)
39DECLARE_F32_AVGPOOL_MINMAX_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_avgpool_minmax_ukernel_9p8x__wasm_c1)
40DECLARE_F32_AVGPOOL_MINMAX_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_avgpool_minmax_ukernel_9p8x__scalar_c1)
XNNPACK Teamb455b122019-09-27 18:10:33 -070041
42
Marat Dukhan99936602020-04-11 16:47:01 -070043#define DECLARE_F32_AVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(fn_name) \
44 XNN_INTERNAL void fn_name( \
45 size_t output_pixels, \
46 size_t kernel_elements, \
47 size_t channels, \
48 const float** input, \
49 size_t input_offset, \
50 const float* zero, \
51 float* output, \
52 size_t input_increment, \
53 size_t output_increment, \
Marat Dukhan8452ff52020-04-08 20:44:58 -070054 const union xnn_f32_scaleminmax_params* params);
XNNPACK Teamb455b122019-09-27 18:10:33 -070055
Marat Dukhan99936602020-04-11 16:47:01 -070056DECLARE_F32_AVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(xnn_f32_avgpool_minmax_ukernel_9x__neon_c4)
57DECLARE_F32_AVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(xnn_f32_avgpool_minmax_ukernel_9x__sse_c4)
58DECLARE_F32_AVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(xnn_f32_avgpool_minmax_ukernel_9x__psimd_c4)
59DECLARE_F32_AVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(xnn_f32_avgpool_minmax_ukernel_9x__wasm_c1)
60DECLARE_F32_AVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(xnn_f32_avgpool_minmax_ukernel_9x__scalar_c1)
XNNPACK Teamb455b122019-09-27 18:10:33 -070061
62
Marat Dukhan99936602020-04-11 16:47:01 -070063#define DECLARE_Q8_AVGPOOL_MINMAX_MULTIPASS_UKERNEL_FUNCTION(fn_name) \
64 XNN_INTERNAL void fn_name( \
65 size_t output_pixels, \
66 size_t kernel_elements, \
67 size_t channels, \
68 const uint8_t** input, \
69 size_t input_offset, \
70 const uint8_t* zero, \
71 int32_t* buffer, \
72 uint8_t* output, \
73 size_t input_increment, \
74 size_t output_increment, \
XNNPACK Teamb455b122019-09-27 18:10:33 -070075 const union xnn_q8_avgpool_params* params);
76
Marat Dukhan99936602020-04-11 16:47:01 -070077DECLARE_Q8_AVGPOOL_MINMAX_MULTIPASS_UKERNEL_FUNCTION(xnn_q8_avgpool_minmax_ukernel_9p8x__neon_c8)
78DECLARE_Q8_AVGPOOL_MINMAX_MULTIPASS_UKERNEL_FUNCTION(xnn_q8_avgpool_minmax_ukernel_9p8x__sse2_c8)
79DECLARE_Q8_AVGPOOL_MINMAX_MULTIPASS_UKERNEL_FUNCTION(xnn_q8_avgpool_minmax_ukernel_9p8x__scalar_c1)
XNNPACK Teamb455b122019-09-27 18:10:33 -070080
81
Marat Dukhan99936602020-04-11 16:47:01 -070082#define DECLARE_Q8_AVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(fn_name) \
83 XNN_INTERNAL void fn_name( \
84 size_t output_pixels, \
85 size_t kernel_elements, \
86 size_t channels, \
87 const uint8_t** input, \
88 size_t input_offset, \
89 const uint8_t* zero, \
90 uint8_t* output, \
91 size_t input_increment, \
92 size_t output_increment, \
XNNPACK Teamb455b122019-09-27 18:10:33 -070093 const union xnn_q8_avgpool_params* params);
94
Marat Dukhan99936602020-04-11 16:47:01 -070095DECLARE_Q8_AVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(xnn_q8_avgpool_minmax_ukernel_9x__neon_c8)
96DECLARE_Q8_AVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(xnn_q8_avgpool_minmax_ukernel_9x__sse2_c8)
97DECLARE_Q8_AVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(xnn_q8_avgpool_minmax_ukernel_9x__scalar_c1)
XNNPACK Teamb455b122019-09-27 18:10:33 -070098
99
100#ifdef __cplusplus
Marat Dukhan80fc9322019-09-29 21:06:36 -0700101} // extern "C"
XNNPACK Teamb455b122019-09-27 18:10:33 -0700102#endif