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# AArch32 assembly 7- name: xnn_f32_igemm_minmax_ukernel_4x8__aarch32_neon_cortex_a7 8 init: xnn_init_f32_minmax_scalar_params 9 k-block: 2 10 assembly: true 11- name: xnn_f32_igemm_minmax_ukernel_4x8__aarch32_neon_cortex_a53 12 init: xnn_init_f32_minmax_scalar_params 13 k-block: 4 14 assembly: true 15 pipelined: true 16- name: xnn_f32_igemm_minmax_ukernel_4x8__aarch32_neon_cortex_a55 17 init: xnn_init_f32_minmax_scalar_params 18 k-block: 4 19 assembly: true 20 pipelined: true 21- name: xnn_f32_igemm_minmax_ukernel_4x8__aarch32_neon_cortex_a75 22 init: xnn_init_f32_minmax_scalar_params 23 k-block: 4 24 assembly: true 25 pipelined: true 26- name: xnn_f32_igemm_minmax_ukernel_4x8__aarch32_neon_ld64 27 init: xnn_init_f32_minmax_scalar_params 28 k-block: 2 29 assembly: true 30- name: xnn_f32_igemm_minmax_ukernel_4x8__aarch32_neon_prfm_cortex_a53 31 init: xnn_init_f32_minmax_scalar_params 32 k-block: 4 33 assembly: true 34 pipelined: true 35- name: xnn_f32_igemm_minmax_ukernel_4x8__aarch32_neon_prfm_cortex_a75 36 init: xnn_init_f32_minmax_scalar_params 37 k-block: 4 38 assembly: true 39 pipelined: true 40# AArch64 assembly 41- name: xnn_f32_igemm_minmax_ukernel_1x8__aarch64_neonfma_cortex_a53 42 init: xnn_init_f32_minmax_scalar_params 43 k-block: 8 44 assembly: true 45 pipelined: true 46- name: xnn_f32_igemm_minmax_ukernel_1x8__aarch64_neonfma_cortex_a75 47 init: xnn_init_f32_minmax_scalar_params 48 k-block: 8 49 assembly: true 50 pipelined: true 51- name: xnn_f32_igemm_minmax_ukernel_1x8__aarch64_neonfma_prfm_cortex_a53 52 init: xnn_init_f32_minmax_scalar_params 53 k-block: 8 54 assembly: true 55 pipelined: true 56- name: xnn_f32_igemm_minmax_ukernel_1x8__aarch64_neonfma_prfm_cortex_a75 57 init: xnn_init_f32_minmax_scalar_params 58 k-block: 8 59 assembly: true 60 pipelined: true 61- name: xnn_f32_igemm_minmax_ukernel_1x12__aarch64_neonfma_cortex_a53 62 init: xnn_init_f32_minmax_scalar_params 63 k-block: 4 64 assembly: true 65 pipelined: true 66- name: xnn_f32_igemm_minmax_ukernel_4x2__aarch64_neonfma_cortex_a75 67 init: xnn_init_f32_minmax_scalar_params 68 k-block: 8 69 assembly: true 70 pipelined: true 71- name: xnn_f32_igemm_minmax_ukernel_4x2__aarch64_neonfma_ld64 72 init: xnn_init_f32_minmax_scalar_params 73 k-block: 2 74 assembly: true 75- name: xnn_f32_igemm_minmax_ukernel_4x2__aarch64_neonfma_prfm_cortex_a75 76 init: xnn_init_f32_minmax_scalar_params 77 k-block: 8 78 assembly: true 79 pipelined: true 80- name: xnn_f32_igemm_minmax_ukernel_4x8__aarch64_neonfma_cortex_a53 81 init: xnn_init_f32_minmax_scalar_params 82 k-block: 4 83 assembly: true 84 pipelined: true 85- name: xnn_f32_igemm_minmax_ukernel_4x8__aarch64_neonfma_cortex_a55 86 init: xnn_init_f32_minmax_scalar_params 87 k-block: 4 88 assembly: true 89 pipelined: true 90- name: xnn_f32_igemm_minmax_ukernel_4x8__aarch64_neonfma_cortex_a75 91 init: xnn_init_f32_minmax_scalar_params 92 k-block: 8 93 assembly: true 94 pipelined: true 95- name: xnn_f32_igemm_minmax_ukernel_4x8__aarch64_neonfma_ld64 96 init: xnn_init_f32_minmax_scalar_params 97 k-block: 2 98 assembly: true 99- name: xnn_f32_igemm_minmax_ukernel_4x8__aarch64_neonfma_ld128 100 init: xnn_init_f32_minmax_scalar_params 101 k-block: 4 102 assembly: true 103- name: xnn_f32_igemm_minmax_ukernel_4x8__aarch64_neonfma_prfm_cortex_a53 104 init: xnn_init_f32_minmax_scalar_params 105 k-block: 4 106 assembly: true 107 pipelined: true 108- name: xnn_f32_igemm_minmax_ukernel_4x8__aarch64_neonfma_prfm_cortex_a75 109 init: xnn_init_f32_minmax_scalar_params 110 k-block: 8 111 assembly: true 112 pipelined: true 113- name: xnn_f32_igemm_minmax_ukernel_4x12__aarch64_neonfma_cortex_a53 114 init: xnn_init_f32_minmax_scalar_params 115 k-block: 4 116 assembly: true 117 pipelined: true 118- name: xnn_f32_igemm_minmax_ukernel_5x8__aarch64_neonfma_cortex_a75 119 init: xnn_init_f32_minmax_scalar_params 120 k-block: 8 121 assembly: true 122 pipelined: true 123- name: xnn_f32_igemm_minmax_ukernel_5x8__aarch64_neonfma_prfm_cortex_a75 124 init: xnn_init_f32_minmax_scalar_params 125 k-block: 8 126 assembly: true 127 pipelined: true 128- name: xnn_f32_igemm_minmax_ukernel_6x8__aarch64_neonfma_cortex_a53 129 init: xnn_init_f32_minmax_scalar_params 130 k-block: 4 131 assembly: true 132 pipelined: true 133- name: xnn_f32_igemm_minmax_ukernel_6x8__aarch64_neonfma_cortex_a55 134 init: xnn_init_f32_minmax_scalar_params 135 k-block: 4 136 assembly: true 137 pipelined: true 138- name: xnn_f32_igemm_minmax_ukernel_6x8__aarch64_neonfma_cortex_a73 139 init: xnn_init_f32_minmax_scalar_params 140 k-block: 8 141 assembly: true 142 pipelined: true 143- name: xnn_f32_igemm_minmax_ukernel_6x8__aarch64_neonfma_cortex_a75 144 init: xnn_init_f32_minmax_scalar_params 145 k-block: 8 146 assembly: true 147 pipelined: true 148- name: xnn_f32_igemm_minmax_ukernel_6x8__aarch64_neonfma_ld64 149 init: xnn_init_f32_minmax_scalar_params 150 k-block: 2 151 assembly: true 152- name: xnn_f32_igemm_minmax_ukernel_6x8__aarch64_neonfma_ld128 153 init: xnn_init_f32_minmax_scalar_params 154 k-block: 4 155 assembly: true 156- name: xnn_f32_igemm_minmax_ukernel_6x8__aarch64_neonfma_prfm_cortex_a53 157 init: xnn_init_f32_minmax_scalar_params 158 k-block: 4 159 assembly: true 160 pipelined: true 161- name: xnn_f32_igemm_minmax_ukernel_6x8__aarch64_neonfma_prfm_cortex_a75 162 init: xnn_init_f32_minmax_scalar_params 163 k-block: 8 164 assembly: true 165 pipelined: true 166# ARM NEON 167- name: xnn_f32_igemm_minmax_ukernel_1x8__neon_dup_ld64 168 init: xnn_init_f32_minmax_scalar_params 169 k-block: 2 170- name: xnn_f32_igemm_minmax_ukernel_1x8__neon_lane_ld64 171 init: xnn_init_f32_minmax_scalar_params 172 k-block: 2 173- name: xnn_f32_igemm_minmax_ukernel_1x8__neonfma_dup_ld64 174 init: xnn_init_f32_minmax_scalar_params 175 k-block: 2 176- name: xnn_f32_igemm_minmax_ukernel_1x8__neonfma_lane_ld64 177 init: xnn_init_f32_minmax_scalar_params 178 k-block: 2 179 arch: 180 - aarch64 181- name: xnn_f32_igemm_minmax_ukernel_1x8s4__neon 182 init: xnn_init_f32_minmax_scalar_params 183 k-block: 4 184- name: xnn_f32_igemm_minmax_ukernel_1x8s4__neonfma 185 init: xnn_init_f32_minmax_scalar_params 186 k-block: 4 187- name: xnn_f32_igemm_minmax_ukernel_4x2__neon_lane_ld64 188 init: xnn_init_f32_minmax_scalar_params 189 k-block: 2 190- name: xnn_f32_igemm_minmax_ukernel_4x2__neonfma_lane_ld64 191 init: xnn_init_f32_minmax_scalar_params 192 k-block: 2 193 arch: 194 - aarch64 195- name: xnn_f32_igemm_minmax_ukernel_4x4__neon_lane_ld64 196 init: xnn_init_f32_minmax_scalar_params 197 k-block: 2 198- name: xnn_f32_igemm_minmax_ukernel_4x4__neonfma_lane_ld64 199 init: xnn_init_f32_minmax_scalar_params 200 k-block: 2 201 arch: 202 - aarch64 203- name: xnn_f32_igemm_minmax_ukernel_4x8__neon_dup_ld64 204 init: xnn_init_f32_minmax_scalar_params 205 k-block: 2 206- name: xnn_f32_igemm_minmax_ukernel_4x8__neon_dup_ld128 207 init: xnn_init_f32_minmax_scalar_params 208 k-block: 4 209- name: xnn_f32_igemm_minmax_ukernel_4x8__neon_lane_ld64 210 init: xnn_init_f32_minmax_scalar_params 211 k-block: 2 212- name: xnn_f32_igemm_minmax_ukernel_4x8__neon_lane_ld128 213 init: xnn_init_f32_minmax_scalar_params 214 k-block: 4 215- name: xnn_f32_igemm_minmax_ukernel_4x8__neonfma_dup_ld64 216 init: xnn_init_f32_minmax_scalar_params 217 k-block: 2 218- name: xnn_f32_igemm_minmax_ukernel_4x8__neonfma_dup_ld128 219 init: xnn_init_f32_minmax_scalar_params 220 k-block: 4 221- name: xnn_f32_igemm_minmax_ukernel_4x8__neonfma_lane_ld64 222 init: xnn_init_f32_minmax_scalar_params 223 k-block: 2 224 arch: 225 - aarch64 226- name: xnn_f32_igemm_minmax_ukernel_4x8__neonfma_lane_ld128 227 init: xnn_init_f32_minmax_scalar_params 228 k-block: 4 229 arch: 230 - aarch64 231- name: xnn_f32_igemm_minmax_ukernel_4x8s4__neon 232 init: xnn_init_f32_minmax_scalar_params 233 k-block: 4 234- name: xnn_f32_igemm_minmax_ukernel_4x8s4__neonfma 235 init: xnn_init_f32_minmax_scalar_params 236 k-block: 4 237- name: xnn_f32_igemm_minmax_ukernel_6x2__neon_lane_ld64 238 init: xnn_init_f32_minmax_scalar_params 239 k-block: 2 240- name: xnn_f32_igemm_minmax_ukernel_6x2__neonfma_lane_ld64 241 init: xnn_init_f32_minmax_scalar_params 242 k-block: 2 243 arch: 244 - aarch64 245- name: xnn_f32_igemm_minmax_ukernel_6x8__neon_dup_ld64 246 init: xnn_init_f32_minmax_scalar_params 247 k-block: 2 248- name: xnn_f32_igemm_minmax_ukernel_6x8__neon_dup_ld128 249 init: xnn_init_f32_minmax_scalar_params 250 k-block: 4 251- name: xnn_f32_igemm_minmax_ukernel_6x8__neon_lane_ld64 252 init: xnn_init_f32_minmax_scalar_params 253 k-block: 2 254- name: xnn_f32_igemm_minmax_ukernel_6x8__neon_lane_ld128 255 init: xnn_init_f32_minmax_scalar_params 256 k-block: 4 257- name: xnn_f32_igemm_minmax_ukernel_6x8__neonfma_dup_ld64 258 init: xnn_init_f32_minmax_scalar_params 259 k-block: 2 260- name: xnn_f32_igemm_minmax_ukernel_6x8__neonfma_dup_ld128 261 init: xnn_init_f32_minmax_scalar_params 262 k-block: 4 263- name: xnn_f32_igemm_minmax_ukernel_6x8__neonfma_lane_ld64 264 init: xnn_init_f32_minmax_scalar_params 265 k-block: 2 266 arch: 267 - aarch64 268- name: xnn_f32_igemm_minmax_ukernel_6x8__neonfma_lane_ld128 269 init: xnn_init_f32_minmax_scalar_params 270 k-block: 4 271 arch: 272 - aarch64 273- name: xnn_f32_igemm_minmax_ukernel_6x8s4__neon 274 init: xnn_init_f32_minmax_scalar_params 275 k-block: 4 276- name: xnn_f32_igemm_minmax_ukernel_6x8s4__neonfma 277 init: xnn_init_f32_minmax_scalar_params 278 k-block: 4 279- name: xnn_f32_igemm_minmax_ukernel_8x8s4__neon 280 init: xnn_init_f32_minmax_scalar_params 281 k-block: 4 282- name: xnn_f32_igemm_minmax_ukernel_8x8s4__neonfma 283 init: xnn_init_f32_minmax_scalar_params 284 k-block: 4 285# x86 SSE 286- name: xnn_f32_igemm_minmax_ukernel_1x8__sse_dup 287 init: xnn_init_f32_minmax_sse_params 288 k-block: 4 289- name: xnn_f32_igemm_minmax_ukernel_1x8__sse_load1 290 init: xnn_init_f32_minmax_sse_params 291 k-block: 1 292- name: xnn_f32_igemm_minmax_ukernel_1x8__sse2_dup 293 init: xnn_init_f32_minmax_sse_params 294 k-block: 4 295- name: xnn_f32_igemm_minmax_ukernel_1x8s4__sse 296 init: xnn_init_f32_minmax_sse_params 297 k-block: 4 298- name: xnn_f32_igemm_minmax_ukernel_3x8__sse_dup 299 init: xnn_init_f32_minmax_sse_params 300 k-block: 4 301- name: xnn_f32_igemm_minmax_ukernel_3x8__sse_load1 302 init: xnn_init_f32_minmax_sse_params 303 k-block: 1 304- name: xnn_f32_igemm_minmax_ukernel_3x8__sse2_dup 305 init: xnn_init_f32_minmax_sse_params 306 k-block: 4 307- name: xnn_f32_igemm_minmax_ukernel_3x8s4__sse 308 init: xnn_init_f32_minmax_sse_params 309 k-block: 4 310- name: xnn_f32_igemm_minmax_ukernel_4x2c4__sse 311 init: xnn_init_f32_minmax_sse_params 312 k-block: 4 313- name: xnn_f32_igemm_minmax_ukernel_4x8__sse_dup 314 init: xnn_init_f32_minmax_sse_params 315 k-block: 4 316- name: xnn_f32_igemm_minmax_ukernel_4x8__sse_load1 317 init: xnn_init_f32_minmax_sse_params 318 k-block: 1 319- name: xnn_f32_igemm_minmax_ukernel_4x8__sse2_dup 320 init: xnn_init_f32_minmax_sse_params 321 k-block: 4 322- name: xnn_f32_igemm_minmax_ukernel_4x8s4__sse 323 init: xnn_init_f32_minmax_sse_params 324 k-block: 4 325- name: xnn_f32_igemm_minmax_ukernel_5x8__sse_dup 326 init: xnn_init_f32_minmax_sse_params 327 k-block: 4 328- name: xnn_f32_igemm_minmax_ukernel_5x8__sse_load1 329 init: xnn_init_f32_minmax_sse_params 330 k-block: 1 331- name: xnn_f32_igemm_minmax_ukernel_5x8__sse2_dup 332 init: xnn_init_f32_minmax_sse_params 333 k-block: 4 334- name: xnn_f32_igemm_minmax_ukernel_5x8s4__sse 335 init: xnn_init_f32_minmax_sse_params 336 k-block: 4 337# x86 AVX 338- name: xnn_f32_igemm_minmax_ukernel_1x8__avx_broadcast 339 init: xnn_init_f32_minmax_avx_params 340 k-block: 1 341- name: xnn_f32_igemm_minmax_ukernel_1x16__avx_broadcast 342 init: xnn_init_f32_minmax_avx_params 343 k-block: 1 344- name: xnn_f32_igemm_minmax_ukernel_3x16__avx_broadcast 345 init: xnn_init_f32_minmax_avx_params 346 k-block: 1 347- name: xnn_f32_igemm_minmax_ukernel_4x8__avx_broadcast 348 init: xnn_init_f32_minmax_avx_params 349 k-block: 1 350- name: xnn_f32_igemm_minmax_ukernel_4x16__avx_broadcast 351 init: xnn_init_f32_minmax_avx_params 352 k-block: 1 353- name: xnn_f32_igemm_minmax_ukernel_5x8__avx_broadcast 354 init: xnn_init_f32_minmax_avx_params 355 k-block: 1 356- name: xnn_f32_igemm_minmax_ukernel_5x16__avx_broadcast 357 init: xnn_init_f32_minmax_avx_params 358 k-block: 1 359- name: xnn_f32_igemm_minmax_ukernel_6x8__avx_broadcast 360 init: xnn_init_f32_minmax_avx_params 361 k-block: 1 362- name: xnn_f32_igemm_minmax_ukernel_7x8__avx_broadcast 363 init: xnn_init_f32_minmax_avx_params 364 k-block: 1 365# x86 FMA3 366- name: xnn_f32_igemm_minmax_ukernel_1x8__fma3_broadcast 367 init: xnn_init_f32_minmax_avx_params 368 k-block: 1 369- name: xnn_f32_igemm_minmax_ukernel_1x16__fma3_broadcast 370 init: xnn_init_f32_minmax_avx_params 371 k-block: 1 372- name: xnn_f32_igemm_minmax_ukernel_1x16s4__fma3_broadcast 373 init: xnn_init_f32_minmax_avx_params 374 k-block: 4 375- name: xnn_f32_igemm_minmax_ukernel_3x16__fma3_broadcast 376 init: xnn_init_f32_minmax_avx_params 377 k-block: 1 378- name: xnn_f32_igemm_minmax_ukernel_3x16s4__fma3_broadcast 379 init: xnn_init_f32_minmax_avx_params 380 k-block: 4 381- name: xnn_f32_igemm_minmax_ukernel_4x8__fma3_broadcast 382 init: xnn_init_f32_minmax_avx_params 383 k-block: 1 384- name: xnn_f32_igemm_minmax_ukernel_4x16__fma3_broadcast 385 init: xnn_init_f32_minmax_avx_params 386 k-block: 1 387- name: xnn_f32_igemm_minmax_ukernel_4x16s4__fma3_broadcast 388 init: xnn_init_f32_minmax_avx_params 389 k-block: 4 390- name: xnn_f32_igemm_minmax_ukernel_5x8__fma3_broadcast 391 init: xnn_init_f32_minmax_avx_params 392 k-block: 1 393- name: xnn_f32_igemm_minmax_ukernel_5x16__fma3_broadcast 394 init: xnn_init_f32_minmax_avx_params 395 k-block: 1 396- name: xnn_f32_igemm_minmax_ukernel_5x16s4__fma3_broadcast 397 init: xnn_init_f32_minmax_avx_params 398 k-block: 4 399- name: xnn_f32_igemm_minmax_ukernel_6x8__fma3_broadcast 400 init: xnn_init_f32_minmax_avx_params 401 k-block: 1 402- name: xnn_f32_igemm_minmax_ukernel_7x8__fma3_broadcast 403 init: xnn_init_f32_minmax_avx_params 404 k-block: 1 405- name: xnn_f32_igemm_minmax_ukernel_8x8__fma3_broadcast 406 init: xnn_init_f32_minmax_avx_params 407 k-block: 1 408# x86 AVX512 409- name: xnn_f32_igemm_minmax_ukernel_1x16__avx512f_broadcast 410 init: xnn_init_f32_minmax_scalar_params 411 k-block: 1 412- name: xnn_f32_igemm_minmax_ukernel_4x16__avx512f_broadcast 413 init: xnn_init_f32_minmax_scalar_params 414 k-block: 1 415- name: xnn_f32_igemm_minmax_ukernel_5x16__avx512f_broadcast 416 init: xnn_init_f32_minmax_scalar_params 417 k-block: 1 418- name: xnn_f32_igemm_minmax_ukernel_6x16__avx512f_broadcast 419 init: xnn_init_f32_minmax_scalar_params 420 k-block: 1 421- name: xnn_f32_igemm_minmax_ukernel_7x16__avx512f_broadcast 422 init: xnn_init_f32_minmax_scalar_params 423 k-block: 1 424- name: xnn_f32_igemm_minmax_ukernel_8x16__avx512f_broadcast 425 init: xnn_init_f32_minmax_scalar_params 426 k-block: 1 427# WAsm SIMD 428- name: xnn_f32_igemm_minmax_ukernel_1x8__wasmsimd_arm_loadsplat 429 init: xnn_init_f32_minmax_wasmsimd_params 430 k-block: 1 431- name: xnn_f32_igemm_minmax_ukernel_1x8__wasmsimd_arm_splat 432 init: xnn_init_f32_minmax_wasmsimd_params 433 k-block: 4 434- name: xnn_f32_igemm_minmax_ukernel_1x8__wasmsimd_x86_loadsplat 435 init: xnn_init_f32_minmax_wasmsimd_params 436 k-block: 1 437- name: xnn_f32_igemm_minmax_ukernel_1x8__wasmsimd_x86_splat 438 init: xnn_init_f32_minmax_wasmsimd_params 439 k-block: 4 440- name: xnn_f32_igemm_minmax_ukernel_1x8s4__wasmsimd_arm 441 init: xnn_init_f32_minmax_wasmsimd_params 442 k-block: 4 443- name: xnn_f32_igemm_minmax_ukernel_1x8s4__wasmsimd_x86 444 init: xnn_init_f32_minmax_wasmsimd_params 445 k-block: 4 446- name: xnn_f32_igemm_minmax_ukernel_3x8__wasmsimd_arm_loadsplat 447 init: xnn_init_f32_minmax_wasmsimd_params 448 k-block: 1 449- name: xnn_f32_igemm_minmax_ukernel_3x8__wasmsimd_arm_splat 450 init: xnn_init_f32_minmax_wasmsimd_params 451 k-block: 4 452- name: xnn_f32_igemm_minmax_ukernel_3x8__wasmsimd_x86_loadsplat 453 init: xnn_init_f32_minmax_wasmsimd_params 454 k-block: 1 455- name: xnn_f32_igemm_minmax_ukernel_3x8__wasmsimd_x86_splat 456 init: xnn_init_f32_minmax_wasmsimd_params 457 k-block: 4 458- name: xnn_f32_igemm_minmax_ukernel_3x8s4__wasmsimd_arm 459 init: xnn_init_f32_minmax_wasmsimd_params 460 k-block: 4 461- name: xnn_f32_igemm_minmax_ukernel_3x8s4__wasmsimd_x86 462 init: xnn_init_f32_minmax_wasmsimd_params 463 k-block: 4 464- name: xnn_f32_igemm_minmax_ukernel_4x2c4__wasmsimd_arm 465 init: xnn_init_f32_minmax_wasmsimd_params 466 k-block: 4 467- name: xnn_f32_igemm_minmax_ukernel_4x2c4__wasmsimd_x86 468 init: xnn_init_f32_minmax_wasmsimd_params 469 k-block: 4 470- name: xnn_f32_igemm_minmax_ukernel_4x8__wasmsimd_arm_loadsplat 471 init: xnn_init_f32_minmax_wasmsimd_params 472 k-block: 1 473- name: xnn_f32_igemm_minmax_ukernel_4x8__wasmsimd_arm_splat 474 init: xnn_init_f32_minmax_wasmsimd_params 475 k-block: 4 476- name: xnn_f32_igemm_minmax_ukernel_4x8__wasmsimd_x86_loadsplat 477 init: xnn_init_f32_minmax_wasmsimd_params 478 k-block: 1 479- name: xnn_f32_igemm_minmax_ukernel_4x8__wasmsimd_x86_splat 480 init: xnn_init_f32_minmax_wasmsimd_params 481 k-block: 4 482- name: xnn_f32_igemm_minmax_ukernel_4x8s4__wasmsimd_arm 483 init: xnn_init_f32_minmax_wasmsimd_params 484 k-block: 4 485- name: xnn_f32_igemm_minmax_ukernel_4x8s4__wasmsimd_x86 486 init: xnn_init_f32_minmax_wasmsimd_params 487 k-block: 4 488- name: xnn_f32_igemm_minmax_ukernel_5x8__wasmsimd_arm_loadsplat 489 init: xnn_init_f32_minmax_wasmsimd_params 490 k-block: 1 491- name: xnn_f32_igemm_minmax_ukernel_5x8__wasmsimd_arm_splat 492 init: xnn_init_f32_minmax_wasmsimd_params 493 k-block: 4 494- name: xnn_f32_igemm_minmax_ukernel_5x8__wasmsimd_x86_loadsplat 495 init: xnn_init_f32_minmax_wasmsimd_params 496 k-block: 1 497- name: xnn_f32_igemm_minmax_ukernel_5x8__wasmsimd_x86_splat 498 init: xnn_init_f32_minmax_wasmsimd_params 499 k-block: 4 500- name: xnn_f32_igemm_minmax_ukernel_5x8s4__wasmsimd_arm 501 init: xnn_init_f32_minmax_wasmsimd_params 502 k-block: 4 503- name: xnn_f32_igemm_minmax_ukernel_5x8s4__wasmsimd_x86 504 init: xnn_init_f32_minmax_wasmsimd_params 505 k-block: 4 506- name: xnn_f32_igemm_minmax_ukernel_6x8__wasmsimd_arm_loadsplat 507 init: xnn_init_f32_minmax_wasmsimd_params 508 k-block: 1 509- name: xnn_f32_igemm_minmax_ukernel_6x8__wasmsimd_arm_splat 510 init: xnn_init_f32_minmax_wasmsimd_params 511 k-block: 4 512- name: xnn_f32_igemm_minmax_ukernel_6x8__wasmsimd_x86_loadsplat 513 init: xnn_init_f32_minmax_wasmsimd_params 514 k-block: 1 515- name: xnn_f32_igemm_minmax_ukernel_6x8__wasmsimd_x86_splat 516 init: xnn_init_f32_minmax_wasmsimd_params 517 k-block: 4 518- name: xnn_f32_igemm_minmax_ukernel_6x8s4__wasmsimd_arm 519 init: xnn_init_f32_minmax_wasmsimd_params 520 k-block: 4 521- name: xnn_f32_igemm_minmax_ukernel_6x8s4__wasmsimd_x86 522 init: xnn_init_f32_minmax_wasmsimd_params 523 k-block: 4 524# WAsm Relaxed SIMD 525- name: xnn_f32_igemm_minmax_ukernel_1x8__wasmrelaxedsimd_fma_loadsplat 526 init: xnn_init_f32_minmax_wasmsimd_params 527 k-block: 1 528- name: xnn_f32_igemm_minmax_ukernel_1x8__wasmrelaxedsimd_fma_splat 529 init: xnn_init_f32_minmax_wasmsimd_params 530 k-block: 4 531- name: xnn_f32_igemm_minmax_ukernel_1x8__wasmrelaxedsimd_loadsplat 532 init: xnn_init_f32_minmax_wasmsimd_params 533 k-block: 1 534- name: xnn_f32_igemm_minmax_ukernel_1x8__wasmrelaxedsimd_splat 535 init: xnn_init_f32_minmax_wasmsimd_params 536 k-block: 4 537- name: xnn_f32_igemm_minmax_ukernel_1x8s4__wasmrelaxedsimd 538 init: xnn_init_f32_minmax_wasmsimd_params 539 k-block: 4 540- name: xnn_f32_igemm_minmax_ukernel_1x8s4__wasmrelaxedsimd_fma 541 init: xnn_init_f32_minmax_wasmsimd_params 542 k-block: 4 543- name: xnn_f32_igemm_minmax_ukernel_3x8__wasmrelaxedsimd_fma_loadsplat 544 init: xnn_init_f32_minmax_wasmsimd_params 545 k-block: 1 546- name: xnn_f32_igemm_minmax_ukernel_3x8__wasmrelaxedsimd_fma_splat 547 init: xnn_init_f32_minmax_wasmsimd_params 548 k-block: 4 549- name: xnn_f32_igemm_minmax_ukernel_3x8__wasmrelaxedsimd_loadsplat 550 init: xnn_init_f32_minmax_wasmsimd_params 551 k-block: 1 552- name: xnn_f32_igemm_minmax_ukernel_3x8__wasmrelaxedsimd_splat 553 init: xnn_init_f32_minmax_wasmsimd_params 554 k-block: 4 555- name: xnn_f32_igemm_minmax_ukernel_3x8s4__wasmrelaxedsimd 556 init: xnn_init_f32_minmax_wasmsimd_params 557 k-block: 4 558- name: xnn_f32_igemm_minmax_ukernel_3x8s4__wasmrelaxedsimd_fma 559 init: xnn_init_f32_minmax_wasmsimd_params 560 k-block: 4 561- name: xnn_f32_igemm_minmax_ukernel_4x2c4__wasmrelaxedsimd 562 init: xnn_init_f32_minmax_wasmsimd_params 563 k-block: 4 564- name: xnn_f32_igemm_minmax_ukernel_4x2c4__wasmrelaxedsimd_fma 565 init: xnn_init_f32_minmax_wasmsimd_params 566 k-block: 4 567- name: xnn_f32_igemm_minmax_ukernel_4x8__wasmrelaxedsimd_fma_loadsplat 568 init: xnn_init_f32_minmax_wasmsimd_params 569 k-block: 1 570- name: xnn_f32_igemm_minmax_ukernel_4x8__wasmrelaxedsimd_fma_splat 571 init: xnn_init_f32_minmax_wasmsimd_params 572 k-block: 4 573- name: xnn_f32_igemm_minmax_ukernel_4x8__wasmrelaxedsimd_loadsplat 574 init: xnn_init_f32_minmax_wasmsimd_params 575 k-block: 1 576- name: xnn_f32_igemm_minmax_ukernel_4x8__wasmrelaxedsimd_splat 577 init: xnn_init_f32_minmax_wasmsimd_params 578 k-block: 4 579- name: xnn_f32_igemm_minmax_ukernel_4x8s4__wasmrelaxedsimd 580 init: xnn_init_f32_minmax_wasmsimd_params 581 k-block: 4 582- name: xnn_f32_igemm_minmax_ukernel_4x8s4__wasmrelaxedsimd_fma 583 init: xnn_init_f32_minmax_wasmsimd_params 584 k-block: 4 585- name: xnn_f32_igemm_minmax_ukernel_5x8__wasmrelaxedsimd_fma_loadsplat 586 init: xnn_init_f32_minmax_wasmsimd_params 587 k-block: 1 588- name: xnn_f32_igemm_minmax_ukernel_5x8__wasmrelaxedsimd_fma_splat 589 init: xnn_init_f32_minmax_wasmsimd_params 590 k-block: 4 591- name: xnn_f32_igemm_minmax_ukernel_5x8__wasmrelaxedsimd_loadsplat 592 init: xnn_init_f32_minmax_wasmsimd_params 593 k-block: 1 594- name: xnn_f32_igemm_minmax_ukernel_5x8__wasmrelaxedsimd_splat 595 init: xnn_init_f32_minmax_wasmsimd_params 596 k-block: 4 597- name: xnn_f32_igemm_minmax_ukernel_5x8s4__wasmrelaxedsimd 598 init: xnn_init_f32_minmax_wasmsimd_params 599 k-block: 4 600- name: xnn_f32_igemm_minmax_ukernel_5x8s4__wasmrelaxedsimd_fma 601 init: xnn_init_f32_minmax_wasmsimd_params 602 k-block: 4 603- name: xnn_f32_igemm_minmax_ukernel_6x8__wasmrelaxedsimd_fma_loadsplat 604 init: xnn_init_f32_minmax_wasmsimd_params 605 k-block: 1 606- name: xnn_f32_igemm_minmax_ukernel_6x8__wasmrelaxedsimd_fma_splat 607 init: xnn_init_f32_minmax_wasmsimd_params 608 k-block: 4 609- name: xnn_f32_igemm_minmax_ukernel_6x8__wasmrelaxedsimd_loadsplat 610 init: xnn_init_f32_minmax_wasmsimd_params 611 k-block: 1 612- name: xnn_f32_igemm_minmax_ukernel_6x8__wasmrelaxedsimd_splat 613 init: xnn_init_f32_minmax_wasmsimd_params 614 k-block: 4 615- name: xnn_f32_igemm_minmax_ukernel_6x8s4__wasmrelaxedsimd 616 init: xnn_init_f32_minmax_wasmsimd_params 617 k-block: 4 618- name: xnn_f32_igemm_minmax_ukernel_6x8s4__wasmrelaxedsimd_fma 619 init: xnn_init_f32_minmax_wasmsimd_params 620 k-block: 4 621# WAsm 622- name: xnn_f32_igemm_minmax_ukernel_1x4__wasm 623 init: xnn_init_f32_minmax_scalar_params 624 k-block: 1 625- name: xnn_f32_igemm_minmax_ukernel_2x4__wasm 626 init: xnn_init_f32_minmax_scalar_params 627 k-block: 1 628- name: xnn_f32_igemm_minmax_ukernel_4x2__wasm 629 init: xnn_init_f32_minmax_scalar_params 630 k-block: 1 631- name: xnn_f32_igemm_minmax_ukernel_4x4__wasm 632 init: xnn_init_f32_minmax_scalar_params 633 k-block: 1 634# Scalar 635- name: xnn_f32_igemm_minmax_ukernel_1x4__scalar 636 init: xnn_init_f32_minmax_scalar_params 637 k-block: 1 638- name: xnn_f32_igemm_minmax_ukernel_2x4__scalar 639 init: xnn_init_f32_minmax_scalar_params 640 k-block: 1 641- name: xnn_f32_igemm_minmax_ukernel_4x2__scalar 642 init: xnn_init_f32_minmax_scalar_params 643 k-block: 1 644- name: xnn_f32_igemm_minmax_ukernel_4x4__scalar 645 init: xnn_init_f32_minmax_scalar_params 646 k-block: 1 647# AArch32 JIT assembly 648- name: xnn_generate_f32_igemm_ukernel_4x8__aarch32_neon_cortex_a7 649 init: xnn_init_f32_minmax_scalar_params 650 k-block: 2 651 pipelined: false 652 assembly: true 653- name: xnn_generate_f32_igemm_ukernel_4x8__aarch32_neon_cortex_a53 654 init: xnn_init_f32_minmax_scalar_params 655 k-block: 4 656 pipelined: true 657 assembly: true 658- name: xnn_generate_f32_igemm_ukernel_4x8__aarch32_neon_cortex_a55 659 init: xnn_init_f32_minmax_scalar_params 660 k-block: 4 661 pipelined: true 662 assembly: true 663- name: xnn_generate_f32_igemm_ukernel_4x8__aarch32_neon_cortex_a75 664 init: xnn_init_f32_minmax_scalar_params 665 k-block: 4 666 pipelined: true 667 assembly: true 668- name: xnn_generate_f32_igemm_ukernel_4x8__aarch32_neon_ld64 669 init: xnn_init_f32_minmax_scalar_params 670 k-block: 2 671 pipelined: false 672 assembly: true 673- name: xnn_generate_f32_igemm_ukernel_4x8__aarch32_neon_prfm_cortex_a75 674 init: xnn_init_f32_minmax_scalar_params 675 k-block: 4 676 pipelined: true 677 assembly: true 678# AArch64 JIT assembly 679- name: xnn_generate_f32_igemm_ukernel_upto6x8__aarch64_neonfma_cortex_a75 680 init: xnn_init_f32_minmax_scalar_params 681 k-block: 8 682 pipelined: true 683- name: xnn_generate_f32_igemm_ukernel_upto6x8__aarch64_neonfma_prfm_cortex_a75 684 init: xnn_init_f32_minmax_scalar_params 685 k-block: 8 686 pipelined: true 687- name: xnn_generate_f32_igemm_ukernel_1x8__aarch64_neonfma_cortex_a75 688 init: xnn_init_f32_minmax_scalar_params 689 k-block: 8 690 pipelined: true 691- name: xnn_generate_f32_igemm_ukernel_1x8__aarch64_neonfma_prfm_cortex_a75 692 init: xnn_init_f32_minmax_scalar_params 693 k-block: 8 694 pipelined: true 695- name: xnn_generate_f32_igemm_ukernel_4x8__aarch64_neonfma_cortex_a75 696 init: xnn_init_f32_minmax_scalar_params 697 k-block: 8 698 pipelined: true 699- name: xnn_generate_f32_igemm_ukernel_4x8__aarch64_neonfma_prfm_cortex_a75 700 init: xnn_init_f32_minmax_scalar_params 701 k-block: 8 702 pipelined: true 703- name: xnn_generate_f32_igemm_ukernel_6x8__aarch64_neonfma_ld128 704 init: xnn_init_f32_minmax_scalar_params 705 k-block: 4 706