blob: 08b09ec464938889e369c7b4c2fe94c71a039af0 [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 Dukhande06f492020-04-09 00:19:31 -070019#define DECLARE_F32_PPMM_MINMAX_UKERNEL_FUNCTION(fn_name) \
XNNPACK Teamb455b122019-09-27 18:10:33 -070020 XNN_INTERNAL void fn_name( \
21 size_t mr, \
22 size_t nc, \
23 size_t kc, \
24 const float* a, \
25 const float* w, \
26 float* c, \
27 size_t cm_stride, \
28 size_t cn_stride, \
Marat Dukhaneb09a6b2020-04-08 17:34:32 -070029 const union xnn_f32_minmax_params* params);
XNNPACK Teamb455b122019-09-27 18:10:33 -070030
Marat Dukhande06f492020-04-09 00:19:31 -070031DECLARE_F32_PPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_ppmm_minmax_ukernel_2x4__scalar)
32DECLARE_F32_PPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_ppmm_minmax_ukernel_3x3__scalar)
33DECLARE_F32_PPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_ppmm_minmax_ukernel_4x2__scalar)
34DECLARE_F32_PPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_ppmm_minmax_ukernel_4x4__scalar)
35DECLARE_F32_PPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_ppmm_minmax_ukernel_4x8__neon)
36DECLARE_F32_PPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_ppmm_minmax_ukernel_4x8__neonfma)
37DECLARE_F32_PPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_ppmm_minmax_ukernel_4x8__psimd)
38DECLARE_F32_PPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_ppmm_minmax_ukernel_4x8__sse)
39DECLARE_F32_PPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_ppmm_minmax_ukernel_8x8__neon)
40DECLARE_F32_PPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_ppmm_minmax_ukernel_8x8__neonfma)
XNNPACK Teamb455b122019-09-27 18:10:33 -070041
42
43#ifdef __cplusplus
Marat Dukhan80fc9322019-09-29 21:06:36 -070044} // extern "C"
XNNPACK Teamb455b122019-09-27 18:10:33 -070045#endif