xref: /aosp_15_r20/external/XNNPACK/src/xnnpack/lut.h (revision 4bdc94577ba0e567308109d787f7fec7b531ce36)
1*4bdc9457SAndroid Build Coastguard Worker // Copyright (c) Facebook, Inc. and its affiliates.
2*4bdc9457SAndroid Build Coastguard Worker // All rights reserved.
3*4bdc9457SAndroid Build Coastguard Worker //
4*4bdc9457SAndroid Build Coastguard Worker // Copyright 2019 Google LLC
5*4bdc9457SAndroid Build Coastguard Worker //
6*4bdc9457SAndroid Build Coastguard Worker // This source code is licensed under the BSD-style license found in the
7*4bdc9457SAndroid Build Coastguard Worker // LICENSE file in the root directory of this source tree.
8*4bdc9457SAndroid Build Coastguard Worker 
9*4bdc9457SAndroid Build Coastguard Worker #pragma once
10*4bdc9457SAndroid Build Coastguard Worker 
11*4bdc9457SAndroid Build Coastguard Worker #include <stddef.h>
12*4bdc9457SAndroid Build Coastguard Worker #include <stdint.h>
13*4bdc9457SAndroid Build Coastguard Worker 
14*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/common.h>
15*4bdc9457SAndroid Build Coastguard Worker 
16*4bdc9457SAndroid Build Coastguard Worker #ifdef __cplusplus
17*4bdc9457SAndroid Build Coastguard Worker extern "C" {
18*4bdc9457SAndroid Build Coastguard Worker #endif
19*4bdc9457SAndroid Build Coastguard Worker 
20*4bdc9457SAndroid Build Coastguard Worker 
21*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_X8_LUT_UKERNEL_FUNCTION(fn_name) \
22*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL void fn_name(                     \
23*4bdc9457SAndroid Build Coastguard Worker       size_t n,                                  \
24*4bdc9457SAndroid Build Coastguard Worker       const uint8_t* x,                          \
25*4bdc9457SAndroid Build Coastguard Worker       uint8_t* y,                                \
26*4bdc9457SAndroid Build Coastguard Worker       const uint8_t* t);
27*4bdc9457SAndroid Build Coastguard Worker 
28*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__scalar_x1)
29*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__scalar_x2)
30*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__scalar_x4)
31*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__scalar_x8)
32*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__scalar_x16)
33*4bdc9457SAndroid Build Coastguard Worker 
34*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__neon_tbx128x4_x16)
35*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__neon_tbx128x4_x32)
36*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__neon_tbx128x4_x48)
37*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__neon_tbx128x4_x64)
38*4bdc9457SAndroid Build Coastguard Worker 
39*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__ssse3_x16)
40*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__ssse3_x32)
41*4bdc9457SAndroid Build Coastguard Worker 
42*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__avx_x16)
43*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__avx_x32)
44*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__avx_x48)
45*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__avx_x64)
46*4bdc9457SAndroid Build Coastguard Worker 
47*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__avx2_x32)
48*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__avx2_x64)
49*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__avx2_x96)
50*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__avx2_x128)
51*4bdc9457SAndroid Build Coastguard Worker 
52*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__avx512skx_vpshufb_x64)
53*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__avx512skx_vpshufb_x128)
54*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__avx512skx_vpshufb_x192)
55*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__avx512skx_vpshufb_x256)
56*4bdc9457SAndroid Build Coastguard Worker 
57*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__wasmsimd_x16)
58*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__wasmsimd_x32)
59*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__wasmsimd_x48)
60*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_LUT_UKERNEL_FUNCTION(xnn_x8_lut_ukernel__wasmsimd_x64)
61*4bdc9457SAndroid Build Coastguard Worker 
62*4bdc9457SAndroid Build Coastguard Worker 
63*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_U8_LUT32NORM_UKERNEL_FUNCTION(fn_name) \
64*4bdc9457SAndroid Build Coastguard Worker   XNN_INTERNAL void fn_name(                           \
65*4bdc9457SAndroid Build Coastguard Worker       size_t n,                                        \
66*4bdc9457SAndroid Build Coastguard Worker       const uint8_t* x,                                \
67*4bdc9457SAndroid Build Coastguard Worker       const uint32_t* t,                               \
68*4bdc9457SAndroid Build Coastguard Worker       uint8_t* y);
69*4bdc9457SAndroid Build Coastguard Worker 
70*4bdc9457SAndroid Build Coastguard Worker DECLARE_U8_LUT32NORM_UKERNEL_FUNCTION(xnn_u8_lut32norm_ukernel__scalar)
71*4bdc9457SAndroid Build Coastguard Worker 
72*4bdc9457SAndroid Build Coastguard Worker 
73*4bdc9457SAndroid Build Coastguard Worker #ifdef __cplusplus
74*4bdc9457SAndroid Build Coastguard Worker }  // extern "C"
75*4bdc9457SAndroid Build Coastguard Worker #endif
76