blob: 8dfdc10dfe8134216127c7a308c8d3e940b5ae94 [file] [log] [blame]
Marat Dukhaned6baaf2020-12-01 15:07:08 -08001// Copyright 2020 Google LLC
2//
3// This source code is licensed under the BSD-style license found in the
4// LICENSE file in the root directory of this source tree.
5
6#include <algorithm>
7#include <cmath>
8#include <functional>
9#include <random>
10#include <vector>
11
12#include <benchmark/benchmark.h>
13#include "bench/utils.h"
14
15#include <xnnpack/AlignedAllocator.h>
16#include <xnnpack/common.h>
17#include <xnnpack/vunary.h>
18#include <xnnpack/params.h>
19#include <xnnpack/params-init.h>
20
21
Marat Dukhan12e426c2021-08-06 22:09:44 -070022static void f32_velu(
Marat Dukhaned6baaf2020-12-01 15:07:08 -080023 benchmark::State& state,
24 xnn_f32_velu_ukernel_function elu,
Marat Dukhan4a79ff22022-01-01 12:16:48 -080025 xnn_init_f32_elu_params_fn init_params,
Marat Dukhaned6baaf2020-12-01 15:07:08 -080026 benchmark::utils::IsaCheckFunction isa_check = nullptr)
27{
28 if (isa_check && !isa_check(state)) {
29 return;
30 }
31
Marat Dukhan12e426c2021-08-06 22:09:44 -070032 const size_t num_elements = state.range(0);
Marat Dukhaned6baaf2020-12-01 15:07:08 -080033
34 std::random_device random_device;
35 auto rng = std::mt19937(random_device());
36 auto f32rng = std::bind(std::uniform_real_distribution<float>(-20.0f, 10.0f), std::ref(rng));
37
Marat Dukhan12e426c2021-08-06 22:09:44 -070038 std::vector<float, AlignedAllocator<float, 64>> x(num_elements);
39 std::vector<float, AlignedAllocator<float, 64>> y(num_elements);
Marat Dukhaned6baaf2020-12-01 15:07:08 -080040 std::generate(x.begin(), x.end(), std::ref(f32rng));
41 std::fill(y.begin(), y.end(), std::nanf(""));
42
Marat Dukhanf56f4c42021-05-17 01:47:20 -070043 union xnn_f32_elu_params params;
Marat Dukhan4a79ff22022-01-01 12:16:48 -080044 init_params(&params, 1.0f /* prescale */, 1.0f /* alpha */, 1.0f /* beta */);
Marat Dukhaned6baaf2020-12-01 15:07:08 -080045 for (auto _ : state) {
Marat Dukhan12e426c2021-08-06 22:09:44 -070046 elu(num_elements * sizeof(float), x.data(), y.data(), &params);
Marat Dukhaned6baaf2020-12-01 15:07:08 -080047 }
48
49 const uint64_t cpu_frequency = benchmark::utils::GetCurrentCpuFrequency();
50 if (cpu_frequency != 0) {
51 state.counters["cpufreq"] = cpu_frequency;
52 }
53
Marat Dukhan12e426c2021-08-06 22:09:44 -070054 const size_t elements_per_iteration = num_elements;
Marat Dukhaned6baaf2020-12-01 15:07:08 -080055 state.counters["elements"] =
56 benchmark::Counter(uint64_t(state.iterations()) * elements_per_iteration, benchmark::Counter::kIsRate);
57
Marat Dukhan12e426c2021-08-06 22:09:44 -070058 const size_t bytes_per_iteration = 2 * num_elements * sizeof(float);
Marat Dukhaned6baaf2020-12-01 15:07:08 -080059 state.counters["bytes"] =
60 benchmark::Counter(uint64_t(state.iterations()) * bytes_per_iteration, benchmark::Counter::kIsRate);
61}
62
63#if XNN_ARCH_ARM || XNN_ARCH_ARM64
Marat Dukhan12e426c2021-08-06 22:09:44 -070064 BENCHMARK_CAPTURE(f32_velu, neonfma_lut16_p3_x4,
65 xnn_f32_velu_ukernel__neonfma_rr1_lut16_p3_x4,
Marat Dukhan4a79ff22022-01-01 12:16:48 -080066 xnn_init_f32_elu_neonfma_rr1_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -070067 benchmark::utils::CheckNEONFMA)
68 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -080069 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -070070 BENCHMARK_CAPTURE(f32_velu, neonfma_lut16_p3_x8,
71 xnn_f32_velu_ukernel__neonfma_rr1_lut16_p3_x8,
Marat Dukhan4a79ff22022-01-01 12:16:48 -080072 xnn_init_f32_elu_neonfma_rr1_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -070073 benchmark::utils::CheckNEONFMA)
74 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -080075 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -070076 BENCHMARK_CAPTURE(f32_velu, neonfma_lut16_p3_x12,
77 xnn_f32_velu_ukernel__neonfma_rr1_lut16_p3_x12,
Marat Dukhan4a79ff22022-01-01 12:16:48 -080078 xnn_init_f32_elu_neonfma_rr1_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -070079 benchmark::utils::CheckNEONFMA)
80 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -080081 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -070082 BENCHMARK_CAPTURE(f32_velu, neonfma_lut16_p3_x16,
83 xnn_f32_velu_ukernel__neonfma_rr1_lut16_p3_x16,
Marat Dukhan4a79ff22022-01-01 12:16:48 -080084 xnn_init_f32_elu_neonfma_rr1_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -070085 benchmark::utils::CheckNEONFMA)
86 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -080087 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -070088 BENCHMARK_CAPTURE(f32_velu, neonfma_lut16_p3_x20,
89 xnn_f32_velu_ukernel__neonfma_rr1_lut16_p3_x20,
Marat Dukhan4a79ff22022-01-01 12:16:48 -080090 xnn_init_f32_elu_neonfma_rr1_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -070091 benchmark::utils::CheckNEONFMA)
92 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -080093 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -070094 BENCHMARK_CAPTURE(f32_velu, neonfma_lut16_p3_x24,
95 xnn_f32_velu_ukernel__neonfma_rr1_lut16_p3_x24,
Marat Dukhan4a79ff22022-01-01 12:16:48 -080096 xnn_init_f32_elu_neonfma_rr1_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -070097 benchmark::utils::CheckNEONFMA)
98 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -080099 ->UseRealTime();
100
Marat Dukhan12e426c2021-08-06 22:09:44 -0700101 BENCHMARK_CAPTURE(f32_velu, neonfma_p6_x4,
102 xnn_f32_velu_ukernel__neonfma_rr1_p6_x4,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800103 xnn_init_f32_elu_neonfma_rr1_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700104 benchmark::utils::CheckNEONFMA)
105 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800106 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700107 BENCHMARK_CAPTURE(f32_velu, neonfma_p6_x8,
108 xnn_f32_velu_ukernel__neonfma_rr1_p6_x8,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800109 xnn_init_f32_elu_neonfma_rr1_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700110 benchmark::utils::CheckNEONFMA)
111 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800112 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700113 BENCHMARK_CAPTURE(f32_velu, neonfma_p6_x12,
114 xnn_f32_velu_ukernel__neonfma_rr1_p6_x12,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800115 xnn_init_f32_elu_neonfma_rr1_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700116 benchmark::utils::CheckNEONFMA)
117 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800118 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700119 BENCHMARK_CAPTURE(f32_velu, neonfma_p6_x16,
120 xnn_f32_velu_ukernel__neonfma_rr1_p6_x16,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800121 xnn_init_f32_elu_neonfma_rr1_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700122 benchmark::utils::CheckNEONFMA)
123 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800124 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700125 BENCHMARK_CAPTURE(f32_velu, neonfma_p6_x20,
126 xnn_f32_velu_ukernel__neonfma_rr1_p6_x20,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800127 xnn_init_f32_elu_neonfma_rr1_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700128 benchmark::utils::CheckNEONFMA)
129 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800130 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700131 BENCHMARK_CAPTURE(f32_velu, neonfma_p6_x24,
132 xnn_f32_velu_ukernel__neonfma_rr1_p6_x24,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800133 xnn_init_f32_elu_neonfma_rr1_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700134 benchmark::utils::CheckNEONFMA)
135 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800136 ->UseRealTime();
137
Marat Dukhan12e426c2021-08-06 22:09:44 -0700138 BENCHMARK_CAPTURE(f32_velu, neon_lut16_p3_x4,
139 xnn_f32_velu_ukernel__neon_rr2_lut16_p3_x4,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800140 xnn_init_f32_elu_neon_rr2_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700141 benchmark::utils::CheckNEON)
142 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800143 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700144 BENCHMARK_CAPTURE(f32_velu, neon_lut16_p3_x8,
145 xnn_f32_velu_ukernel__neon_rr2_lut16_p3_x8,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800146 xnn_init_f32_elu_neon_rr2_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700147 benchmark::utils::CheckNEON)
148 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800149 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700150 BENCHMARK_CAPTURE(f32_velu, neon_lut16_p3_x12,
151 xnn_f32_velu_ukernel__neon_rr2_lut16_p3_x12,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800152 xnn_init_f32_elu_neon_rr2_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700153 benchmark::utils::CheckNEON)
154 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800155 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700156 BENCHMARK_CAPTURE(f32_velu, neon_lut16_p3_x16,
157 xnn_f32_velu_ukernel__neon_rr2_lut16_p3_x16,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800158 xnn_init_f32_elu_neon_rr2_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700159 benchmark::utils::CheckNEON)
160 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800161 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700162 BENCHMARK_CAPTURE(f32_velu, neon_lut16_p3_x20,
163 xnn_f32_velu_ukernel__neon_rr2_lut16_p3_x20,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800164 xnn_init_f32_elu_neon_rr2_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700165 benchmark::utils::CheckNEON)
166 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800167 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700168 BENCHMARK_CAPTURE(f32_velu, neon_lut16_p3_x24,
169 xnn_f32_velu_ukernel__neon_rr2_lut16_p3_x24,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800170 xnn_init_f32_elu_neon_rr2_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700171 benchmark::utils::CheckNEON)
172 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800173 ->UseRealTime();
174
Marat Dukhan12e426c2021-08-06 22:09:44 -0700175 BENCHMARK_CAPTURE(f32_velu, neon_p6_x4,
176 xnn_f32_velu_ukernel__neon_rr2_p6_x4,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800177 xnn_init_f32_elu_neon_rr2_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700178 benchmark::utils::CheckNEON)
179 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800180 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700181 BENCHMARK_CAPTURE(f32_velu, neon_p6_x8,
182 xnn_f32_velu_ukernel__neon_rr2_p6_x8,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800183 xnn_init_f32_elu_neon_rr2_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700184 benchmark::utils::CheckNEON)
185 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800186 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700187 BENCHMARK_CAPTURE(f32_velu, neon_p6_x12,
188 xnn_f32_velu_ukernel__neon_rr2_p6_x12,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800189 xnn_init_f32_elu_neon_rr2_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700190 benchmark::utils::CheckNEON)
191 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800192 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700193 BENCHMARK_CAPTURE(f32_velu, neon_p6_x16,
194 xnn_f32_velu_ukernel__neon_rr2_p6_x16,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800195 xnn_init_f32_elu_neon_rr2_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700196 benchmark::utils::CheckNEON)
197 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800198 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700199 BENCHMARK_CAPTURE(f32_velu, neon_p6_x20,
200 xnn_f32_velu_ukernel__neon_rr2_p6_x20,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800201 xnn_init_f32_elu_neon_rr2_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700202 benchmark::utils::CheckNEON)
203 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800204 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700205 BENCHMARK_CAPTURE(f32_velu, neon_p6_x24,
206 xnn_f32_velu_ukernel__neon_rr2_p6_x24,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800207 xnn_init_f32_elu_neon_rr2_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700208 benchmark::utils::CheckNEON)
209 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800210 ->UseRealTime();
211#endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
212
213#if XNN_ARCH_X86 || XNN_ARCH_X86_64
Marat Dukhan12e426c2021-08-06 22:09:44 -0700214 BENCHMARK_CAPTURE(f32_velu, avx512f_lut16_p3_x16,
215 xnn_f32_velu_ukernel__avx512f_rr1_lut16_p3_perm_x16,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800216 xnn_init_f32_elu_avx512_rr1_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700217 benchmark::utils::CheckAVX512F)
218 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800219 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700220 BENCHMARK_CAPTURE(f32_velu, avx512f_lut16_p3_x32,
221 xnn_f32_velu_ukernel__avx512f_rr1_lut16_p3_perm_x32,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800222 xnn_init_f32_elu_avx512_rr1_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700223 benchmark::utils::CheckAVX512F)
224 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800225 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700226 BENCHMARK_CAPTURE(f32_velu, avx512f_lut16_p3_x48,
227 xnn_f32_velu_ukernel__avx512f_rr1_lut16_p3_perm_x48,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800228 xnn_init_f32_elu_avx512_rr1_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700229 benchmark::utils::CheckAVX512F)
230 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800231 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700232 BENCHMARK_CAPTURE(f32_velu, avx512f_lut16_p3_x64,
233 xnn_f32_velu_ukernel__avx512f_rr1_lut16_p3_perm_x64,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800234 xnn_init_f32_elu_avx512_rr1_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700235 benchmark::utils::CheckAVX512F)
236 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800237 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700238 BENCHMARK_CAPTURE(f32_velu, avx512f_lut16_p3_x80,
239 xnn_f32_velu_ukernel__avx512f_rr1_lut16_p3_perm_x80,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800240 xnn_init_f32_elu_avx512_rr1_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700241 benchmark::utils::CheckAVX512F)
242 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800243 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700244 BENCHMARK_CAPTURE(f32_velu, avx512f_lut16_p3_x96,
245 xnn_f32_velu_ukernel__avx512f_rr1_lut16_p3_perm_x96,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800246 xnn_init_f32_elu_avx512_rr1_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700247 benchmark::utils::CheckAVX512F)
248 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800249 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700250 BENCHMARK_CAPTURE(f32_velu, avx512f_lut16_p3_x112,
251 xnn_f32_velu_ukernel__avx512f_rr1_lut16_p3_perm_x112,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800252 xnn_init_f32_elu_avx512_rr1_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700253 benchmark::utils::CheckAVX512F)
254 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800255 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700256 BENCHMARK_CAPTURE(f32_velu, avx512f_lut16_p3_x128,
257 xnn_f32_velu_ukernel__avx512f_rr1_lut16_p3_perm_x128,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800258 xnn_init_f32_elu_avx512_rr1_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700259 benchmark::utils::CheckAVX512F)
260 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800261 ->UseRealTime();
262
Marat Dukhan12e426c2021-08-06 22:09:44 -0700263 BENCHMARK_CAPTURE(f32_velu, avx512f_p6_x16,
264 xnn_f32_velu_ukernel__avx512f_rr1_p6_x16,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800265 xnn_init_f32_elu_avx512_rr1_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700266 benchmark::utils::CheckAVX512F)
267 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800268 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700269 BENCHMARK_CAPTURE(f32_velu, avx512f_p6_x32,
270 xnn_f32_velu_ukernel__avx512f_rr1_p6_x32,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800271 xnn_init_f32_elu_avx512_rr1_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700272 benchmark::utils::CheckAVX512F)
273 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800274 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700275 BENCHMARK_CAPTURE(f32_velu, avx512f_p6_x48,
276 xnn_f32_velu_ukernel__avx512f_rr1_p6_x48,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800277 xnn_init_f32_elu_avx512_rr1_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700278 benchmark::utils::CheckAVX512F)
279 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800280 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700281 BENCHMARK_CAPTURE(f32_velu, avx512f_p6_x64,
282 xnn_f32_velu_ukernel__avx512f_rr1_p6_x64,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800283 xnn_init_f32_elu_avx512_rr1_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700284 benchmark::utils::CheckAVX512F)
285 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800286 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700287 BENCHMARK_CAPTURE(f32_velu, avx512f_p6_x80,
288 xnn_f32_velu_ukernel__avx512f_rr1_p6_x80,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800289 xnn_init_f32_elu_avx512_rr1_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700290 benchmark::utils::CheckAVX512F)
291 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800292 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700293 BENCHMARK_CAPTURE(f32_velu, avx512f_p6_x96,
294 xnn_f32_velu_ukernel__avx512f_rr1_p6_x96,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800295 xnn_init_f32_elu_avx512_rr1_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700296 benchmark::utils::CheckAVX512F)
297 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800298 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700299 BENCHMARK_CAPTURE(f32_velu, avx512f_p6_x112,
300 xnn_f32_velu_ukernel__avx512f_rr1_p6_x112,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800301 xnn_init_f32_elu_avx512_rr1_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700302 benchmark::utils::CheckAVX512F)
303 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800304 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700305 BENCHMARK_CAPTURE(f32_velu, avx512f_p6_x128,
306 xnn_f32_velu_ukernel__avx512f_rr1_p6_x128,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800307 xnn_init_f32_elu_avx512_rr1_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700308 benchmark::utils::CheckAVX512F)
309 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800310 ->UseRealTime();
311
Marat Dukhan12e426c2021-08-06 22:09:44 -0700312 BENCHMARK_CAPTURE(f32_velu, avx2_lut4_p4_x8,
313 xnn_f32_velu_ukernel__avx2_rr1_lut4_p4_perm_x8,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800314 xnn_init_f32_elu_avx2_rr1_lut4_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700315 benchmark::utils::CheckAVX2)
316 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800317 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700318 BENCHMARK_CAPTURE(f32_velu, avx2_lut4_p4_x16,
319 xnn_f32_velu_ukernel__avx2_rr1_lut4_p4_perm_x16,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800320 xnn_init_f32_elu_avx2_rr1_lut4_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700321 benchmark::utils::CheckAVX2)
322 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800323 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700324 BENCHMARK_CAPTURE(f32_velu, avx2_lut4_p4_x24,
325 xnn_f32_velu_ukernel__avx2_rr1_lut4_p4_perm_x24,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800326 xnn_init_f32_elu_avx2_rr1_lut4_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700327 benchmark::utils::CheckAVX2)
328 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800329 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700330 BENCHMARK_CAPTURE(f32_velu, avx2_lut4_p4_x32,
331 xnn_f32_velu_ukernel__avx2_rr1_lut4_p4_perm_x32,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800332 xnn_init_f32_elu_avx2_rr1_lut4_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700333 benchmark::utils::CheckAVX2)
334 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800335 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700336 BENCHMARK_CAPTURE(f32_velu, avx2_lut4_p4_x40,
337 xnn_f32_velu_ukernel__avx2_rr1_lut4_p4_perm_x40,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800338 xnn_init_f32_elu_avx2_rr1_lut4_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700339 benchmark::utils::CheckAVX2)
340 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800341 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700342 BENCHMARK_CAPTURE(f32_velu, avx2_lut4_p4_x48,
343 xnn_f32_velu_ukernel__avx2_rr1_lut4_p4_perm_x48,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800344 xnn_init_f32_elu_avx2_rr1_lut4_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700345 benchmark::utils::CheckAVX2)
346 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800347 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700348 BENCHMARK_CAPTURE(f32_velu, avx2_lut4_p4_x56,
349 xnn_f32_velu_ukernel__avx2_rr1_lut4_p4_perm_x56,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800350 xnn_init_f32_elu_avx2_rr1_lut4_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700351 benchmark::utils::CheckAVX2)
352 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800353 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700354 BENCHMARK_CAPTURE(f32_velu, avx2_lut4_p4_x64,
355 xnn_f32_velu_ukernel__avx2_rr1_lut4_p4_perm_x64,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800356 xnn_init_f32_elu_avx2_rr1_lut4_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700357 benchmark::utils::CheckAVX2)
358 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800359 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700360 BENCHMARK_CAPTURE(f32_velu, avx2_lut4_p4_x72,
361 xnn_f32_velu_ukernel__avx2_rr1_lut4_p4_perm_x72,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800362 xnn_init_f32_elu_avx2_rr1_lut4_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700363 benchmark::utils::CheckAVX2)
364 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800365 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700366 BENCHMARK_CAPTURE(f32_velu, avx2_lut4_p4_x80,
367 xnn_f32_velu_ukernel__avx2_rr1_lut4_p4_perm_x80,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800368 xnn_init_f32_elu_avx2_rr1_lut4_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700369 benchmark::utils::CheckAVX2)
370 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800371 ->UseRealTime();
372
Marat Dukhan12e426c2021-08-06 22:09:44 -0700373 BENCHMARK_CAPTURE(f32_velu, avx2_lut8_p4_x8,
374 xnn_f32_velu_ukernel__avx2_rr1_lut8_p4_perm_x8,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800375 xnn_init_f32_elu_avx2_rr1_lut8_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700376 benchmark::utils::CheckAVX2)
377 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800378 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700379 BENCHMARK_CAPTURE(f32_velu, avx2_lut8_p4_x16,
380 xnn_f32_velu_ukernel__avx2_rr1_lut8_p4_perm_x16,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800381 xnn_init_f32_elu_avx2_rr1_lut8_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700382 benchmark::utils::CheckAVX2)
383 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800384 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700385 BENCHMARK_CAPTURE(f32_velu, avx2_lut8_p4_x24,
386 xnn_f32_velu_ukernel__avx2_rr1_lut8_p4_perm_x24,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800387 xnn_init_f32_elu_avx2_rr1_lut8_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700388 benchmark::utils::CheckAVX2)
389 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800390 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700391 BENCHMARK_CAPTURE(f32_velu, avx2_lut8_p4_x32,
392 xnn_f32_velu_ukernel__avx2_rr1_lut8_p4_perm_x32,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800393 xnn_init_f32_elu_avx2_rr1_lut8_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700394 benchmark::utils::CheckAVX2)
395 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800396 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700397 BENCHMARK_CAPTURE(f32_velu, avx2_lut8_p4_x40,
398 xnn_f32_velu_ukernel__avx2_rr1_lut8_p4_perm_x40,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800399 xnn_init_f32_elu_avx2_rr1_lut8_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700400 benchmark::utils::CheckAVX2)
401 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800402 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700403 BENCHMARK_CAPTURE(f32_velu, avx2_lut8_p4_x48,
404 xnn_f32_velu_ukernel__avx2_rr1_lut8_p4_perm_x48,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800405 xnn_init_f32_elu_avx2_rr1_lut8_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700406 benchmark::utils::CheckAVX2)
407 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800408 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700409 BENCHMARK_CAPTURE(f32_velu, avx2_lut8_p4_x56,
410 xnn_f32_velu_ukernel__avx2_rr1_lut8_p4_perm_x56,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800411 xnn_init_f32_elu_avx2_rr1_lut8_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700412 benchmark::utils::CheckAVX2)
413 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800414 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700415 BENCHMARK_CAPTURE(f32_velu, avx2_lut8_p4_x64,
416 xnn_f32_velu_ukernel__avx2_rr1_lut8_p4_perm_x64,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800417 xnn_init_f32_elu_avx2_rr1_lut8_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700418 benchmark::utils::CheckAVX2)
419 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800420 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700421 BENCHMARK_CAPTURE(f32_velu, avx2_lut8_p4_x72,
422 xnn_f32_velu_ukernel__avx2_rr1_lut8_p4_perm_x72,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800423 xnn_init_f32_elu_avx2_rr1_lut8_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700424 benchmark::utils::CheckAVX2)
425 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800426 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700427 BENCHMARK_CAPTURE(f32_velu, avx2_lut8_p4_x80,
428 xnn_f32_velu_ukernel__avx2_rr1_lut8_p4_perm_x80,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800429 xnn_init_f32_elu_avx2_rr1_lut8_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700430 benchmark::utils::CheckAVX2)
431 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800432 ->UseRealTime();
433
Marat Dukhan12e426c2021-08-06 22:09:44 -0700434 BENCHMARK_CAPTURE(f32_velu, avx2_lut16_p3_x8,
435 xnn_f32_velu_ukernel__avx2_rr1_lut16_p3_gather_x8,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800436 xnn_init_f32_elu_avx2_rr1_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700437 benchmark::utils::CheckAVX2)
438 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800439 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700440 BENCHMARK_CAPTURE(f32_velu, avx2_lut16_p3_x16,
441 xnn_f32_velu_ukernel__avx2_rr1_lut16_p3_gather_x16,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800442 xnn_init_f32_elu_avx2_rr1_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700443 benchmark::utils::CheckAVX2)
444 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800445 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700446 BENCHMARK_CAPTURE(f32_velu, avx2_lut16_p3_x24,
447 xnn_f32_velu_ukernel__avx2_rr1_lut16_p3_gather_x24,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800448 xnn_init_f32_elu_avx2_rr1_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700449 benchmark::utils::CheckAVX2)
450 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800451 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700452 BENCHMARK_CAPTURE(f32_velu, avx2_lut16_p3_x32,
453 xnn_f32_velu_ukernel__avx2_rr1_lut16_p3_gather_x32,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800454 xnn_init_f32_elu_avx2_rr1_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700455 benchmark::utils::CheckAVX2)
456 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800457 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700458 BENCHMARK_CAPTURE(f32_velu, avx2_lut16_p3_x40,
459 xnn_f32_velu_ukernel__avx2_rr1_lut16_p3_gather_x40,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800460 xnn_init_f32_elu_avx2_rr1_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700461 benchmark::utils::CheckAVX2)
462 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800463 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700464 BENCHMARK_CAPTURE(f32_velu, avx2_lut16_p3_x48,
465 xnn_f32_velu_ukernel__avx2_rr1_lut16_p3_gather_x48,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800466 xnn_init_f32_elu_avx2_rr1_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700467 benchmark::utils::CheckAVX2)
468 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800469 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700470 BENCHMARK_CAPTURE(f32_velu, avx2_lut16_p3_x56,
471 xnn_f32_velu_ukernel__avx2_rr1_lut16_p3_gather_x56,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800472 xnn_init_f32_elu_avx2_rr1_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700473 benchmark::utils::CheckAVX2)
474 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800475 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700476 BENCHMARK_CAPTURE(f32_velu, avx2_lut16_p3_x64,
477 xnn_f32_velu_ukernel__avx2_rr1_lut16_p3_gather_x64,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800478 xnn_init_f32_elu_avx2_rr1_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700479 benchmark::utils::CheckAVX2)
480 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800481 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700482 BENCHMARK_CAPTURE(f32_velu, avx2_lut16_p3_x72,
483 xnn_f32_velu_ukernel__avx2_rr1_lut16_p3_gather_x72,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800484 xnn_init_f32_elu_avx2_rr1_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700485 benchmark::utils::CheckAVX2)
486 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800487 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700488 BENCHMARK_CAPTURE(f32_velu, avx2_lut16_p3_x80,
489 xnn_f32_velu_ukernel__avx2_rr1_lut16_p3_gather_x80,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800490 xnn_init_f32_elu_avx2_rr1_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700491 benchmark::utils::CheckAVX2)
492 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800493 ->UseRealTime();
494
Marat Dukhan12e426c2021-08-06 22:09:44 -0700495 BENCHMARK_CAPTURE(f32_velu, avx2_p6_x8,
496 xnn_f32_velu_ukernel__avx2_rr1_p6_x8,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800497 xnn_init_f32_elu_avx2_rr1_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700498 benchmark::utils::CheckAVX2)
499 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800500 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700501 BENCHMARK_CAPTURE(f32_velu, avx2_p6_x16,
502 xnn_f32_velu_ukernel__avx2_rr1_p6_x16,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800503 xnn_init_f32_elu_avx2_rr1_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700504 benchmark::utils::CheckAVX2)
505 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800506 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700507 BENCHMARK_CAPTURE(f32_velu, avx2_p6_x24,
508 xnn_f32_velu_ukernel__avx2_rr1_p6_x24,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800509 xnn_init_f32_elu_avx2_rr1_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700510 benchmark::utils::CheckAVX2)
511 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800512 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700513 BENCHMARK_CAPTURE(f32_velu, avx2_p6_x32,
514 xnn_f32_velu_ukernel__avx2_rr1_p6_x32,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800515 xnn_init_f32_elu_avx2_rr1_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700516 benchmark::utils::CheckAVX2)
517 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800518 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700519 BENCHMARK_CAPTURE(f32_velu, avx2_p6_x40,
520 xnn_f32_velu_ukernel__avx2_rr1_p6_x40,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800521 xnn_init_f32_elu_avx2_rr1_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700522 benchmark::utils::CheckAVX2)
523 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800524 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700525 BENCHMARK_CAPTURE(f32_velu, avx2_p6_x48,
526 xnn_f32_velu_ukernel__avx2_rr1_p6_x48,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800527 xnn_init_f32_elu_avx2_rr1_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700528 benchmark::utils::CheckAVX2)
529 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800530 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700531 BENCHMARK_CAPTURE(f32_velu, avx2_p6_x56,
532 xnn_f32_velu_ukernel__avx2_rr1_p6_x56,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800533 xnn_init_f32_elu_avx2_rr1_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700534 benchmark::utils::CheckAVX2)
535 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800536 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700537 BENCHMARK_CAPTURE(f32_velu, avx2_p6_x64,
538 xnn_f32_velu_ukernel__avx2_rr1_p6_x64,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800539 xnn_init_f32_elu_avx2_rr1_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700540 benchmark::utils::CheckAVX2)
541 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800542 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700543 BENCHMARK_CAPTURE(f32_velu, avx2_p6_x72,
544 xnn_f32_velu_ukernel__avx2_rr1_p6_x72,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800545 xnn_init_f32_elu_avx2_rr1_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700546 benchmark::utils::CheckAVX2)
547 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800548 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700549 BENCHMARK_CAPTURE(f32_velu, avx2_p6_x80,
550 xnn_f32_velu_ukernel__avx2_rr1_p6_x80,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800551 xnn_init_f32_elu_avx2_rr1_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700552 benchmark::utils::CheckAVX2)
553 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800554 ->UseRealTime();
555
Marat Dukhan12e426c2021-08-06 22:09:44 -0700556 BENCHMARK_CAPTURE(f32_velu, avx_lut4_p4_x8,
557 xnn_f32_velu_ukernel__avx_rr2_lut4_p4_perm_x8,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800558 xnn_init_f32_elu_avx_rr2_lut4_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700559 benchmark::utils::CheckAVX)
560 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800561 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700562 BENCHMARK_CAPTURE(f32_velu, avx_lut4_p4_x16,
563 xnn_f32_velu_ukernel__avx_rr2_lut4_p4_perm_x16,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800564 xnn_init_f32_elu_avx_rr2_lut4_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700565 benchmark::utils::CheckAVX)
566 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800567 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700568 BENCHMARK_CAPTURE(f32_velu, avx_lut4_p4_x24,
569 xnn_f32_velu_ukernel__avx_rr2_lut4_p4_perm_x24,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800570 xnn_init_f32_elu_avx_rr2_lut4_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700571 benchmark::utils::CheckAVX)
572 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800573 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700574 BENCHMARK_CAPTURE(f32_velu, avx_lut4_p4_x32,
575 xnn_f32_velu_ukernel__avx_rr2_lut4_p4_perm_x32,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800576 xnn_init_f32_elu_avx_rr2_lut4_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700577 benchmark::utils::CheckAVX)
578 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800579 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700580 BENCHMARK_CAPTURE(f32_velu, avx_lut4_p4_x40,
581 xnn_f32_velu_ukernel__avx_rr2_lut4_p4_perm_x40,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800582 xnn_init_f32_elu_avx_rr2_lut4_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700583 benchmark::utils::CheckAVX)
584 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800585 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700586 BENCHMARK_CAPTURE(f32_velu, avx_lut4_p4_x48,
587 xnn_f32_velu_ukernel__avx_rr2_lut4_p4_perm_x48,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800588 xnn_init_f32_elu_avx_rr2_lut4_p4_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700589 benchmark::utils::CheckAVX)
590 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800591 ->UseRealTime();
592
Marat Dukhan12e426c2021-08-06 22:09:44 -0700593 BENCHMARK_CAPTURE(f32_velu, avx_lut16_p3_x8,
594 xnn_f32_velu_ukernel__avx_rr2_lut16_p3_x8,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800595 xnn_init_f32_elu_avx_rr2_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700596 benchmark::utils::CheckAVX)
597 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800598 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700599 BENCHMARK_CAPTURE(f32_velu, avx_lut16_p3_x16,
600 xnn_f32_velu_ukernel__avx_rr2_lut16_p3_x16,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800601 xnn_init_f32_elu_avx_rr2_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700602 benchmark::utils::CheckAVX)
603 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800604 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700605 BENCHMARK_CAPTURE(f32_velu, avx_lut16_p3_x24,
606 xnn_f32_velu_ukernel__avx_rr2_lut16_p3_x24,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800607 xnn_init_f32_elu_avx_rr2_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700608 benchmark::utils::CheckAVX)
609 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800610 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700611 BENCHMARK_CAPTURE(f32_velu, avx_lut16_p3_x32,
612 xnn_f32_velu_ukernel__avx_rr2_lut16_p3_x32,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800613 xnn_init_f32_elu_avx_rr2_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700614 benchmark::utils::CheckAVX)
615 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800616 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700617 BENCHMARK_CAPTURE(f32_velu, avx_lut16_p3_x40,
618 xnn_f32_velu_ukernel__avx_rr2_lut16_p3_x40,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800619 xnn_init_f32_elu_avx_rr2_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700620 benchmark::utils::CheckAVX)
621 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800622 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700623 BENCHMARK_CAPTURE(f32_velu, avx_lut16_p3_x48,
624 xnn_f32_velu_ukernel__avx_rr2_lut16_p3_x48,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800625 xnn_init_f32_elu_avx_rr2_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700626 benchmark::utils::CheckAVX)
627 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800628 ->UseRealTime();
629
Marat Dukhan12e426c2021-08-06 22:09:44 -0700630 BENCHMARK_CAPTURE(f32_velu, avx_p6_x8,
631 xnn_f32_velu_ukernel__avx_rr2_p6_x8,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800632 xnn_init_f32_elu_avx_rr2_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700633 benchmark::utils::CheckAVX)
634 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800635 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700636 BENCHMARK_CAPTURE(f32_velu, avx_p6_x16,
637 xnn_f32_velu_ukernel__avx_rr2_p6_x16,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800638 xnn_init_f32_elu_avx_rr2_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700639 benchmark::utils::CheckAVX)
640 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800641 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700642 BENCHMARK_CAPTURE(f32_velu, avx_p6_x24,
643 xnn_f32_velu_ukernel__avx_rr2_p6_x24,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800644 xnn_init_f32_elu_avx_rr2_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700645 benchmark::utils::CheckAVX)
646 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800647 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700648 BENCHMARK_CAPTURE(f32_velu, avx_p6_x32,
649 xnn_f32_velu_ukernel__avx_rr2_p6_x32,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800650 xnn_init_f32_elu_avx_rr2_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700651 benchmark::utils::CheckAVX)
652 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800653 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700654 BENCHMARK_CAPTURE(f32_velu, avx_p6_x40,
655 xnn_f32_velu_ukernel__avx_rr2_p6_x40,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800656 xnn_init_f32_elu_avx_rr2_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700657 benchmark::utils::CheckAVX)
658 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800659 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700660 BENCHMARK_CAPTURE(f32_velu, avx_p6_x48,
661 xnn_f32_velu_ukernel__avx_rr2_p6_x48,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800662 xnn_init_f32_elu_avx_rr2_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700663 benchmark::utils::CheckAVX)
664 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800665 ->UseRealTime();
666
Marat Dukhan12e426c2021-08-06 22:09:44 -0700667 BENCHMARK_CAPTURE(f32_velu, sse41_lut16_p3_x4,
668 xnn_f32_velu_ukernel__sse41_rr2_lut16_p3_x4,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800669 xnn_init_f32_elu_sse2_rr2_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700670 benchmark::utils::CheckSSE41)
671 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800672 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700673 BENCHMARK_CAPTURE(f32_velu, sse41_lut16_p3_x8,
674 xnn_f32_velu_ukernel__sse41_rr2_lut16_p3_x8,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800675 xnn_init_f32_elu_sse2_rr2_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700676 benchmark::utils::CheckSSE41)
677 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800678 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700679 BENCHMARK_CAPTURE(f32_velu, sse41_lut16_p3_x12,
680 xnn_f32_velu_ukernel__sse41_rr2_lut16_p3_x12,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800681 xnn_init_f32_elu_sse2_rr2_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700682 benchmark::utils::CheckSSE41)
683 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800684 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700685 BENCHMARK_CAPTURE(f32_velu, sse41_lut16_p3_x16,
686 xnn_f32_velu_ukernel__sse41_rr2_lut16_p3_x16,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800687 xnn_init_f32_elu_sse2_rr2_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700688 benchmark::utils::CheckSSE41)
689 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800690 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700691 BENCHMARK_CAPTURE(f32_velu, sse41_lut16_p3_x20,
692 xnn_f32_velu_ukernel__sse41_rr2_lut16_p3_x20,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800693 xnn_init_f32_elu_sse2_rr2_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700694 benchmark::utils::CheckSSE41)
695 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800696 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700697 BENCHMARK_CAPTURE(f32_velu, sse41_lut16_p3_x24,
698 xnn_f32_velu_ukernel__sse41_rr2_lut16_p3_x24,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800699 xnn_init_f32_elu_sse2_rr2_lut16_p3_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700700 benchmark::utils::CheckSSE41)
701 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800702 ->UseRealTime();
703
Marat Dukhan12e426c2021-08-06 22:09:44 -0700704 BENCHMARK_CAPTURE(f32_velu, sse41_p6_x4,
705 xnn_f32_velu_ukernel__sse41_rr2_p6_x4,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800706 xnn_init_f32_elu_sse2_rr2_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700707 benchmark::utils::CheckSSE41)
708 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800709 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700710 BENCHMARK_CAPTURE(f32_velu, sse41_p6_x8,
711 xnn_f32_velu_ukernel__sse41_rr2_p6_x8,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800712 xnn_init_f32_elu_sse2_rr2_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700713 benchmark::utils::CheckSSE41)
714 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800715 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700716 BENCHMARK_CAPTURE(f32_velu, sse41_p6_x12,
717 xnn_f32_velu_ukernel__sse41_rr2_p6_x12,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800718 xnn_init_f32_elu_sse2_rr2_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700719 benchmark::utils::CheckSSE41)
720 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800721 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700722 BENCHMARK_CAPTURE(f32_velu, sse41_p6_x16,
723 xnn_f32_velu_ukernel__sse41_rr2_p6_x16,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800724 xnn_init_f32_elu_sse2_rr2_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700725 benchmark::utils::CheckSSE41)
726 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800727 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700728 BENCHMARK_CAPTURE(f32_velu, sse41_p6_x20,
729 xnn_f32_velu_ukernel__sse41_rr2_p6_x20,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800730 xnn_init_f32_elu_sse2_rr2_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700731 benchmark::utils::CheckSSE41)
732 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800733 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700734 BENCHMARK_CAPTURE(f32_velu, sse41_p6_x24,
735 xnn_f32_velu_ukernel__sse41_rr2_p6_x24,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800736 xnn_init_f32_elu_sse2_rr2_p6_params,
Marat Dukhan12e426c2021-08-06 22:09:44 -0700737 benchmark::utils::CheckSSE41)
738 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800739 ->UseRealTime();
740
Marat Dukhan12e426c2021-08-06 22:09:44 -0700741 BENCHMARK_CAPTURE(f32_velu, sse2_lut16_p3_x4,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800742 xnn_f32_velu_ukernel__sse2_rr2_lut16_p3_x4,
743 xnn_init_f32_elu_sse2_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700744 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800745 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700746 BENCHMARK_CAPTURE(f32_velu, sse2_lut16_p3_x8,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800747 xnn_f32_velu_ukernel__sse2_rr2_lut16_p3_x8,
748 xnn_init_f32_elu_sse2_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700749 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800750 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700751 BENCHMARK_CAPTURE(f32_velu, sse2_lut16_p3_x12,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800752 xnn_f32_velu_ukernel__sse2_rr2_lut16_p3_x12,
753 xnn_init_f32_elu_sse2_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700754 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800755 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700756 BENCHMARK_CAPTURE(f32_velu, sse2_lut16_p3_x16,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800757 xnn_f32_velu_ukernel__sse2_rr2_lut16_p3_x16,
758 xnn_init_f32_elu_sse2_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700759 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800760 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700761 BENCHMARK_CAPTURE(f32_velu, sse2_lut16_p3_x20,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800762 xnn_f32_velu_ukernel__sse2_rr2_lut16_p3_x20,
763 xnn_init_f32_elu_sse2_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700764 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800765 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700766 BENCHMARK_CAPTURE(f32_velu, sse2_lut16_p3_x24,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800767 xnn_f32_velu_ukernel__sse2_rr2_lut16_p3_x24,
768 xnn_init_f32_elu_sse2_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700769 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800770 ->UseRealTime();
771
Marat Dukhan12e426c2021-08-06 22:09:44 -0700772 BENCHMARK_CAPTURE(f32_velu, sse2_p6_x4,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800773 xnn_f32_velu_ukernel__sse2_rr2_p6_x4,
774 xnn_init_f32_elu_sse2_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700775 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800776 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700777 BENCHMARK_CAPTURE(f32_velu, sse2_p6_x8,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800778 xnn_f32_velu_ukernel__sse2_rr2_p6_x8,
779 xnn_init_f32_elu_sse2_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700780 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800781 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700782 BENCHMARK_CAPTURE(f32_velu, sse2_p6_x12,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800783 xnn_f32_velu_ukernel__sse2_rr2_p6_x12,
784 xnn_init_f32_elu_sse2_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700785 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800786 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700787 BENCHMARK_CAPTURE(f32_velu, sse2_p6_x16,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800788 xnn_f32_velu_ukernel__sse2_rr2_p6_x16,
789 xnn_init_f32_elu_sse2_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700790 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800791 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700792 BENCHMARK_CAPTURE(f32_velu, sse2_p6_x20,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800793 xnn_f32_velu_ukernel__sse2_rr2_p6_x20,
794 xnn_init_f32_elu_sse2_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700795 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800796 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700797 BENCHMARK_CAPTURE(f32_velu, sse2_p6_x24,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800798 xnn_f32_velu_ukernel__sse2_rr2_p6_x24,
799 xnn_init_f32_elu_sse2_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700800 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800801 ->UseRealTime();
802#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
803
Marat Dukhan4c617792021-12-21 15:47:58 -0800804#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan12e426c2021-08-06 22:09:44 -0700805 BENCHMARK_CAPTURE(f32_velu, wasmsimd_arm_lut16_p3_x4,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800806 xnn_f32_velu_ukernel__wasmsimd_arm_rr2_lut16_p3_x4,
807 xnn_init_f32_elu_wasmsimd_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700808 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800809 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700810 BENCHMARK_CAPTURE(f32_velu, wasmsimd_arm_lut16_p3_x8,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800811 xnn_f32_velu_ukernel__wasmsimd_arm_rr2_lut16_p3_x8,
812 xnn_init_f32_elu_wasmsimd_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700813 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800814 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700815 BENCHMARK_CAPTURE(f32_velu, wasmsimd_arm_lut16_p3_x12,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800816 xnn_f32_velu_ukernel__wasmsimd_arm_rr2_lut16_p3_x12,
817 xnn_init_f32_elu_wasmsimd_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700818 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800819 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700820 BENCHMARK_CAPTURE(f32_velu, wasmsimd_arm_lut16_p3_x16,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800821 xnn_f32_velu_ukernel__wasmsimd_arm_rr2_lut16_p3_x16,
822 xnn_init_f32_elu_wasmsimd_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700823 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800824 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700825 BENCHMARK_CAPTURE(f32_velu, wasmsimd_arm_lut16_p3_x20,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800826 xnn_f32_velu_ukernel__wasmsimd_arm_rr2_lut16_p3_x20,
827 xnn_init_f32_elu_wasmsimd_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700828 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800829 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700830 BENCHMARK_CAPTURE(f32_velu, wasmsimd_arm_lut16_p3_x24,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800831 xnn_f32_velu_ukernel__wasmsimd_arm_rr2_lut16_p3_x24,
832 xnn_init_f32_elu_wasmsimd_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700833 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800834 ->UseRealTime();
835
Marat Dukhan12e426c2021-08-06 22:09:44 -0700836 BENCHMARK_CAPTURE(f32_velu, wasmsimd_x86_lut16_p3_x4,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800837 xnn_f32_velu_ukernel__wasmsimd_x86_rr2_lut16_p3_x4,
838 xnn_init_f32_elu_wasmsimd_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700839 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800840 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700841 BENCHMARK_CAPTURE(f32_velu, wasmsimd_x86_lut16_p3_x8,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800842 xnn_f32_velu_ukernel__wasmsimd_x86_rr2_lut16_p3_x8,
843 xnn_init_f32_elu_wasmsimd_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700844 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800845 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700846 BENCHMARK_CAPTURE(f32_velu, wasmsimd_x86_lut16_p3_x12,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800847 xnn_f32_velu_ukernel__wasmsimd_x86_rr2_lut16_p3_x12,
848 xnn_init_f32_elu_wasmsimd_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700849 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800850 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700851 BENCHMARK_CAPTURE(f32_velu, wasmsimd_x86_lut16_p3_x16,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800852 xnn_f32_velu_ukernel__wasmsimd_x86_rr2_lut16_p3_x16,
853 xnn_init_f32_elu_wasmsimd_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700854 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800855 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700856 BENCHMARK_CAPTURE(f32_velu, wasmsimd_x86_lut16_p3_x20,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800857 xnn_f32_velu_ukernel__wasmsimd_x86_rr2_lut16_p3_x20,
858 xnn_init_f32_elu_wasmsimd_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700859 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800860 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700861 BENCHMARK_CAPTURE(f32_velu, wasmsimd_x86_lut16_p3_x24,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800862 xnn_f32_velu_ukernel__wasmsimd_x86_rr2_lut16_p3_x24,
863 xnn_init_f32_elu_wasmsimd_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700864 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800865 ->UseRealTime();
866
Marat Dukhan12e426c2021-08-06 22:09:44 -0700867 BENCHMARK_CAPTURE(f32_velu, wasmsimd_arm_p6_x4,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800868 xnn_f32_velu_ukernel__wasmsimd_arm_rr2_p6_x4,
869 xnn_init_f32_elu_wasmsimd_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700870 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800871 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700872 BENCHMARK_CAPTURE(f32_velu, wasmsimd_arm_p6_x8,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800873 xnn_f32_velu_ukernel__wasmsimd_arm_rr2_p6_x8,
874 xnn_init_f32_elu_wasmsimd_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700875 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800876 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700877 BENCHMARK_CAPTURE(f32_velu, wasmsimd_arm_p6_x12,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800878 xnn_f32_velu_ukernel__wasmsimd_arm_rr2_p6_x12,
879 xnn_init_f32_elu_wasmsimd_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700880 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800881 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700882 BENCHMARK_CAPTURE(f32_velu, wasmsimd_arm_p6_x16,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800883 xnn_f32_velu_ukernel__wasmsimd_arm_rr2_p6_x16,
884 xnn_init_f32_elu_wasmsimd_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700885 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800886 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700887 BENCHMARK_CAPTURE(f32_velu, wasmsimd_arm_p6_x20,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800888 xnn_f32_velu_ukernel__wasmsimd_arm_rr2_p6_x20,
889 xnn_init_f32_elu_wasmsimd_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700890 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800891 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700892 BENCHMARK_CAPTURE(f32_velu, wasmsimd_arm_p6_x24,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800893 xnn_f32_velu_ukernel__wasmsimd_arm_rr2_p6_x24,
894 xnn_init_f32_elu_wasmsimd_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700895 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800896 ->UseRealTime();
897
Marat Dukhan12e426c2021-08-06 22:09:44 -0700898 BENCHMARK_CAPTURE(f32_velu, wasmsimd_x86_p6_x4,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800899 xnn_f32_velu_ukernel__wasmsimd_x86_rr2_p6_x4,
900 xnn_init_f32_elu_wasmsimd_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700901 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800902 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700903 BENCHMARK_CAPTURE(f32_velu, wasmsimd_x86_p6_x8,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800904 xnn_f32_velu_ukernel__wasmsimd_x86_rr2_p6_x8,
905 xnn_init_f32_elu_wasmsimd_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700906 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800907 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700908 BENCHMARK_CAPTURE(f32_velu, wasmsimd_x86_p6_x12,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800909 xnn_f32_velu_ukernel__wasmsimd_x86_rr2_p6_x12,
910 xnn_init_f32_elu_wasmsimd_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700911 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800912 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700913 BENCHMARK_CAPTURE(f32_velu, wasmsimd_x86_p6_x16,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800914 xnn_f32_velu_ukernel__wasmsimd_x86_rr2_p6_x16,
915 xnn_init_f32_elu_wasmsimd_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700916 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800917 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700918 BENCHMARK_CAPTURE(f32_velu, wasmsimd_x86_p6_x20,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800919 xnn_f32_velu_ukernel__wasmsimd_x86_rr2_p6_x20,
920 xnn_init_f32_elu_wasmsimd_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700921 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800922 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700923 BENCHMARK_CAPTURE(f32_velu, wasmsimd_x86_p6_x24,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800924 xnn_f32_velu_ukernel__wasmsimd_x86_rr2_p6_x24,
925 xnn_init_f32_elu_wasmsimd_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700926 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800927 ->UseRealTime();
Marat Dukhan4c617792021-12-21 15:47:58 -0800928#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800929
Marat Dukhan4c617792021-12-21 15:47:58 -0800930#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan12e426c2021-08-06 22:09:44 -0700931 BENCHMARK_CAPTURE(f32_velu, wasm_lut16_p3_x1,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800932 xnn_f32_velu_ukernel__wasm_rr2_lut16_p3_x1,
933 xnn_init_f32_elu_scalar_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700934 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800935 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700936 BENCHMARK_CAPTURE(f32_velu, wasm_lut16_p3_x2,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800937 xnn_f32_velu_ukernel__wasm_rr2_lut16_p3_x2,
938 xnn_init_f32_elu_scalar_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700939 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800940 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700941 BENCHMARK_CAPTURE(f32_velu, wasm_lut16_p3_x3,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800942 xnn_f32_velu_ukernel__wasm_rr2_lut16_p3_x3,
943 xnn_init_f32_elu_scalar_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700944 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800945 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700946 BENCHMARK_CAPTURE(f32_velu, wasm_lut16_p3_x4,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800947 xnn_f32_velu_ukernel__wasm_rr2_lut16_p3_x4,
948 xnn_init_f32_elu_scalar_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700949 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800950 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700951 BENCHMARK_CAPTURE(f32_velu, wasm_lut16_p3_x5,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800952 xnn_f32_velu_ukernel__wasm_rr2_lut16_p3_x5,
953 xnn_init_f32_elu_scalar_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700954 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800955 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700956 BENCHMARK_CAPTURE(f32_velu, wasm_lut16_p3_x6,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800957 xnn_f32_velu_ukernel__wasm_rr2_lut16_p3_x6,
958 xnn_init_f32_elu_scalar_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700959 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800960 ->UseRealTime();
961
Marat Dukhan12e426c2021-08-06 22:09:44 -0700962 BENCHMARK_CAPTURE(f32_velu, wasm_p6_x1,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800963 xnn_f32_velu_ukernel__wasm_rr2_p6_x1,
964 xnn_init_f32_elu_scalar_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700965 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800966 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700967 BENCHMARK_CAPTURE(f32_velu, wasm_p6_x2,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800968 xnn_f32_velu_ukernel__wasm_rr2_p6_x2,
969 xnn_init_f32_elu_scalar_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700970 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800971 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700972 BENCHMARK_CAPTURE(f32_velu, wasm_p6_x3,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800973 xnn_f32_velu_ukernel__wasm_rr2_p6_x3,
974 xnn_init_f32_elu_scalar_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700975 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800976 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700977 BENCHMARK_CAPTURE(f32_velu, wasm_p6_x4,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800978 xnn_f32_velu_ukernel__wasm_rr2_p6_x4,
979 xnn_init_f32_elu_scalar_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700980 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800981 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700982 BENCHMARK_CAPTURE(f32_velu, wasm_p6_x5,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800983 xnn_f32_velu_ukernel__wasm_rr2_p6_x5,
984 xnn_init_f32_elu_scalar_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700985 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800986 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700987 BENCHMARK_CAPTURE(f32_velu, wasm_p6_x6,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800988 xnn_f32_velu_ukernel__wasm_rr2_p6_x6,
989 xnn_init_f32_elu_scalar_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700990 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800991 ->UseRealTime();
Marat Dukhan4c617792021-12-21 15:47:58 -0800992#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800993
Marat Dukhan12e426c2021-08-06 22:09:44 -0700994BENCHMARK_CAPTURE(f32_velu, scalar_lut16_p3_x1,
Marat Dukhan4a79ff22022-01-01 12:16:48 -0800995 xnn_f32_velu_ukernel__scalar_rr2_lut16_p3_x1,
996 xnn_init_f32_elu_scalar_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -0700997 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -0800998 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -0700999BENCHMARK_CAPTURE(f32_velu, scalar_lut16_p3_x2,
Marat Dukhan4a79ff22022-01-01 12:16:48 -08001000 xnn_f32_velu_ukernel__scalar_rr2_lut16_p3_x2,
1001 xnn_init_f32_elu_scalar_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -07001002 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -08001003 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -07001004BENCHMARK_CAPTURE(f32_velu, scalar_lut16_p3_x3,
Marat Dukhan4a79ff22022-01-01 12:16:48 -08001005 xnn_f32_velu_ukernel__scalar_rr2_lut16_p3_x3,
1006 xnn_init_f32_elu_scalar_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -07001007 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -08001008 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -07001009BENCHMARK_CAPTURE(f32_velu, scalar_lut16_p3_x4,
Marat Dukhan4a79ff22022-01-01 12:16:48 -08001010 xnn_f32_velu_ukernel__scalar_rr2_lut16_p3_x4,
1011 xnn_init_f32_elu_scalar_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -07001012 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -08001013 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -07001014BENCHMARK_CAPTURE(f32_velu, scalar_lut16_p3_x5,
Marat Dukhan4a79ff22022-01-01 12:16:48 -08001015 xnn_f32_velu_ukernel__scalar_rr2_lut16_p3_x5,
1016 xnn_init_f32_elu_scalar_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -07001017 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -08001018 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -07001019BENCHMARK_CAPTURE(f32_velu, scalar_lut16_p3_x6,
Marat Dukhan4a79ff22022-01-01 12:16:48 -08001020 xnn_f32_velu_ukernel__scalar_rr2_lut16_p3_x6,
1021 xnn_init_f32_elu_scalar_rr2_lut16_p3_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -07001022 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -08001023 ->UseRealTime();
1024
Marat Dukhan12e426c2021-08-06 22:09:44 -07001025BENCHMARK_CAPTURE(f32_velu, scalar_p6_x1,
Marat Dukhan4a79ff22022-01-01 12:16:48 -08001026 xnn_f32_velu_ukernel__scalar_rr2_p6_x1,
1027 xnn_init_f32_elu_scalar_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -07001028 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -08001029 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -07001030BENCHMARK_CAPTURE(f32_velu, scalar_p6_x2,
Marat Dukhan4a79ff22022-01-01 12:16:48 -08001031 xnn_f32_velu_ukernel__scalar_rr2_p6_x2,
1032 xnn_init_f32_elu_scalar_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -07001033 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -08001034 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -07001035BENCHMARK_CAPTURE(f32_velu, scalar_p6_x3,
Marat Dukhan4a79ff22022-01-01 12:16:48 -08001036 xnn_f32_velu_ukernel__scalar_rr2_p6_x3,
1037 xnn_init_f32_elu_scalar_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -07001038 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -08001039 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -07001040BENCHMARK_CAPTURE(f32_velu, scalar_p6_x4,
Marat Dukhan4a79ff22022-01-01 12:16:48 -08001041 xnn_f32_velu_ukernel__scalar_rr2_p6_x4,
1042 xnn_init_f32_elu_scalar_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -07001043 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -08001044 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -07001045BENCHMARK_CAPTURE(f32_velu, scalar_p6_x5,
Marat Dukhan4a79ff22022-01-01 12:16:48 -08001046 xnn_f32_velu_ukernel__scalar_rr2_p6_x5,
1047 xnn_init_f32_elu_scalar_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -07001048 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -08001049 ->UseRealTime();
Marat Dukhan12e426c2021-08-06 22:09:44 -07001050BENCHMARK_CAPTURE(f32_velu, scalar_p6_x6,
Marat Dukhan4a79ff22022-01-01 12:16:48 -08001051 xnn_f32_velu_ukernel__scalar_rr2_p6_x6,
1052 xnn_init_f32_elu_scalar_rr2_p6_params)
Marat Dukhan12e426c2021-08-06 22:09:44 -07001053 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhaned6baaf2020-12-01 15:07:08 -08001054 ->UseRealTime();
1055
1056#ifndef XNNPACK_BENCHMARK_NO_MAIN
1057BENCHMARK_MAIN();
1058#endif