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