blob: 5fcd30664142eda0b28e2a5a6beacdd32336cab7 [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 Dukhan195f8eb2020-06-25 12:50:57 -070019#define DECLARE_F16_PRELU_UKERNEL_FUNCTION(fn_name) \
20 XNN_INTERNAL void fn_name( \
21 size_t rows, \
22 size_t channels, \
23 const void* input, \
24 size_t input_stride, \
25 const void* weights, \
26 void* output, \
Frank Barchardb1966592020-05-12 13:47:06 -070027 size_t output_stride);
28
29DECLARE_F16_PRELU_UKERNEL_FUNCTION(xnn_f16_prelu_ukernel__neonfp16arith_2x8)
30DECLARE_F16_PRELU_UKERNEL_FUNCTION(xnn_f16_prelu_ukernel__neonfp16arith_2x16)
31
Marat Dukhan195f8eb2020-06-25 12:50:57 -070032#define DECLARE_F32_PRELU_UKERNEL_FUNCTION(fn_name) \
33 XNN_INTERNAL void fn_name( \
34 size_t rows, \
35 size_t channels, \
36 const float* input, \
37 size_t input_stride, \
38 const float* weights, \
39 float* output, \
Marat Dukhanc8230a42020-02-24 00:00:35 -080040 size_t output_stride);
XNNPACK Teamb455b122019-09-27 18:10:33 -070041
Frank Barcharda5316982020-07-23 13:19:28 -070042DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__neon_1x4)
43DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__neon_1x8)
44DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__neon_1x16)
Marat Dukhan69c3f2c2019-11-06 12:30:01 -080045DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__neon_2x4)
46DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__neon_2x8)
Frank Barcharda5316982020-07-23 13:19:28 -070047DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__neon_2x16)
48DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__neon_4x4)
49DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__neon_4x8)
50DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__neon_4x16)
Marat Dukhan436ebe62019-12-04 15:10:12 -080051
Marat Dukhan39b5e942020-06-24 15:03:48 -070052DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__sse_2x4)
53DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__sse_2x8)
54
Marat Dukhan69c3f2c2019-11-06 12:30:01 -080055DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__sse2_2x4)
56DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__sse2_2x8)
Marat Dukhan436ebe62019-12-04 15:10:12 -080057
Marat Dukhan69c3f2c2019-11-06 12:30:01 -080058DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__sse41_2x4)
59DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__sse41_2x8)
XNNPACK Teamb455b122019-09-27 18:10:33 -070060
Marat Dukhan90eca0a2020-03-11 00:52:23 -070061DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__avx_2x8)
62DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__avx_2x16)
63
64DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__avx512f_2x16)
65DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__avx512f_2x32)
66
Frank Barcharda5316982020-07-23 13:19:28 -070067DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x4)
68DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x8)
69DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x16)
Marat Dukhan195f8eb2020-06-25 12:50:57 -070070DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x4)
71DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x8)
Frank Barcharda5316982020-07-23 13:19:28 -070072DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x16)
73DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x4)
74DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x8)
75DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x16)
Marat Dukhan195f8eb2020-06-25 12:50:57 -070076
Frank Barcharda5316982020-07-23 13:19:28 -070077DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x4)
78DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x8)
79DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x16)
Marat Dukhan195f8eb2020-06-25 12:50:57 -070080DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x4)
81DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x8)
Frank Barcharda5316982020-07-23 13:19:28 -070082DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x16)
83DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x4)
84DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x8)
85DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x16)
Marat Dukhan195f8eb2020-06-25 12:50:57 -070086
Marat Dukhan436ebe62019-12-04 15:10:12 -080087DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasm_2x1)
88DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__wasm_2x4)
89
90DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__scalar_2x1)
91DECLARE_F32_PRELU_UKERNEL_FUNCTION(xnn_f32_prelu_ukernel__scalar_2x4)
92
XNNPACK Teamb455b122019-09-27 18:10:33 -070093
94#ifdef __cplusplus
Marat Dukhan80fc9322019-09-29 21:06:36 -070095} // extern "C"
XNNPACK Teamb455b122019-09-27 18:10:33 -070096#endif