1*4bdc9457SAndroid Build Coastguard Worker // Copyright 2019 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 #include <algorithm>
7*4bdc9457SAndroid Build Coastguard Worker #include <cfloat>
8*4bdc9457SAndroid Build Coastguard Worker #include <cmath>
9*4bdc9457SAndroid Build Coastguard Worker #include <functional>
10*4bdc9457SAndroid Build Coastguard Worker #include <random>
11*4bdc9457SAndroid Build Coastguard Worker #include <vector>
12*4bdc9457SAndroid Build Coastguard Worker
13*4bdc9457SAndroid Build Coastguard Worker #include <benchmark/benchmark.h>
14*4bdc9457SAndroid Build Coastguard Worker #include "bench/dwconv.h"
15*4bdc9457SAndroid Build Coastguard Worker #include "bench/utils.h"
16*4bdc9457SAndroid Build Coastguard Worker
17*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack.h>
18*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/aligned-allocator.h>
19*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/common.h>
20*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/dwconv.h>
21*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/indirection.h>
22*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/microfnptr.h>
23*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/microparams-init.h>
24*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/operator.h>
25*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/pack.h>
26*4bdc9457SAndroid Build Coastguard Worker
27*4bdc9457SAndroid Build Coastguard Worker
f32_dwconv2d_chw(benchmark::State & state,xnn_f32_dwconv2d_chw_ukernel_function dwconv,uint32_t kh,uint32_t kw,uint32_t pw,uint32_t s,benchmark::utils::IsaCheckFunction isa_check=nullptr)28*4bdc9457SAndroid Build Coastguard Worker static void f32_dwconv2d_chw(benchmark::State& state,
29*4bdc9457SAndroid Build Coastguard Worker xnn_f32_dwconv2d_chw_ukernel_function dwconv,
30*4bdc9457SAndroid Build Coastguard Worker uint32_t kh, uint32_t kw, uint32_t pw, uint32_t s,
31*4bdc9457SAndroid Build Coastguard Worker benchmark::utils::IsaCheckFunction isa_check = nullptr)
32*4bdc9457SAndroid Build Coastguard Worker {
33*4bdc9457SAndroid Build Coastguard Worker if (isa_check && !isa_check(state)) {
34*4bdc9457SAndroid Build Coastguard Worker return;
35*4bdc9457SAndroid Build Coastguard Worker }
36*4bdc9457SAndroid Build Coastguard Worker
37*4bdc9457SAndroid Build Coastguard Worker const size_t input_height = state.range(0);
38*4bdc9457SAndroid Build Coastguard Worker const size_t input_width = state.range(1);
39*4bdc9457SAndroid Build Coastguard Worker const size_t kernel_height = state.range(2);
40*4bdc9457SAndroid Build Coastguard Worker const size_t kernel_width = state.range(3);
41*4bdc9457SAndroid Build Coastguard Worker const size_t padding_height = state.range(4);
42*4bdc9457SAndroid Build Coastguard Worker const size_t padding_width = state.range(5);
43*4bdc9457SAndroid Build Coastguard Worker const size_t subsampling = state.range(6);
44*4bdc9457SAndroid Build Coastguard Worker const size_t dilation = state.range(7);
45*4bdc9457SAndroid Build Coastguard Worker const size_t channels = state.range(8);
46*4bdc9457SAndroid Build Coastguard Worker
47*4bdc9457SAndroid Build Coastguard Worker if (kernel_height != kh) {
48*4bdc9457SAndroid Build Coastguard Worker state.SkipWithError("kernel height mismatch");
49*4bdc9457SAndroid Build Coastguard Worker return;
50*4bdc9457SAndroid Build Coastguard Worker }
51*4bdc9457SAndroid Build Coastguard Worker
52*4bdc9457SAndroid Build Coastguard Worker if (kernel_width != kw) {
53*4bdc9457SAndroid Build Coastguard Worker state.SkipWithError("kernel width mismatch");
54*4bdc9457SAndroid Build Coastguard Worker return;
55*4bdc9457SAndroid Build Coastguard Worker }
56*4bdc9457SAndroid Build Coastguard Worker
57*4bdc9457SAndroid Build Coastguard Worker if (subsampling != s) {
58*4bdc9457SAndroid Build Coastguard Worker state.SkipWithError("subsampling mismatch");
59*4bdc9457SAndroid Build Coastguard Worker return;
60*4bdc9457SAndroid Build Coastguard Worker }
61*4bdc9457SAndroid Build Coastguard Worker
62*4bdc9457SAndroid Build Coastguard Worker if (padding_width % 2 != 0 || padding_width / 2 != pw) {
63*4bdc9457SAndroid Build Coastguard Worker state.SkipWithError("padding width mismatch");
64*4bdc9457SAndroid Build Coastguard Worker return;
65*4bdc9457SAndroid Build Coastguard Worker }
66*4bdc9457SAndroid Build Coastguard Worker
67*4bdc9457SAndroid Build Coastguard Worker if (dilation != 1) {
68*4bdc9457SAndroid Build Coastguard Worker state.SkipWithError("unsupported dilation");
69*4bdc9457SAndroid Build Coastguard Worker return;
70*4bdc9457SAndroid Build Coastguard Worker }
71*4bdc9457SAndroid Build Coastguard Worker
72*4bdc9457SAndroid Build Coastguard Worker std::random_device random_device;
73*4bdc9457SAndroid Build Coastguard Worker auto rng = std::mt19937(random_device());
74*4bdc9457SAndroid Build Coastguard Worker auto f32rng = std::bind(std::uniform_real_distribution<float>(0.0f, 1.0f), std::ref(rng));
75*4bdc9457SAndroid Build Coastguard Worker
76*4bdc9457SAndroid Build Coastguard Worker const size_t effective_kernel_height = (kernel_height - 1) * dilation + 1;
77*4bdc9457SAndroid Build Coastguard Worker const size_t effective_kernel_width = (kernel_width - 1) * dilation + 1;
78*4bdc9457SAndroid Build Coastguard Worker const size_t output_height = (input_height + padding_height - effective_kernel_height) / subsampling + 1;
79*4bdc9457SAndroid Build Coastguard Worker const size_t output_width = (input_width + padding_width - effective_kernel_width) / subsampling + 1;
80*4bdc9457SAndroid Build Coastguard Worker
81*4bdc9457SAndroid Build Coastguard Worker const size_t inputSize = (input_height + padding_height) * input_width;
82*4bdc9457SAndroid Build Coastguard Worker const size_t kernel_size = kernel_height * kernel_width;
83*4bdc9457SAndroid Build Coastguard Worker const size_t output_size = output_height * output_width;
84*4bdc9457SAndroid Build Coastguard Worker
85*4bdc9457SAndroid Build Coastguard Worker std::vector<float> input(inputSize * channels + 2 * XNN_EXTRA_BYTES);
86*4bdc9457SAndroid Build Coastguard Worker std::generate(input.begin(), input.end(), std::ref(f32rng));
87*4bdc9457SAndroid Build Coastguard Worker std::vector<float> bias(channels);
88*4bdc9457SAndroid Build Coastguard Worker std::generate(bias.begin(), bias.end(), std::ref(f32rng));
89*4bdc9457SAndroid Build Coastguard Worker std::vector<float> kernel(channels * kernel_size);
90*4bdc9457SAndroid Build Coastguard Worker std::generate(kernel.begin(), kernel.end(), std::ref(f32rng));
91*4bdc9457SAndroid Build Coastguard Worker std::vector<float> zero(input_width + padding_width);
92*4bdc9457SAndroid Build Coastguard Worker
93*4bdc9457SAndroid Build Coastguard Worker const size_t w_elements = (kernel_size + 1) * channels;
94*4bdc9457SAndroid Build Coastguard Worker const size_t o_elements = output_size * channels;
95*4bdc9457SAndroid Build Coastguard Worker const size_t num_buffers = 1 +
96*4bdc9457SAndroid Build Coastguard Worker benchmark::utils::DivideRoundUp<size_t>(benchmark::utils::GetMaxCacheSize(),
97*4bdc9457SAndroid Build Coastguard Worker sizeof(float) * (w_elements + o_elements));
98*4bdc9457SAndroid Build Coastguard Worker
99*4bdc9457SAndroid Build Coastguard Worker std::vector<float, AlignedAllocator<float, 64>> packed_weights(w_elements * num_buffers);
100*4bdc9457SAndroid Build Coastguard Worker std::fill(packed_weights.begin(), packed_weights.end(), 0.0f);
101*4bdc9457SAndroid Build Coastguard Worker for (size_t c = 0; c < channels; c++) {
102*4bdc9457SAndroid Build Coastguard Worker packed_weights[c * kernel_size + c] = bias[c];
103*4bdc9457SAndroid Build Coastguard Worker for (size_t i = 0; i < kernel_size; i++) {
104*4bdc9457SAndroid Build Coastguard Worker packed_weights[c * kernel_size + c + 1 + i] = kernel[c * kernel_size + i];
105*4bdc9457SAndroid Build Coastguard Worker }
106*4bdc9457SAndroid Build Coastguard Worker }
107*4bdc9457SAndroid Build Coastguard Worker for (size_t n = 1; n < num_buffers; n++) {
108*4bdc9457SAndroid Build Coastguard Worker std::copy(packed_weights.cbegin(), packed_weights.cbegin() + w_elements, packed_weights.begin() + n * w_elements);
109*4bdc9457SAndroid Build Coastguard Worker }
110*4bdc9457SAndroid Build Coastguard Worker
111*4bdc9457SAndroid Build Coastguard Worker std::vector<float> output(o_elements * num_buffers);
112*4bdc9457SAndroid Build Coastguard Worker std::fill(output.begin(), output.end(), std::nanf(""));
113*4bdc9457SAndroid Build Coastguard Worker
114*4bdc9457SAndroid Build Coastguard Worker xnn_f32_chw_params chw_params;
115*4bdc9457SAndroid Build Coastguard Worker xnn_init_f32_chw_params(
116*4bdc9457SAndroid Build Coastguard Worker &chw_params, input_width, -std::numeric_limits<float>::infinity(), +std::numeric_limits<float>::infinity());
117*4bdc9457SAndroid Build Coastguard Worker
118*4bdc9457SAndroid Build Coastguard Worker size_t buffer_index = 0;
119*4bdc9457SAndroid Build Coastguard Worker for (auto _ : state) {
120*4bdc9457SAndroid Build Coastguard Worker state.PauseTiming();
121*4bdc9457SAndroid Build Coastguard Worker benchmark::utils::PrefetchToL1(input.data(), input.size() * sizeof(float));
122*4bdc9457SAndroid Build Coastguard Worker buffer_index = (buffer_index + 1) % num_buffers;
123*4bdc9457SAndroid Build Coastguard Worker state.ResumeTiming();
124*4bdc9457SAndroid Build Coastguard Worker
125*4bdc9457SAndroid Build Coastguard Worker for (uint32_t channel = 0; channel < channels; channel++) {
126*4bdc9457SAndroid Build Coastguard Worker dwconv(
127*4bdc9457SAndroid Build Coastguard Worker input_height, input_width * sizeof(float),
128*4bdc9457SAndroid Build Coastguard Worker input.data() + channel * inputSize,
129*4bdc9457SAndroid Build Coastguard Worker packed_weights.data() + channel * (kernel_size + 1) + buffer_index * w_elements,
130*4bdc9457SAndroid Build Coastguard Worker zero.data(),
131*4bdc9457SAndroid Build Coastguard Worker output.data() + channel * output_size + buffer_index * o_elements,
132*4bdc9457SAndroid Build Coastguard Worker padding_height / 2, // padding_top
133*4bdc9457SAndroid Build Coastguard Worker &chw_params);
134*4bdc9457SAndroid Build Coastguard Worker }
135*4bdc9457SAndroid Build Coastguard Worker }
136*4bdc9457SAndroid Build Coastguard Worker
137*4bdc9457SAndroid Build Coastguard Worker const uint64_t cpu_frequency = benchmark::utils::GetCurrentCpuFrequency();
138*4bdc9457SAndroid Build Coastguard Worker if (cpu_frequency != 0) {
139*4bdc9457SAndroid Build Coastguard Worker state.counters["cpufreq"] = cpu_frequency;
140*4bdc9457SAndroid Build Coastguard Worker }
141*4bdc9457SAndroid Build Coastguard Worker
142*4bdc9457SAndroid Build Coastguard Worker state.counters["FLOPS"] = benchmark::Counter(
143*4bdc9457SAndroid Build Coastguard Worker uint64_t(state.iterations()) * 2 * output_size * channels * kernel_size,
144*4bdc9457SAndroid Build Coastguard Worker benchmark::Counter::kIsRate);
145*4bdc9457SAndroid Build Coastguard Worker
146*4bdc9457SAndroid Build Coastguard Worker state.counters["bytes"] = benchmark::Counter(
147*4bdc9457SAndroid Build Coastguard Worker uint64_t(state.iterations()) * (output_size + inputSize + kernel_size + 1 /* bias */) * channels * sizeof(float),
148*4bdc9457SAndroid Build Coastguard Worker benchmark::Counter::kIsRate);
149*4bdc9457SAndroid Build Coastguard Worker }
150*4bdc9457SAndroid Build Coastguard Worker
151*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM
dwconv2d_chw_3x3p1__neon_1x4(benchmark::State & state,const char * net)152*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__neon_1x4(benchmark::State& state, const char* net) {
153*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neon_1x4, 3, 3, 1, 1, benchmark::utils::CheckNEON);
154*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__neon_2x4(benchmark::State & state,const char * net)155*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__neon_2x4(benchmark::State& state, const char* net) {
156*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neon_2x4, 3, 3, 1, 1, benchmark::utils::CheckNEON);
157*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__neon_3x4(benchmark::State & state,const char * net)158*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__neon_3x4(benchmark::State& state, const char* net) {
159*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neon_3x4, 3, 3, 1, 1, benchmark::utils::CheckNEON);
160*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__neon_4x4(benchmark::State & state,const char * net)161*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__neon_4x4(benchmark::State& state, const char* net) {
162*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neon_4x4, 3, 3, 1, 1, benchmark::utils::CheckNEON);
163*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__neon_5x4(benchmark::State & state,const char * net)164*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__neon_5x4(benchmark::State& state, const char* net) {
165*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neon_5x4, 3, 3, 1, 1, benchmark::utils::CheckNEON);
166*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__neon_6x4(benchmark::State & state,const char * net)167*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__neon_6x4(benchmark::State& state, const char* net) {
168*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neon_6x4, 3, 3, 1, 1, benchmark::utils::CheckNEON);
169*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__neon_1x4_acc2(benchmark::State & state,const char * net)170*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__neon_1x4_acc2(benchmark::State& state, const char* net) {
171*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neon_1x4_acc2, 3, 3, 1, 1, benchmark::utils::CheckNEON);
172*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__neon_1x4_acc3(benchmark::State & state,const char * net)173*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__neon_1x4_acc3(benchmark::State& state, const char* net) {
174*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neon_1x4_acc3, 3, 3, 1, 1, benchmark::utils::CheckNEON);
175*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__neon_1x4_acc4(benchmark::State & state,const char * net)176*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__neon_1x4_acc4(benchmark::State& state, const char* net) {
177*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neon_1x4_acc4, 3, 3, 1, 1, benchmark::utils::CheckNEON);
178*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__neon_2x4_acc2(benchmark::State & state,const char * net)179*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__neon_2x4_acc2(benchmark::State& state, const char* net) {
180*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neon_2x4_acc2, 3, 3, 1, 1, benchmark::utils::CheckNEON);
181*4bdc9457SAndroid Build Coastguard Worker }
182*4bdc9457SAndroid Build Coastguard Worker
dwconv2d_chw_3x3s2p1__neon_1x4(benchmark::State & state,const char * net)183*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__neon_1x4(benchmark::State& state, const char* net) {
184*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neon_1x4, 3, 3, 1, 2, benchmark::utils::CheckNEON);
185*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__neon_2x4(benchmark::State & state,const char * net)186*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__neon_2x4(benchmark::State& state, const char* net) {
187*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neon_2x4, 3, 3, 1, 2, benchmark::utils::CheckNEON);
188*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__neon_3x4(benchmark::State & state,const char * net)189*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__neon_3x4(benchmark::State& state, const char* net) {
190*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neon_3x4, 3, 3, 1, 2, benchmark::utils::CheckNEON);
191*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__neon_4x4(benchmark::State & state,const char * net)192*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__neon_4x4(benchmark::State& state, const char* net) {
193*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neon_4x4, 3, 3, 1, 2, benchmark::utils::CheckNEON);
194*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__neon_1x4_acc2(benchmark::State & state,const char * net)195*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__neon_1x4_acc2(benchmark::State& state, const char* net) {
196*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neon_1x4_acc2, 3, 3, 1, 2, benchmark::utils::CheckNEON);
197*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__neon_1x4_acc3(benchmark::State & state,const char * net)198*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__neon_1x4_acc3(benchmark::State& state, const char* net) {
199*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neon_1x4_acc3, 3, 3, 1, 2, benchmark::utils::CheckNEON);
200*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__neon_1x4_acc4(benchmark::State & state,const char * net)201*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__neon_1x4_acc4(benchmark::State& state, const char* net) {
202*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neon_1x4_acc4, 3, 3, 1, 2, benchmark::utils::CheckNEON);
203*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__neon_2x4_acc2(benchmark::State & state,const char * net)204*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__neon_2x4_acc2(benchmark::State& state, const char* net) {
205*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neon_2x4_acc2, 3, 3, 1, 2, benchmark::utils::CheckNEON);
206*4bdc9457SAndroid Build Coastguard Worker }
207*4bdc9457SAndroid Build Coastguard Worker
dwconv2d_chw_5x5p2__neon_1x4(benchmark::State & state,const char * net)208*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neon_1x4(benchmark::State& state, const char* net) {
209*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_1x4, 5, 5, 2, 1, benchmark::utils::CheckNEON);
210*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__neon_2x4(benchmark::State & state,const char * net)211*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neon_2x4(benchmark::State& state, const char* net) {
212*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_2x4, 5, 5, 2, 1, benchmark::utils::CheckNEON);
213*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__neon_3x4(benchmark::State & state,const char * net)214*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neon_3x4(benchmark::State& state, const char* net) {
215*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_3x4, 5, 5, 2, 1, benchmark::utils::CheckNEON);
216*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__neon_4x4(benchmark::State & state,const char * net)217*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neon_4x4(benchmark::State& state, const char* net) {
218*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_4x4, 5, 5, 2, 1, benchmark::utils::CheckNEON);
219*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__neon_5x4(benchmark::State & state,const char * net)220*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neon_5x4(benchmark::State& state, const char* net) {
221*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_5x4, 5, 5, 2, 1, benchmark::utils::CheckNEON);
222*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__neon_1x4_acc2(benchmark::State & state,const char * net)223*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neon_1x4_acc2(benchmark::State& state, const char* net) {
224*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_1x4_acc2, 5, 5, 2, 1, benchmark::utils::CheckNEON);
225*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__neon_1x4_acc3(benchmark::State & state,const char * net)226*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neon_1x4_acc3(benchmark::State& state, const char* net) {
227*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_1x4_acc3, 5, 5, 2, 1, benchmark::utils::CheckNEON);
228*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__neon_1x4_acc4(benchmark::State & state,const char * net)229*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neon_1x4_acc4(benchmark::State& state, const char* net) {
230*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_1x4_acc4, 5, 5, 2, 1, benchmark::utils::CheckNEON);
231*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__neon_1x4_acc5(benchmark::State & state,const char * net)232*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neon_1x4_acc5(benchmark::State& state, const char* net) {
233*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_1x4_acc5, 5, 5, 2, 1, benchmark::utils::CheckNEON);
234*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__neon_2x4_acc2(benchmark::State & state,const char * net)235*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neon_2x4_acc2(benchmark::State& state, const char* net) {
236*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_2x4_acc2, 5, 5, 2, 1, benchmark::utils::CheckNEON);
237*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__neon_2x4_acc3(benchmark::State & state,const char * net)238*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neon_2x4_acc3(benchmark::State& state, const char* net) {
239*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_2x4_acc3, 5, 5, 2, 1, benchmark::utils::CheckNEON);
240*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__neon_3x4_acc2(benchmark::State & state,const char * net)241*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neon_3x4_acc2(benchmark::State& state, const char* net) {
242*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_3x4_acc2, 5, 5, 2, 1, benchmark::utils::CheckNEON);
243*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__neon_4x4_acc2(benchmark::State & state,const char * net)244*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neon_4x4_acc2(benchmark::State& state, const char* net) {
245*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_4x4_acc2, 5, 5, 2, 1, benchmark::utils::CheckNEON);
246*4bdc9457SAndroid Build Coastguard Worker }
247*4bdc9457SAndroid Build Coastguard Worker
dwconv2d_chw_5x5s2p2__neon_1x4(benchmark::State & state,const char * net)248*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__neon_1x4(benchmark::State& state, const char* net) {
249*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neon_1x4, 5, 5, 2, 2, benchmark::utils::CheckNEON);
250*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__neon_2x4(benchmark::State & state,const char * net)251*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__neon_2x4(benchmark::State& state, const char* net) {
252*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neon_2x4, 5, 5, 2, 2, benchmark::utils::CheckNEON);
253*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__neon_3x4(benchmark::State & state,const char * net)254*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__neon_3x4(benchmark::State& state, const char* net) {
255*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neon_3x4, 5, 5, 2, 2, benchmark::utils::CheckNEON);
256*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__neon_1x4_acc2(benchmark::State & state,const char * net)257*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__neon_1x4_acc2(benchmark::State& state, const char* net) {
258*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neon_1x4_acc2, 5, 5, 2, 2, benchmark::utils::CheckNEON);
259*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__neon_1x4_acc3(benchmark::State & state,const char * net)260*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__neon_1x4_acc3(benchmark::State& state, const char* net) {
261*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neon_1x4_acc3, 5, 5, 2, 2, benchmark::utils::CheckNEON);
262*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__neon_1x4_acc4(benchmark::State & state,const char * net)263*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__neon_1x4_acc4(benchmark::State& state, const char* net) {
264*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neon_1x4_acc4, 5, 5, 2, 2, benchmark::utils::CheckNEON);
265*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__neon_1x4_acc5(benchmark::State & state,const char * net)266*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__neon_1x4_acc5(benchmark::State& state, const char* net) {
267*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neon_1x4_acc5, 5, 5, 2, 2, benchmark::utils::CheckNEON);
268*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__neon_2x4_acc2(benchmark::State & state,const char * net)269*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__neon_2x4_acc2(benchmark::State& state, const char* net) {
270*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neon_2x4_acc2, 5, 5, 2, 2, benchmark::utils::CheckNEON);
271*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__neon_2x4_acc3(benchmark::State & state,const char * net)272*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__neon_2x4_acc3(benchmark::State& state, const char* net) {
273*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neon_2x4_acc3, 5, 5, 2, 2, benchmark::utils::CheckNEON);
274*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__neon_3x4_acc2(benchmark::State & state,const char * net)275*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__neon_3x4_acc2(benchmark::State& state, const char* net) {
276*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neon_3x4_acc2, 5, 5, 2, 2, benchmark::utils::CheckNEON);
277*4bdc9457SAndroid Build Coastguard Worker }
278*4bdc9457SAndroid Build Coastguard Worker
279*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neon_1x4)
BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neon_2x4)280*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neon_2x4)
281*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neon_3x4)
282*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neon_4x4)
283*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neon_5x4)
284*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neon_6x4)
285*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neon_1x4_acc2)
286*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neon_1x4_acc3)
287*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neon_1x4_acc4)
288*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neon_2x4_acc2)
289*4bdc9457SAndroid Build Coastguard Worker
290*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neon_1x4)
291*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neon_2x4)
292*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neon_3x4)
293*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neon_4x4)
294*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neon_1x4_acc2)
295*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neon_1x4_acc3)
296*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neon_1x4_acc4)
297*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neon_2x4_acc2)
298*4bdc9457SAndroid Build Coastguard Worker
299*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_1x4)
300*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_2x4)
301*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_3x4)
302*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_4x4)
303*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_5x4)
304*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_1x4_acc2)
305*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_1x4_acc3)
306*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_1x4_acc4)
307*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_1x4_acc5)
308*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_2x4_acc2)
309*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_2x4_acc3)
310*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_3x4_acc2)
311*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_4x4_acc2)
312*4bdc9457SAndroid Build Coastguard Worker
313*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neon_1x4)
314*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neon_2x4)
315*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neon_3x4)
316*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neon_1x4_acc2)
317*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neon_1x4_acc3)
318*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neon_1x4_acc4)
319*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neon_1x4_acc5)
320*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neon_2x4_acc2)
321*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neon_2x4_acc3)
322*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neon_3x4_acc2)
323*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM
324*4bdc9457SAndroid Build Coastguard Worker
325*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM64
326*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__neonfma_1x4(benchmark::State& state, const char* net) {
327*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neonfma_1x4, 3, 3, 1, 1);
328*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__neonfma_2x4(benchmark::State & state,const char * net)329*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__neonfma_2x4(benchmark::State& state, const char* net) {
330*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neonfma_2x4, 3, 3, 1, 1);
331*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__neonfma_3x4(benchmark::State & state,const char * net)332*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__neonfma_3x4(benchmark::State& state, const char* net) {
333*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neonfma_3x4, 3, 3, 1, 1);
334*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__neonfma_4x4(benchmark::State & state,const char * net)335*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__neonfma_4x4(benchmark::State& state, const char* net) {
336*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neonfma_4x4, 3, 3, 1, 1);
337*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__neonfma_5x4(benchmark::State & state,const char * net)338*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__neonfma_5x4(benchmark::State& state, const char* net) {
339*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neonfma_5x4, 3, 3, 1, 1);
340*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__neonfma_6x4(benchmark::State & state,const char * net)341*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__neonfma_6x4(benchmark::State& state, const char* net) {
342*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neonfma_6x4, 3, 3, 1, 1);
343*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__neonfma_1x4_acc2(benchmark::State & state,const char * net)344*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__neonfma_1x4_acc2(benchmark::State& state, const char* net) {
345*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neonfma_1x4_acc2, 3, 3, 1, 1);
346*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__neonfma_1x4_acc3(benchmark::State & state,const char * net)347*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__neonfma_1x4_acc3(benchmark::State& state, const char* net) {
348*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neonfma_1x4_acc3, 3, 3, 1, 1);
349*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__neonfma_1x4_acc4(benchmark::State & state,const char * net)350*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__neonfma_1x4_acc4(benchmark::State& state, const char* net) {
351*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neonfma_1x4_acc4, 3, 3, 1, 1);
352*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__neonfma_2x4_acc2(benchmark::State & state,const char * net)353*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__neonfma_2x4_acc2(benchmark::State& state, const char* net) {
354*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neonfma_2x4_acc2, 3, 3, 1, 1);
355*4bdc9457SAndroid Build Coastguard Worker }
356*4bdc9457SAndroid Build Coastguard Worker
dwconv2d_chw_3x3s2p1__neonfma_1x4(benchmark::State & state,const char * net)357*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__neonfma_1x4(benchmark::State& state, const char* net) {
358*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neonfma_1x4, 3, 3, 1, 2);
359*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__neonfma_2x4(benchmark::State & state,const char * net)360*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__neonfma_2x4(benchmark::State& state, const char* net) {
361*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neonfma_2x4, 3, 3, 1, 2);
362*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__neonfma_3x4(benchmark::State & state,const char * net)363*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__neonfma_3x4(benchmark::State& state, const char* net) {
364*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neonfma_3x4, 3, 3, 1, 2);
365*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__neonfma_4x4(benchmark::State & state,const char * net)366*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__neonfma_4x4(benchmark::State& state, const char* net) {
367*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neonfma_4x4, 3, 3, 1, 2);
368*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__neonfma_1x4_acc2(benchmark::State & state,const char * net)369*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__neonfma_1x4_acc2(benchmark::State& state, const char* net) {
370*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neonfma_1x4_acc2, 3, 3, 1, 2);
371*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__neonfma_1x4_acc3(benchmark::State & state,const char * net)372*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__neonfma_1x4_acc3(benchmark::State& state, const char* net) {
373*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neonfma_1x4_acc3, 3, 3, 1, 2);
374*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__neonfma_1x4_acc4(benchmark::State & state,const char * net)375*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__neonfma_1x4_acc4(benchmark::State& state, const char* net) {
376*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neonfma_1x4_acc4, 3, 3, 1, 2);
377*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__neonfma_2x4_acc2(benchmark::State & state,const char * net)378*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__neonfma_2x4_acc2(benchmark::State& state, const char* net) {
379*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neonfma_2x4_acc2, 3, 3, 1, 2);
380*4bdc9457SAndroid Build Coastguard Worker }
381*4bdc9457SAndroid Build Coastguard Worker
dwconv2d_chw_5x5p2__neonfma_1x4(benchmark::State & state,const char * net)382*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neonfma_1x4(benchmark::State& state, const char* net) {
383*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_1x4, 5, 5, 2, 1);
384*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__neonfma_2x4(benchmark::State & state,const char * net)385*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neonfma_2x4(benchmark::State& state, const char* net) {
386*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_2x4, 5, 5, 2, 1);
387*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__neonfma_3x4(benchmark::State & state,const char * net)388*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neonfma_3x4(benchmark::State& state, const char* net) {
389*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_3x4, 5, 5, 2, 1);
390*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__neonfma_4x4(benchmark::State & state,const char * net)391*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neonfma_4x4(benchmark::State& state, const char* net) {
392*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_4x4, 5, 5, 2, 1);
393*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__neonfma_5x4(benchmark::State & state,const char * net)394*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neonfma_5x4(benchmark::State& state, const char* net) {
395*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_5x4, 5, 5, 2, 1);
396*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__neonfma_1x4_acc2(benchmark::State & state,const char * net)397*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neonfma_1x4_acc2(benchmark::State& state, const char* net) {
398*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_1x4_acc2, 5, 5, 2, 1);
399*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__neonfma_1x4_acc3(benchmark::State & state,const char * net)400*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neonfma_1x4_acc3(benchmark::State& state, const char* net) {
401*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_1x4_acc3, 5, 5, 2, 1);
402*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__neonfma_1x4_acc4(benchmark::State & state,const char * net)403*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neonfma_1x4_acc4(benchmark::State& state, const char* net) {
404*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_1x4_acc4, 5, 5, 2, 1);
405*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__neonfma_1x4_acc5(benchmark::State & state,const char * net)406*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neonfma_1x4_acc5(benchmark::State& state, const char* net) {
407*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_1x4_acc5, 5, 5, 2, 1);
408*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__neonfma_2x4_acc2(benchmark::State & state,const char * net)409*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neonfma_2x4_acc2(benchmark::State& state, const char* net) {
410*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_2x4_acc2, 5, 5, 2, 1);
411*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__neonfma_2x4_acc3(benchmark::State & state,const char * net)412*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neonfma_2x4_acc3(benchmark::State& state, const char* net) {
413*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_2x4_acc3, 5, 5, 2, 1);
414*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__neonfma_3x4_acc2(benchmark::State & state,const char * net)415*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neonfma_3x4_acc2(benchmark::State& state, const char* net) {
416*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_3x4_acc2, 5, 5, 2, 1);
417*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__neonfma_4x4_acc2(benchmark::State & state,const char * net)418*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__neonfma_4x4_acc2(benchmark::State& state, const char* net) {
419*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_4x4_acc2, 5, 5, 2, 1);
420*4bdc9457SAndroid Build Coastguard Worker }
421*4bdc9457SAndroid Build Coastguard Worker
dwconv2d_chw_5x5s2p2__neonfma_1x4(benchmark::State & state,const char * net)422*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__neonfma_1x4(benchmark::State& state, const char* net) {
423*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neonfma_1x4, 5, 5, 2, 2);
424*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__neonfma_2x4(benchmark::State & state,const char * net)425*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__neonfma_2x4(benchmark::State& state, const char* net) {
426*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neonfma_2x4, 5, 5, 2, 2);
427*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__neonfma_3x4(benchmark::State & state,const char * net)428*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__neonfma_3x4(benchmark::State& state, const char* net) {
429*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neonfma_3x4, 5, 5, 2, 2);
430*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__neonfma_1x4_acc2(benchmark::State & state,const char * net)431*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__neonfma_1x4_acc2(benchmark::State& state, const char* net) {
432*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neonfma_1x4_acc2, 5, 5, 2, 2);
433*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__neonfma_1x4_acc3(benchmark::State & state,const char * net)434*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__neonfma_1x4_acc3(benchmark::State& state, const char* net) {
435*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neonfma_1x4_acc3, 5, 5, 2, 2);
436*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__neonfma_1x4_acc4(benchmark::State & state,const char * net)437*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__neonfma_1x4_acc4(benchmark::State& state, const char* net) {
438*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neonfma_1x4_acc4, 5, 5, 2, 2);
439*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__neonfma_1x4_acc5(benchmark::State & state,const char * net)440*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__neonfma_1x4_acc5(benchmark::State& state, const char* net) {
441*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neonfma_1x4_acc5, 5, 5, 2, 2);
442*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__neonfma_2x4_acc2(benchmark::State & state,const char * net)443*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__neonfma_2x4_acc2(benchmark::State& state, const char* net) {
444*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neonfma_2x4_acc2, 5, 5, 2, 2);
445*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__neonfma_2x4_acc3(benchmark::State & state,const char * net)446*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__neonfma_2x4_acc3(benchmark::State& state, const char* net) {
447*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neonfma_2x4_acc3, 5, 5, 2, 2);
448*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__neonfma_3x4_acc2(benchmark::State & state,const char * net)449*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__neonfma_3x4_acc2(benchmark::State& state, const char* net) {
450*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neonfma_3x4_acc2, 5, 5, 2, 2);
451*4bdc9457SAndroid Build Coastguard Worker }
452*4bdc9457SAndroid Build Coastguard Worker
453*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neonfma_1x4)
BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neonfma_2x4)454*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neonfma_2x4)
455*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neonfma_3x4)
456*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neonfma_4x4)
457*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neonfma_5x4)
458*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neonfma_6x4)
459*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neonfma_1x4_acc2)
460*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neonfma_1x4_acc3)
461*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neonfma_1x4_acc4)
462*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neonfma_2x4_acc2)
463*4bdc9457SAndroid Build Coastguard Worker
464*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neonfma_1x4)
465*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neonfma_2x4)
466*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neonfma_3x4)
467*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neonfma_4x4)
468*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neonfma_1x4_acc2)
469*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neonfma_1x4_acc3)
470*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neonfma_1x4_acc4)
471*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neonfma_2x4_acc2)
472*4bdc9457SAndroid Build Coastguard Worker
473*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_1x4)
474*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_2x4)
475*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_3x4)
476*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_4x4)
477*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_5x4)
478*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_1x4_acc2)
479*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_1x4_acc3)
480*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_1x4_acc4)
481*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_1x4_acc5)
482*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_2x4_acc2)
483*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_2x4_acc3)
484*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_3x4_acc2)
485*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_4x4_acc2)
486*4bdc9457SAndroid Build Coastguard Worker
487*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neonfma_1x4)
488*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neonfma_2x4)
489*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neonfma_3x4)
490*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neonfma_1x4_acc2)
491*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neonfma_1x4_acc3)
492*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neonfma_1x4_acc4)
493*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neonfma_1x4_acc5)
494*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neonfma_2x4_acc2)
495*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neonfma_2x4_acc3)
496*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neonfma_3x4_acc2)
497*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM64
498*4bdc9457SAndroid Build Coastguard Worker
499*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
500*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__sse_1x4(benchmark::State& state, const char* net) {
501*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__sse_1x4, 3, 3, 1, 1);
502*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__sse_2x4(benchmark::State & state,const char * net)503*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__sse_2x4(benchmark::State& state, const char* net) {
504*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__sse_2x4, 3, 3, 1, 1);
505*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__sse_3x4(benchmark::State & state,const char * net)506*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__sse_3x4(benchmark::State& state, const char* net) {
507*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__sse_3x4, 3, 3, 1, 1);
508*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__sse_4x4(benchmark::State & state,const char * net)509*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__sse_4x4(benchmark::State& state, const char* net) {
510*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__sse_4x4, 3, 3, 1, 1);
511*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__sse_5x4(benchmark::State & state,const char * net)512*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__sse_5x4(benchmark::State& state, const char* net) {
513*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__sse_5x4, 3, 3, 1, 1);
514*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__sse_6x4(benchmark::State & state,const char * net)515*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__sse_6x4(benchmark::State& state, const char* net) {
516*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__sse_6x4, 3, 3, 1, 1);
517*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__sse_1x4_acc2(benchmark::State & state,const char * net)518*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__sse_1x4_acc2(benchmark::State& state, const char* net) {
519*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__sse_1x4_acc2, 3, 3, 1, 1);
520*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__sse_1x4_acc3(benchmark::State & state,const char * net)521*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__sse_1x4_acc3(benchmark::State& state, const char* net) {
522*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__sse_1x4_acc3, 3, 3, 1, 1);
523*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__sse_1x4_acc4(benchmark::State & state,const char * net)524*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__sse_1x4_acc4(benchmark::State& state, const char* net) {
525*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__sse_1x4_acc4, 3, 3, 1, 1);
526*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__sse_2x4_acc2(benchmark::State & state,const char * net)527*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__sse_2x4_acc2(benchmark::State& state, const char* net) {
528*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__sse_2x4_acc2, 3, 3, 1, 1);
529*4bdc9457SAndroid Build Coastguard Worker }
530*4bdc9457SAndroid Build Coastguard Worker
dwconv2d_chw_3x3p1__ssse3_1x4(benchmark::State & state,const char * net)531*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__ssse3_1x4(benchmark::State& state, const char* net) {
532*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__ssse3_1x4, 3, 3, 1, 1, benchmark::utils::CheckSSSE3);
533*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__ssse3_2x4(benchmark::State & state,const char * net)534*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__ssse3_2x4(benchmark::State& state, const char* net) {
535*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__ssse3_2x4, 3, 3, 1, 1, benchmark::utils::CheckSSSE3);
536*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__ssse3_3x4(benchmark::State & state,const char * net)537*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__ssse3_3x4(benchmark::State& state, const char* net) {
538*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__ssse3_3x4, 3, 3, 1, 1, benchmark::utils::CheckSSSE3);
539*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__ssse3_4x4(benchmark::State & state,const char * net)540*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__ssse3_4x4(benchmark::State& state, const char* net) {
541*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__ssse3_4x4, 3, 3, 1, 1, benchmark::utils::CheckSSSE3);
542*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__ssse3_5x4(benchmark::State & state,const char * net)543*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__ssse3_5x4(benchmark::State& state, const char* net) {
544*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__ssse3_5x4, 3, 3, 1, 1, benchmark::utils::CheckSSSE3);
545*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__ssse3_6x4(benchmark::State & state,const char * net)546*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__ssse3_6x4(benchmark::State& state, const char* net) {
547*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__ssse3_6x4, 3, 3, 1, 1, benchmark::utils::CheckSSSE3);
548*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__ssse3_1x4_acc2(benchmark::State & state,const char * net)549*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__ssse3_1x4_acc2(benchmark::State& state, const char* net) {
550*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__ssse3_1x4_acc2, 3, 3, 1, 1, benchmark::utils::CheckSSSE3);
551*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__ssse3_1x4_acc3(benchmark::State & state,const char * net)552*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__ssse3_1x4_acc3(benchmark::State& state, const char* net) {
553*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__ssse3_1x4_acc3, 3, 3, 1, 1, benchmark::utils::CheckSSSE3);
554*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__ssse3_1x4_acc4(benchmark::State & state,const char * net)555*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__ssse3_1x4_acc4(benchmark::State& state, const char* net) {
556*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__ssse3_1x4_acc4, 3, 3, 1, 1, benchmark::utils::CheckSSSE3);
557*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__ssse3_2x4_acc2(benchmark::State & state,const char * net)558*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__ssse3_2x4_acc2(benchmark::State& state, const char* net) {
559*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__ssse3_2x4_acc2, 3, 3, 1, 1, benchmark::utils::CheckSSSE3);
560*4bdc9457SAndroid Build Coastguard Worker }
561*4bdc9457SAndroid Build Coastguard Worker
dwconv2d_chw_3x3s2p1__sse_1x4(benchmark::State & state,const char * net)562*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__sse_1x4(benchmark::State& state, const char* net) {
563*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__sse_1x4, 3, 3, 1, 2);
564*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__sse_2x4(benchmark::State & state,const char * net)565*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__sse_2x4(benchmark::State& state, const char* net) {
566*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__sse_2x4, 3, 3, 1, 2);
567*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__sse_3x4(benchmark::State & state,const char * net)568*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__sse_3x4(benchmark::State& state, const char* net) {
569*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__sse_3x4, 3, 3, 1, 2);
570*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__sse_4x4(benchmark::State & state,const char * net)571*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__sse_4x4(benchmark::State& state, const char* net) {
572*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__sse_4x4, 3, 3, 1, 2);
573*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__sse_1x4_acc2(benchmark::State & state,const char * net)574*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__sse_1x4_acc2(benchmark::State& state, const char* net) {
575*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__sse_1x4_acc2, 3, 3, 1, 2);
576*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__sse_1x4_acc3(benchmark::State & state,const char * net)577*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__sse_1x4_acc3(benchmark::State& state, const char* net) {
578*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__sse_1x4_acc3, 3, 3, 1, 2);
579*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__sse_1x4_acc4(benchmark::State & state,const char * net)580*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__sse_1x4_acc4(benchmark::State& state, const char* net) {
581*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__sse_1x4_acc4, 3, 3, 1, 2);
582*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__sse_2x4_acc2(benchmark::State & state,const char * net)583*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__sse_2x4_acc2(benchmark::State& state, const char* net) {
584*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__sse_2x4_acc2, 3, 3, 1, 2);
585*4bdc9457SAndroid Build Coastguard Worker }
586*4bdc9457SAndroid Build Coastguard Worker
dwconv2d_chw_5x5p2__sse_1x4(benchmark::State & state,const char * net)587*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__sse_1x4(benchmark::State& state, const char* net) {
588*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_1x4, 5, 5, 2, 1);
589*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__sse_2x4(benchmark::State & state,const char * net)590*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__sse_2x4(benchmark::State& state, const char* net) {
591*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_2x4, 5, 5, 2, 1);
592*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__sse_3x4(benchmark::State & state,const char * net)593*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__sse_3x4(benchmark::State& state, const char* net) {
594*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_3x4, 5, 5, 2, 1);
595*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__sse_4x4(benchmark::State & state,const char * net)596*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__sse_4x4(benchmark::State& state, const char* net) {
597*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_4x4, 5, 5, 2, 1);
598*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__sse_5x4(benchmark::State & state,const char * net)599*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__sse_5x4(benchmark::State& state, const char* net) {
600*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_5x4, 5, 5, 2, 1);
601*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__sse_1x4_acc2(benchmark::State & state,const char * net)602*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__sse_1x4_acc2(benchmark::State& state, const char* net) {
603*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_1x4_acc2, 5, 5, 2, 1);
604*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__sse_1x4_acc3(benchmark::State & state,const char * net)605*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__sse_1x4_acc3(benchmark::State& state, const char* net) {
606*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_1x4_acc3, 5, 5, 2, 1);
607*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__sse_1x4_acc4(benchmark::State & state,const char * net)608*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__sse_1x4_acc4(benchmark::State& state, const char* net) {
609*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_1x4_acc4, 5, 5, 2, 1);
610*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__sse_1x4_acc5(benchmark::State & state,const char * net)611*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__sse_1x4_acc5(benchmark::State& state, const char* net) {
612*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_1x4_acc5, 5, 5, 2, 1);
613*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__sse_2x4_acc2(benchmark::State & state,const char * net)614*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__sse_2x4_acc2(benchmark::State& state, const char* net) {
615*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_2x4_acc2, 5, 5, 2, 1);
616*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__sse_2x4_acc3(benchmark::State & state,const char * net)617*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__sse_2x4_acc3(benchmark::State& state, const char* net) {
618*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_2x4_acc3, 5, 5, 2, 1);
619*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__sse_3x4_acc2(benchmark::State & state,const char * net)620*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__sse_3x4_acc2(benchmark::State& state, const char* net) {
621*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_3x4_acc2, 5, 5, 2, 1);
622*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__sse_4x4_acc2(benchmark::State & state,const char * net)623*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__sse_4x4_acc2(benchmark::State& state, const char* net) {
624*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_4x4_acc2, 5, 5, 2, 1);
625*4bdc9457SAndroid Build Coastguard Worker }
626*4bdc9457SAndroid Build Coastguard Worker
dwconv2d_chw_5x5s2p2__sse_1x4(benchmark::State & state,const char * net)627*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__sse_1x4(benchmark::State& state, const char* net) {
628*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__sse_1x4, 5, 5, 2, 2);
629*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__sse_2x4(benchmark::State & state,const char * net)630*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__sse_2x4(benchmark::State& state, const char* net) {
631*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__sse_2x4, 5, 5, 2, 2);
632*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__sse_3x4(benchmark::State & state,const char * net)633*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__sse_3x4(benchmark::State& state, const char* net) {
634*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__sse_3x4, 5, 5, 2, 2);
635*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__sse_1x4_acc2(benchmark::State & state,const char * net)636*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__sse_1x4_acc2(benchmark::State& state, const char* net) {
637*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__sse_1x4_acc2, 5, 5, 2, 2);
638*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__sse_1x4_acc3(benchmark::State & state,const char * net)639*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__sse_1x4_acc3(benchmark::State& state, const char* net) {
640*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__sse_1x4_acc3, 5, 5, 2, 2);
641*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__sse_1x4_acc4(benchmark::State & state,const char * net)642*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__sse_1x4_acc4(benchmark::State& state, const char* net) {
643*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__sse_1x4_acc4, 5, 5, 2, 2);
644*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__sse_1x4_acc5(benchmark::State & state,const char * net)645*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__sse_1x4_acc5(benchmark::State& state, const char* net) {
646*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__sse_1x4_acc5, 5, 5, 2, 2);
647*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__sse_2x4_acc2(benchmark::State & state,const char * net)648*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__sse_2x4_acc2(benchmark::State& state, const char* net) {
649*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__sse_2x4_acc2, 5, 5, 2, 2);
650*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__sse_2x4_acc3(benchmark::State & state,const char * net)651*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__sse_2x4_acc3(benchmark::State& state, const char* net) {
652*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__sse_2x4_acc3, 5, 5, 2, 2);
653*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__sse_3x4_acc2(benchmark::State & state,const char * net)654*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__sse_3x4_acc2(benchmark::State& state, const char* net) {
655*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__sse_3x4_acc2, 5, 5, 2, 2);
656*4bdc9457SAndroid Build Coastguard Worker }
657*4bdc9457SAndroid Build Coastguard Worker
658*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__sse_1x4)
BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__sse_2x4)659*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__sse_2x4)
660*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__sse_3x4)
661*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__sse_4x4)
662*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__sse_5x4)
663*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__sse_6x4)
664*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__sse_1x4_acc2)
665*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__sse_1x4_acc3)
666*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__sse_1x4_acc4)
667*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__sse_2x4_acc2)
668*4bdc9457SAndroid Build Coastguard Worker
669*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__ssse3_1x4)
670*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__ssse3_2x4)
671*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__ssse3_3x4)
672*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__ssse3_4x4)
673*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__ssse3_5x4)
674*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__ssse3_6x4)
675*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__ssse3_1x4_acc2)
676*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__ssse3_1x4_acc3)
677*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__ssse3_1x4_acc4)
678*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__ssse3_2x4_acc2)
679*4bdc9457SAndroid Build Coastguard Worker
680*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__sse_1x4)
681*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__sse_2x4)
682*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__sse_3x4)
683*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__sse_4x4)
684*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__sse_1x4_acc2)
685*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__sse_1x4_acc3)
686*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__sse_1x4_acc4)
687*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__sse_2x4_acc2)
688*4bdc9457SAndroid Build Coastguard Worker
689*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_1x4)
690*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_2x4)
691*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_3x4)
692*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_4x4)
693*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_5x4)
694*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_1x4_acc2)
695*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_1x4_acc3)
696*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_1x4_acc4)
697*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_1x4_acc5)
698*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_2x4_acc2)
699*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_2x4_acc3)
700*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_3x4_acc2)
701*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_4x4_acc2)
702*4bdc9457SAndroid Build Coastguard Worker
703*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__sse_1x4)
704*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__sse_2x4)
705*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__sse_3x4)
706*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__sse_1x4_acc2)
707*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__sse_1x4_acc3)
708*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__sse_1x4_acc4)
709*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__sse_1x4_acc5)
710*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__sse_2x4_acc2)
711*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__sse_2x4_acc3)
712*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__sse_3x4_acc2)
713*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
714*4bdc9457SAndroid Build Coastguard Worker
715*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
716*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_1x4(benchmark::State& state, const char* net) {
717*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_loadsplat_1x4, 3, 3, 1, 1);
718*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_2x4(benchmark::State & state,const char * net)719*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_2x4(benchmark::State& state, const char* net) {
720*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_loadsplat_2x4, 3, 3, 1, 1);
721*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_3x4(benchmark::State & state,const char * net)722*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_3x4(benchmark::State& state, const char* net) {
723*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_loadsplat_3x4, 3, 3, 1, 1);
724*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_4x4(benchmark::State & state,const char * net)725*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_4x4(benchmark::State& state, const char* net) {
726*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_loadsplat_4x4, 3, 3, 1, 1);
727*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_5x4(benchmark::State & state,const char * net)728*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_5x4(benchmark::State& state, const char* net) {
729*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_loadsplat_5x4, 3, 3, 1, 1);
730*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_6x4(benchmark::State & state,const char * net)731*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_6x4(benchmark::State& state, const char* net) {
732*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_loadsplat_6x4, 3, 3, 1, 1);
733*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_1x4_acc2(benchmark::State & state,const char * net)734*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_1x4_acc2(benchmark::State& state, const char* net) {
735*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_loadsplat_1x4_acc2, 3, 3, 1, 1);
736*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_1x4_acc3(benchmark::State & state,const char * net)737*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_1x4_acc3(benchmark::State& state, const char* net) {
738*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_loadsplat_1x4_acc3, 3, 3, 1, 1);
739*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_1x4_acc4(benchmark::State & state,const char * net)740*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_1x4_acc4(benchmark::State& state, const char* net) {
741*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_loadsplat_1x4_acc4, 3, 3, 1, 1);
742*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_2x4_acc2(benchmark::State & state,const char * net)743*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_2x4_acc2(benchmark::State& state, const char* net) {
744*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_loadsplat_2x4_acc2, 3, 3, 1, 1);
745*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_1x4(benchmark::State & state,const char * net)746*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_1x4(benchmark::State& state, const char* net) {
747*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_loadsplat_1x4, 3, 3, 1, 1);
748*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_2x4(benchmark::State & state,const char * net)749*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_2x4(benchmark::State& state, const char* net) {
750*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_loadsplat_2x4, 3, 3, 1, 1);
751*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_3x4(benchmark::State & state,const char * net)752*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_3x4(benchmark::State& state, const char* net) {
753*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_loadsplat_3x4, 3, 3, 1, 1);
754*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_4x4(benchmark::State & state,const char * net)755*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_4x4(benchmark::State& state, const char* net) {
756*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_loadsplat_4x4, 3, 3, 1, 1);
757*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_5x4(benchmark::State & state,const char * net)758*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_5x4(benchmark::State& state, const char* net) {
759*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_loadsplat_5x4, 3, 3, 1, 1);
760*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_6x4(benchmark::State & state,const char * net)761*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_6x4(benchmark::State& state, const char* net) {
762*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_loadsplat_6x4, 3, 3, 1, 1);
763*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_1x4_acc2(benchmark::State & state,const char * net)764*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_1x4_acc2(benchmark::State& state, const char* net) {
765*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_loadsplat_1x4_acc2, 3, 3, 1, 1);
766*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_1x4_acc3(benchmark::State & state,const char * net)767*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_1x4_acc3(benchmark::State& state, const char* net) {
768*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_loadsplat_1x4_acc3, 3, 3, 1, 1);
769*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_1x4_acc4(benchmark::State & state,const char * net)770*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_1x4_acc4(benchmark::State& state, const char* net) {
771*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_loadsplat_1x4_acc4, 3, 3, 1, 1);
772*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_2x4_acc2(benchmark::State & state,const char * net)773*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_2x4_acc2(benchmark::State& state, const char* net) {
774*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_loadsplat_2x4_acc2, 3, 3, 1, 1);
775*4bdc9457SAndroid Build Coastguard Worker }
776*4bdc9457SAndroid Build Coastguard Worker
dwconv2d_chw_3x3p1__wasmsimd_arm_splat_1x4(benchmark::State & state,const char * net)777*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_arm_splat_1x4(benchmark::State& state, const char* net) {
778*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_splat_1x4, 3, 3, 1, 1);
779*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_arm_splat_2x4(benchmark::State & state,const char * net)780*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_arm_splat_2x4(benchmark::State& state, const char* net) {
781*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_splat_2x4, 3, 3, 1, 1);
782*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_arm_splat_3x4(benchmark::State & state,const char * net)783*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_arm_splat_3x4(benchmark::State& state, const char* net) {
784*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_splat_3x4, 3, 3, 1, 1);
785*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_arm_splat_4x4(benchmark::State & state,const char * net)786*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_arm_splat_4x4(benchmark::State& state, const char* net) {
787*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_splat_4x4, 3, 3, 1, 1);
788*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_arm_splat_5x4(benchmark::State & state,const char * net)789*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_arm_splat_5x4(benchmark::State& state, const char* net) {
790*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_splat_5x4, 3, 3, 1, 1);
791*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_arm_splat_6x4(benchmark::State & state,const char * net)792*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_arm_splat_6x4(benchmark::State& state, const char* net) {
793*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_splat_6x4, 3, 3, 1, 1);
794*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_arm_splat_1x4_acc2(benchmark::State & state,const char * net)795*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_arm_splat_1x4_acc2(benchmark::State& state, const char* net) {
796*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_splat_1x4_acc2, 3, 3, 1, 1);
797*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_arm_splat_1x4_acc3(benchmark::State & state,const char * net)798*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_arm_splat_1x4_acc3(benchmark::State& state, const char* net) {
799*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_splat_1x4_acc3, 3, 3, 1, 1);
800*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_arm_splat_1x4_acc4(benchmark::State & state,const char * net)801*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_arm_splat_1x4_acc4(benchmark::State& state, const char* net) {
802*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_splat_1x4_acc4, 3, 3, 1, 1);
803*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_arm_splat_2x4_acc2(benchmark::State & state,const char * net)804*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_arm_splat_2x4_acc2(benchmark::State& state, const char* net) {
805*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_splat_2x4_acc2, 3, 3, 1, 1);
806*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_x86_splat_1x4(benchmark::State & state,const char * net)807*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_x86_splat_1x4(benchmark::State& state, const char* net) {
808*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_splat_1x4, 3, 3, 1, 1);
809*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_x86_splat_2x4(benchmark::State & state,const char * net)810*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_x86_splat_2x4(benchmark::State& state, const char* net) {
811*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_splat_2x4, 3, 3, 1, 1);
812*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_x86_splat_3x4(benchmark::State & state,const char * net)813*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_x86_splat_3x4(benchmark::State& state, const char* net) {
814*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_splat_3x4, 3, 3, 1, 1);
815*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_x86_splat_4x4(benchmark::State & state,const char * net)816*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_x86_splat_4x4(benchmark::State& state, const char* net) {
817*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_splat_4x4, 3, 3, 1, 1);
818*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_x86_splat_5x4(benchmark::State & state,const char * net)819*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_x86_splat_5x4(benchmark::State& state, const char* net) {
820*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_splat_5x4, 3, 3, 1, 1);
821*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_x86_splat_6x4(benchmark::State & state,const char * net)822*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_x86_splat_6x4(benchmark::State& state, const char* net) {
823*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_splat_6x4, 3, 3, 1, 1);
824*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_x86_splat_1x4_acc2(benchmark::State & state,const char * net)825*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_x86_splat_1x4_acc2(benchmark::State& state, const char* net) {
826*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_splat_1x4_acc2, 3, 3, 1, 1);
827*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_x86_splat_1x4_acc3(benchmark::State & state,const char * net)828*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_x86_splat_1x4_acc3(benchmark::State& state, const char* net) {
829*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_splat_1x4_acc3, 3, 3, 1, 1);
830*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_x86_splat_1x4_acc4(benchmark::State & state,const char * net)831*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_x86_splat_1x4_acc4(benchmark::State& state, const char* net) {
832*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_splat_1x4_acc4, 3, 3, 1, 1);
833*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3p1__wasmsimd_x86_splat_2x4_acc2(benchmark::State & state,const char * net)834*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3p1__wasmsimd_x86_splat_2x4_acc2(benchmark::State& state, const char* net) {
835*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_splat_2x4_acc2, 3, 3, 1, 1);
836*4bdc9457SAndroid Build Coastguard Worker }
837*4bdc9457SAndroid Build Coastguard Worker
dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_1x4(benchmark::State & state,const char * net)838*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_1x4(benchmark::State& state, const char* net) {
839*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_loadsplat_1x4, 3, 3, 1, 2);
840*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_2x4(benchmark::State & state,const char * net)841*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_2x4(benchmark::State& state, const char* net) {
842*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_loadsplat_2x4, 3, 3, 1, 2);
843*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_3x4(benchmark::State & state,const char * net)844*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_3x4(benchmark::State& state, const char* net) {
845*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_loadsplat_3x4, 3, 3, 1, 2);
846*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_4x4(benchmark::State & state,const char * net)847*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_4x4(benchmark::State& state, const char* net) {
848*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_loadsplat_4x4, 3, 3, 1, 2);
849*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_1x4_acc2(benchmark::State & state,const char * net)850*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_1x4_acc2(benchmark::State& state, const char* net) {
851*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_loadsplat_1x4_acc2, 3, 3, 1, 2);
852*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_1x4_acc3(benchmark::State & state,const char * net)853*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_1x4_acc3(benchmark::State& state, const char* net) {
854*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_loadsplat_1x4_acc3, 3, 3, 1, 2);
855*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_1x4_acc4(benchmark::State & state,const char * net)856*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_1x4_acc4(benchmark::State& state, const char* net) {
857*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_loadsplat_1x4_acc4, 3, 3, 1, 2);
858*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_2x4_acc2(benchmark::State & state,const char * net)859*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_2x4_acc2(benchmark::State& state, const char* net) {
860*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_loadsplat_2x4_acc2, 3, 3, 1, 2);
861*4bdc9457SAndroid Build Coastguard Worker }
862*4bdc9457SAndroid Build Coastguard Worker
dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_1x4(benchmark::State & state,const char * net)863*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_1x4(benchmark::State& state, const char* net) {
864*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_loadsplat_1x4, 3, 3, 1, 2);
865*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_2x4(benchmark::State & state,const char * net)866*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_2x4(benchmark::State& state, const char* net) {
867*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_loadsplat_2x4, 3, 3, 1, 2);
868*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_3x4(benchmark::State & state,const char * net)869*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_3x4(benchmark::State& state, const char* net) {
870*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_loadsplat_3x4, 3, 3, 1, 2);
871*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_4x4(benchmark::State & state,const char * net)872*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_4x4(benchmark::State& state, const char* net) {
873*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_loadsplat_4x4, 3, 3, 1, 2);
874*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_1x4_acc2(benchmark::State & state,const char * net)875*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_1x4_acc2(benchmark::State& state, const char* net) {
876*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_loadsplat_1x4_acc2, 3, 3, 1, 2);
877*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_1x4_acc3(benchmark::State & state,const char * net)878*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_1x4_acc3(benchmark::State& state, const char* net) {
879*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_loadsplat_1x4_acc3, 3, 3, 1, 2);
880*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_1x4_acc4(benchmark::State & state,const char * net)881*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_1x4_acc4(benchmark::State& state, const char* net) {
882*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_loadsplat_1x4_acc4, 3, 3, 1, 2);
883*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_2x4_acc2(benchmark::State & state,const char * net)884*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_2x4_acc2(benchmark::State& state, const char* net) {
885*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_loadsplat_2x4_acc2, 3, 3, 1, 2);
886*4bdc9457SAndroid Build Coastguard Worker }
887*4bdc9457SAndroid Build Coastguard Worker
dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_1x4(benchmark::State & state,const char * net)888*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_1x4(benchmark::State& state, const char* net) {
889*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_splat_1x4, 3, 3, 1, 2);
890*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_2x4(benchmark::State & state,const char * net)891*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_2x4(benchmark::State& state, const char* net) {
892*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_splat_2x4, 3, 3, 1, 2);
893*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_3x4(benchmark::State & state,const char * net)894*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_3x4(benchmark::State& state, const char* net) {
895*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_splat_3x4, 3, 3, 1, 2);
896*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_4x4(benchmark::State & state,const char * net)897*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_4x4(benchmark::State& state, const char* net) {
898*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_splat_4x4, 3, 3, 1, 2);
899*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_1x4_acc2(benchmark::State & state,const char * net)900*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_1x4_acc2(benchmark::State& state, const char* net) {
901*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_splat_1x4_acc2, 3, 3, 1, 2);
902*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_1x4_acc3(benchmark::State & state,const char * net)903*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_1x4_acc3(benchmark::State& state, const char* net) {
904*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_splat_1x4_acc3, 3, 3, 1, 2);
905*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_1x4_acc4(benchmark::State & state,const char * net)906*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_1x4_acc4(benchmark::State& state, const char* net) {
907*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_splat_1x4_acc4, 3, 3, 1, 2);
908*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_2x4_acc2(benchmark::State & state,const char * net)909*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_2x4_acc2(benchmark::State& state, const char* net) {
910*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_splat_2x4_acc2, 3, 3, 1, 2);
911*4bdc9457SAndroid Build Coastguard Worker }
912*4bdc9457SAndroid Build Coastguard Worker
dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_1x4(benchmark::State & state,const char * net)913*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_1x4(benchmark::State& state, const char* net) {
914*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_splat_1x4, 3, 3, 1, 2);
915*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_2x4(benchmark::State & state,const char * net)916*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_2x4(benchmark::State& state, const char* net) {
917*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_splat_2x4, 3, 3, 1, 2);
918*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_3x4(benchmark::State & state,const char * net)919*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_3x4(benchmark::State& state, const char* net) {
920*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_splat_3x4, 3, 3, 1, 2);
921*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_4x4(benchmark::State & state,const char * net)922*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_4x4(benchmark::State& state, const char* net) {
923*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_splat_4x4, 3, 3, 1, 2);
924*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_1x4_acc2(benchmark::State & state,const char * net)925*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_1x4_acc2(benchmark::State& state, const char* net) {
926*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_splat_1x4_acc2, 3, 3, 1, 2);
927*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_1x4_acc3(benchmark::State & state,const char * net)928*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_1x4_acc3(benchmark::State& state, const char* net) {
929*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_splat_1x4_acc3, 3, 3, 1, 2);
930*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_1x4_acc4(benchmark::State & state,const char * net)931*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_1x4_acc4(benchmark::State& state, const char* net) {
932*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_splat_1x4_acc4, 3, 3, 1, 2);
933*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_2x4_acc2(benchmark::State & state,const char * net)934*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_2x4_acc2(benchmark::State& state, const char* net) {
935*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_splat_2x4_acc2, 3, 3, 1, 2);
936*4bdc9457SAndroid Build Coastguard Worker }
937*4bdc9457SAndroid Build Coastguard Worker
dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_1x4(benchmark::State & state,const char * net)938*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_1x4(benchmark::State& state, const char* net) {
939*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_1x4, 5, 5, 2, 1);
940*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_2x4(benchmark::State & state,const char * net)941*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_2x4(benchmark::State& state, const char* net) {
942*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_2x4, 5, 5, 2, 1);
943*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_3x4(benchmark::State & state,const char * net)944*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_3x4(benchmark::State& state, const char* net) {
945*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_3x4, 5, 5, 2, 1);
946*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_4x4(benchmark::State & state,const char * net)947*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_4x4(benchmark::State& state, const char* net) {
948*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_4x4, 5, 5, 2, 1);
949*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_5x4(benchmark::State & state,const char * net)950*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_5x4(benchmark::State& state, const char* net) {
951*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_5x4, 5, 5, 2, 1);
952*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_1x4_acc2(benchmark::State & state,const char * net)953*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_1x4_acc2(benchmark::State& state, const char* net) {
954*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_1x4_acc2, 5, 5, 2, 1);
955*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_1x4_acc3(benchmark::State & state,const char * net)956*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_1x4_acc3(benchmark::State& state, const char* net) {
957*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_1x4_acc3, 5, 5, 2, 1);
958*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_1x4_acc4(benchmark::State & state,const char * net)959*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_1x4_acc4(benchmark::State& state, const char* net) {
960*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_1x4_acc4, 5, 5, 2, 1);
961*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_1x4_acc5(benchmark::State & state,const char * net)962*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_1x4_acc5(benchmark::State& state, const char* net) {
963*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_1x4_acc5, 5, 5, 2, 1);
964*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_2x4_acc2(benchmark::State & state,const char * net)965*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_2x4_acc2(benchmark::State& state, const char* net) {
966*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_2x4_acc2, 5, 5, 2, 1);
967*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_2x4_acc3(benchmark::State & state,const char * net)968*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_2x4_acc3(benchmark::State& state, const char* net) {
969*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_2x4_acc3, 5, 5, 2, 1);
970*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_3x4_acc2(benchmark::State & state,const char * net)971*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_3x4_acc2(benchmark::State& state, const char* net) {
972*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_3x4_acc2, 5, 5, 2, 1);
973*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_4x4_acc2(benchmark::State & state,const char * net)974*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_4x4_acc2(benchmark::State& state, const char* net) {
975*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_4x4_acc2, 5, 5, 2, 1);
976*4bdc9457SAndroid Build Coastguard Worker }
977*4bdc9457SAndroid Build Coastguard Worker
dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_1x4(benchmark::State & state,const char * net)978*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_1x4(benchmark::State& state, const char* net) {
979*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_1x4, 5, 5, 2, 1);
980*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_2x4(benchmark::State & state,const char * net)981*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_2x4(benchmark::State& state, const char* net) {
982*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_2x4, 5, 5, 2, 1);
983*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_3x4(benchmark::State & state,const char * net)984*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_3x4(benchmark::State& state, const char* net) {
985*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_3x4, 5, 5, 2, 1);
986*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_4x4(benchmark::State & state,const char * net)987*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_4x4(benchmark::State& state, const char* net) {
988*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_4x4, 5, 5, 2, 1);
989*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_5x4(benchmark::State & state,const char * net)990*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_5x4(benchmark::State& state, const char* net) {
991*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_5x4, 5, 5, 2, 1);
992*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_1x4_acc2(benchmark::State & state,const char * net)993*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_1x4_acc2(benchmark::State& state, const char* net) {
994*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_1x4_acc2, 5, 5, 2, 1);
995*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_1x4_acc3(benchmark::State & state,const char * net)996*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_1x4_acc3(benchmark::State& state, const char* net) {
997*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_1x4_acc3, 5, 5, 2, 1);
998*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_1x4_acc4(benchmark::State & state,const char * net)999*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_1x4_acc4(benchmark::State& state, const char* net) {
1000*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_1x4_acc4, 5, 5, 2, 1);
1001*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_1x4_acc5(benchmark::State & state,const char * net)1002*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_1x4_acc5(benchmark::State& state, const char* net) {
1003*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_1x4_acc5, 5, 5, 2, 1);
1004*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_2x4_acc2(benchmark::State & state,const char * net)1005*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_2x4_acc2(benchmark::State& state, const char* net) {
1006*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_2x4_acc2, 5, 5, 2, 1);
1007*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_2x4_acc3(benchmark::State & state,const char * net)1008*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_2x4_acc3(benchmark::State& state, const char* net) {
1009*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_2x4_acc3, 5, 5, 2, 1);
1010*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_3x4_acc2(benchmark::State & state,const char * net)1011*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_3x4_acc2(benchmark::State& state, const char* net) {
1012*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_3x4_acc2, 5, 5, 2, 1);
1013*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_4x4_acc2(benchmark::State & state,const char * net)1014*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_4x4_acc2(benchmark::State& state, const char* net) {
1015*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_4x4_acc2, 5, 5, 2, 1);
1016*4bdc9457SAndroid Build Coastguard Worker }
1017*4bdc9457SAndroid Build Coastguard Worker
dwconv2d_chw_5x5p2__wasmsimd_arm_splat_1x4(benchmark::State & state,const char * net)1018*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_1x4(benchmark::State& state, const char* net) {
1019*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_1x4, 5, 5, 2, 1);
1020*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_arm_splat_2x4(benchmark::State & state,const char * net)1021*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_2x4(benchmark::State& state, const char* net) {
1022*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_2x4, 5, 5, 2, 1);
1023*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_arm_splat_3x4(benchmark::State & state,const char * net)1024*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_3x4(benchmark::State& state, const char* net) {
1025*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_3x4, 5, 5, 2, 1);
1026*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_arm_splat_4x4(benchmark::State & state,const char * net)1027*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_4x4(benchmark::State& state, const char* net) {
1028*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_4x4, 5, 5, 2, 1);
1029*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_arm_splat_5x4(benchmark::State & state,const char * net)1030*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_5x4(benchmark::State& state, const char* net) {
1031*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_5x4, 5, 5, 2, 1);
1032*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_arm_splat_1x4_acc2(benchmark::State & state,const char * net)1033*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_1x4_acc2(benchmark::State& state, const char* net) {
1034*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_1x4_acc2, 5, 5, 2, 1);
1035*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_arm_splat_1x4_acc3(benchmark::State & state,const char * net)1036*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_1x4_acc3(benchmark::State& state, const char* net) {
1037*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_1x4_acc3, 5, 5, 2, 1);
1038*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_arm_splat_1x4_acc4(benchmark::State & state,const char * net)1039*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_1x4_acc4(benchmark::State& state, const char* net) {
1040*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_1x4_acc4, 5, 5, 2, 1);
1041*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_arm_splat_1x4_acc5(benchmark::State & state,const char * net)1042*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_1x4_acc5(benchmark::State& state, const char* net) {
1043*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_1x4_acc5, 5, 5, 2, 1);
1044*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_arm_splat_2x4_acc2(benchmark::State & state,const char * net)1045*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_2x4_acc2(benchmark::State& state, const char* net) {
1046*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_2x4_acc2, 5, 5, 2, 1);
1047*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_arm_splat_2x4_acc3(benchmark::State & state,const char * net)1048*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_2x4_acc3(benchmark::State& state, const char* net) {
1049*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_2x4_acc3, 5, 5, 2, 1);
1050*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_arm_splat_3x4_acc2(benchmark::State & state,const char * net)1051*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_3x4_acc2(benchmark::State& state, const char* net) {
1052*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_3x4_acc2, 5, 5, 2, 1);
1053*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_arm_splat_4x4_acc2(benchmark::State & state,const char * net)1054*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_4x4_acc2(benchmark::State& state, const char* net) {
1055*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_4x4_acc2, 5, 5, 2, 1);
1056*4bdc9457SAndroid Build Coastguard Worker }
1057*4bdc9457SAndroid Build Coastguard Worker
dwconv2d_chw_5x5p2__wasmsimd_x86_splat_1x4(benchmark::State & state,const char * net)1058*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_1x4(benchmark::State& state, const char* net) {
1059*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_1x4, 5, 5, 2, 1);
1060*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_x86_splat_2x4(benchmark::State & state,const char * net)1061*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_2x4(benchmark::State& state, const char* net) {
1062*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_2x4, 5, 5, 2, 1);
1063*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_x86_splat_3x4(benchmark::State & state,const char * net)1064*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_3x4(benchmark::State& state, const char* net) {
1065*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_3x4, 5, 5, 2, 1);
1066*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_x86_splat_4x4(benchmark::State & state,const char * net)1067*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_4x4(benchmark::State& state, const char* net) {
1068*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_4x4, 5, 5, 2, 1);
1069*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_x86_splat_5x4(benchmark::State & state,const char * net)1070*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_5x4(benchmark::State& state, const char* net) {
1071*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_5x4, 5, 5, 2, 1);
1072*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_x86_splat_1x4_acc2(benchmark::State & state,const char * net)1073*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_1x4_acc2(benchmark::State& state, const char* net) {
1074*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_1x4_acc2, 5, 5, 2, 1);
1075*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_x86_splat_1x4_acc3(benchmark::State & state,const char * net)1076*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_1x4_acc3(benchmark::State& state, const char* net) {
1077*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_1x4_acc3, 5, 5, 2, 1);
1078*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_x86_splat_1x4_acc4(benchmark::State & state,const char * net)1079*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_1x4_acc4(benchmark::State& state, const char* net) {
1080*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_1x4_acc4, 5, 5, 2, 1);
1081*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_x86_splat_1x4_acc5(benchmark::State & state,const char * net)1082*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_1x4_acc5(benchmark::State& state, const char* net) {
1083*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_1x4_acc5, 5, 5, 2, 1);
1084*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_x86_splat_2x4_acc2(benchmark::State & state,const char * net)1085*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_2x4_acc2(benchmark::State& state, const char* net) {
1086*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_2x4_acc2, 5, 5, 2, 1);
1087*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_x86_splat_2x4_acc3(benchmark::State & state,const char * net)1088*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_2x4_acc3(benchmark::State& state, const char* net) {
1089*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_2x4_acc3, 5, 5, 2, 1);
1090*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_x86_splat_3x4_acc2(benchmark::State & state,const char * net)1091*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_3x4_acc2(benchmark::State& state, const char* net) {
1092*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_3x4_acc2, 5, 5, 2, 1);
1093*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5p2__wasmsimd_x86_splat_4x4_acc2(benchmark::State & state,const char * net)1094*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_4x4_acc2(benchmark::State& state, const char* net) {
1095*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_4x4_acc2, 5, 5, 2, 1);
1096*4bdc9457SAndroid Build Coastguard Worker }
1097*4bdc9457SAndroid Build Coastguard Worker
dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_1x4(benchmark::State & state,const char * net)1098*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_1x4(benchmark::State& state, const char* net) {
1099*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_loadsplat_1x4, 5, 5, 2, 2);
1100*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_2x4(benchmark::State & state,const char * net)1101*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_2x4(benchmark::State& state, const char* net) {
1102*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_loadsplat_2x4, 5, 5, 2, 2);
1103*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_3x4(benchmark::State & state,const char * net)1104*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_3x4(benchmark::State& state, const char* net) {
1105*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_loadsplat_3x4, 5, 5, 2, 2);
1106*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_1x4_acc2(benchmark::State & state,const char * net)1107*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_1x4_acc2(benchmark::State& state, const char* net) {
1108*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_loadsplat_1x4_acc2, 5, 5, 2, 2);
1109*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_1x4_acc3(benchmark::State & state,const char * net)1110*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_1x4_acc3(benchmark::State& state, const char* net) {
1111*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_loadsplat_1x4_acc3, 5, 5, 2, 2);
1112*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_1x4_acc4(benchmark::State & state,const char * net)1113*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_1x4_acc4(benchmark::State& state, const char* net) {
1114*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_loadsplat_1x4_acc4, 5, 5, 2, 2);
1115*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_1x4_acc5(benchmark::State & state,const char * net)1116*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_1x4_acc5(benchmark::State& state, const char* net) {
1117*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_loadsplat_1x4_acc5, 5, 5, 2, 2);
1118*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_2x4_acc2(benchmark::State & state,const char * net)1119*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_2x4_acc2(benchmark::State& state, const char* net) {
1120*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_loadsplat_2x4_acc2, 5, 5, 2, 2);
1121*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_2x4_acc3(benchmark::State & state,const char * net)1122*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_2x4_acc3(benchmark::State& state, const char* net) {
1123*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_loadsplat_2x4_acc3, 5, 5, 2, 2);
1124*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_3x4_acc2(benchmark::State & state,const char * net)1125*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_3x4_acc2(benchmark::State& state, const char* net) {
1126*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_loadsplat_3x4_acc2, 5, 5, 2, 2);
1127*4bdc9457SAndroid Build Coastguard Worker }
1128*4bdc9457SAndroid Build Coastguard Worker
dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_1x4(benchmark::State & state,const char * net)1129*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_1x4(benchmark::State& state, const char* net) {
1130*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_x86_loadsplat_1x4, 5, 5, 2, 2);
1131*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_2x4(benchmark::State & state,const char * net)1132*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_2x4(benchmark::State& state, const char* net) {
1133*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_x86_loadsplat_2x4, 5, 5, 2, 2);
1134*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_3x4(benchmark::State & state,const char * net)1135*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_3x4(benchmark::State& state, const char* net) {
1136*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_x86_loadsplat_3x4, 5, 5, 2, 2);
1137*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_1x4_acc2(benchmark::State & state,const char * net)1138*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_1x4_acc2(benchmark::State& state, const char* net) {
1139*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_x86_loadsplat_1x4_acc2, 5, 5, 2, 2);
1140*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_1x4_acc3(benchmark::State & state,const char * net)1141*4bdc9457SAndroid Build Coastguard Worker static void dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_1x4_acc3(benchmark::State& state, const char* net) {
1142*4bdc9457SAndroid Build Coastguard Worker f32_dwconv2d_chw(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_x86_loadsplat_1x4_acc3, 5, 5, 2, 2);
1143*4bdc9457SAndroid Build Coastguard Worker }
dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_1x4_acc4(benchmark::State & state,const char * net)1144