blob: f45c6866d81b380fb072ea88547935ec4e77f586 [file] [log] [blame]
Marat Dukhan6674d692021-05-05 22:27:00 -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!
7// Specification: test/f16-vrelu.yaml
8// Generator: tools/generate-vunary-test.py
9
10
11#include <gtest/gtest.h>
12
13#include <xnnpack/common.h>
14#include <xnnpack/isa-checks.h>
15
16#include <xnnpack/vunary.h>
17#include "vunary-microkernel-tester.h"
18
19
20#if XNN_ARCH_ARM64
21 TEST(F16_VRELU__NEONFP16ARITH_X8, batch_eq_8) {
22 TEST_REQUIRES_ARM_NEON_FP16_ARITH;
Marat Dukhan87ed45c2021-05-13 12:25:22 -070023 VUnaryMicrokernelTester()
Marat Dukhan6674d692021-05-05 22:27:00 -070024 .batch_size(8)
Frank Barcharda03020a2021-06-28 15:44:06 -070025 .Test(xnn_f16_vrelu_ukernel__neonfp16arith_x8, VUnaryMicrokernelTester::OpType::ReLU);
Marat Dukhan6674d692021-05-05 22:27:00 -070026 }
27
28 TEST(F16_VRELU__NEONFP16ARITH_X8, batch_div_8) {
29 TEST_REQUIRES_ARM_NEON_FP16_ARITH;
30 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -070031 VUnaryMicrokernelTester()
Marat Dukhan6674d692021-05-05 22:27:00 -070032 .batch_size(batch_size)
Frank Barcharda03020a2021-06-28 15:44:06 -070033 .Test(xnn_f16_vrelu_ukernel__neonfp16arith_x8, VUnaryMicrokernelTester::OpType::ReLU);
Marat Dukhan6674d692021-05-05 22:27:00 -070034 }
35 }
36
37 TEST(F16_VRELU__NEONFP16ARITH_X8, batch_lt_8) {
38 TEST_REQUIRES_ARM_NEON_FP16_ARITH;
39 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -070040 VUnaryMicrokernelTester()
Marat Dukhan6674d692021-05-05 22:27:00 -070041 .batch_size(batch_size)
Frank Barcharda03020a2021-06-28 15:44:06 -070042 .Test(xnn_f16_vrelu_ukernel__neonfp16arith_x8, VUnaryMicrokernelTester::OpType::ReLU);
Marat Dukhan6674d692021-05-05 22:27:00 -070043 }
44 }
45
46 TEST(F16_VRELU__NEONFP16ARITH_X8, batch_gt_8) {
47 TEST_REQUIRES_ARM_NEON_FP16_ARITH;
48 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -070049 VUnaryMicrokernelTester()
Marat Dukhan6674d692021-05-05 22:27:00 -070050 .batch_size(batch_size)
Frank Barcharda03020a2021-06-28 15:44:06 -070051 .Test(xnn_f16_vrelu_ukernel__neonfp16arith_x8, VUnaryMicrokernelTester::OpType::ReLU);
Marat Dukhan6674d692021-05-05 22:27:00 -070052 }
53 }
54
55 TEST(F16_VRELU__NEONFP16ARITH_X8, inplace) {
56 TEST_REQUIRES_ARM_NEON_FP16_ARITH;
57 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -070058 VUnaryMicrokernelTester()
Marat Dukhan6674d692021-05-05 22:27:00 -070059 .batch_size(batch_size)
60 .inplace(true)
Frank Barcharda03020a2021-06-28 15:44:06 -070061 .Test(xnn_f16_vrelu_ukernel__neonfp16arith_x8, VUnaryMicrokernelTester::OpType::ReLU);
Marat Dukhan6674d692021-05-05 22:27:00 -070062 }
63 }
64#endif // XNN_ARCH_ARM64
65
66
67#if XNN_ARCH_ARM64
68 TEST(F16_VRELU__NEONFP16ARITH_X16, batch_eq_16) {
69 TEST_REQUIRES_ARM_NEON_FP16_ARITH;
Marat Dukhan87ed45c2021-05-13 12:25:22 -070070 VUnaryMicrokernelTester()
Marat Dukhan6674d692021-05-05 22:27:00 -070071 .batch_size(16)
Frank Barcharda03020a2021-06-28 15:44:06 -070072 .Test(xnn_f16_vrelu_ukernel__neonfp16arith_x16, VUnaryMicrokernelTester::OpType::ReLU);
Marat Dukhan6674d692021-05-05 22:27:00 -070073 }
74
75 TEST(F16_VRELU__NEONFP16ARITH_X16, batch_div_16) {
76 TEST_REQUIRES_ARM_NEON_FP16_ARITH;
77 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -070078 VUnaryMicrokernelTester()
Marat Dukhan6674d692021-05-05 22:27:00 -070079 .batch_size(batch_size)
Frank Barcharda03020a2021-06-28 15:44:06 -070080 .Test(xnn_f16_vrelu_ukernel__neonfp16arith_x16, VUnaryMicrokernelTester::OpType::ReLU);
Marat Dukhan6674d692021-05-05 22:27:00 -070081 }
82 }
83
84 TEST(F16_VRELU__NEONFP16ARITH_X16, batch_lt_16) {
85 TEST_REQUIRES_ARM_NEON_FP16_ARITH;
86 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -070087 VUnaryMicrokernelTester()
Marat Dukhan6674d692021-05-05 22:27:00 -070088 .batch_size(batch_size)
Frank Barcharda03020a2021-06-28 15:44:06 -070089 .Test(xnn_f16_vrelu_ukernel__neonfp16arith_x16, VUnaryMicrokernelTester::OpType::ReLU);
Marat Dukhan6674d692021-05-05 22:27:00 -070090 }
91 }
92
93 TEST(F16_VRELU__NEONFP16ARITH_X16, batch_gt_16) {
94 TEST_REQUIRES_ARM_NEON_FP16_ARITH;
95 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -070096 VUnaryMicrokernelTester()
Marat Dukhan6674d692021-05-05 22:27:00 -070097 .batch_size(batch_size)
Frank Barcharda03020a2021-06-28 15:44:06 -070098 .Test(xnn_f16_vrelu_ukernel__neonfp16arith_x16, VUnaryMicrokernelTester::OpType::ReLU);
Marat Dukhan6674d692021-05-05 22:27:00 -070099 }
100 }
101
102 TEST(F16_VRELU__NEONFP16ARITH_X16, inplace) {
103 TEST_REQUIRES_ARM_NEON_FP16_ARITH;
104 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700105 VUnaryMicrokernelTester()
Marat Dukhan6674d692021-05-05 22:27:00 -0700106 .batch_size(batch_size)
107 .inplace(true)
Frank Barcharda03020a2021-06-28 15:44:06 -0700108 .Test(xnn_f16_vrelu_ukernel__neonfp16arith_x16, VUnaryMicrokernelTester::OpType::ReLU);
Marat Dukhan6674d692021-05-05 22:27:00 -0700109 }
110 }
111#endif // XNN_ARCH_ARM64