blob: 4154d81d0d3d9515e8af0623253f0fd9322c69eb [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)
Marat Dukhan3b7432d2020-07-16 17:46:32 -070038DECLARE_F32_AVGPOOL_MINMAX_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_avgpool_minmax_ukernel_9p8x__wasmsimd_arm_c4)
39DECLARE_F32_AVGPOOL_MINMAX_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_avgpool_minmax_ukernel_9p8x__wasmsimd_x86_c4)
Marat Dukhan99936602020-04-11 16:47:01 -070040DECLARE_F32_AVGPOOL_MINMAX_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_avgpool_minmax_ukernel_9p8x__wasm_c1)
41DECLARE_F32_AVGPOOL_MINMAX_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_avgpool_minmax_ukernel_9p8x__scalar_c1)
XNNPACK Teamb455b122019-09-27 18:10:33 -070042
43
Marat Dukhan99936602020-04-11 16:47:01 -070044#define DECLARE_F32_AVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(fn_name) \
45 XNN_INTERNAL void fn_name( \
46 size_t output_pixels, \
47 size_t kernel_elements, \
48 size_t channels, \
49 const float** input, \
50 size_t input_offset, \
51 const float* zero, \
52 float* output, \
53 size_t input_increment, \
54 size_t output_increment, \
Marat Dukhan8452ff52020-04-08 20:44:58 -070055 const union xnn_f32_scaleminmax_params* params);
XNNPACK Teamb455b122019-09-27 18:10:33 -070056
Marat Dukhan99936602020-04-11 16:47:01 -070057DECLARE_F32_AVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(xnn_f32_avgpool_minmax_ukernel_9x__neon_c4)
58DECLARE_F32_AVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(xnn_f32_avgpool_minmax_ukernel_9x__sse_c4)
Marat Dukhan3b7432d2020-07-16 17:46:32 -070059DECLARE_F32_AVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(xnn_f32_avgpool_minmax_ukernel_9x__wasmsimd_arm_c4)
60DECLARE_F32_AVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(xnn_f32_avgpool_minmax_ukernel_9x__wasmsimd_x86_c4)
Marat Dukhan99936602020-04-11 16:47:01 -070061DECLARE_F32_AVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(xnn_f32_avgpool_minmax_ukernel_9x__wasm_c1)
62DECLARE_F32_AVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(xnn_f32_avgpool_minmax_ukernel_9x__scalar_c1)
XNNPACK Teamb455b122019-09-27 18:10:33 -070063
64
Marat Dukhan08b7a972020-07-14 18:17:29 -070065#define DECLARE_QU8_AVGPOOL_MINMAX_MULTIPASS_UKERNEL_FUNCTION(fn_name) \
66 XNN_INTERNAL void fn_name( \
67 size_t output_pixels, \
68 size_t kernel_elements, \
69 size_t channels, \
70 const uint8_t** input, \
71 size_t input_offset, \
72 const uint8_t* zero, \
73 int32_t* buffer, \
74 uint8_t* output, \
75 size_t input_increment, \
76 size_t output_increment, \
Marat Dukhan5d456ce2022-01-07 16:07:54 -080077 const union xnn_qu8_avgpool_minmax_params* params);
XNNPACK Teamb455b122019-09-27 18:10:33 -070078
Marat Dukhan08b7a972020-07-14 18:17:29 -070079DECLARE_QU8_AVGPOOL_MINMAX_MULTIPASS_UKERNEL_FUNCTION(xnn_qu8_avgpool_minmax_ukernel_9p8x__neon_c8)
80DECLARE_QU8_AVGPOOL_MINMAX_MULTIPASS_UKERNEL_FUNCTION(xnn_qu8_avgpool_minmax_ukernel_9p8x__sse2_c8)
81DECLARE_QU8_AVGPOOL_MINMAX_MULTIPASS_UKERNEL_FUNCTION(xnn_qu8_avgpool_minmax_ukernel_9p8x__scalar_c1)
XNNPACK Teamb455b122019-09-27 18:10:33 -070082
83
Marat Dukhan08b7a972020-07-14 18:17:29 -070084#define DECLARE_QU8_AVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(fn_name) \
85 XNN_INTERNAL void fn_name( \
86 size_t output_pixels, \
87 size_t kernel_elements, \
88 size_t channels, \
89 const uint8_t** input, \
90 size_t input_offset, \
91 const uint8_t* zero, \
92 uint8_t* output, \
93 size_t input_increment, \
94 size_t output_increment, \
Marat Dukhan5d456ce2022-01-07 16:07:54 -080095 const union xnn_qu8_avgpool_minmax_params* params);
XNNPACK Teamb455b122019-09-27 18:10:33 -070096
Marat Dukhan08b7a972020-07-14 18:17:29 -070097DECLARE_QU8_AVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(xnn_qu8_avgpool_minmax_ukernel_9x__neon_c8)
98DECLARE_QU8_AVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(xnn_qu8_avgpool_minmax_ukernel_9x__sse2_c8)
99DECLARE_QU8_AVGPOOL_MINMAX_UNIPASS_UKERNEL_FUNCTION(xnn_qu8_avgpool_minmax_ukernel_9x__scalar_c1)
XNNPACK Teamb455b122019-09-27 18:10:33 -0700100
101
102#ifdef __cplusplus
Marat Dukhan80fc9322019-09-29 21:06:36 -0700103} // extern "C"
XNNPACK Teamb455b122019-09-27 18:10:33 -0700104#endif