• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // 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
15 extern "C" {
16 #endif
17 
18 
19 #define DECLARE_F16_HSWISH_UKERNEL_FUNCTION(fn_name) \
20   XNN_INTERNAL void fn_name(                         \
21       size_t n,                                      \
22       const void* x,                                 \
23       void* y,                                       \
24       const struct xnn_f16_hswish_params* params);
25 
26 DECLARE_F16_HSWISH_UKERNEL_FUNCTION(xnn_f16_hswish_ukernel__neonfp16arith_x8)
27 DECLARE_F16_HSWISH_UKERNEL_FUNCTION(xnn_f16_hswish_ukernel__neonfp16arith_x16)
28 
29 #define DECLARE_F32_HSWISH_UKERNEL_FUNCTION(fn_name) \
30   XNN_INTERNAL void fn_name(                         \
31       size_t n,                                      \
32       const float* x,                                \
33       float* y,                                      \
34       const union xnn_f32_hswish_params* params);
35 
36 DECLARE_F32_HSWISH_UKERNEL_FUNCTION(xnn_f32_hswish_ukernel__neon_x4)
37 DECLARE_F32_HSWISH_UKERNEL_FUNCTION(xnn_f32_hswish_ukernel__neon_x8)
38 DECLARE_F32_HSWISH_UKERNEL_FUNCTION(xnn_f32_hswish_ukernel__neon_x16)
39 
40 DECLARE_F32_HSWISH_UKERNEL_FUNCTION(xnn_f32_hswish_ukernel__sse_x4)
41 DECLARE_F32_HSWISH_UKERNEL_FUNCTION(xnn_f32_hswish_ukernel__sse_x8)
42 
43 DECLARE_F32_HSWISH_UKERNEL_FUNCTION(xnn_f32_hswish_ukernel__avx_x8)
44 DECLARE_F32_HSWISH_UKERNEL_FUNCTION(xnn_f32_hswish_ukernel__avx_x16)
45 
46 DECLARE_F32_HSWISH_UKERNEL_FUNCTION(xnn_f32_hswish_ukernel__fma3_x8)
47 DECLARE_F32_HSWISH_UKERNEL_FUNCTION(xnn_f32_hswish_ukernel__fma3_x16)
48 
49 DECLARE_F32_HSWISH_UKERNEL_FUNCTION(xnn_f32_hswish_ukernel__avx512f_x16)
50 DECLARE_F32_HSWISH_UKERNEL_FUNCTION(xnn_f32_hswish_ukernel__avx512f_x32)
51 
52 DECLARE_F32_HSWISH_UKERNEL_FUNCTION(xnn_f32_hswish_ukernel__wasmsimd_x4)
53 DECLARE_F32_HSWISH_UKERNEL_FUNCTION(xnn_f32_hswish_ukernel__wasmsimd_x8)
54 DECLARE_F32_HSWISH_UKERNEL_FUNCTION(xnn_f32_hswish_ukernel__wasmsimd_x16)
55 
56 DECLARE_F32_HSWISH_UKERNEL_FUNCTION(xnn_f32_hswish_ukernel__wasm_x1)
57 DECLARE_F32_HSWISH_UKERNEL_FUNCTION(xnn_f32_hswish_ukernel__wasm_x2)
58 DECLARE_F32_HSWISH_UKERNEL_FUNCTION(xnn_f32_hswish_ukernel__wasm_x4)
59 
60 DECLARE_F32_HSWISH_UKERNEL_FUNCTION(xnn_f32_hswish_ukernel__scalar_x1)
61 DECLARE_F32_HSWISH_UKERNEL_FUNCTION(xnn_f32_hswish_ukernel__scalar_x2)
62 DECLARE_F32_HSWISH_UKERNEL_FUNCTION(xnn_f32_hswish_ukernel__scalar_x4)
63 
64 
65 #ifdef __cplusplus
66 }  // extern "C"
67 #endif
68