xref: /aosp_15_r20/external/XNNPACK/test/f16-raddstoreexpminusmax.cc (revision 4bdc94577ba0e567308109d787f7fec7b531ce36)
1*4bdc9457SAndroid Build Coastguard Worker // Copyright 2019 Google LLC
2*4bdc9457SAndroid Build Coastguard Worker //
3*4bdc9457SAndroid Build Coastguard Worker // This source code is licensed under the BSD-style license found in the
4*4bdc9457SAndroid Build Coastguard Worker // LICENSE file in the root directory of this source tree.
5*4bdc9457SAndroid Build Coastguard Worker //
6*4bdc9457SAndroid Build Coastguard Worker // Auto-generated file. Do not edit!
7*4bdc9457SAndroid Build Coastguard Worker //   Specification: test/f16-raddstoreexpminusmax.yaml
8*4bdc9457SAndroid Build Coastguard Worker //   Generator: tools/generate-raddstoreexpminusmax-test.py
9*4bdc9457SAndroid Build Coastguard Worker 
10*4bdc9457SAndroid Build Coastguard Worker 
11*4bdc9457SAndroid Build Coastguard Worker #include <gtest/gtest.h>
12*4bdc9457SAndroid Build Coastguard Worker 
13*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/common.h>
14*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/isa-checks.h>
15*4bdc9457SAndroid Build Coastguard Worker 
16*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/raddstoreexpminusmax.h>
17*4bdc9457SAndroid Build Coastguard Worker #include "raddstoreexpminusmax-microkernel-tester.h"
18*4bdc9457SAndroid Build Coastguard Worker 
19*4bdc9457SAndroid Build Coastguard Worker 
20*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32,elements_eq_32)21*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32, elements_eq_32) {
22*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
23*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
24*4bdc9457SAndroid Build Coastguard Worker       .elements(32)
25*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x32, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
26*4bdc9457SAndroid Build Coastguard Worker   }
27*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32,elements_div_32)28*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32, elements_div_32) {
29*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
30*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 64; elements < 320; elements += 32) {
31*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
32*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
33*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x32, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
34*4bdc9457SAndroid Build Coastguard Worker     }
35*4bdc9457SAndroid Build Coastguard Worker   }
36*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32,elements_lt_32)37*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32, elements_lt_32) {
38*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
39*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 32; elements++) {
40*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
41*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
42*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x32, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
43*4bdc9457SAndroid Build Coastguard Worker     }
44*4bdc9457SAndroid Build Coastguard Worker   }
45*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32,elements_gt_32)46*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32, elements_gt_32) {
47*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
48*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 33; elements < 64; elements++) {
49*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
50*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
51*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x32, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
52*4bdc9457SAndroid Build Coastguard Worker     }
53*4bdc9457SAndroid Build Coastguard Worker   }
54*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
55*4bdc9457SAndroid Build Coastguard Worker 
56*4bdc9457SAndroid Build Coastguard Worker 
57*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC2,elements_eq_32)58*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC2, elements_eq_32) {
59*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
60*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
61*4bdc9457SAndroid Build Coastguard Worker       .elements(32)
62*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x32_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
63*4bdc9457SAndroid Build Coastguard Worker   }
64*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC2,elements_div_32)65*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC2, elements_div_32) {
66*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
67*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 64; elements < 320; elements += 32) {
68*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
69*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
70*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x32_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
71*4bdc9457SAndroid Build Coastguard Worker     }
72*4bdc9457SAndroid Build Coastguard Worker   }
73*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC2,elements_lt_32)74*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC2, elements_lt_32) {
75*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
76*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 32; elements++) {
77*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
78*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
79*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x32_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
80*4bdc9457SAndroid Build Coastguard Worker     }
81*4bdc9457SAndroid Build Coastguard Worker   }
82*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC2,elements_gt_32)83*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC2, elements_gt_32) {
84*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
85*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 33; elements < 64; elements++) {
86*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
87*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
88*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x32_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
89*4bdc9457SAndroid Build Coastguard Worker     }
90*4bdc9457SAndroid Build Coastguard Worker   }
91*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
92*4bdc9457SAndroid Build Coastguard Worker 
93*4bdc9457SAndroid Build Coastguard Worker 
94*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC4,elements_eq_32)95*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC4, elements_eq_32) {
96*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
97*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
98*4bdc9457SAndroid Build Coastguard Worker       .elements(32)
99*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x32_acc4, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
100*4bdc9457SAndroid Build Coastguard Worker   }
101*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC4,elements_div_32)102*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC4, elements_div_32) {
103*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
104*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 64; elements < 320; elements += 32) {
105*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
106*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
107*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x32_acc4, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
108*4bdc9457SAndroid Build Coastguard Worker     }
109*4bdc9457SAndroid Build Coastguard Worker   }
110*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC4,elements_lt_32)111*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC4, elements_lt_32) {
112*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
113*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 32; elements++) {
114*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
115*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
116*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x32_acc4, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
117*4bdc9457SAndroid Build Coastguard Worker     }
118*4bdc9457SAndroid Build Coastguard Worker   }
119*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC4,elements_gt_32)120*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC4, elements_gt_32) {
121*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
122*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 33; elements < 64; elements++) {
123*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
124*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
125*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x32_acc4, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
126*4bdc9457SAndroid Build Coastguard Worker     }
127*4bdc9457SAndroid Build Coastguard Worker   }
128*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
129*4bdc9457SAndroid Build Coastguard Worker 
130*4bdc9457SAndroid Build Coastguard Worker 
131*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40,elements_eq_40)132*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40, elements_eq_40) {
133*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
134*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
135*4bdc9457SAndroid Build Coastguard Worker       .elements(40)
136*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x40, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
137*4bdc9457SAndroid Build Coastguard Worker   }
138*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40,elements_div_40)139*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40, elements_div_40) {
140*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
141*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 80; elements < 400; elements += 40) {
142*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
143*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
144*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x40, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
145*4bdc9457SAndroid Build Coastguard Worker     }
146*4bdc9457SAndroid Build Coastguard Worker   }
147*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40,elements_lt_40)148*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40, elements_lt_40) {
149*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
150*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 40; elements++) {
151*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
152*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
153*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x40, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
154*4bdc9457SAndroid Build Coastguard Worker     }
155*4bdc9457SAndroid Build Coastguard Worker   }
156*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40,elements_gt_40)157*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40, elements_gt_40) {
158*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
159*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 41; elements < 80; elements++) {
160*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
161*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
162*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x40, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
163*4bdc9457SAndroid Build Coastguard Worker     }
164*4bdc9457SAndroid Build Coastguard Worker   }
165*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
166*4bdc9457SAndroid Build Coastguard Worker 
167*4bdc9457SAndroid Build Coastguard Worker 
168*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC2,elements_eq_40)169*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC2, elements_eq_40) {
170*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
171*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
172*4bdc9457SAndroid Build Coastguard Worker       .elements(40)
173*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x40_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
174*4bdc9457SAndroid Build Coastguard Worker   }
175*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC2,elements_div_40)176*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC2, elements_div_40) {
177*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
178*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 80; elements < 400; elements += 40) {
179*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
180*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
181*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x40_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
182*4bdc9457SAndroid Build Coastguard Worker     }
183*4bdc9457SAndroid Build Coastguard Worker   }
184*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC2,elements_lt_40)185*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC2, elements_lt_40) {
186*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
187*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 40; elements++) {
188*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
189*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
190*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x40_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
191*4bdc9457SAndroid Build Coastguard Worker     }
192*4bdc9457SAndroid Build Coastguard Worker   }
193*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC2,elements_gt_40)194*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC2, elements_gt_40) {
195*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
196*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 41; elements < 80; elements++) {
197*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
198*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
199*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x40_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
200*4bdc9457SAndroid Build Coastguard Worker     }
201*4bdc9457SAndroid Build Coastguard Worker   }
202*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
203*4bdc9457SAndroid Build Coastguard Worker 
204*4bdc9457SAndroid Build Coastguard Worker 
205*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC5,elements_eq_40)206*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC5, elements_eq_40) {
207*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
208*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
209*4bdc9457SAndroid Build Coastguard Worker       .elements(40)
210*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x40_acc5, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
211*4bdc9457SAndroid Build Coastguard Worker   }
212*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC5,elements_div_40)213*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC5, elements_div_40) {
214*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
215*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 80; elements < 400; elements += 40) {
216*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
217*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
218*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x40_acc5, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
219*4bdc9457SAndroid Build Coastguard Worker     }
220*4bdc9457SAndroid Build Coastguard Worker   }
221*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC5,elements_lt_40)222*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC5, elements_lt_40) {
223*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
224*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 40; elements++) {
225*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
226*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
227*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x40_acc5, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
228*4bdc9457SAndroid Build Coastguard Worker     }
229*4bdc9457SAndroid Build Coastguard Worker   }
230*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC5,elements_gt_40)231*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC5, elements_gt_40) {
232*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
233*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 41; elements < 80; elements++) {
234*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
235*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
236*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x40_acc5, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
237*4bdc9457SAndroid Build Coastguard Worker     }
238*4bdc9457SAndroid Build Coastguard Worker   }
239*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
240*4bdc9457SAndroid Build Coastguard Worker 
241*4bdc9457SAndroid Build Coastguard Worker 
242*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48,elements_eq_48)243*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48, elements_eq_48) {
244*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
245*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
246*4bdc9457SAndroid Build Coastguard Worker       .elements(48)
247*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x48, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
248*4bdc9457SAndroid Build Coastguard Worker   }
249*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48,elements_div_48)250*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48, elements_div_48) {
251*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
252*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 96; elements < 480; elements += 48) {
253*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
254*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
255*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x48, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
256*4bdc9457SAndroid Build Coastguard Worker     }
257*4bdc9457SAndroid Build Coastguard Worker   }
258*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48,elements_lt_48)259*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48, elements_lt_48) {
260*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
261*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 48; elements++) {
262*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
263*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
264*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x48, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
265*4bdc9457SAndroid Build Coastguard Worker     }
266*4bdc9457SAndroid Build Coastguard Worker   }
267*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48,elements_gt_48)268*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48, elements_gt_48) {
269*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
270*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 49; elements < 96; elements++) {
271*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
272*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
273*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x48, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
274*4bdc9457SAndroid Build Coastguard Worker     }
275*4bdc9457SAndroid Build Coastguard Worker   }
276*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
277*4bdc9457SAndroid Build Coastguard Worker 
278*4bdc9457SAndroid Build Coastguard Worker 
279*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC2,elements_eq_48)280*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC2, elements_eq_48) {
281*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
282*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
283*4bdc9457SAndroid Build Coastguard Worker       .elements(48)
284*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x48_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
285*4bdc9457SAndroid Build Coastguard Worker   }
286*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC2,elements_div_48)287*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC2, elements_div_48) {
288*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
289*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 96; elements < 480; elements += 48) {
290*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
291*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
292*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x48_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
293*4bdc9457SAndroid Build Coastguard Worker     }
294*4bdc9457SAndroid Build Coastguard Worker   }
295*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC2,elements_lt_48)296*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC2, elements_lt_48) {
297*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
298*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 48; elements++) {
299*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
300*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
301*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x48_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
302*4bdc9457SAndroid Build Coastguard Worker     }
303*4bdc9457SAndroid Build Coastguard Worker   }
304*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC2,elements_gt_48)305*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC2, elements_gt_48) {
306*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
307*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 49; elements < 96; elements++) {
308*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
309*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
310*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x48_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
311*4bdc9457SAndroid Build Coastguard Worker     }
312*4bdc9457SAndroid Build Coastguard Worker   }
313*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
314*4bdc9457SAndroid Build Coastguard Worker 
315*4bdc9457SAndroid Build Coastguard Worker 
316*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC3,elements_eq_48)317*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC3, elements_eq_48) {
318*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
319*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
320*4bdc9457SAndroid Build Coastguard Worker       .elements(48)
321*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x48_acc3, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
322*4bdc9457SAndroid Build Coastguard Worker   }
323*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC3,elements_div_48)324*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC3, elements_div_48) {
325*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
326*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 96; elements < 480; elements += 48) {
327*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
328*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
329*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x48_acc3, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
330*4bdc9457SAndroid Build Coastguard Worker     }
331*4bdc9457SAndroid Build Coastguard Worker   }
332*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC3,elements_lt_48)333*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC3, elements_lt_48) {
334*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
335*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 48; elements++) {
336*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
337*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
338*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x48_acc3, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
339*4bdc9457SAndroid Build Coastguard Worker     }
340*4bdc9457SAndroid Build Coastguard Worker   }
341*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC3,elements_gt_48)342*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC3, elements_gt_48) {
343*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
344*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 49; elements < 96; elements++) {
345*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
346*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
347*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x48_acc3, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
348*4bdc9457SAndroid Build Coastguard Worker     }
349*4bdc9457SAndroid Build Coastguard Worker   }
350*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
351*4bdc9457SAndroid Build Coastguard Worker 
352*4bdc9457SAndroid Build Coastguard Worker 
353*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64,elements_eq_64)354*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64, elements_eq_64) {
355*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
356*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
357*4bdc9457SAndroid Build Coastguard Worker       .elements(64)
358*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x64, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
359*4bdc9457SAndroid Build Coastguard Worker   }
360*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64,elements_div_64)361*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64, elements_div_64) {
362*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
363*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 128; elements < 640; elements += 64) {
364*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
365*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
366*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x64, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
367*4bdc9457SAndroid Build Coastguard Worker     }
368*4bdc9457SAndroid Build Coastguard Worker   }
369*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64,elements_lt_64)370*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64, elements_lt_64) {
371*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
372*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 64; elements++) {
373*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
374*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
375*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x64, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
376*4bdc9457SAndroid Build Coastguard Worker     }
377*4bdc9457SAndroid Build Coastguard Worker   }
378*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64,elements_gt_64)379*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64, elements_gt_64) {
380*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
381*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 65; elements < 128; elements++) {
382*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
383*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
384*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x64, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
385*4bdc9457SAndroid Build Coastguard Worker     }
386*4bdc9457SAndroid Build Coastguard Worker   }
387*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
388*4bdc9457SAndroid Build Coastguard Worker 
389*4bdc9457SAndroid Build Coastguard Worker 
390*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC2,elements_eq_64)391*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC2, elements_eq_64) {
392*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
393*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
394*4bdc9457SAndroid Build Coastguard Worker       .elements(64)
395*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x64_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
396*4bdc9457SAndroid Build Coastguard Worker   }
397*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC2,elements_div_64)398*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC2, elements_div_64) {
399*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
400*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 128; elements < 640; elements += 64) {
401*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
402*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
403*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x64_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
404*4bdc9457SAndroid Build Coastguard Worker     }
405*4bdc9457SAndroid Build Coastguard Worker   }
406*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC2,elements_lt_64)407*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC2, elements_lt_64) {
408*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
409*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 64; elements++) {
410*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
411*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
412*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x64_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
413*4bdc9457SAndroid Build Coastguard Worker     }
414*4bdc9457SAndroid Build Coastguard Worker   }
415*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC2,elements_gt_64)416*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC2, elements_gt_64) {
417*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
418*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 65; elements < 128; elements++) {
419*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
420*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
421*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x64_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
422*4bdc9457SAndroid Build Coastguard Worker     }
423*4bdc9457SAndroid Build Coastguard Worker   }
424*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
425*4bdc9457SAndroid Build Coastguard Worker 
426*4bdc9457SAndroid Build Coastguard Worker 
427*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC4,elements_eq_64)428*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC4, elements_eq_64) {
429*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
430*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
431*4bdc9457SAndroid Build Coastguard Worker       .elements(64)
432*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x64_acc4, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
433*4bdc9457SAndroid Build Coastguard Worker   }
434*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC4,elements_div_64)435*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC4, elements_div_64) {
436*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
437*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 128; elements < 640; elements += 64) {
438*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
439*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
440*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x64_acc4, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
441*4bdc9457SAndroid Build Coastguard Worker     }
442*4bdc9457SAndroid Build Coastguard Worker   }
443*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC4,elements_lt_64)444*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC4, elements_lt_64) {
445*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
446*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 64; elements++) {
447*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
448*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
449*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x64_acc4, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
450*4bdc9457SAndroid Build Coastguard Worker     }
451*4bdc9457SAndroid Build Coastguard Worker   }
452*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC4,elements_gt_64)453*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC4, elements_gt_64) {
454*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
455*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 65; elements < 128; elements++) {
456*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
457*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
458*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x64_acc4, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
459*4bdc9457SAndroid Build Coastguard Worker     }
460*4bdc9457SAndroid Build Coastguard Worker   }
461*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
462*4bdc9457SAndroid Build Coastguard Worker 
463*4bdc9457SAndroid Build Coastguard Worker 
464*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72,elements_eq_72)465*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72, elements_eq_72) {
466*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
467*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
468*4bdc9457SAndroid Build Coastguard Worker       .elements(72)
469*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x72, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
470*4bdc9457SAndroid Build Coastguard Worker   }
471*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72,elements_div_72)472*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72, elements_div_72) {
473*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
474*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 144; elements < 720; elements += 72) {
475*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
476*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
477*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x72, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
478*4bdc9457SAndroid Build Coastguard Worker     }
479*4bdc9457SAndroid Build Coastguard Worker   }
480*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72,elements_lt_72)481*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72, elements_lt_72) {
482*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
483*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 72; elements++) {
484*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
485*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
486*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x72, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
487*4bdc9457SAndroid Build Coastguard Worker     }
488*4bdc9457SAndroid Build Coastguard Worker   }
489*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72,elements_gt_72)490*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72, elements_gt_72) {
491*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
492*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 73; elements < 144; elements++) {
493*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
494*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
495*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x72, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
496*4bdc9457SAndroid Build Coastguard Worker     }
497*4bdc9457SAndroid Build Coastguard Worker   }
498*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
499*4bdc9457SAndroid Build Coastguard Worker 
500*4bdc9457SAndroid Build Coastguard Worker 
501*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72_ACC3,elements_eq_72)502*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72_ACC3, elements_eq_72) {
503*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
504*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
505*4bdc9457SAndroid Build Coastguard Worker       .elements(72)
506*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x72_acc3, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
507*4bdc9457SAndroid Build Coastguard Worker   }
508*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72_ACC3,elements_div_72)509*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72_ACC3, elements_div_72) {
510*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
511*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 144; elements < 720; elements += 72) {
512*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
513*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
514*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x72_acc3, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
515*4bdc9457SAndroid Build Coastguard Worker     }
516*4bdc9457SAndroid Build Coastguard Worker   }
517*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72_ACC3,elements_lt_72)518*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72_ACC3, elements_lt_72) {
519*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
520*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 72; elements++) {
521*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
522*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
523*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x72_acc3, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
524*4bdc9457SAndroid Build Coastguard Worker     }
525*4bdc9457SAndroid Build Coastguard Worker   }
526*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72_ACC3,elements_gt_72)527*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72_ACC3, elements_gt_72) {
528*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
529*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 73; elements < 144; elements++) {
530*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
531*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
532*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x72_acc3, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
533*4bdc9457SAndroid Build Coastguard Worker     }
534*4bdc9457SAndroid Build Coastguard Worker   }
535*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
536*4bdc9457SAndroid Build Coastguard Worker 
537*4bdc9457SAndroid Build Coastguard Worker 
538*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80,elements_eq_80)539*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80, elements_eq_80) {
540*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
541*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
542*4bdc9457SAndroid Build Coastguard Worker       .elements(80)
543*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x80, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
544*4bdc9457SAndroid Build Coastguard Worker   }
545*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80,elements_div_80)546*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80, elements_div_80) {
547*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
548*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 160; elements < 800; elements += 80) {
549*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
550*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
551*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x80, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
552*4bdc9457SAndroid Build Coastguard Worker     }
553*4bdc9457SAndroid Build Coastguard Worker   }
554*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80,elements_lt_80)555*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80, elements_lt_80) {
556*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
557*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 80; elements++) {
558*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
559*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
560*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x80, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
561*4bdc9457SAndroid Build Coastguard Worker     }
562*4bdc9457SAndroid Build Coastguard Worker   }
563*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80,elements_gt_80)564*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80, elements_gt_80) {
565*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
566*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 81; elements < 160; elements++) {
567*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
568*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
569*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x80, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
570*4bdc9457SAndroid Build Coastguard Worker     }
571*4bdc9457SAndroid Build Coastguard Worker   }
572*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
573*4bdc9457SAndroid Build Coastguard Worker 
574*4bdc9457SAndroid Build Coastguard Worker 
575*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC2,elements_eq_80)576*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC2, elements_eq_80) {
577*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
578*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
579*4bdc9457SAndroid Build Coastguard Worker       .elements(80)
580*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x80_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
581*4bdc9457SAndroid Build Coastguard Worker   }
582*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC2,elements_div_80)583*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC2, elements_div_80) {
584*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
585*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 160; elements < 800; elements += 80) {
586*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
587*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
588*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x80_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
589*4bdc9457SAndroid Build Coastguard Worker     }
590*4bdc9457SAndroid Build Coastguard Worker   }
591*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC2,elements_lt_80)592*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC2, elements_lt_80) {
593*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
594*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 80; elements++) {
595*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
596*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
597*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x80_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
598*4bdc9457SAndroid Build Coastguard Worker     }
599*4bdc9457SAndroid Build Coastguard Worker   }
600*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC2,elements_gt_80)601*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC2, elements_gt_80) {
602*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
603*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 81; elements < 160; elements++) {
604*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
605*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
606*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x80_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
607*4bdc9457SAndroid Build Coastguard Worker     }
608*4bdc9457SAndroid Build Coastguard Worker   }
609*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
610*4bdc9457SAndroid Build Coastguard Worker 
611*4bdc9457SAndroid Build Coastguard Worker 
612*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC5,elements_eq_80)613*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC5, elements_eq_80) {
614*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
615*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
616*4bdc9457SAndroid Build Coastguard Worker       .elements(80)
617*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x80_acc5, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
618*4bdc9457SAndroid Build Coastguard Worker   }
619*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC5,elements_div_80)620*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC5, elements_div_80) {
621*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
622*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 160; elements < 800; elements += 80) {
623*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
624*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
625*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x80_acc5, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
626*4bdc9457SAndroid Build Coastguard Worker     }
627*4bdc9457SAndroid Build Coastguard Worker   }
628*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC5,elements_lt_80)629*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC5, elements_lt_80) {
630*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
631*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 80; elements++) {
632*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
633*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
634*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x80_acc5, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
635*4bdc9457SAndroid Build Coastguard Worker     }
636*4bdc9457SAndroid Build Coastguard Worker   }
637*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC5,elements_gt_80)638*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC5, elements_gt_80) {
639*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
640*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 81; elements < 160; elements++) {
641*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
642*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
643*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x80_acc5, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
644*4bdc9457SAndroid Build Coastguard Worker     }
645*4bdc9457SAndroid Build Coastguard Worker   }
646*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
647*4bdc9457SAndroid Build Coastguard Worker 
648*4bdc9457SAndroid Build Coastguard Worker 
649*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96,elements_eq_96)650*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96, elements_eq_96) {
651*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
652*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
653*4bdc9457SAndroid Build Coastguard Worker       .elements(96)
654*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
655*4bdc9457SAndroid Build Coastguard Worker   }
656*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96,elements_div_96)657*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96, elements_div_96) {
658*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
659*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 192; elements < 960; elements += 96) {
660*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
661*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
662*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
663*4bdc9457SAndroid Build Coastguard Worker     }
664*4bdc9457SAndroid Build Coastguard Worker   }
665*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96,elements_lt_96)666*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96, elements_lt_96) {
667*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
668*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 96; elements++) {
669*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
670*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
671*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
672*4bdc9457SAndroid Build Coastguard Worker     }
673*4bdc9457SAndroid Build Coastguard Worker   }
674*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96,elements_gt_96)675*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96, elements_gt_96) {
676*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
677*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 97; elements < 192; elements++) {
678*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
679*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
680*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
681*4bdc9457SAndroid Build Coastguard Worker     }
682*4bdc9457SAndroid Build Coastguard Worker   }
683*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
684*4bdc9457SAndroid Build Coastguard Worker 
685*4bdc9457SAndroid Build Coastguard Worker 
686*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC2,elements_eq_96)687*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC2, elements_eq_96) {
688*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
689*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
690*4bdc9457SAndroid Build Coastguard Worker       .elements(96)
691*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
692*4bdc9457SAndroid Build Coastguard Worker   }
693*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC2,elements_div_96)694*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC2, elements_div_96) {
695*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
696*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 192; elements < 960; elements += 96) {
697*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
698*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
699*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
700*4bdc9457SAndroid Build Coastguard Worker     }
701*4bdc9457SAndroid Build Coastguard Worker   }
702*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC2,elements_lt_96)703*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC2, elements_lt_96) {
704*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
705*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 96; elements++) {
706*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
707*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
708*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
709*4bdc9457SAndroid Build Coastguard Worker     }
710*4bdc9457SAndroid Build Coastguard Worker   }
711*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC2,elements_gt_96)712*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC2, elements_gt_96) {
713*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
714*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 97; elements < 192; elements++) {
715*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
716*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
717*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
718*4bdc9457SAndroid Build Coastguard Worker     }
719*4bdc9457SAndroid Build Coastguard Worker   }
720*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
721*4bdc9457SAndroid Build Coastguard Worker 
722*4bdc9457SAndroid Build Coastguard Worker 
723*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC3,elements_eq_96)724*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC3, elements_eq_96) {
725*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
726*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
727*4bdc9457SAndroid Build Coastguard Worker       .elements(96)
728*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96_acc3, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
729*4bdc9457SAndroid Build Coastguard Worker   }
730*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC3,elements_div_96)731*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC3, elements_div_96) {
732*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
733*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 192; elements < 960; elements += 96) {
734*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
735*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
736*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96_acc3, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
737*4bdc9457SAndroid Build Coastguard Worker     }
738*4bdc9457SAndroid Build Coastguard Worker   }
739*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC3,elements_lt_96)740*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC3, elements_lt_96) {
741*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
742*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 96; elements++) {
743*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
744*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
745*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96_acc3, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
746*4bdc9457SAndroid Build Coastguard Worker     }
747*4bdc9457SAndroid Build Coastguard Worker   }
748*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC3,elements_gt_96)749*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC3, elements_gt_96) {
750*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
751*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 97; elements < 192; elements++) {
752*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
753*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
754*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96_acc3, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
755*4bdc9457SAndroid Build Coastguard Worker     }
756*4bdc9457SAndroid Build Coastguard Worker   }
757*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
758*4bdc9457SAndroid Build Coastguard Worker 
759*4bdc9457SAndroid Build Coastguard Worker 
760*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC6,elements_eq_96)761*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC6, elements_eq_96) {
762*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
763*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
764*4bdc9457SAndroid Build Coastguard Worker       .elements(96)
765*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96_acc6, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
766*4bdc9457SAndroid Build Coastguard Worker   }
767*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC6,elements_div_96)768*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC6, elements_div_96) {
769*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
770*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 192; elements < 960; elements += 96) {
771*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
772*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
773*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96_acc6, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
774*4bdc9457SAndroid Build Coastguard Worker     }
775*4bdc9457SAndroid Build Coastguard Worker   }
776*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC6,elements_lt_96)777*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC6, elements_lt_96) {
778*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
779*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 96; elements++) {
780*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
781*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
782*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96_acc6, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
783*4bdc9457SAndroid Build Coastguard Worker     }
784*4bdc9457SAndroid Build Coastguard Worker   }
785*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC6,elements_gt_96)786*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC6, elements_gt_96) {
787*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
788*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 97; elements < 192; elements++) {
789*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
790*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
791*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96_acc6, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params);
792*4bdc9457SAndroid Build Coastguard Worker     }
793*4bdc9457SAndroid Build Coastguard Worker   }
794*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
795*4bdc9457SAndroid Build Coastguard Worker 
796*4bdc9457SAndroid Build Coastguard Worker 
797*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32,elements_eq_32)798*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32, elements_eq_32) {
799*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
800*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
801*4bdc9457SAndroid Build Coastguard Worker       .elements(32)
802*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x32, xnn_init_f16_expminus_avx2_rr1_p2_params);
803*4bdc9457SAndroid Build Coastguard Worker   }
804*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32,elements_div_32)805*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32, elements_div_32) {
806*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
807*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 64; elements < 320; elements += 32) {
808*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
809*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
810*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x32, xnn_init_f16_expminus_avx2_rr1_p2_params);
811*4bdc9457SAndroid Build Coastguard Worker     }
812*4bdc9457SAndroid Build Coastguard Worker   }
813*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32,elements_lt_32)814*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32, elements_lt_32) {
815*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
816*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 32; elements++) {
817*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
818*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
819*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x32, xnn_init_f16_expminus_avx2_rr1_p2_params);
820*4bdc9457SAndroid Build Coastguard Worker     }
821*4bdc9457SAndroid Build Coastguard Worker   }
822*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32,elements_gt_32)823*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32, elements_gt_32) {
824*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
825*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 33; elements < 64; elements++) {
826*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
827*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
828*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x32, xnn_init_f16_expminus_avx2_rr1_p2_params);
829*4bdc9457SAndroid Build Coastguard Worker     }
830*4bdc9457SAndroid Build Coastguard Worker   }
831*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
832*4bdc9457SAndroid Build Coastguard Worker 
833*4bdc9457SAndroid Build Coastguard Worker 
834*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC2,elements_eq_32)835*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC2, elements_eq_32) {
836*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
837*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
838*4bdc9457SAndroid Build Coastguard Worker       .elements(32)
839*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x32_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params);
840*4bdc9457SAndroid Build Coastguard Worker   }
841*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC2,elements_div_32)842*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC2, elements_div_32) {
843*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
844*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 64; elements < 320; elements += 32) {
845*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
846*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
847*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x32_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params);
848*4bdc9457SAndroid Build Coastguard Worker     }
849*4bdc9457SAndroid Build Coastguard Worker   }
850*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC2,elements_lt_32)851*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC2, elements_lt_32) {
852*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
853*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 32; elements++) {
854*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
855*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
856*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x32_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params);
857*4bdc9457SAndroid Build Coastguard Worker     }
858*4bdc9457SAndroid Build Coastguard Worker   }
859*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC2,elements_gt_32)860*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC2, elements_gt_32) {
861*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
862*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 33; elements < 64; elements++) {
863*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
864*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
865*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x32_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params);
866*4bdc9457SAndroid Build Coastguard Worker     }
867*4bdc9457SAndroid Build Coastguard Worker   }
868*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
869*4bdc9457SAndroid Build Coastguard Worker 
870*4bdc9457SAndroid Build Coastguard Worker 
871*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC4,elements_eq_32)872*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC4, elements_eq_32) {
873*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
874*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
875*4bdc9457SAndroid Build Coastguard Worker       .elements(32)
876*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x32_acc4, xnn_init_f16_expminus_avx2_rr1_p2_params);
877*4bdc9457SAndroid Build Coastguard Worker   }
878*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC4,elements_div_32)879*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC4, elements_div_32) {
880*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
881*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 64; elements < 320; elements += 32) {
882*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
883*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
884*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x32_acc4, xnn_init_f16_expminus_avx2_rr1_p2_params);
885*4bdc9457SAndroid Build Coastguard Worker     }
886*4bdc9457SAndroid Build Coastguard Worker   }
887*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC4,elements_lt_32)888*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC4, elements_lt_32) {
889*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
890*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 32; elements++) {
891*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
892*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
893*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x32_acc4, xnn_init_f16_expminus_avx2_rr1_p2_params);
894*4bdc9457SAndroid Build Coastguard Worker     }
895*4bdc9457SAndroid Build Coastguard Worker   }
896*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC4,elements_gt_32)897*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC4, elements_gt_32) {
898*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
899*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 33; elements < 64; elements++) {
900*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
901*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
902*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x32_acc4, xnn_init_f16_expminus_avx2_rr1_p2_params);
903*4bdc9457SAndroid Build Coastguard Worker     }
904*4bdc9457SAndroid Build Coastguard Worker   }
905*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
906*4bdc9457SAndroid Build Coastguard Worker 
907*4bdc9457SAndroid Build Coastguard Worker 
908*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40,elements_eq_40)909*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40, elements_eq_40) {
910*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
911*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
912*4bdc9457SAndroid Build Coastguard Worker       .elements(40)
913*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x40, xnn_init_f16_expminus_avx2_rr1_p2_params);
914*4bdc9457SAndroid Build Coastguard Worker   }
915*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40,elements_div_40)916*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40, elements_div_40) {
917*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
918*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 80; elements < 400; elements += 40) {
919*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
920*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
921*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x40, xnn_init_f16_expminus_avx2_rr1_p2_params);
922*4bdc9457SAndroid Build Coastguard Worker     }
923*4bdc9457SAndroid Build Coastguard Worker   }
924*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40,elements_lt_40)925*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40, elements_lt_40) {
926*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
927*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 40; elements++) {
928*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
929*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
930*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x40, xnn_init_f16_expminus_avx2_rr1_p2_params);
931*4bdc9457SAndroid Build Coastguard Worker     }
932*4bdc9457SAndroid Build Coastguard Worker   }
933*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40,elements_gt_40)934*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40, elements_gt_40) {
935*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
936*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 41; elements < 80; elements++) {
937*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
938*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
939*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x40, xnn_init_f16_expminus_avx2_rr1_p2_params);
940*4bdc9457SAndroid Build Coastguard Worker     }
941*4bdc9457SAndroid Build Coastguard Worker   }
942*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
943*4bdc9457SAndroid Build Coastguard Worker 
944*4bdc9457SAndroid Build Coastguard Worker 
945*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC2,elements_eq_40)946*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC2, elements_eq_40) {
947*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
948*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
949*4bdc9457SAndroid Build Coastguard Worker       .elements(40)
950*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x40_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params);
951*4bdc9457SAndroid Build Coastguard Worker   }
952*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC2,elements_div_40)953*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC2, elements_div_40) {
954*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
955*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 80; elements < 400; elements += 40) {
956*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
957*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
958*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x40_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params);
959*4bdc9457SAndroid Build Coastguard Worker     }
960*4bdc9457SAndroid Build Coastguard Worker   }
961*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC2,elements_lt_40)962*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC2, elements_lt_40) {
963*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
964*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 40; elements++) {
965*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
966*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
967*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x40_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params);
968*4bdc9457SAndroid Build Coastguard Worker     }
969*4bdc9457SAndroid Build Coastguard Worker   }
970*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC2,elements_gt_40)971*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC2, elements_gt_40) {
972*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
973*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 41; elements < 80; elements++) {
974*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
975*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
976*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x40_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params);
977*4bdc9457SAndroid Build Coastguard Worker     }
978*4bdc9457SAndroid Build Coastguard Worker   }
979*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
980*4bdc9457SAndroid Build Coastguard Worker 
981*4bdc9457SAndroid Build Coastguard Worker 
982*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC5,elements_eq_40)983*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC5, elements_eq_40) {
984*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
985*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
986*4bdc9457SAndroid Build Coastguard Worker       .elements(40)
987*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x40_acc5, xnn_init_f16_expminus_avx2_rr1_p2_params);
988*4bdc9457SAndroid Build Coastguard Worker   }
989*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC5,elements_div_40)990*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC5, elements_div_40) {
991*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
992*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 80; elements < 400; elements += 40) {
993*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
994*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
995*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x40_acc5, xnn_init_f16_expminus_avx2_rr1_p2_params);
996*4bdc9457SAndroid Build Coastguard Worker     }
997*4bdc9457SAndroid Build Coastguard Worker   }
998*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC5,elements_lt_40)999*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC5, elements_lt_40) {
1000*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1001*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 40; elements++) {
1002*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1003*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1004*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x40_acc5, xnn_init_f16_expminus_avx2_rr1_p2_params);
1005*4bdc9457SAndroid Build Coastguard Worker     }
1006*4bdc9457SAndroid Build Coastguard Worker   }
1007*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC5,elements_gt_40)1008*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC5, elements_gt_40) {
1009*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1010*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 41; elements < 80; elements++) {
1011*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1012*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1013*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x40_acc5, xnn_init_f16_expminus_avx2_rr1_p2_params);
1014*4bdc9457SAndroid Build Coastguard Worker     }
1015*4bdc9457SAndroid Build Coastguard Worker   }
1016*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1017*4bdc9457SAndroid Build Coastguard Worker 
1018*4bdc9457SAndroid Build Coastguard Worker 
1019*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48,elements_eq_48)1020*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48, elements_eq_48) {
1021*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1022*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
1023*4bdc9457SAndroid Build Coastguard Worker       .elements(48)
1024*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x48, xnn_init_f16_expminus_avx2_rr1_p2_params);
1025*4bdc9457SAndroid Build Coastguard Worker   }
1026*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48,elements_div_48)1027*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48, elements_div_48) {
1028*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1029*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 96; elements < 480; elements += 48) {
1030*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1031*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1032*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x48, xnn_init_f16_expminus_avx2_rr1_p2_params);
1033*4bdc9457SAndroid Build Coastguard Worker     }
1034*4bdc9457SAndroid Build Coastguard Worker   }
1035*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48,elements_lt_48)1036*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48, elements_lt_48) {
1037*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1038*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 48; elements++) {
1039*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1040*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1041*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x48, xnn_init_f16_expminus_avx2_rr1_p2_params);
1042*4bdc9457SAndroid Build Coastguard Worker     }
1043*4bdc9457SAndroid Build Coastguard Worker   }
1044*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48,elements_gt_48)1045*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48, elements_gt_48) {
1046*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1047*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 49; elements < 96; elements++) {
1048*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1049*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1050*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x48, xnn_init_f16_expminus_avx2_rr1_p2_params);
1051*4bdc9457SAndroid Build Coastguard Worker     }
1052*4bdc9457SAndroid Build Coastguard Worker   }
1053*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1054*4bdc9457SAndroid Build Coastguard Worker 
1055*4bdc9457SAndroid Build Coastguard Worker 
1056*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC2,elements_eq_48)1057*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC2, elements_eq_48) {
1058*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1059*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
1060*4bdc9457SAndroid Build Coastguard Worker       .elements(48)
1061*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x48_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params);
1062*4bdc9457SAndroid Build Coastguard Worker   }
1063*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC2,elements_div_48)1064*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC2, elements_div_48) {
1065*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1066*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 96; elements < 480; elements += 48) {
1067*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1068*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1069*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x48_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params);
1070*4bdc9457SAndroid Build Coastguard Worker     }
1071*4bdc9457SAndroid Build Coastguard Worker   }
1072*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC2,elements_lt_48)1073*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC2, elements_lt_48) {
1074*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1075*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 48; elements++) {
1076*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1077*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1078*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x48_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params);
1079*4bdc9457SAndroid Build Coastguard Worker     }
1080*4bdc9457SAndroid Build Coastguard Worker   }
1081*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC2,elements_gt_48)1082*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC2, elements_gt_48) {
1083*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1084*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 49; elements < 96; elements++) {
1085*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1086*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1087*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x48_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params);
1088*4bdc9457SAndroid Build Coastguard Worker     }
1089*4bdc9457SAndroid Build Coastguard Worker   }
1090*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1091*4bdc9457SAndroid Build Coastguard Worker 
1092*4bdc9457SAndroid Build Coastguard Worker 
1093*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC3,elements_eq_48)1094*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC3, elements_eq_48) {
1095*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1096*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
1097*4bdc9457SAndroid Build Coastguard Worker       .elements(48)
1098*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x48_acc3, xnn_init_f16_expminus_avx2_rr1_p2_params);
1099*4bdc9457SAndroid Build Coastguard Worker   }
1100*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC3,elements_div_48)1101*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC3, elements_div_48) {
1102*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1103*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 96; elements < 480; elements += 48) {
1104*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1105*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1106*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x48_acc3, xnn_init_f16_expminus_avx2_rr1_p2_params);
1107*4bdc9457SAndroid Build Coastguard Worker     }
1108*4bdc9457SAndroid Build Coastguard Worker   }
1109*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC3,elements_lt_48)1110*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC3, elements_lt_48) {
1111*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1112*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 48; elements++) {
1113*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1114*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1115*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x48_acc3, xnn_init_f16_expminus_avx2_rr1_p2_params);
1116*4bdc9457SAndroid Build Coastguard Worker     }
1117*4bdc9457SAndroid Build Coastguard Worker   }
1118*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC3,elements_gt_48)1119*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC3, elements_gt_48) {
1120*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1121*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 49; elements < 96; elements++) {
1122*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1123*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1124*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x48_acc3, xnn_init_f16_expminus_avx2_rr1_p2_params);
1125*4bdc9457SAndroid Build Coastguard Worker     }
1126*4bdc9457SAndroid Build Coastguard Worker   }
1127*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1128*4bdc9457SAndroid Build Coastguard Worker 
1129*4bdc9457SAndroid Build Coastguard Worker 
1130*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64,elements_eq_64)1131*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64, elements_eq_64) {
1132*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1133*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
1134*4bdc9457SAndroid Build Coastguard Worker       .elements(64)
1135*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x64, xnn_init_f16_expminus_avx2_rr1_p2_params);
1136*4bdc9457SAndroid Build Coastguard Worker   }
1137*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64,elements_div_64)1138*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64, elements_div_64) {
1139*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1140*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 128; elements < 640; elements += 64) {
1141*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1142*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1143*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x64, xnn_init_f16_expminus_avx2_rr1_p2_params);
1144*4bdc9457SAndroid Build Coastguard Worker     }
1145*4bdc9457SAndroid Build Coastguard Worker   }
1146*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64,elements_lt_64)1147*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64, elements_lt_64) {
1148*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1149*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 64; elements++) {
1150*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1151*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1152*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x64, xnn_init_f16_expminus_avx2_rr1_p2_params);
1153*4bdc9457SAndroid Build Coastguard Worker     }
1154*4bdc9457SAndroid Build Coastguard Worker   }
1155*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64,elements_gt_64)1156*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64, elements_gt_64) {
1157*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1158*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 65; elements < 128; elements++) {
1159*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1160*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1161*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x64, xnn_init_f16_expminus_avx2_rr1_p2_params);
1162*4bdc9457SAndroid Build Coastguard Worker     }
1163*4bdc9457SAndroid Build Coastguard Worker   }
1164*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1165*4bdc9457SAndroid Build Coastguard Worker 
1166*4bdc9457SAndroid Build Coastguard Worker 
1167*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC2,elements_eq_64)1168*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC2, elements_eq_64) {
1169*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1170*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
1171*4bdc9457SAndroid Build Coastguard Worker       .elements(64)
1172*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x64_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params);
1173*4bdc9457SAndroid Build Coastguard Worker   }
1174*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC2,elements_div_64)1175*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC2, elements_div_64) {
1176*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1177*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 128; elements < 640; elements += 64) {
1178*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1179*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1180*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x64_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params);
1181*4bdc9457SAndroid Build Coastguard Worker     }
1182*4bdc9457SAndroid Build Coastguard Worker   }
1183*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC2,elements_lt_64)1184*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC2, elements_lt_64) {
1185*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1186*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 64; elements++) {
1187*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1188*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1189*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x64_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params);
1190*4bdc9457SAndroid Build Coastguard Worker     }
1191*4bdc9457SAndroid Build Coastguard Worker   }
1192*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC2,elements_gt_64)1193*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC2, elements_gt_64) {
1194*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1195*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 65; elements < 128; elements++) {
1196*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1197*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1198*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x64_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params);
1199*4bdc9457SAndroid Build Coastguard Worker     }
1200*4bdc9457SAndroid Build Coastguard Worker   }
1201*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1202*4bdc9457SAndroid Build Coastguard Worker 
1203*4bdc9457SAndroid Build Coastguard Worker 
1204*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC4,elements_eq_64)1205*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC4, elements_eq_64) {
1206*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1207*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
1208*4bdc9457SAndroid Build Coastguard Worker       .elements(64)
1209*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x64_acc4, xnn_init_f16_expminus_avx2_rr1_p2_params);
1210*4bdc9457SAndroid Build Coastguard Worker   }
1211*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC4,elements_div_64)1212*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC4, elements_div_64) {
1213*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1214*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 128; elements < 640; elements += 64) {
1215*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1216*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1217*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x64_acc4, xnn_init_f16_expminus_avx2_rr1_p2_params);
1218*4bdc9457SAndroid Build Coastguard Worker     }
1219*4bdc9457SAndroid Build Coastguard Worker   }
1220*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC4,elements_lt_64)1221*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC4, elements_lt_64) {
1222*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1223*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 64; elements++) {
1224*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1225*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1226*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x64_acc4, xnn_init_f16_expminus_avx2_rr1_p2_params);
1227*4bdc9457SAndroid Build Coastguard Worker     }
1228*4bdc9457SAndroid Build Coastguard Worker   }
1229*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC4,elements_gt_64)1230*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC4, elements_gt_64) {
1231*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1232*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 65; elements < 128; elements++) {
1233*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1234*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1235*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x64_acc4, xnn_init_f16_expminus_avx2_rr1_p2_params);
1236*4bdc9457SAndroid Build Coastguard Worker     }
1237*4bdc9457SAndroid Build Coastguard Worker   }
1238*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1239*4bdc9457SAndroid Build Coastguard Worker 
1240*4bdc9457SAndroid Build Coastguard Worker 
1241*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72,elements_eq_72)1242*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72, elements_eq_72) {
1243*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1244*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
1245*4bdc9457SAndroid Build Coastguard Worker       .elements(72)
1246*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x72, xnn_init_f16_expminus_avx2_rr1_p2_params);
1247*4bdc9457SAndroid Build Coastguard Worker   }
1248*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72,elements_div_72)1249*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72, elements_div_72) {
1250*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1251*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 144; elements < 720; elements += 72) {
1252*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1253*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1254*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x72, xnn_init_f16_expminus_avx2_rr1_p2_params);
1255*4bdc9457SAndroid Build Coastguard Worker     }
1256*4bdc9457SAndroid Build Coastguard Worker   }
1257*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72,elements_lt_72)1258*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72, elements_lt_72) {
1259*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1260*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 72; elements++) {
1261*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1262*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1263*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x72, xnn_init_f16_expminus_avx2_rr1_p2_params);
1264*4bdc9457SAndroid Build Coastguard Worker     }
1265*4bdc9457SAndroid Build Coastguard Worker   }
1266*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72,elements_gt_72)1267*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72, elements_gt_72) {
1268*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1269*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 73; elements < 144; elements++) {
1270*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1271*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1272*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x72, xnn_init_f16_expminus_avx2_rr1_p2_params);
1273*4bdc9457SAndroid Build Coastguard Worker     }
1274*4bdc9457SAndroid Build Coastguard Worker   }
1275*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1276*4bdc9457SAndroid Build Coastguard Worker 
1277*4bdc9457SAndroid Build Coastguard Worker 
1278*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72_ACC3,elements_eq_72)1279*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72_ACC3, elements_eq_72) {
1280*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1281*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
1282*4bdc9457SAndroid Build Coastguard Worker       .elements(72)
1283*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x72_acc3, xnn_init_f16_expminus_avx2_rr1_p2_params);
1284*4bdc9457SAndroid Build Coastguard Worker   }
1285*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72_ACC3,elements_div_72)1286*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72_ACC3, elements_div_72) {
1287*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1288*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 144; elements < 720; elements += 72) {
1289*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1290*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1291*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x72_acc3, xnn_init_f16_expminus_avx2_rr1_p2_params);
1292*4bdc9457SAndroid Build Coastguard Worker     }
1293*4bdc9457SAndroid Build Coastguard Worker   }
1294*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72_ACC3,elements_lt_72)1295*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72_ACC3, elements_lt_72) {
1296*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1297*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 72; elements++) {
1298*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1299*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1300*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x72_acc3, xnn_init_f16_expminus_avx2_rr1_p2_params);
1301*4bdc9457SAndroid Build Coastguard Worker     }
1302*4bdc9457SAndroid Build Coastguard Worker   }
1303*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72_ACC3,elements_gt_72)1304*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72_ACC3, elements_gt_72) {
1305*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1306*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 73; elements < 144; elements++) {
1307*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1308*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1309*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x72_acc3, xnn_init_f16_expminus_avx2_rr1_p2_params);
1310*4bdc9457SAndroid Build Coastguard Worker     }
1311*4bdc9457SAndroid Build Coastguard Worker   }
1312*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1313*4bdc9457SAndroid Build Coastguard Worker 
1314*4bdc9457SAndroid Build Coastguard Worker 
1315*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80,elements_eq_80)1316*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80, elements_eq_80) {
1317*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1318*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
1319*4bdc9457SAndroid Build Coastguard Worker       .elements(80)
1320*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x80, xnn_init_f16_expminus_avx2_rr1_p2_params);
1321*4bdc9457SAndroid Build Coastguard Worker   }
1322*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80,elements_div_80)1323*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80, elements_div_80) {
1324*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1325*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 160; elements < 800; elements += 80) {
1326*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1327*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1328*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x80, xnn_init_f16_expminus_avx2_rr1_p2_params);
1329*4bdc9457SAndroid Build Coastguard Worker     }
1330*4bdc9457SAndroid Build Coastguard Worker   }
1331*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80,elements_lt_80)1332*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80, elements_lt_80) {
1333*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1334*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 80; elements++) {
1335*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1336*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1337*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x80, xnn_init_f16_expminus_avx2_rr1_p2_params);
1338*4bdc9457SAndroid Build Coastguard Worker     }
1339*4bdc9457SAndroid Build Coastguard Worker   }
1340*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80,elements_gt_80)1341*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80, elements_gt_80) {
1342*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1343*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 81; elements < 160; elements++) {
1344*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1345*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1346*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x80, xnn_init_f16_expminus_avx2_rr1_p2_params);
1347*4bdc9457SAndroid Build Coastguard Worker     }
1348*4bdc9457SAndroid Build Coastguard Worker   }
1349*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1350*4bdc9457SAndroid Build Coastguard Worker 
1351*4bdc9457SAndroid Build Coastguard Worker 
1352*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC2,elements_eq_80)1353*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC2, elements_eq_80) {
1354*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1355*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
1356*4bdc9457SAndroid Build Coastguard Worker       .elements(80)
1357*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x80_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params);
1358*4bdc9457SAndroid Build Coastguard Worker   }
1359*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC2,elements_div_80)1360*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC2, elements_div_80) {
1361*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1362*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 160; elements < 800; elements += 80) {
1363*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1364*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1365*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x80_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params);
1366*4bdc9457SAndroid Build Coastguard Worker     }
1367*4bdc9457SAndroid Build Coastguard Worker   }
1368*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC2,elements_lt_80)1369*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC2, elements_lt_80) {
1370*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1371*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 80; elements++) {
1372*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1373*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1374*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x80_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params);
1375*4bdc9457SAndroid Build Coastguard Worker     }
1376*4bdc9457SAndroid Build Coastguard Worker   }
1377*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC2,elements_gt_80)1378*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC2, elements_gt_80) {
1379*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1380*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 81; elements < 160; elements++) {
1381*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1382*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1383*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x80_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params);
1384*4bdc9457SAndroid Build Coastguard Worker     }
1385*4bdc9457SAndroid Build Coastguard Worker   }
1386*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1387*4bdc9457SAndroid Build Coastguard Worker 
1388*4bdc9457SAndroid Build Coastguard Worker 
1389*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC5,elements_eq_80)1390*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC5, elements_eq_80) {
1391*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1392*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
1393*4bdc9457SAndroid Build Coastguard Worker       .elements(80)
1394*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x80_acc5, xnn_init_f16_expminus_avx2_rr1_p2_params);
1395*4bdc9457SAndroid Build Coastguard Worker   }
1396*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC5,elements_div_80)1397*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC5, elements_div_80) {
1398*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1399*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 160; elements < 800; elements += 80) {
1400*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1401*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1402*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x80_acc5, xnn_init_f16_expminus_avx2_rr1_p2_params);
1403*4bdc9457SAndroid Build Coastguard Worker     }
1404*4bdc9457SAndroid Build Coastguard Worker   }
1405*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC5,elements_lt_80)1406*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC5, elements_lt_80) {
1407*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1408*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 80; elements++) {
1409*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1410*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1411*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x80_acc5, xnn_init_f16_expminus_avx2_rr1_p2_params);
1412*4bdc9457SAndroid Build Coastguard Worker     }
1413*4bdc9457SAndroid Build Coastguard Worker   }
1414*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC5,elements_gt_80)1415*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC5, elements_gt_80) {
1416*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1417*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 81; elements < 160; elements++) {
1418*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1419*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1420*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x80_acc5, xnn_init_f16_expminus_avx2_rr1_p2_params);
1421*4bdc9457SAndroid Build Coastguard Worker     }
1422*4bdc9457SAndroid Build Coastguard Worker   }
1423*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1424*4bdc9457SAndroid Build Coastguard Worker 
1425*4bdc9457SAndroid Build Coastguard Worker 
1426*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96,elements_eq_96)1427*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96, elements_eq_96) {
1428*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1429*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
1430*4bdc9457SAndroid Build Coastguard Worker       .elements(96)
1431*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96, xnn_init_f16_expminus_avx2_rr1_p2_params);
1432*4bdc9457SAndroid Build Coastguard Worker   }
1433*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96,elements_div_96)1434*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96, elements_div_96) {
1435*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1436*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 192; elements < 960; elements += 96) {
1437*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1438*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1439*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96, xnn_init_f16_expminus_avx2_rr1_p2_params);
1440*4bdc9457SAndroid Build Coastguard Worker     }
1441*4bdc9457SAndroid Build Coastguard Worker   }
1442*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96,elements_lt_96)1443*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96, elements_lt_96) {
1444*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1445*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 96; elements++) {
1446*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1447*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1448*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96, xnn_init_f16_expminus_avx2_rr1_p2_params);
1449*4bdc9457SAndroid Build Coastguard Worker     }
1450*4bdc9457SAndroid Build Coastguard Worker   }
1451*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96,elements_gt_96)1452*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96, elements_gt_96) {
1453*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1454*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 97; elements < 192; elements++) {
1455*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1456*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1457*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96, xnn_init_f16_expminus_avx2_rr1_p2_params);
1458*4bdc9457SAndroid Build Coastguard Worker     }
1459*4bdc9457SAndroid Build Coastguard Worker   }
1460*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1461*4bdc9457SAndroid Build Coastguard Worker 
1462*4bdc9457SAndroid Build Coastguard Worker 
1463*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC2,elements_eq_96)1464*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC2, elements_eq_96) {
1465*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1466*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
1467*4bdc9457SAndroid Build Coastguard Worker       .elements(96)
1468*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params);
1469*4bdc9457SAndroid Build Coastguard Worker   }
1470*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC2,elements_div_96)1471*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC2, elements_div_96) {
1472*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1473*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 192; elements < 960; elements += 96) {
1474*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1475*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1476*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params);
1477*4bdc9457SAndroid Build Coastguard Worker     }
1478*4bdc9457SAndroid Build Coastguard Worker   }
1479*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC2,elements_lt_96)1480*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC2, elements_lt_96) {
1481*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1482*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 96; elements++) {
1483*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1484*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1485*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params);
1486*4bdc9457SAndroid Build Coastguard Worker     }
1487*4bdc9457SAndroid Build Coastguard Worker   }
1488*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC2,elements_gt_96)1489*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC2, elements_gt_96) {
1490*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1491*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 97; elements < 192; elements++) {
1492*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1493*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1494*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params);
1495*4bdc9457SAndroid Build Coastguard Worker     }
1496*4bdc9457SAndroid Build Coastguard Worker   }
1497*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1498*4bdc9457SAndroid Build Coastguard Worker 
1499*4bdc9457SAndroid Build Coastguard Worker 
1500*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC3,elements_eq_96)1501*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC3, elements_eq_96) {
1502*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1503*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
1504*4bdc9457SAndroid Build Coastguard Worker       .elements(96)
1505*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96_acc3, xnn_init_f16_expminus_avx2_rr1_p2_params);
1506*4bdc9457SAndroid Build Coastguard Worker   }
1507*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC3,elements_div_96)1508*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC3, elements_div_96) {
1509*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1510*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 192; elements < 960; elements += 96) {
1511*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1512*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1513*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96_acc3, xnn_init_f16_expminus_avx2_rr1_p2_params);
1514*4bdc9457SAndroid Build Coastguard Worker     }
1515*4bdc9457SAndroid Build Coastguard Worker   }
1516*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC3,elements_lt_96)1517*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC3, elements_lt_96) {
1518*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1519*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 96; elements++) {
1520*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1521*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1522*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96_acc3, xnn_init_f16_expminus_avx2_rr1_p2_params);
1523*4bdc9457SAndroid Build Coastguard Worker     }
1524*4bdc9457SAndroid Build Coastguard Worker   }
1525*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC3,elements_gt_96)1526*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC3, elements_gt_96) {
1527*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1528*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 97; elements < 192; elements++) {
1529*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1530*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1531*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96_acc3, xnn_init_f16_expminus_avx2_rr1_p2_params);
1532*4bdc9457SAndroid Build Coastguard Worker     }
1533*4bdc9457SAndroid Build Coastguard Worker   }
1534*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1535*4bdc9457SAndroid Build Coastguard Worker 
1536*4bdc9457SAndroid Build Coastguard Worker 
1537*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC6,elements_eq_96)1538*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC6, elements_eq_96) {
1539*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1540*4bdc9457SAndroid Build Coastguard Worker     RAddStoreExpMinusMaxMicrokernelTester()
1541*4bdc9457SAndroid Build Coastguard Worker       .elements(96)
1542*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96_acc6, xnn_init_f16_expminus_avx2_rr1_p2_params);
1543*4bdc9457SAndroid Build Coastguard Worker   }
1544*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC6,elements_div_96)1545*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC6, elements_div_96) {
1546*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1547*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 192; elements < 960; elements += 96) {
1548*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1549*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1550*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96_acc6, xnn_init_f16_expminus_avx2_rr1_p2_params);
1551*4bdc9457SAndroid Build Coastguard Worker     }
1552*4bdc9457SAndroid Build Coastguard Worker   }
1553*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC6,elements_lt_96)1554*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC6, elements_lt_96) {
1555*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1556*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 1; elements < 96; elements++) {
1557*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1558*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1559*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96_acc6, xnn_init_f16_expminus_avx2_rr1_p2_params);
1560*4bdc9457SAndroid Build Coastguard Worker     }
1561*4bdc9457SAndroid Build Coastguard Worker   }
1562*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC6,elements_gt_96)1563*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC6, elements_gt_96) {
1564*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_AVX2;
1565*4bdc9457SAndroid Build Coastguard Worker     for (size_t elements = 97; elements < 192; elements++) {
1566*4bdc9457SAndroid Build Coastguard Worker       RAddStoreExpMinusMaxMicrokernelTester()
1567*4bdc9457SAndroid Build Coastguard Worker         .elements(elements)
1568*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96_acc6, xnn_init_f16_expminus_avx2_rr1_p2_params);
1569*4bdc9457SAndroid Build Coastguard Worker     }
1570*4bdc9457SAndroid Build Coastguard Worker   }
1571*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1572