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