xref: /aosp_15_r20/external/XNNPACK/src/xnnpack/spmm.h (revision 4bdc94577ba0e567308109d787f7fec7b531ce36)
1*4bdc9457SAndroid Build Coastguard Worker // Copyright 2019 Google LLC
2*4bdc9457SAndroid Build Coastguard Worker //
3*4bdc9457SAndroid Build Coastguard Worker // This source code is licensed under the BSD-style license found in the
4*4bdc9457SAndroid Build Coastguard Worker // LICENSE file in the root directory of this source tree.
5*4bdc9457SAndroid Build Coastguard Worker 
6*4bdc9457SAndroid Build Coastguard Worker #pragma once
7*4bdc9457SAndroid Build Coastguard Worker 
8*4bdc9457SAndroid Build Coastguard Worker #include <stddef.h>
9*4bdc9457SAndroid Build Coastguard Worker #include <stdint.h>
10*4bdc9457SAndroid Build Coastguard Worker 
11*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/common.h>
12*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/microparams.h>
13*4bdc9457SAndroid Build Coastguard Worker 
14*4bdc9457SAndroid Build Coastguard Worker #ifdef __cplusplus
15*4bdc9457SAndroid Build Coastguard Worker extern "C" {
16*4bdc9457SAndroid Build Coastguard Worker #endif
17*4bdc9457SAndroid Build Coastguard Worker 
18*4bdc9457SAndroid Build Coastguard Worker 
19*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(fn_name) \
20*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL void fn_name(                              \
21*4bdc9457SAndroid Build Coastguard Worker     size_t mc,                                            \
22*4bdc9457SAndroid Build Coastguard Worker     size_t nc,                                            \
23*4bdc9457SAndroid Build Coastguard Worker     const float* input,                                   \
24*4bdc9457SAndroid Build Coastguard Worker     const float* weights,                                 \
25*4bdc9457SAndroid Build Coastguard Worker     const int32_t* widx_dmap,                             \
26*4bdc9457SAndroid Build Coastguard Worker     const uint32_t* nidx_nnzmap,                          \
27*4bdc9457SAndroid Build Coastguard Worker     float* output,                                        \
28*4bdc9457SAndroid Build Coastguard Worker     size_t output_stride,                                 \
29*4bdc9457SAndroid Build Coastguard Worker     const union xnn_f32_minmax_params* params);
30*4bdc9457SAndroid Build Coastguard Worker 
31*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_1x1__scalar)
32*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_1x1__scalar_pipelined)
33*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_2x1__scalar)
34*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_2x1__scalar_pipelined)
35*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_4x1__neon)
36*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_4x1__neon_pipelined)
37*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_4x1__neon_x2)
38*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_4x1__neonfma)
39*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_4x1__neonfma_pipelined)
40*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_4x1__neonfma_x2)
41*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_4x1__scalar)
42*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_4x1__scalar_pipelined)
43*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_4x1__sse)
44*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_4x1__wasmsimd_arm)
45*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_4x1__wasmsimd_arm_pipelined)
46*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_4x1__wasmsimd_arm_pipelined_x2)
47*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_4x1__wasmsimd_arm_x2)
48*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_4x1__wasmsimd_arm_x4)
49*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_4x1__wasmsimd_x86)
50*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_4x1__wasmsimd_x86_pipelined)
51*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_4x1__wasmsimd_x86_pipelined_x2)
52*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_4x1__wasmsimd_x86_x2)
53*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_4x1__wasmsimd_x86_x4)
54*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_4x2__neonfma)
55*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_4x4__neonfma)
56*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_8x1__neon)
57*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_8x1__neon_pipelined)
58*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_8x1__neon_x2)
59*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_8x1__neonfma)
60*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_8x1__neonfma_pipelined)
61*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_8x1__neonfma_x2)
62*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_8x1__scalar)
63*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_8x1__scalar_pipelined)
64*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_8x1__sse)
65*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_8x1__wasmsimd_arm)
66*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_8x1__wasmsimd_arm_pipelined)
67*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_8x1__wasmsimd_arm_pipelined_x2)
68*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_8x1__wasmsimd_arm_x2)
69*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_8x1__wasmsimd_arm_x4)
70*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_8x1__wasmsimd_x86)
71*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_8x1__wasmsimd_x86_pipelined)
72*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_8x1__wasmsimd_x86_pipelined_x2)
73*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_8x1__wasmsimd_x86_x2)
74*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_8x1__wasmsimd_x86_x4)
75*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_8x2__neonfma)
76*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_8x2__scalar)
77*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_8x4__neonfma)
78*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_8x4__scalar)
79*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_12x1__neon)
80*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_12x1__neonfma)
81*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_12x2__neonfma)
82*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_12x4__neonfma)
83*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_16x1__neon)
84*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_16x1__neon_pipelined)
85*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_16x1__neon_x2)
86*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_16x1__neonfma)
87*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_16x1__neonfma_pipelined)
88*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_16x1__neonfma_x2)
89*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_16x1__sse)
90*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_16x1__wasmsimd_arm)
91*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_16x1__wasmsimd_arm_pipelined)
92*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_16x1__wasmsimd_arm_pipelined_x2)
93*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_16x1__wasmsimd_arm_x2)
94*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_16x1__wasmsimd_arm_x4)
95*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_16x1__wasmsimd_x86)
96*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_16x1__wasmsimd_x86_pipelined)
97*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_16x1__wasmsimd_x86_pipelined_x2)
98*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_16x1__wasmsimd_x86_x2)
99*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_16x1__wasmsimd_x86_x4)
100*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_16x2__neonfma)
101*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_16x4__neonfma)
102*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_32x1__neon)
103*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_32x1__neon_pipelined)
104*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_32x1__neon_x2)
105*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_32x1__neonfma)
106*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_32x1__neonfma_pipelined)
107*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_32x1__neonfma_x2)
108*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_32x1__sse)
109*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_32x1__wasmsimd_arm)
110*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_32x1__wasmsimd_arm_pipelined)
111*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_32x1__wasmsimd_arm_pipelined_x2)
112*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_32x1__wasmsimd_arm_x2)
113*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_32x1__wasmsimd_arm_x4)
114*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_32x1__wasmsimd_x86)
115*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_32x1__wasmsimd_x86_pipelined)
116*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_32x1__wasmsimd_x86_pipelined_x2)
117*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_32x1__wasmsimd_x86_x2)
118*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_32x1__wasmsimd_x86_x4)
119*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_32x2__neonfma)
120*4bdc9457SAndroid Build Coastguard Worker DECLARE_F32_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f32_spmm_minmax_ukernel_32x4__neonfma)
121*4bdc9457SAndroid Build Coastguard Worker 
122*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_F16_SPMM_MINMAX_UKERNEL_FUNCTION(fn_name) \
123*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL void fn_name(                              \
124*4bdc9457SAndroid Build Coastguard Worker     size_t mc,                                            \
125*4bdc9457SAndroid Build Coastguard Worker     size_t nc,                                            \
126*4bdc9457SAndroid Build Coastguard Worker     const void* input,                                    \
127*4bdc9457SAndroid Build Coastguard Worker     const void* weights,                                  \
128*4bdc9457SAndroid Build Coastguard Worker     const int32_t* widx_dmap,                             \
129*4bdc9457SAndroid Build Coastguard Worker     const uint32_t* nidx_nnzmap,                          \
130*4bdc9457SAndroid Build Coastguard Worker     void* output,                                         \
131*4bdc9457SAndroid Build Coastguard Worker     size_t output_stride,                                 \
132*4bdc9457SAndroid Build Coastguard Worker     const union xnn_f16_minmax_params* params);
133*4bdc9457SAndroid Build Coastguard Worker 
134*4bdc9457SAndroid Build Coastguard Worker DECLARE_F16_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f16_spmm_minmax_ukernel_8x1__neonfp16arith)
135*4bdc9457SAndroid Build Coastguard Worker DECLARE_F16_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f16_spmm_minmax_ukernel_8x1__neonfp16arith_x2)
136*4bdc9457SAndroid Build Coastguard Worker DECLARE_F16_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f16_spmm_minmax_ukernel_16x1__neonfp16arith)
137*4bdc9457SAndroid Build Coastguard Worker DECLARE_F16_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f16_spmm_minmax_ukernel_16x1__neonfp16arith_x2)
138*4bdc9457SAndroid Build Coastguard Worker DECLARE_F16_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f16_spmm_minmax_ukernel_24x1__neonfp16arith)
139*4bdc9457SAndroid Build Coastguard Worker DECLARE_F16_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f16_spmm_minmax_ukernel_24x1__neonfp16arith_x2)
140*4bdc9457SAndroid Build Coastguard Worker DECLARE_F16_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f16_spmm_minmax_ukernel_32x1__neonfp16arith)
141*4bdc9457SAndroid Build Coastguard Worker DECLARE_F16_SPMM_MINMAX_UKERNEL_FUNCTION(xnn_f16_spmm_minmax_ukernel_32x1__neonfp16arith_x2)
142*4bdc9457SAndroid Build Coastguard Worker 
143*4bdc9457SAndroid Build Coastguard Worker #ifdef __cplusplus
144*4bdc9457SAndroid Build Coastguard Worker }  // extern "C"
145*4bdc9457SAndroid Build Coastguard Worker #endif
146