| 31 | } |
| 32 | |
| 33 | std::string CvTransposeKernel::GetCVKernelBody(TContext* context) const { |
| 34 | auto kernel_sig = GetCVKernelSignature(context); |
| 35 | std::string body_temp = R"( |
| 36 | #include <arm_neon.h> |
| 37 | #include <string.h> |
| 38 | #include "tinycv_c.h" |
| 39 | |
| 40 | |
| 41 | #if defined(__aarch64__) |
| 42 | ${a64_fast_transpose_impl} |
| 43 | #else |
| 44 | ${a32_fast_transpose_impl} |
| 45 | #endif |
| 46 | |
| 47 | void ${kernel_sig}{ |
| 48 | uint8_t * src_base_ptr = src->data; |
| 49 | uint8_t * dst_base_ptr = dst->data; |
| 50 | int src_cols = src->cols; |
| 51 | int src_rows = src->rows; |
| 52 | int src_chans = src->channels; |
| 53 | fast_transpose_impl_8(src_base_ptr, dst_base_ptr, src_cols, src_rows, src_chans, src_cols * src_chans, src_rows * src_chans); |
| 54 | } |
| 55 | )"; |
| 56 | return StringTemplate::StringTemplateArgs() |
| 57 | .add("kernel_sig", kernel_sig) |
| 58 | .add("a64_fast_transpose_impl", Arm64::gen_transpose(1)) |
| 59 | .add("a32_fast_transpose_impl", Armv7::gen_transpose(1)) |
| 60 | .render(body_temp); |
| 61 | } |
| 62 | |
| 63 | // vim: syntax=cpp.doxygen |
nothing calls this directly
no test coverage detected