1*4bdc9457SAndroid Build Coastguard Worker // Copyright 2021 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 13*4bdc9457SAndroid Build Coastguard Worker #ifdef __cplusplus 14*4bdc9457SAndroid Build Coastguard Worker extern "C" { 15*4bdc9457SAndroid Build Coastguard Worker #endif 16*4bdc9457SAndroid Build Coastguard Worker 17*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_XX_TRANSPOSEV_UKERNEL_FUNCTION(fn_name) \ 18*4bdc9457SAndroid Build Coastguard Worker XNN_INTERNAL void fn_name(const void* input, \ 19*4bdc9457SAndroid Build Coastguard Worker void* output, \ 20*4bdc9457SAndroid Build Coastguard Worker size_t input_row_stride, \ 21*4bdc9457SAndroid Build Coastguard Worker size_t output_row_stride, \ 22*4bdc9457SAndroid Build Coastguard Worker size_t input_element_stride, \ 23*4bdc9457SAndroid Build Coastguard Worker size_t output_element_stride, \ 24*4bdc9457SAndroid Build Coastguard Worker size_t element_size, \ 25*4bdc9457SAndroid Build Coastguard Worker size_t block_width, \ 26*4bdc9457SAndroid Build Coastguard Worker size_t block_height); 27*4bdc9457SAndroid Build Coastguard Worker 28*4bdc9457SAndroid Build Coastguard Worker DECLARE_XX_TRANSPOSEV_UKERNEL_FUNCTION(xnn_xx_transposev_ukernel__1x1_memcpy) 29*4bdc9457SAndroid Build Coastguard Worker 30*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_X64_TRANSPOSEC_UKERNEL_FUNCTION(fn_name) \ 31*4bdc9457SAndroid Build Coastguard Worker XNN_INTERNAL void fn_name(const uint64_t* input, \ 32*4bdc9457SAndroid Build Coastguard Worker uint64_t* output, \ 33*4bdc9457SAndroid Build Coastguard Worker size_t input_stride, \ 34*4bdc9457SAndroid Build Coastguard Worker size_t output_stride, \ 35*4bdc9457SAndroid Build Coastguard Worker size_t block_width, \ 36*4bdc9457SAndroid Build Coastguard Worker size_t block_height); 37*4bdc9457SAndroid Build Coastguard Worker 38*4bdc9457SAndroid Build Coastguard Worker DECLARE_X64_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x64_transposec_ukernel__1x2_scalar_float) 39*4bdc9457SAndroid Build Coastguard Worker DECLARE_X64_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x64_transposec_ukernel__1x2_scalar_int) 40*4bdc9457SAndroid Build Coastguard Worker DECLARE_X64_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x64_transposec_ukernel__2x1_scalar_float) 41*4bdc9457SAndroid Build Coastguard Worker DECLARE_X64_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x64_transposec_ukernel__2x1_scalar_int) 42*4bdc9457SAndroid Build Coastguard Worker DECLARE_X64_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x64_transposec_ukernel__2x2_multi_mov_sse2) 43*4bdc9457SAndroid Build Coastguard Worker DECLARE_X64_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x64_transposec_ukernel__2x2_multi_multi_sse2) 44*4bdc9457SAndroid Build Coastguard Worker DECLARE_X64_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x64_transposec_ukernel__2x2_multi_switch_sse2) 45*4bdc9457SAndroid Build Coastguard Worker DECLARE_X64_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x64_transposec_ukernel__2x2_reuse_mov_sse2) 46*4bdc9457SAndroid Build Coastguard Worker DECLARE_X64_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x64_transposec_ukernel__2x2_reuse_multi_sse2) 47*4bdc9457SAndroid Build Coastguard Worker DECLARE_X64_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x64_transposec_ukernel__2x2_reuse_switch_sse2) 48*4bdc9457SAndroid Build Coastguard Worker DECLARE_X64_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x64_transposec_ukernel__2x2_scalar_float) 49*4bdc9457SAndroid Build Coastguard Worker DECLARE_X64_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x64_transposec_ukernel__2x2_scalar_int) 50*4bdc9457SAndroid Build Coastguard Worker DECLARE_X64_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x64_transposec_ukernel__4x1_scalar_float) 51*4bdc9457SAndroid Build Coastguard Worker DECLARE_X64_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x64_transposec_ukernel__4x1_scalar_int) 52*4bdc9457SAndroid Build Coastguard Worker DECLARE_X64_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x64_transposec_ukernel__4x2_scalar_float) 53*4bdc9457SAndroid Build Coastguard Worker DECLARE_X64_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x64_transposec_ukernel__4x2_scalar_int) 54*4bdc9457SAndroid Build Coastguard Worker 55*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(fn_name) \ 56*4bdc9457SAndroid Build Coastguard Worker XNN_INTERNAL void fn_name(const uint32_t* input, \ 57*4bdc9457SAndroid Build Coastguard Worker uint32_t* output, \ 58*4bdc9457SAndroid Build Coastguard Worker size_t input_stride, \ 59*4bdc9457SAndroid Build Coastguard Worker size_t output_stride, \ 60*4bdc9457SAndroid Build Coastguard Worker size_t block_width, \ 61*4bdc9457SAndroid Build Coastguard Worker size_t block_height); 62*4bdc9457SAndroid Build Coastguard Worker 63*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__1x2_scalar_float) 64*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__1x2_scalar_int) 65*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__1x4_scalar_float) 66*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__1x4_scalar_int) 67*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__2x1_scalar_float) 68*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__2x1_scalar_int) 69*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__2x2_multi_dec_zip_neon) 70*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__2x2_multi_mov_zip_neon) 71*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__2x2_multi_multi_zip_neon) 72*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__2x2_multi_switch_zip_neon) 73*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__2x2_reuse_dec_zip_neon) 74*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__2x2_reuse_mov_zip_neon) 75*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__2x2_reuse_multi_zip_neon) 76*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__2x2_reuse_switch_zip_neon) 77*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__2x2_scalar_float) 78*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__2x2_scalar_int) 79*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__2x4_scalar_float) 80*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__2x4_scalar_int) 81*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x1_scalar_float) 82*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x1_scalar_int) 83*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x2_scalar_float) 84*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x2_scalar_int) 85*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x4_aarch64_neon_tbl) 86*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x4_multi_dec_zip_neon) 87*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x4_multi_mov_sse2) 88*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x4_multi_mov_wasmsimd) 89*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x4_multi_mov_zip_neon) 90*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x4_multi_multi_sse2) 91*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x4_multi_multi_wasmsimd) 92*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x4_multi_multi_zip_neon) 93*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x4_multi_switch_sse2) 94*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x4_multi_switch_wasmsimd) 95*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x4_multi_switch_zip_neon) 96*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x4_reuse_dec_zip_neon) 97*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x4_reuse_mov_sse2) 98*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x4_reuse_mov_wasmsimd) 99*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x4_reuse_mov_zip_neon) 100*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x4_reuse_multi_sse2) 101*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x4_reuse_multi_wasmsimd) 102*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x4_reuse_multi_zip_neon) 103*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x4_reuse_switch_sse2) 104*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x4_reuse_switch_wasmsimd) 105*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x4_reuse_switch_zip_neon) 106*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x4_scalar_float) 107*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x4_scalar_int) 108*4bdc9457SAndroid Build Coastguard Worker DECLARE_X32_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x32_transposec_ukernel__4x4_sse) 109*4bdc9457SAndroid Build Coastguard Worker 110*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_X24_TRANSPOSEC_UKERNEL_FUNCTION(fn_name) \ 111*4bdc9457SAndroid Build Coastguard Worker XNN_INTERNAL void fn_name(const void* input, \ 112*4bdc9457SAndroid Build Coastguard Worker void* output, \ 113*4bdc9457SAndroid Build Coastguard Worker size_t input_stride, \ 114*4bdc9457SAndroid Build Coastguard Worker size_t output_stride, \ 115*4bdc9457SAndroid Build Coastguard Worker size_t block_width, \ 116*4bdc9457SAndroid Build Coastguard Worker size_t block_height); 117*4bdc9457SAndroid Build Coastguard Worker 118*4bdc9457SAndroid Build Coastguard Worker DECLARE_X24_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x24_transposec_ukernel__1x2_scalar) 119*4bdc9457SAndroid Build Coastguard Worker DECLARE_X24_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x24_transposec_ukernel__1x4_scalar) 120*4bdc9457SAndroid Build Coastguard Worker DECLARE_X24_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x24_transposec_ukernel__2x1_scalar) 121*4bdc9457SAndroid Build Coastguard Worker DECLARE_X24_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x24_transposec_ukernel__2x2_neon_tbl) 122*4bdc9457SAndroid Build Coastguard Worker DECLARE_X24_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x24_transposec_ukernel__2x2_scalar) 123*4bdc9457SAndroid Build Coastguard Worker DECLARE_X24_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x24_transposec_ukernel__2x4_scalar) 124*4bdc9457SAndroid Build Coastguard Worker DECLARE_X24_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x24_transposec_ukernel__4x1_scalar) 125*4bdc9457SAndroid Build Coastguard Worker DECLARE_X24_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x24_transposec_ukernel__4x2_scalar) 126*4bdc9457SAndroid Build Coastguard Worker DECLARE_X24_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x24_transposec_ukernel__4x4_aarch64_neon_tbl) 127*4bdc9457SAndroid Build Coastguard Worker DECLARE_X24_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x24_transposec_ukernel__4x4_scalar) 128*4bdc9457SAndroid Build Coastguard Worker DECLARE_X24_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x24_transposec_ukernel__4x4_ssse3) 129*4bdc9457SAndroid Build Coastguard Worker 130*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(fn_name) \ 131*4bdc9457SAndroid Build Coastguard Worker XNN_INTERNAL void fn_name(const uint16_t* input, \ 132*4bdc9457SAndroid Build Coastguard Worker uint16_t* output, \ 133*4bdc9457SAndroid Build Coastguard Worker size_t input_stride, \ 134*4bdc9457SAndroid Build Coastguard Worker size_t output_stride, \ 135*4bdc9457SAndroid Build Coastguard Worker size_t block_width, \ 136*4bdc9457SAndroid Build Coastguard Worker size_t block_height); 137*4bdc9457SAndroid Build Coastguard Worker 138*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__1x2_scalar_int) 139*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__1x4_scalar_int) 140*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__2x1_scalar_int) 141*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__2x2_scalar_int) 142*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__2x4_scalar_int) 143*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__4x1_scalar_int) 144*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__4x2_scalar_int) 145*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__4x4_multi_dec_zip_neon) 146*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__4x4_multi_mov_zip_neon) 147*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__4x4_multi_multi_zip_neon) 148*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__4x4_multi_switch_zip_neon) 149*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__4x4_reuse_dec_zip_neon) 150*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__4x4_reuse_mov_zip_neon) 151*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__4x4_reuse_multi_zip_neon) 152*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__4x4_reuse_switch_zip_neon) 153*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__4x4_scalar_int) 154*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__4x8_sse2) 155*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__8x8_multi_dec_zip_neon) 156*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__8x8_multi_mov_sse2) 157*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__8x8_multi_mov_wasmsimd) 158*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__8x8_multi_mov_zip_neon) 159*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__8x8_multi_switch_sse2) 160*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__8x8_multi_switch_wasmsimd) 161*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__8x8_multi_switch_zip_neon) 162*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__8x8_reuse_dec_zip_neon) 163*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__8x8_reuse_mov_sse2) 164*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__8x8_reuse_mov_wasmsimd) 165*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__8x8_reuse_mov_zip_neon) 166*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__8x8_reuse_multi_sse2) 167*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__8x8_reuse_multi_wasmsimd) 168*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__8x8_reuse_multi_zip_neon) 169*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__8x8_reuse_switch_sse2) 170*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__8x8_reuse_switch_wasmsimd) 171*4bdc9457SAndroid Build Coastguard Worker DECLARE_X16_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x16_transposec_ukernel__8x8_reuse_switch_zip_neon) 172*4bdc9457SAndroid Build Coastguard Worker 173*4bdc9457SAndroid Build Coastguard Worker #define DECLARE_X8_TRANSPOSEC_UKERNEL_FUNCTION(fn_name) \ 174*4bdc9457SAndroid Build Coastguard Worker XNN_INTERNAL void fn_name(const uint8_t* input, \ 175*4bdc9457SAndroid Build Coastguard Worker uint8_t* output, \ 176*4bdc9457SAndroid Build Coastguard Worker size_t input_stride, \ 177*4bdc9457SAndroid Build Coastguard Worker size_t output_stride, \ 178*4bdc9457SAndroid Build Coastguard Worker size_t block_width, \ 179*4bdc9457SAndroid Build Coastguard Worker size_t block_height); 180*4bdc9457SAndroid Build Coastguard Worker 181*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x8_transposec_ukernel__1x2_scalar_int) 182*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x8_transposec_ukernel__1x4_scalar_int) 183*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x8_transposec_ukernel__2x1_scalar_int) 184*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x8_transposec_ukernel__2x2_scalar_int) 185*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x8_transposec_ukernel__2x4_scalar_int) 186*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x8_transposec_ukernel__4x1_scalar_int) 187*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x8_transposec_ukernel__4x2_scalar_int) 188*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x8_transposec_ukernel__4x4_scalar_int) 189*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x8_transposec_ukernel__8x8_multi_dec_zip_neon) 190*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x8_transposec_ukernel__8x8_multi_mov_zip_neon) 191*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x8_transposec_ukernel__8x8_multi_switch_zip_neon) 192*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x8_transposec_ukernel__8x8_reuse_dec_zip_neon) 193*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x8_transposec_ukernel__8x8_reuse_mov_zip_neon) 194*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x8_transposec_ukernel__8x8_reuse_multi_zip_neon) 195*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x8_transposec_ukernel__8x8_reuse_switch_zip_neon) 196*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x8_transposec_ukernel__16x16_reuse_dec_zip_neon) 197*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x8_transposec_ukernel__16x16_reuse_mov_sse2) 198*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x8_transposec_ukernel__16x16_reuse_mov_wasmsimd) 199*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x8_transposec_ukernel__16x16_reuse_mov_zip_neon) 200*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x8_transposec_ukernel__16x16_reuse_switch_sse2) 201*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x8_transposec_ukernel__16x16_reuse_switch_wasmsimd) 202*4bdc9457SAndroid Build Coastguard Worker DECLARE_X8_TRANSPOSEC_UKERNEL_FUNCTION(xnn_x8_transposec_ukernel__16x16_reuse_switch_zip_neon) 203*4bdc9457SAndroid Build Coastguard Worker 204*4bdc9457SAndroid Build Coastguard Worker #ifdef __cplusplus 205*4bdc9457SAndroid Build Coastguard Worker } // extern "C" 206*4bdc9457SAndroid Build Coastguard Worker #endif 207