aboutsummaryrefslogtreecommitdiff
path: root/src/core/NEON/kernels/convolution/depthwise/depthwise_2x2_3x3_2x2_fp32_fp32.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/NEON/kernels/convolution/depthwise/depthwise_2x2_3x3_2x2_fp32_fp32.cpp')
-rw-r--r--src/core/NEON/kernels/convolution/depthwise/depthwise_2x2_3x3_2x2_fp32_fp32.cpp1121
1 files changed, 62 insertions, 1059 deletions
diff --git a/src/core/NEON/kernels/convolution/depthwise/depthwise_2x2_3x3_2x2_fp32_fp32.cpp b/src/core/NEON/kernels/convolution/depthwise/depthwise_2x2_3x3_2x2_fp32_fp32.cpp
index 0ec5a77475..dba2330507 100644
--- a/src/core/NEON/kernels/convolution/depthwise/depthwise_2x2_3x3_2x2_fp32_fp32.cpp
+++ b/src/core/NEON/kernels/convolution/depthwise/depthwise_2x2_3x3_2x2_fp32_fp32.cpp
@@ -29,1067 +29,70 @@ using Conv = DepthwiseConvolution<2, 2, 3, 3, 2, 2, float, float>;
using ConvImpl = DepthwiseConvolutionImpl<2, 2, 3, 3, 2, 2, float, float>;
template <>
-const Conv::TileFn Conv::tile_fns
- [max_in_pad_top]
- [max_in_pad_left]
- [max_in_pad_bottom]
- [max_in_pad_right]
- [max_out_pad_bottom]
- [max_out_pad_right] = {
- { // Input pad top = 0
- { // Input pad left = 0
- { // Input pad bottom = 0
- { // Input pad right = 0
- { // Output pad bottom = 0
- Conv::template process_tile<0, 0, 0, 0, 0, 0>,
- Conv::template process_tile<0, 0, 0, 0, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 0, 0, 0, 1, 0>,
- Conv::template process_tile<0, 0, 0, 0, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 0
- { // Input pad right = 1
- { // Output pad bottom = 0
- Conv::template process_tile<0, 0, 0, 1, 0, 0>,
- Conv::template process_tile<0, 0, 0, 1, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 0, 0, 1, 1, 0>,
- Conv::template process_tile<0, 0, 0, 1, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 1
- { // Input pad right = 2
- { // Output pad bottom = 0
- Conv::template process_tile<0, 0, 0, 2, 0, 0>,
- Conv::template process_tile<0, 0, 0, 2, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 0, 0, 2, 1, 0>,
- Conv::template process_tile<0, 0, 0, 2, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 2
- { // Input pad right = 3
- { // Output pad bottom = 0
- Conv::template process_tile<0, 0, 0, 3, 0, 0>,
- Conv::template process_tile<0, 0, 0, 3, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 0, 0, 3, 1, 0>,
- Conv::template process_tile<0, 0, 0, 3, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 3
- { // Input pad right = 4
- { // Output pad bottom = 0
- Conv::template process_tile<0, 0, 0, 4, 0, 0>,
- Conv::template process_tile<0, 0, 0, 4, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 0, 0, 4, 1, 0>,
- Conv::template process_tile<0, 0, 0, 4, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 4
- }, // Input pad bottom = 0
- { // Input pad bottom = 1
- { // Input pad right = 0
- { // Output pad bottom = 0
- Conv::template process_tile<0, 0, 1, 0, 0, 0>,
- Conv::template process_tile<0, 0, 1, 0, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 0, 1, 0, 1, 0>,
- Conv::template process_tile<0, 0, 1, 0, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 0
- { // Input pad right = 1
- { // Output pad bottom = 0
- Conv::template process_tile<0, 0, 1, 1, 0, 0>,
- Conv::template process_tile<0, 0, 1, 1, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 0, 1, 1, 1, 0>,
- Conv::template process_tile<0, 0, 1, 1, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 1
- { // Input pad right = 2
- { // Output pad bottom = 0
- Conv::template process_tile<0, 0, 1, 2, 0, 0>,
- Conv::template process_tile<0, 0, 1, 2, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 0, 1, 2, 1, 0>,
- Conv::template process_tile<0, 0, 1, 2, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 2
- { // Input pad right = 3
- { // Output pad bottom = 0
- Conv::template process_tile<0, 0, 1, 3, 0, 0>,
- Conv::template process_tile<0, 0, 1, 3, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 0, 1, 3, 1, 0>,
- Conv::template process_tile<0, 0, 1, 3, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 3
- { // Input pad right = 4
- { // Output pad bottom = 0
- Conv::template process_tile<0, 0, 1, 4, 0, 0>,
- Conv::template process_tile<0, 0, 1, 4, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 0, 1, 4, 1, 0>,
- Conv::template process_tile<0, 0, 1, 4, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 4
- }, // Input pad bottom = 1
- { // Input pad bottom = 2
- { // Input pad right = 0
- { // Output pad bottom = 0
- Conv::template process_tile<0, 0, 2, 0, 0, 0>,
- Conv::template process_tile<0, 0, 2, 0, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 0, 2, 0, 1, 0>,
- Conv::template process_tile<0, 0, 2, 0, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 0
- { // Input pad right = 1
- { // Output pad bottom = 0
- Conv::template process_tile<0, 0, 2, 1, 0, 0>,
- Conv::template process_tile<0, 0, 2, 1, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 0, 2, 1, 1, 0>,
- Conv::template process_tile<0, 0, 2, 1, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 1
- { // Input pad right = 2
- { // Output pad bottom = 0
- Conv::template process_tile<0, 0, 2, 2, 0, 0>,
- Conv::template process_tile<0, 0, 2, 2, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 0, 2, 2, 1, 0>,
- Conv::template process_tile<0, 0, 2, 2, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 2
- { // Input pad right = 3
- { // Output pad bottom = 0
- Conv::template process_tile<0, 0, 2, 3, 0, 0>,
- Conv::template process_tile<0, 0, 2, 3, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 0, 2, 3, 1, 0>,
- Conv::template process_tile<0, 0, 2, 3, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 3
- { // Input pad right = 4
- { // Output pad bottom = 0
- Conv::template process_tile<0, 0, 2, 4, 0, 0>,
- Conv::template process_tile<0, 0, 2, 4, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 0, 2, 4, 1, 0>,
- Conv::template process_tile<0, 0, 2, 4, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 4
- }, // Input pad bottom = 2
- { // Input pad bottom = 3
- { // Input pad right = 0
- { // Output pad bottom = 0
- Conv::template process_tile<0, 0, 3, 0, 0, 0>,
- Conv::template process_tile<0, 0, 3, 0, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 0, 3, 0, 1, 0>,
- Conv::template process_tile<0, 0, 3, 0, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 0
- { // Input pad right = 1
- { // Output pad bottom = 0
- Conv::template process_tile<0, 0, 3, 1, 0, 0>,
- Conv::template process_tile<0, 0, 3, 1, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 0, 3, 1, 1, 0>,
- Conv::template process_tile<0, 0, 3, 1, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 1
- { // Input pad right = 2
- { // Output pad bottom = 0
- Conv::template process_tile<0, 0, 3, 2, 0, 0>,
- Conv::template process_tile<0, 0, 3, 2, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 0, 3, 2, 1, 0>,
- Conv::template process_tile<0, 0, 3, 2, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 2
- { // Input pad right = 3
- { // Output pad bottom = 0
- Conv::template process_tile<0, 0, 3, 3, 0, 0>,
- Conv::template process_tile<0, 0, 3, 3, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 0, 3, 3, 1, 0>,
- Conv::template process_tile<0, 0, 3, 3, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 3
- { // Input pad right = 4
- { // Output pad bottom = 0
- Conv::template process_tile<0, 0, 3, 4, 0, 0>,
- Conv::template process_tile<0, 0, 3, 4, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 0, 3, 4, 1, 0>,
- Conv::template process_tile<0, 0, 3, 4, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 4
- }, // Input pad bottom = 3
- { // Input pad bottom = 4
- { // Input pad right = 0
- { // Output pad bottom = 0
- Conv::template process_tile<0, 0, 4, 0, 0, 0>,
- Conv::template process_tile<0, 0, 4, 0, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 0, 4, 0, 1, 0>,
- Conv::template process_tile<0, 0, 4, 0, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 0
- { // Input pad right = 1
- { // Output pad bottom = 0
- Conv::template process_tile<0, 0, 4, 1, 0, 0>,
- Conv::template process_tile<0, 0, 4, 1, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 0, 4, 1, 1, 0>,
- Conv::template process_tile<0, 0, 4, 1, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 1
- { // Input pad right = 2
- { // Output pad bottom = 0
- Conv::template process_tile<0, 0, 4, 2, 0, 0>,
- Conv::template process_tile<0, 0, 4, 2, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 0, 4, 2, 1, 0>,
- Conv::template process_tile<0, 0, 4, 2, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 2
- { // Input pad right = 3
- { // Output pad bottom = 0
- Conv::template process_tile<0, 0, 4, 3, 0, 0>,
- Conv::template process_tile<0, 0, 4, 3, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 0, 4, 3, 1, 0>,
- Conv::template process_tile<0, 0, 4, 3, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 3
- { // Input pad right = 4
- { // Output pad bottom = 0
- Conv::template process_tile<0, 0, 4, 4, 0, 0>,
- Conv::template process_tile<0, 0, 4, 4, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 0, 4, 4, 1, 0>,
- Conv::template process_tile<0, 0, 4, 4, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 4
- }, // Input pad bottom = 4
- }, // Input pad left = 0
- { // Input pad left = 1
- { // Input pad bottom = 0
- { // Input pad right = 0
- { // Output pad bottom = 0
- Conv::template process_tile<0, 1, 0, 0, 0, 0>,
- Conv::template process_tile<0, 1, 0, 0, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 1, 0, 0, 1, 0>,
- Conv::template process_tile<0, 1, 0, 0, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 0
- { // Input pad right = 1
- { // Output pad bottom = 0
- Conv::template process_tile<0, 1, 0, 1, 0, 0>,
- Conv::template process_tile<0, 1, 0, 1, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 1, 0, 1, 1, 0>,
- Conv::template process_tile<0, 1, 0, 1, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 1
- { // Input pad right = 2
- { // Output pad bottom = 0
- Conv::template process_tile<0, 1, 0, 2, 0, 0>,
- Conv::template process_tile<0, 1, 0, 2, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 1, 0, 2, 1, 0>,
- Conv::template process_tile<0, 1, 0, 2, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 2
- { // Input pad right = 3
- { // Output pad bottom = 0
- Conv::template process_tile<0, 1, 0, 3, 0, 0>,
- Conv::template process_tile<0, 1, 0, 3, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 1, 0, 3, 1, 0>,
- Conv::template process_tile<0, 1, 0, 3, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 3
- { // Input pad right = 4
- { // Output pad bottom = 0
- Conv::template process_tile<0, 1, 0, 4, 0, 0>,
- Conv::template process_tile<0, 1, 0, 4, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 1, 0, 4, 1, 0>,
- Conv::template process_tile<0, 1, 0, 4, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 4
- }, // Input pad bottom = 0
- { // Input pad bottom = 1
- { // Input pad right = 0
- { // Output pad bottom = 0
- Conv::template process_tile<0, 1, 1, 0, 0, 0>,
- Conv::template process_tile<0, 1, 1, 0, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 1, 1, 0, 1, 0>,
- Conv::template process_tile<0, 1, 1, 0, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 0
- { // Input pad right = 1
- { // Output pad bottom = 0
- Conv::template process_tile<0, 1, 1, 1, 0, 0>,
- Conv::template process_tile<0, 1, 1, 1, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 1, 1, 1, 1, 0>,
- Conv::template process_tile<0, 1, 1, 1, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 1
- { // Input pad right = 2
- { // Output pad bottom = 0
- Conv::template process_tile<0, 1, 1, 2, 0, 0>,
- Conv::template process_tile<0, 1, 1, 2, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 1, 1, 2, 1, 0>,
- Conv::template process_tile<0, 1, 1, 2, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 2
- { // Input pad right = 3
- { // Output pad bottom = 0
- Conv::template process_tile<0, 1, 1, 3, 0, 0>,
- Conv::template process_tile<0, 1, 1, 3, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 1, 1, 3, 1, 0>,
- Conv::template process_tile<0, 1, 1, 3, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 3
- { // Input pad right = 4
- { // Output pad bottom = 0
- Conv::template process_tile<0, 1, 1, 4, 0, 0>,
- Conv::template process_tile<0, 1, 1, 4, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 1, 1, 4, 1, 0>,
- Conv::template process_tile<0, 1, 1, 4, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 4
- }, // Input pad bottom = 1
- { // Input pad bottom = 2
- { // Input pad right = 0
- { // Output pad bottom = 0
- Conv::template process_tile<0, 1, 2, 0, 0, 0>,
- Conv::template process_tile<0, 1, 2, 0, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 1, 2, 0, 1, 0>,
- Conv::template process_tile<0, 1, 2, 0, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 0
- { // Input pad right = 1
- { // Output pad bottom = 0
- Conv::template process_tile<0, 1, 2, 1, 0, 0>,
- Conv::template process_tile<0, 1, 2, 1, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 1, 2, 1, 1, 0>,
- Conv::template process_tile<0, 1, 2, 1, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 1
- { // Input pad right = 2
- { // Output pad bottom = 0
- Conv::template process_tile<0, 1, 2, 2, 0, 0>,
- Conv::template process_tile<0, 1, 2, 2, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 1, 2, 2, 1, 0>,
- Conv::template process_tile<0, 1, 2, 2, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 2
- { // Input pad right = 3
- { // Output pad bottom = 0
- Conv::template process_tile<0, 1, 2, 3, 0, 0>,
- Conv::template process_tile<0, 1, 2, 3, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 1, 2, 3, 1, 0>,
- Conv::template process_tile<0, 1, 2, 3, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 3
- { // Input pad right = 4
- { // Output pad bottom = 0
- Conv::template process_tile<0, 1, 2, 4, 0, 0>,
- Conv::template process_tile<0, 1, 2, 4, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 1, 2, 4, 1, 0>,
- Conv::template process_tile<0, 1, 2, 4, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 4
- }, // Input pad bottom = 2
- { // Input pad bottom = 3
- { // Input pad right = 0
- { // Output pad bottom = 0
- Conv::template process_tile<0, 1, 3, 0, 0, 0>,
- Conv::template process_tile<0, 1, 3, 0, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 1, 3, 0, 1, 0>,
- Conv::template process_tile<0, 1, 3, 0, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 0
- { // Input pad right = 1
- { // Output pad bottom = 0
- Conv::template process_tile<0, 1, 3, 1, 0, 0>,
- Conv::template process_tile<0, 1, 3, 1, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 1, 3, 1, 1, 0>,
- Conv::template process_tile<0, 1, 3, 1, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 1
- { // Input pad right = 2
- { // Output pad bottom = 0
- Conv::template process_tile<0, 1, 3, 2, 0, 0>,
- Conv::template process_tile<0, 1, 3, 2, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 1, 3, 2, 1, 0>,
- Conv::template process_tile<0, 1, 3, 2, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 2
- { // Input pad right = 3
- { // Output pad bottom = 0
- Conv::template process_tile<0, 1, 3, 3, 0, 0>,
- Conv::template process_tile<0, 1, 3, 3, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 1, 3, 3, 1, 0>,
- Conv::template process_tile<0, 1, 3, 3, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 3
- { // Input pad right = 4
- { // Output pad bottom = 0
- Conv::template process_tile<0, 1, 3, 4, 0, 0>,
- Conv::template process_tile<0, 1, 3, 4, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 1, 3, 4, 1, 0>,
- Conv::template process_tile<0, 1, 3, 4, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 4
- }, // Input pad bottom = 3
- { // Input pad bottom = 4
- { // Input pad right = 0
- { // Output pad bottom = 0
- Conv::template process_tile<0, 1, 4, 0, 0, 0>,
- Conv::template process_tile<0, 1, 4, 0, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 1, 4, 0, 1, 0>,
- Conv::template process_tile<0, 1, 4, 0, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 0
- { // Input pad right = 1
- { // Output pad bottom = 0
- Conv::template process_tile<0, 1, 4, 1, 0, 0>,
- Conv::template process_tile<0, 1, 4, 1, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 1, 4, 1, 1, 0>,
- Conv::template process_tile<0, 1, 4, 1, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 1
- { // Input pad right = 2
- { // Output pad bottom = 0
- Conv::template process_tile<0, 1, 4, 2, 0, 0>,
- Conv::template process_tile<0, 1, 4, 2, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 1, 4, 2, 1, 0>,
- Conv::template process_tile<0, 1, 4, 2, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 2
- { // Input pad right = 3
- { // Output pad bottom = 0
- Conv::template process_tile<0, 1, 4, 3, 0, 0>,
- Conv::template process_tile<0, 1, 4, 3, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 1, 4, 3, 1, 0>,
- Conv::template process_tile<0, 1, 4, 3, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 3
- { // Input pad right = 4
- { // Output pad bottom = 0
- Conv::template process_tile<0, 1, 4, 4, 0, 0>,
- Conv::template process_tile<0, 1, 4, 4, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<0, 1, 4, 4, 1, 0>,
- Conv::template process_tile<0, 1, 4, 4, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 4
- }, // Input pad bottom = 4
- }, // Input pad left = 1
- }, // Input pad top = 0
- { // Input pad top = 1
- { // Input pad left = 0
- { // Input pad bottom = 0
- { // Input pad right = 0
- { // Output pad bottom = 0
- Conv::template process_tile<1, 0, 0, 0, 0, 0>,
- Conv::template process_tile<1, 0, 0, 0, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 0, 0, 0, 1, 0>,
- Conv::template process_tile<1, 0, 0, 0, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 0
- { // Input pad right = 1
- { // Output pad bottom = 0
- Conv::template process_tile<1, 0, 0, 1, 0, 0>,
- Conv::template process_tile<1, 0, 0, 1, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 0, 0, 1, 1, 0>,
- Conv::template process_tile<1, 0, 0, 1, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 1
- { // Input pad right = 2
- { // Output pad bottom = 0
- Conv::template process_tile<1, 0, 0, 2, 0, 0>,
- Conv::template process_tile<1, 0, 0, 2, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 0, 0, 2, 1, 0>,
- Conv::template process_tile<1, 0, 0, 2, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 2
- { // Input pad right = 3
- { // Output pad bottom = 0
- Conv::template process_tile<1, 0, 0, 3, 0, 0>,
- Conv::template process_tile<1, 0, 0, 3, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 0, 0, 3, 1, 0>,
- Conv::template process_tile<1, 0, 0, 3, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 3
- { // Input pad right = 4
- { // Output pad bottom = 0
- Conv::template process_tile<1, 0, 0, 4, 0, 0>,
- Conv::template process_tile<1, 0, 0, 4, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 0, 0, 4, 1, 0>,
- Conv::template process_tile<1, 0, 0, 4, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 4
- }, // Input pad bottom = 0
- { // Input pad bottom = 1
- { // Input pad right = 0
- { // Output pad bottom = 0
- Conv::template process_tile<1, 0, 1, 0, 0, 0>,
- Conv::template process_tile<1, 0, 1, 0, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 0, 1, 0, 1, 0>,
- Conv::template process_tile<1, 0, 1, 0, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 0
- { // Input pad right = 1
- { // Output pad bottom = 0
- Conv::template process_tile<1, 0, 1, 1, 0, 0>,
- Conv::template process_tile<1, 0, 1, 1, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 0, 1, 1, 1, 0>,
- Conv::template process_tile<1, 0, 1, 1, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 1
- { // Input pad right = 2
- { // Output pad bottom = 0
- Conv::template process_tile<1, 0, 1, 2, 0, 0>,
- Conv::template process_tile<1, 0, 1, 2, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 0, 1, 2, 1, 0>,
- Conv::template process_tile<1, 0, 1, 2, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 2
- { // Input pad right = 3
- { // Output pad bottom = 0
- Conv::template process_tile<1, 0, 1, 3, 0, 0>,
- Conv::template process_tile<1, 0, 1, 3, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 0, 1, 3, 1, 0>,
- Conv::template process_tile<1, 0, 1, 3, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 3
- { // Input pad right = 4
- { // Output pad bottom = 0
- Conv::template process_tile<1, 0, 1, 4, 0, 0>,
- Conv::template process_tile<1, 0, 1, 4, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 0, 1, 4, 1, 0>,
- Conv::template process_tile<1, 0, 1, 4, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 4
- }, // Input pad bottom = 1
- { // Input pad bottom = 2
- { // Input pad right = 0
- { // Output pad bottom = 0
- Conv::template process_tile<1, 0, 2, 0, 0, 0>,
- Conv::template process_tile<1, 0, 2, 0, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 0, 2, 0, 1, 0>,
- Conv::template process_tile<1, 0, 2, 0, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 0
- { // Input pad right = 1
- { // Output pad bottom = 0
- Conv::template process_tile<1, 0, 2, 1, 0, 0>,
- Conv::template process_tile<1, 0, 2, 1, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 0, 2, 1, 1, 0>,
- Conv::template process_tile<1, 0, 2, 1, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 1
- { // Input pad right = 2
- { // Output pad bottom = 0
- Conv::template process_tile<1, 0, 2, 2, 0, 0>,
- Conv::template process_tile<1, 0, 2, 2, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 0, 2, 2, 1, 0>,
- Conv::template process_tile<1, 0, 2, 2, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 2
- { // Input pad right = 3
- { // Output pad bottom = 0
- Conv::template process_tile<1, 0, 2, 3, 0, 0>,
- Conv::template process_tile<1, 0, 2, 3, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 0, 2, 3, 1, 0>,
- Conv::template process_tile<1, 0, 2, 3, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 3
- { // Input pad right = 4
- { // Output pad bottom = 0
- Conv::template process_tile<1, 0, 2, 4, 0, 0>,
- Conv::template process_tile<1, 0, 2, 4, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 0, 2, 4, 1, 0>,
- Conv::template process_tile<1, 0, 2, 4, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 4
- }, // Input pad bottom = 2
- { // Input pad bottom = 3
- { // Input pad right = 0
- { // Output pad bottom = 0
- Conv::template process_tile<1, 0, 3, 0, 0, 0>,
- Conv::template process_tile<1, 0, 3, 0, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 0, 3, 0, 1, 0>,
- Conv::template process_tile<1, 0, 3, 0, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 0
- { // Input pad right = 1
- { // Output pad bottom = 0
- Conv::template process_tile<1, 0, 3, 1, 0, 0>,
- Conv::template process_tile<1, 0, 3, 1, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 0, 3, 1, 1, 0>,
- Conv::template process_tile<1, 0, 3, 1, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 1
- { // Input pad right = 2
- { // Output pad bottom = 0
- Conv::template process_tile<1, 0, 3, 2, 0, 0>,
- Conv::template process_tile<1, 0, 3, 2, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 0, 3, 2, 1, 0>,
- Conv::template process_tile<1, 0, 3, 2, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 2
- { // Input pad right = 3
- { // Output pad bottom = 0
- Conv::template process_tile<1, 0, 3, 3, 0, 0>,
- Conv::template process_tile<1, 0, 3, 3, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 0, 3, 3, 1, 0>,
- Conv::template process_tile<1, 0, 3, 3, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 3
- { // Input pad right = 4
- { // Output pad bottom = 0
- Conv::template process_tile<1, 0, 3, 4, 0, 0>,
- Conv::template process_tile<1, 0, 3, 4, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 0, 3, 4, 1, 0>,
- Conv::template process_tile<1, 0, 3, 4, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 4
- }, // Input pad bottom = 3
- { // Input pad bottom = 4
- { // Input pad right = 0
- { // Output pad bottom = 0
- Conv::template process_tile<1, 0, 4, 0, 0, 0>,
- Conv::template process_tile<1, 0, 4, 0, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 0, 4, 0, 1, 0>,
- Conv::template process_tile<1, 0, 4, 0, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 0
- { // Input pad right = 1
- { // Output pad bottom = 0
- Conv::template process_tile<1, 0, 4, 1, 0, 0>,
- Conv::template process_tile<1, 0, 4, 1, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 0, 4, 1, 1, 0>,
- Conv::template process_tile<1, 0, 4, 1, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 1
- { // Input pad right = 2
- { // Output pad bottom = 0
- Conv::template process_tile<1, 0, 4, 2, 0, 0>,
- Conv::template process_tile<1, 0, 4, 2, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 0, 4, 2, 1, 0>,
- Conv::template process_tile<1, 0, 4, 2, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 2
- { // Input pad right = 3
- { // Output pad bottom = 0
- Conv::template process_tile<1, 0, 4, 3, 0, 0>,
- Conv::template process_tile<1, 0, 4, 3, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 0, 4, 3, 1, 0>,
- Conv::template process_tile<1, 0, 4, 3, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 3
- { // Input pad right = 4
- { // Output pad bottom = 0
- Conv::template process_tile<1, 0, 4, 4, 0, 0>,
- Conv::template process_tile<1, 0, 4, 4, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 0, 4, 4, 1, 0>,
- Conv::template process_tile<1, 0, 4, 4, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 4
- }, // Input pad bottom = 4
- }, // Input pad left = 0
- { // Input pad left = 1
- { // Input pad bottom = 0
- { // Input pad right = 0
- { // Output pad bottom = 0
- Conv::template process_tile<1, 1, 0, 0, 0, 0>,
- Conv::template process_tile<1, 1, 0, 0, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 1, 0, 0, 1, 0>,
- Conv::template process_tile<1, 1, 0, 0, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 0
- { // Input pad right = 1
- { // Output pad bottom = 0
- Conv::template process_tile<1, 1, 0, 1, 0, 0>,
- Conv::template process_tile<1, 1, 0, 1, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 1, 0, 1, 1, 0>,
- Conv::template process_tile<1, 1, 0, 1, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 1
- { // Input pad right = 2
- { // Output pad bottom = 0
- Conv::template process_tile<1, 1, 0, 2, 0, 0>,
- Conv::template process_tile<1, 1, 0, 2, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 1, 0, 2, 1, 0>,
- Conv::template process_tile<1, 1, 0, 2, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 2
- { // Input pad right = 3
- { // Output pad bottom = 0
- Conv::template process_tile<1, 1, 0, 3, 0, 0>,
- Conv::template process_tile<1, 1, 0, 3, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 1, 0, 3, 1, 0>,
- Conv::template process_tile<1, 1, 0, 3, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 3
- { // Input pad right = 4
- { // Output pad bottom = 0
- Conv::template process_tile<1, 1, 0, 4, 0, 0>,
- Conv::template process_tile<1, 1, 0, 4, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 1, 0, 4, 1, 0>,
- Conv::template process_tile<1, 1, 0, 4, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 4
- }, // Input pad bottom = 0
- { // Input pad bottom = 1
- { // Input pad right = 0
- { // Output pad bottom = 0
- Conv::template process_tile<1, 1, 1, 0, 0, 0>,
- Conv::template process_tile<1, 1, 1, 0, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 1, 1, 0, 1, 0>,
- Conv::template process_tile<1, 1, 1, 0, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 0
- { // Input pad right = 1
- { // Output pad bottom = 0
- Conv::template process_tile<1, 1, 1, 1, 0, 0>,
- Conv::template process_tile<1, 1, 1, 1, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 1, 1, 1, 1, 0>,
- Conv::template process_tile<1, 1, 1, 1, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 1
- { // Input pad right = 2
- { // Output pad bottom = 0
- Conv::template process_tile<1, 1, 1, 2, 0, 0>,
- Conv::template process_tile<1, 1, 1, 2, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 1, 1, 2, 1, 0>,
- Conv::template process_tile<1, 1, 1, 2, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 2
- { // Input pad right = 3
- { // Output pad bottom = 0
- Conv::template process_tile<1, 1, 1, 3, 0, 0>,
- Conv::template process_tile<1, 1, 1, 3, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 1, 1, 3, 1, 0>,
- Conv::template process_tile<1, 1, 1, 3, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 3
- { // Input pad right = 4
- { // Output pad bottom = 0
- Conv::template process_tile<1, 1, 1, 4, 0, 0>,
- Conv::template process_tile<1, 1, 1, 4, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 1, 1, 4, 1, 0>,
- Conv::template process_tile<1, 1, 1, 4, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 4
- }, // Input pad bottom = 1
- { // Input pad bottom = 2
- { // Input pad right = 0
- { // Output pad bottom = 0
- Conv::template process_tile<1, 1, 2, 0, 0, 0>,
- Conv::template process_tile<1, 1, 2, 0, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 1, 2, 0, 1, 0>,
- Conv::template process_tile<1, 1, 2, 0, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 0
- { // Input pad right = 1
- { // Output pad bottom = 0
- Conv::template process_tile<1, 1, 2, 1, 0, 0>,
- Conv::template process_tile<1, 1, 2, 1, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 1, 2, 1, 1, 0>,
- Conv::template process_tile<1, 1, 2, 1, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 1
- { // Input pad right = 2
- { // Output pad bottom = 0
- Conv::template process_tile<1, 1, 2, 2, 0, 0>,
- Conv::template process_tile<1, 1, 2, 2, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 1, 2, 2, 1, 0>,
- Conv::template process_tile<1, 1, 2, 2, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 2
- { // Input pad right = 3
- { // Output pad bottom = 0
- Conv::template process_tile<1, 1, 2, 3, 0, 0>,
- Conv::template process_tile<1, 1, 2, 3, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 1, 2, 3, 1, 0>,
- Conv::template process_tile<1, 1, 2, 3, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 3
- { // Input pad right = 4
- { // Output pad bottom = 0
- Conv::template process_tile<1, 1, 2, 4, 0, 0>,
- Conv::template process_tile<1, 1, 2, 4, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 1, 2, 4, 1, 0>,
- Conv::template process_tile<1, 1, 2, 4, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 4
- }, // Input pad bottom = 2
- { // Input pad bottom = 3
- { // Input pad right = 0
- { // Output pad bottom = 0
- Conv::template process_tile<1, 1, 3, 0, 0, 0>,
- Conv::template process_tile<1, 1, 3, 0, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 1, 3, 0, 1, 0>,
- Conv::template process_tile<1, 1, 3, 0, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 0
- { // Input pad right = 1
- { // Output pad bottom = 0
- Conv::template process_tile<1, 1, 3, 1, 0, 0>,
- Conv::template process_tile<1, 1, 3, 1, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 1, 3, 1, 1, 0>,
- Conv::template process_tile<1, 1, 3, 1, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 1
- { // Input pad right = 2
- { // Output pad bottom = 0
- Conv::template process_tile<1, 1, 3, 2, 0, 0>,
- Conv::template process_tile<1, 1, 3, 2, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 1, 3, 2, 1, 0>,
- Conv::template process_tile<1, 1, 3, 2, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 2
- { // Input pad right = 3
- { // Output pad bottom = 0
- Conv::template process_tile<1, 1, 3, 3, 0, 0>,
- Conv::template process_tile<1, 1, 3, 3, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 1, 3, 3, 1, 0>,
- Conv::template process_tile<1, 1, 3, 3, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 3
- { // Input pad right = 4
- { // Output pad bottom = 0
- Conv::template process_tile<1, 1, 3, 4, 0, 0>,
- Conv::template process_tile<1, 1, 3, 4, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 1, 3, 4, 1, 0>,
- Conv::template process_tile<1, 1, 3, 4, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 4
- }, // Input pad bottom = 3
- { // Input pad bottom = 4
- { // Input pad right = 0
- { // Output pad bottom = 0
- Conv::template process_tile<1, 1, 4, 0, 0, 0>,
- Conv::template process_tile<1, 1, 4, 0, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 1, 4, 0, 1, 0>,
- Conv::template process_tile<1, 1, 4, 0, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 0
- { // Input pad right = 1
- { // Output pad bottom = 0
- Conv::template process_tile<1, 1, 4, 1, 0, 0>,
- Conv::template process_tile<1, 1, 4, 1, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 1, 4, 1, 1, 0>,
- Conv::template process_tile<1, 1, 4, 1, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 1
- { // Input pad right = 2
- { // Output pad bottom = 0
- Conv::template process_tile<1, 1, 4, 2, 0, 0>,
- Conv::template process_tile<1, 1, 4, 2, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 1, 4, 2, 1, 0>,
- Conv::template process_tile<1, 1, 4, 2, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 2
- { // Input pad right = 3
- { // Output pad bottom = 0
- Conv::template process_tile<1, 1, 4, 3, 0, 0>,
- Conv::template process_tile<1, 1, 4, 3, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 1, 4, 3, 1, 0>,
- Conv::template process_tile<1, 1, 4, 3, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 3
- { // Input pad right = 4
- { // Output pad bottom = 0
- Conv::template process_tile<1, 1, 4, 4, 0, 0>,
- Conv::template process_tile<1, 1, 4, 4, 0, 1>,
- }, // Output pad bottom = 0
- { // Output pad bottom = 1
- Conv::template process_tile<1, 1, 4, 4, 1, 0>,
- Conv::template process_tile<1, 1, 4, 4, 1, 1>,
- }, // Output pad bottom = 1
- }, // Input pad right = 4
- }, // Input pad bottom = 4
- }, // Input pad left = 1
- }, // Input pad top = 1
+const Conv::TileFn Conv::tilefn_unpadded = ConvImpl::template process_tile<true, 0, 0, 0, 0, 0, 0>;
+
+template <>
+const Conv::TileFn Conv::tilefn_top[n_in_pad_top_fns] = {
+ ConvImpl::template process_tile<true, 0, 0, 0, 0, 0, 0>,
+ ConvImpl::template process_tile<true, 1, 0, 0, 0, 0, 0>,
+};
+
+template <>
+const Conv::TileFn Conv::tilefn_left[n_in_pad_left_fns] = {
+ ConvImpl::template process_tile<true, 0, 0, 0, 0, 0, 0>,
+ ConvImpl::template process_tile<true, 0, 1, 0, 0, 0, 0>,
+};
+
+template <>
+const Conv::TileFn Conv::tilefn_bottom[n_in_pad_bottom_fns][n_out_pad_bottom_fns] = {
+ {
+ ConvImpl::template process_tile<true, 0, 0, 0, 0, 0, 0>,
+ ConvImpl::template process_tile<true, 0, 0, 0, 0, 1, 0>,
+ },
+ {
+ ConvImpl::template process_tile<true, 0, 0, 1, 0, 0, 0>,
+ ConvImpl::template process_tile<true, 0, 0, 1, 0, 1, 0>,
+ },
+ {
+ ConvImpl::template process_tile<true, 0, 0, 2, 0, 0, 0>,
+ ConvImpl::template process_tile<true, 0, 0, 2, 0, 1, 0>,
+ },
+ {
+ ConvImpl::template process_tile<true, 0, 0, 3, 0, 0, 0>,
+ ConvImpl::template process_tile<true, 0, 0, 3, 0, 1, 0>,
+ },
+ {
+ ConvImpl::template process_tile<true, 0, 0, 4, 0, 0, 0>,
+ ConvImpl::template process_tile<true, 0, 0, 4, 0, 1, 0>,
+ },
+};
+
+template <>
+const Conv::TileFn Conv::tilefn_right[n_in_pad_right_fns][n_out_pad_right_fns] = {
+ {
+ ConvImpl::template process_tile<true, 0, 0, 0, 0, 0, 0>,
+ ConvImpl::template process_tile<true, 0, 0, 0, 0, 0, 1>,
+ },
+ {
+ ConvImpl::template process_tile<true, 0, 0, 0, 1, 0, 0>,
+ ConvImpl::template process_tile<true, 0, 0, 0, 1, 0, 1>,
+ },
+ {
+ ConvImpl::template process_tile<true, 0, 0, 0, 2, 0, 0>,
+ ConvImpl::template process_tile<true, 0, 0, 0, 2, 0, 1>,
+ },
+ {
+ ConvImpl::template process_tile<true, 0, 0, 0, 3, 0, 0>,
+ ConvImpl::template process_tile<true, 0, 0, 0, 3, 0, 1>,
+ },
+ {
+ ConvImpl::template process_tile<true, 0, 0, 0, 4, 0, 0>,
+ ConvImpl::template process_tile<true, 0, 0, 0, 4, 0, 1>,
+ },
};
+template <>
+const Conv::TileFn Conv::tilefn_generic = ConvImpl::template process_tile<false>;
template class DepthwiseConvolution<2, 2, 3, 3, 2, 2, float, float>;
} // namespace depthwise