blob: bbf104037e2ee034a2313789071318e460bfaef7 [file] [log] [blame]
Frank Barchardb1966592020-05-12 13:47:06 -07001// Copyright 2019 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// Auto-generated file. Do not edit!
Marat Dukhan6674d692021-05-05 22:27:00 -07007// Specification: test/f16-vhswish.yaml
Marat Dukhana6c05162021-05-13 16:52:02 -07008// Generator: tools/generate-vunary-test.py
Frank Barchardb1966592020-05-12 13:47:06 -07009
10
11#include <gtest/gtest.h>
12
13#include <xnnpack/common.h>
14#include <xnnpack/isa-checks.h>
15
Marat Dukhana91559a2021-05-05 23:58:21 -070016#include <xnnpack/vunary.h>
Marat Dukhana6c05162021-05-13 16:52:02 -070017#include "vunary-microkernel-tester.h"
Frank Barchardb1966592020-05-12 13:47:06 -070018
19
20#if XNN_ARCH_ARM64
Marat Dukhan6674d692021-05-05 22:27:00 -070021 TEST(F16_VHSWISH__NEONFP16ARITH_X8, batch_eq_8) {
Frank Barchardb1966592020-05-12 13:47:06 -070022 TEST_REQUIRES_ARM_NEON_FP16_ARITH;
Marat Dukhana6c05162021-05-13 16:52:02 -070023 VUnaryMicrokernelTester()
Frank Barchardb1966592020-05-12 13:47:06 -070024 .batch_size(8)
Marat Dukhan751f6222022-01-09 23:10:04 -080025 .Test(xnn_f16_vhswish_ukernel__neonfp16arith_x8, xnn_init_f16_hswish_neon_params);
Frank Barchardb1966592020-05-12 13:47:06 -070026 }
27
Marat Dukhan6674d692021-05-05 22:27:00 -070028 TEST(F16_VHSWISH__NEONFP16ARITH_X8, batch_div_8) {
Frank Barchardb1966592020-05-12 13:47:06 -070029 TEST_REQUIRES_ARM_NEON_FP16_ARITH;
30 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhana6c05162021-05-13 16:52:02 -070031 VUnaryMicrokernelTester()
Frank Barchardb1966592020-05-12 13:47:06 -070032 .batch_size(batch_size)
Marat Dukhan751f6222022-01-09 23:10:04 -080033 .Test(xnn_f16_vhswish_ukernel__neonfp16arith_x8, xnn_init_f16_hswish_neon_params);
Frank Barchardb1966592020-05-12 13:47:06 -070034 }
35 }
36
Marat Dukhan6674d692021-05-05 22:27:00 -070037 TEST(F16_VHSWISH__NEONFP16ARITH_X8, batch_lt_8) {
Frank Barchardb1966592020-05-12 13:47:06 -070038 TEST_REQUIRES_ARM_NEON_FP16_ARITH;
39 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhana6c05162021-05-13 16:52:02 -070040 VUnaryMicrokernelTester()
Frank Barchardb1966592020-05-12 13:47:06 -070041 .batch_size(batch_size)
Marat Dukhan751f6222022-01-09 23:10:04 -080042 .Test(xnn_f16_vhswish_ukernel__neonfp16arith_x8, xnn_init_f16_hswish_neon_params);
Frank Barchardb1966592020-05-12 13:47:06 -070043 }
44 }
45
Marat Dukhan6674d692021-05-05 22:27:00 -070046 TEST(F16_VHSWISH__NEONFP16ARITH_X8, batch_gt_8) {
Frank Barchardb1966592020-05-12 13:47:06 -070047 TEST_REQUIRES_ARM_NEON_FP16_ARITH;
48 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhana6c05162021-05-13 16:52:02 -070049 VUnaryMicrokernelTester()
Frank Barchardb1966592020-05-12 13:47:06 -070050 .batch_size(batch_size)
Marat Dukhan751f6222022-01-09 23:10:04 -080051 .Test(xnn_f16_vhswish_ukernel__neonfp16arith_x8, xnn_init_f16_hswish_neon_params);
Frank Barchardb1966592020-05-12 13:47:06 -070052 }
53 }
54
Marat Dukhan6674d692021-05-05 22:27:00 -070055 TEST(F16_VHSWISH__NEONFP16ARITH_X8, inplace) {
Frank Barchardb1966592020-05-12 13:47:06 -070056 TEST_REQUIRES_ARM_NEON_FP16_ARITH;
57 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhana6c05162021-05-13 16:52:02 -070058 VUnaryMicrokernelTester()
Frank Barchardb1966592020-05-12 13:47:06 -070059 .batch_size(batch_size)
60 .inplace(true)
Marat Dukhan751f6222022-01-09 23:10:04 -080061 .Test(xnn_f16_vhswish_ukernel__neonfp16arith_x8, xnn_init_f16_hswish_neon_params);
Frank Barchardb1966592020-05-12 13:47:06 -070062 }
63 }
64#endif // XNN_ARCH_ARM64
65
66
67#if XNN_ARCH_ARM64
Marat Dukhan6674d692021-05-05 22:27:00 -070068 TEST(F16_VHSWISH__NEONFP16ARITH_X16, batch_eq_16) {
Frank Barchardb1966592020-05-12 13:47:06 -070069 TEST_REQUIRES_ARM_NEON_FP16_ARITH;
Marat Dukhana6c05162021-05-13 16:52:02 -070070 VUnaryMicrokernelTester()
Frank Barchardb1966592020-05-12 13:47:06 -070071 .batch_size(16)
Marat Dukhan751f6222022-01-09 23:10:04 -080072 .Test(xnn_f16_vhswish_ukernel__neonfp16arith_x16, xnn_init_f16_hswish_neon_params);
Frank Barchardb1966592020-05-12 13:47:06 -070073 }
74
Marat Dukhan6674d692021-05-05 22:27:00 -070075 TEST(F16_VHSWISH__NEONFP16ARITH_X16, batch_div_16) {
Frank Barchardb1966592020-05-12 13:47:06 -070076 TEST_REQUIRES_ARM_NEON_FP16_ARITH;
77 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
Marat Dukhana6c05162021-05-13 16:52:02 -070078 VUnaryMicrokernelTester()
Frank Barchardb1966592020-05-12 13:47:06 -070079 .batch_size(batch_size)
Marat Dukhan751f6222022-01-09 23:10:04 -080080 .Test(xnn_f16_vhswish_ukernel__neonfp16arith_x16, xnn_init_f16_hswish_neon_params);
Frank Barchardb1966592020-05-12 13:47:06 -070081 }
82 }
83
Marat Dukhan6674d692021-05-05 22:27:00 -070084 TEST(F16_VHSWISH__NEONFP16ARITH_X16, batch_lt_16) {
Frank Barchardb1966592020-05-12 13:47:06 -070085 TEST_REQUIRES_ARM_NEON_FP16_ARITH;
86 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
Marat Dukhana6c05162021-05-13 16:52:02 -070087 VUnaryMicrokernelTester()
Frank Barchardb1966592020-05-12 13:47:06 -070088 .batch_size(batch_size)
Marat Dukhan751f6222022-01-09 23:10:04 -080089 .Test(xnn_f16_vhswish_ukernel__neonfp16arith_x16, xnn_init_f16_hswish_neon_params);
Frank Barchardb1966592020-05-12 13:47:06 -070090 }
91 }
92
Marat Dukhan6674d692021-05-05 22:27:00 -070093 TEST(F16_VHSWISH__NEONFP16ARITH_X16, batch_gt_16) {
Frank Barchardb1966592020-05-12 13:47:06 -070094 TEST_REQUIRES_ARM_NEON_FP16_ARITH;
95 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
Marat Dukhana6c05162021-05-13 16:52:02 -070096 VUnaryMicrokernelTester()
Frank Barchardb1966592020-05-12 13:47:06 -070097 .batch_size(batch_size)
Marat Dukhan751f6222022-01-09 23:10:04 -080098 .Test(xnn_f16_vhswish_ukernel__neonfp16arith_x16, xnn_init_f16_hswish_neon_params);
Frank Barchardb1966592020-05-12 13:47:06 -070099 }
100 }
101
Marat Dukhan6674d692021-05-05 22:27:00 -0700102 TEST(F16_VHSWISH__NEONFP16ARITH_X16, inplace) {
Frank Barchardb1966592020-05-12 13:47:06 -0700103 TEST_REQUIRES_ARM_NEON_FP16_ARITH;
104 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhana6c05162021-05-13 16:52:02 -0700105 VUnaryMicrokernelTester()
Frank Barchardb1966592020-05-12 13:47:06 -0700106 .batch_size(batch_size)
107 .inplace(true)
Marat Dukhan751f6222022-01-09 23:10:04 -0800108 .Test(xnn_f16_vhswish_ukernel__neonfp16arith_x16, xnn_init_f16_hswish_neon_params);
Frank Barchardb1966592020-05-12 13:47:06 -0700109 }
110 }
111#endif // XNN_ARCH_ARM64
Marat Dukhan751f6222022-01-09 23:10:04 -0800112
113
114#if XNN_ARCH_X86 || XNN_ARCH_X86_64
115 TEST(F16_VHSWISH__F16C_X8, batch_eq_8) {
116 TEST_REQUIRES_X86_F16C;
117 VUnaryMicrokernelTester()
118 .batch_size(8)
119 .Test(xnn_f16_vhswish_ukernel__f16c_x8, xnn_init_f16_hswish_avx_params);
120 }
121
122 TEST(F16_VHSWISH__F16C_X8, batch_div_8) {
123 TEST_REQUIRES_X86_F16C;
124 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
125 VUnaryMicrokernelTester()
126 .batch_size(batch_size)
127 .Test(xnn_f16_vhswish_ukernel__f16c_x8, xnn_init_f16_hswish_avx_params);
128 }
129 }
130
131 TEST(F16_VHSWISH__F16C_X8, batch_lt_8) {
132 TEST_REQUIRES_X86_F16C;
133 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
134 VUnaryMicrokernelTester()
135 .batch_size(batch_size)
136 .Test(xnn_f16_vhswish_ukernel__f16c_x8, xnn_init_f16_hswish_avx_params);
137 }
138 }
139
140 TEST(F16_VHSWISH__F16C_X8, batch_gt_8) {
141 TEST_REQUIRES_X86_F16C;
142 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
143 VUnaryMicrokernelTester()
144 .batch_size(batch_size)
145 .Test(xnn_f16_vhswish_ukernel__f16c_x8, xnn_init_f16_hswish_avx_params);
146 }
147 }
148
149 TEST(F16_VHSWISH__F16C_X8, inplace) {
150 TEST_REQUIRES_X86_F16C;
151 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
152 VUnaryMicrokernelTester()
153 .batch_size(batch_size)
154 .inplace(true)
155 .Test(xnn_f16_vhswish_ukernel__f16c_x8, xnn_init_f16_hswish_avx_params);
156 }
157 }
158#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
159
160
161#if XNN_ARCH_X86 || XNN_ARCH_X86_64
162 TEST(F16_VHSWISH__F16C_X16, batch_eq_16) {
163 TEST_REQUIRES_X86_F16C;
164 VUnaryMicrokernelTester()
165 .batch_size(16)
166 .Test(xnn_f16_vhswish_ukernel__f16c_x16, xnn_init_f16_hswish_avx_params);
167 }
168
169 TEST(F16_VHSWISH__F16C_X16, batch_div_16) {
170 TEST_REQUIRES_X86_F16C;
171 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
172 VUnaryMicrokernelTester()
173 .batch_size(batch_size)
174 .Test(xnn_f16_vhswish_ukernel__f16c_x16, xnn_init_f16_hswish_avx_params);
175 }
176 }
177
178 TEST(F16_VHSWISH__F16C_X16, batch_lt_16) {
179 TEST_REQUIRES_X86_F16C;
180 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
181 VUnaryMicrokernelTester()
182 .batch_size(batch_size)
183 .Test(xnn_f16_vhswish_ukernel__f16c_x16, xnn_init_f16_hswish_avx_params);
184 }
185 }
186
187 TEST(F16_VHSWISH__F16C_X16, batch_gt_16) {
188 TEST_REQUIRES_X86_F16C;
189 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
190 VUnaryMicrokernelTester()
191 .batch_size(batch_size)
192 .Test(xnn_f16_vhswish_ukernel__f16c_x16, xnn_init_f16_hswish_avx_params);
193 }
194 }
195
196 TEST(F16_VHSWISH__F16C_X16, inplace) {
197 TEST_REQUIRES_X86_F16C;
198 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
199 VUnaryMicrokernelTester()
200 .batch_size(batch_size)
201 .inplace(true)
202 .Test(xnn_f16_vhswish_ukernel__f16c_x16, xnn_init_f16_hswish_avx_params);
203 }
204 }
205#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64