1# Copyright (c) Facebook, Inc. and its affiliates. 2# All rights reserved. 3# 4# Copyright 2019 Google LLC 5# 6# This source code is licensed under the BSD-style license found in the 7# LICENSE file in the root directory of this source tree. 8 9CMAKE_MINIMUM_REQUIRED(VERSION 3.5 FATAL_ERROR) 10 11INCLUDE(GNUInstallDirs) 12 13# ---[ Project and semantic versioning. 14PROJECT(XNNPACK C CXX ASM) 15 16# ---[ Options. 17SET(XNNPACK_LIBRARY_TYPE "default" CACHE STRING "Type of library (shared, static, or default) to build") 18SET_PROPERTY(CACHE XNNPACK_LIBRARY_TYPE PROPERTY STRINGS default static shared) 19OPTION(XNNPACK_BUILD_TESTS "Build XNNPACK unit tests" ON) 20OPTION(XNNPACK_BUILD_BENCHMARKS "Build XNNPACK benchmarks" ON) 21 22# ---[ CMake options 23IF(XNNPACK_BUILD_TESTS) 24 ENABLE_TESTING() 25ENDIF() 26 27# ---[ Build flags 28IF(NOT CMAKE_SYSTEM_PROCESSOR) 29 IF(IOS) 30 LIST(LENGTH IOS_ARCH IOS_ARCH_COUNT) 31 IF(IOS_ARCH_COUNT GREATER 1) 32 MESSAGE(FATAL_ERROR "Unsupported XNNPACK build with multiple iOS architectures (${IOS_ARCH}). " 33 "Specify a single architecture in IOS_ARCH and re-configure. ") 34 ENDIF() 35 IF(NOT IOS_ARCH MATCHES "^(i386|x86_64|armv7.*|arm64.*)$") 36 MESSAGE(FATAL_ERROR "Unrecognized IOS_ARCH = ${IOS_ARCH}") 37 ENDIF() 38 ELSE() 39 MESSAGE(FATAL_ERROR "CMAKE_SYSTEM_PROCESSOR is not defined") 40 ENDIF() 41ELSEIF(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(i[3-6]86|x86_64|armv[5-8].*|aarch64)$") 42 MESSAGE(FATAL_ERROR "Unrecognized CMAKE_SYSTEM_PROCESSOR = ${CMAKE_SYSTEM_PROCESSOR}") 43ENDIF() 44 45IF(NOT CMAKE_SYSTEM_NAME) 46 MESSAGE(FATAL_ERROR "CMAKE_SYSTEM_NAME not defined") 47ELSEIF(NOT CMAKE_SYSTEM_NAME MATCHES "^(Darwin|Linux|Android)$") 48 MESSAGE(FATAL_ERROR "Unrecognized CMAKE_SYSTEM_NAME = ${CMAKE_SYSTEM_NAME}") 49ENDIF() 50 51# ---[ Download deps 52IF(NOT DEFINED CLOG_SOURCE_DIR) 53 MESSAGE(STATUS "Downloading clog to ${CMAKE_BINARY_DIR}/clog-source (define CLOG_SOURCE_DIR to avoid it)") 54 CONFIGURE_FILE(cmake/DownloadCLog.cmake "${CMAKE_BINARY_DIR}/clog-download/CMakeLists.txt") 55 EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . 56 WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/clog-download") 57 EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" --build . 58 WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/clog-download") 59 SET(CLOG_SOURCE_DIR "${CMAKE_BINARY_DIR}/clog-source" CACHE STRING "clog source directory") 60ENDIF() 61 62IF(NOT DEFINED CPUINFO_SOURCE_DIR) 63 MESSAGE(STATUS "Downloading cpuinfo to ${CMAKE_BINARY_DIR}/cpuinfo-source (define CPUINFO_SOURCE_DIR to avoid it)") 64 CONFIGURE_FILE(cmake/DownloadCpuinfo.cmake "${CMAKE_BINARY_DIR}/cpuinfo-download/CMakeLists.txt") 65 EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . 66 WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/cpuinfo-download") 67 EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" --build . 68 WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/cpuinfo-download") 69 SET(CPUINFO_SOURCE_DIR "${CMAKE_BINARY_DIR}/cpuinfo-source" CACHE STRING "cpuinfo source directory") 70ENDIF() 71 72IF(NOT DEFINED FP16_SOURCE_DIR) 73 MESSAGE(STATUS "Downloading FP16 to ${CMAKE_BINARY_DIR}/FP16-source (define FP16_SOURCE_DIR to avoid it)") 74 CONFIGURE_FILE(cmake/DownloadFP16.cmake "${CMAKE_BINARY_DIR}/FP16-download/CMakeLists.txt") 75 EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . 76 WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/FP16-download") 77 EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" --build . 78 WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/FP16-download") 79 SET(FP16_SOURCE_DIR "${CMAKE_BINARY_DIR}/FP16-source" CACHE STRING "FP16 source directory") 80ENDIF() 81 82IF(NOT DEFINED FXDIV_SOURCE_DIR) 83 MESSAGE(STATUS "Downloading FXdiv to ${CMAKE_BINARY_DIR}/FXdiv-source (define FXDIV_SOURCE_DIR to avoid it)") 84 CONFIGURE_FILE(cmake/DownloadFXdiv.cmake "${CMAKE_BINARY_DIR}/FXdiv-download/CMakeLists.txt") 85 EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . 86 WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/FXdiv-download") 87 EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" --build . 88 WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/FXdiv-download") 89 SET(FXDIV_SOURCE_DIR "${CMAKE_BINARY_DIR}/FXdiv-source" CACHE STRING "FXdiv source directory") 90ENDIF() 91 92IF(NOT DEFINED PSIMD_SOURCE_DIR) 93 MESSAGE(STATUS "Downloading PSimd to ${CMAKE_BINARY_DIR}/psimd-source (define PSIMD_SOURCE_DIR to avoid it)") 94 CONFIGURE_FILE(cmake/DownloadPSimd.cmake "${CMAKE_BINARY_DIR}/psimd-download/CMakeLists.txt") 95 EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . 96 WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/psimd-download") 97 EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" --build . 98 WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/psimd-download") 99 SET(PSIMD_SOURCE_DIR "${CMAKE_BINARY_DIR}/psimd-source" CACHE STRING "PSimd source directory") 100ENDIF() 101 102IF(NOT DEFINED PTHREADPOOL_SOURCE_DIR) 103 MESSAGE(STATUS "Downloading pthreadpool to ${CMAKE_BINARY_DIR}/pthreadpool-source (define PTHREADPOOL_SOURCE_DIR to avoid it)") 104 CONFIGURE_FILE(cmake/DownloadPThreadPool.cmake "${CMAKE_BINARY_DIR}/pthreadpool-download/CMakeLists.txt") 105 EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . 106 WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/pthreadpool-download") 107 EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" --build . 108 WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/pthreadpool-download") 109 SET(PTHREADPOOL_SOURCE_DIR "${CMAKE_BINARY_DIR}/pthreadpool-source" CACHE STRING "pthreadpool source directory") 110ENDIF() 111 112IF(XNNPACK_BUILD_TESTS AND NOT DEFINED GOOGLETEST_SOURCE_DIR) 113 MESSAGE(STATUS "Downloading Google Test to ${CMAKE_BINARY_DIR}/googletest-source (define GOOGLETEST_SOURCE_DIR to avoid it)") 114 CONFIGURE_FILE(cmake/DownloadGoogleTest.cmake "${CMAKE_BINARY_DIR}/googletest-download/CMakeLists.txt") 115 EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . 116 WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/googletest-download") 117 EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" --build . 118 WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/googletest-download") 119 SET(GOOGLETEST_SOURCE_DIR "${CMAKE_BINARY_DIR}/googletest-source" CACHE STRING "Google Test source directory") 120ENDIF() 121 122IF(XNNPACK_BUILD_BENCHMARKS AND NOT DEFINED GOOGLEBENCHMARK_SOURCE_DIR) 123 MESSAGE(STATUS "Downloading Google Benchmark to ${CMAKE_BINARY_DIR}/googlebenchmark-source (define GOOGLEBENCHMARK_SOURCE_DIR to avoid it)") 124 CONFIGURE_FILE(cmake/DownloadGoogleBenchmark.cmake "${CMAKE_BINARY_DIR}/googlebenchmark-download/CMakeLists.txt") 125 EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . 126 WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/googlebenchmark-download") 127 EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" --build . 128 WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/googlebenchmark-download") 129 SET(GOOGLEBENCHMARK_SOURCE_DIR "${CMAKE_BINARY_DIR}/googlebenchmark-source" CACHE STRING "Google Benchmark source directory") 130ENDIF() 131 132# ---[ XNNPACK library 133SET(XNNPACK_OPERATOR_SRCS 134 src/add-nc.c 135 src/argmax-pooling-nhwc.c 136 src/average-pooling-nhwc.c 137 src/binary-elementwise-nd.c 138 src/channel-pad-nc.c 139 src/channel-shuffle-nc.c 140 src/clamp-nc.c 141 src/convolution-nchw.c 142 src/convolution-nhwc.c 143 src/deconvolution-nhwc.c 144 src/fully-connected-nc.c 145 src/global-average-pooling-ncw.c 146 src/global-average-pooling-nwc.c 147 src/hardswish-nc.c 148 src/leaky-relu-nc.c 149 src/max-pooling-nhwc.c 150 src/prelu-nc.c 151 src/resize-bilinear-nhwc.c 152 src/sigmoid-nc.c 153 src/softmax-nc.c 154 src/unpooling-nhwc.c) 155 156SET(XNNPACK_COLD_SRCS ${XNNPACK_OPERATOR_SRCS}) 157LIST(APPEND XNNPACK_COLD_SRCS 158 src/init.c 159 src/memory.c 160 src/operator-delete.c 161 src/runtime.c 162 src/subgraph.c 163 src/tensor.c) 164 165SET(XNNPACK_HOT_SRCS 166 src/indirection.c 167 src/operator-run.c) 168 169SET(XNNPACK_TABLE_SRCS 170 src/tables/exp2-k-over-64.c 171 src/tables/exp2-k-over-2048.c) 172 173SET(XNNPACK_SCALAR_MICROKERNEL_SRCS 174 src/f32-argmaxpool/4x-scalar-c1.c 175 src/f32-argmaxpool/9p8x-scalar-c1.c 176 src/f32-argmaxpool/9x-scalar-c1.c 177 src/f32-avgpool/mp9p8q-scalar.c 178 src/f32-avgpool/up9-scalar.c 179 src/f32-bilinear/gen/scalar-c1.c 180 src/f32-bilinear/gen/scalar-c2.c 181 src/f32-bilinear/gen/scalar-c4.c 182 src/f32-clamp/scalar.c 183 src/f32-conv-hwc/3x3s2p1c3x4-scalar-1x1.c 184 src/f32-conv-hwc/3x3s2p0p1c3x4-scalar-1x1.c 185 src/f32-conv-hwc2spchw/3x3s2p1c3x4-scalar-1x1.c 186 src/f32-dwconv-spchw/3x3p1-scalar.c 187 src/f32-dwconv-spchw/3x3s2p1-scalar.c 188 src/f32-dwconv-spchw/5x5p2-scalar.c 189 src/f32-dwconv-spchw/5x5s2p2-scalar.c 190 src/f32-dwconv/gen/up1x25-scalar-acc2.c 191 src/f32-dwconv/gen/up1x25-scalar.c 192 src/f32-dwconv/gen/up1x4-scalar-acc2.c 193 src/f32-dwconv/gen/up1x4-scalar.c 194 src/f32-dwconv/gen/up1x9-scalar-acc2.c 195 src/f32-dwconv/gen/up1x9-scalar.c 196 src/f32-dwconv/gen/up2x25-scalar-acc2.c 197 src/f32-dwconv/gen/up2x25-scalar.c 198 src/f32-dwconv/gen/up2x4-scalar-acc2.c 199 src/f32-dwconv/gen/up2x4-scalar.c 200 src/f32-dwconv/gen/up2x9-scalar-acc2.c 201 src/f32-dwconv/gen/up2x9-scalar.c 202 src/f32-gavgpool-spchw/scalar-x1.c 203 src/f32-gavgpool/mp7p7q-scalar.c 204 src/f32-gavgpool/up7-scalar.c 205 src/f32-gemm/gen/1x4-scalar.c 206 src/f32-gemm/gen/2x4-scalar.c 207 src/f32-gemm/gen/4x2-scalar.c 208 src/f32-gemm/gen/4x4-scalar.c 209 src/f32-gemm/gen-inc/1x4-scalar.c 210 src/f32-gemm/gen-inc/2x4-scalar.c 211 src/f32-gemm/gen-inc/4x4-scalar.c 212 src/f32-hswish/gen/scalar-x1.c 213 src/f32-hswish/gen/scalar-x2.c 214 src/f32-hswish/gen/scalar-x4.c 215 src/f32-igemm/gen/1x4-scalar.c 216 src/f32-igemm/gen/2x4-scalar.c 217 src/f32-igemm/gen/4x2-scalar.c 218 src/f32-igemm/gen/4x4-scalar.c 219 src/f32-maxpool/9p8x-scalar-c1.c 220 src/f32-pavgpool/mp9p8q-scalar.c 221 src/f32-pavgpool/up9-scalar.c 222 src/f32-ppmm/gen/2x4-scalar.c 223 src/f32-ppmm/gen/3x3-scalar.c 224 src/f32-ppmm/gen/4x2-scalar.c 225 src/f32-ppmm/gen/4x4-scalar.c 226 src/f32-prelu/gen/scalar-2x1.c 227 src/f32-prelu/gen/scalar-2x4.c 228 src/f32-raddstoreexpminusmax/gen/scalar-lut64-p2-x1.c 229 src/f32-raddstoreexpminusmax/gen/scalar-lut64-p2-x2.c 230 src/f32-raddstoreexpminusmax/gen/scalar-lut64-p2-x2-acc2.c 231 src/f32-raddstoreexpminusmax/gen/scalar-lut64-p2-x4.c 232 src/f32-raddstoreexpminusmax/gen/scalar-lut64-p2-x4-acc2.c 233 src/f32-raddstoreexpminusmax/gen/scalar-lut64-p2-x4-acc4.c 234 src/f32-raddstoreexpminusmax/gen/scalar-p5-x1.c 235 src/f32-raddstoreexpminusmax/gen/scalar-p5-x2.c 236 src/f32-raddstoreexpminusmax/gen/scalar-p5-x2-acc2.c 237 src/f32-raddstoreexpminusmax/gen/scalar-p5-x4.c 238 src/f32-raddstoreexpminusmax/gen/scalar-p5-x4-acc2.c 239 src/f32-raddstoreexpminusmax/gen/scalar-p5-x4-acc4.c 240 src/f32-rmax/scalar.c 241 src/f32-sigmoid/gen/scalar-lut2048-p1-div-x1.c 242 src/f32-sigmoid/gen/scalar-lut2048-p1-div-x2.c 243 src/f32-sigmoid/gen/scalar-lut2048-p1-div-x4.c 244 src/f32-sigmoid/gen/scalar-lut64-p2-div-x1.c 245 src/f32-sigmoid/gen/scalar-lut64-p2-div-x2.c 246 src/f32-sigmoid/gen/scalar-lut64-p2-div-x4.c 247 src/f32-sigmoid/gen/scalar-p5-div-x1.c 248 src/f32-sigmoid/gen/scalar-p5-div-x2.c 249 src/f32-sigmoid/gen/scalar-p5-div-x4.c 250 src/f32-spmm/gen/1x1-scalar-pipelined.c 251 src/f32-spmm/gen/1x1-scalar.c 252 src/f32-spmm/gen/2x1-scalar-pipelined.c 253 src/f32-spmm/gen/2x1-scalar.c 254 src/f32-spmm/gen/4x1-scalar-pipelined.c 255 src/f32-spmm/gen/4x1-scalar.c 256 src/f32-spmm/gen/8x1-scalar-pipelined.c 257 src/f32-spmm/gen/8x1-scalar.c 258 src/f32-spmm/gen/8x2-scalar.c 259 src/f32-spmm/gen/8x4-scalar.c 260 src/f32-vbinary/gen/vadd-scalar-x1.c 261 src/f32-vbinary/gen/vadd-scalar-x2.c 262 src/f32-vbinary/gen/vadd-scalar-x4.c 263 src/f32-vbinary/gen/vaddc-scalar-x1.c 264 src/f32-vbinary/gen/vaddc-scalar-x2.c 265 src/f32-vbinary/gen/vaddc-scalar-x4.c 266 src/f32-vbinary/gen/vdiv-scalar-x1.c 267 src/f32-vbinary/gen/vdiv-scalar-x2.c 268 src/f32-vbinary/gen/vdiv-scalar-x4.c 269 src/f32-vbinary/gen/vdivc-scalar-x1.c 270 src/f32-vbinary/gen/vdivc-scalar-x2.c 271 src/f32-vbinary/gen/vdivc-scalar-x4.c 272 src/f32-vbinary/gen/vmax-scalar-x1.c 273 src/f32-vbinary/gen/vmax-scalar-x2.c 274 src/f32-vbinary/gen/vmax-scalar-x4.c 275 src/f32-vbinary/gen/vmaxc-scalar-x1.c 276 src/f32-vbinary/gen/vmaxc-scalar-x2.c 277 src/f32-vbinary/gen/vmaxc-scalar-x4.c 278 src/f32-vbinary/gen/vmin-scalar-x1.c 279 src/f32-vbinary/gen/vmin-scalar-x2.c 280 src/f32-vbinary/gen/vmin-scalar-x4.c 281 src/f32-vbinary/gen/vminc-scalar-x1.c 282 src/f32-vbinary/gen/vminc-scalar-x2.c 283 src/f32-vbinary/gen/vminc-scalar-x4.c 284 src/f32-vbinary/gen/vmul-scalar-x1.c 285 src/f32-vbinary/gen/vmul-scalar-x2.c 286 src/f32-vbinary/gen/vmul-scalar-x4.c 287 src/f32-vbinary/gen/vmulc-scalar-x1.c 288 src/f32-vbinary/gen/vmulc-scalar-x2.c 289 src/f32-vbinary/gen/vmulc-scalar-x4.c 290 src/f32-vbinary/gen/vrdivc-scalar-x1.c 291 src/f32-vbinary/gen/vrdivc-scalar-x2.c 292 src/f32-vbinary/gen/vrdivc-scalar-x4.c 293 src/f32-vbinary/gen/vrsubc-scalar-x1.c 294 src/f32-vbinary/gen/vrsubc-scalar-x2.c 295 src/f32-vbinary/gen/vrsubc-scalar-x4.c 296 src/f32-vbinary/gen/vsub-scalar-x1.c 297 src/f32-vbinary/gen/vsub-scalar-x2.c 298 src/f32-vbinary/gen/vsub-scalar-x4.c 299 src/f32-vbinary/gen/vsubc-scalar-x1.c 300 src/f32-vbinary/gen/vsubc-scalar-x2.c 301 src/f32-vbinary/gen/vsubc-scalar-x4.c 302 src/f32-vmulcaddc/gen/c1-scalar-2x.c 303 src/f32-vmulcaddc/gen/c2-scalar-2x.c 304 src/f32-vmulcaddc/gen/c4-scalar-2x.c 305 src/math/expminus-scalar-lut2048-p1.c 306 src/math/expminus-scalar-lut64-p2.c 307 src/math/expminus-scalar-p5.c 308 src/math/sigmoid-scalar-lut2048-p1-div.c 309 src/math/sigmoid-scalar-lut64-p2-div.c 310 src/math/sigmoid-scalar-p5-div.c 311 src/q8-avgpool/mp9p8q-scalar.c 312 src/q8-avgpool/up9-scalar.c 313 src/q8-dwconv/up1x9-scalar.c 314 src/q8-gavgpool/mp7p7q-scalar.c 315 src/q8-gavgpool/up7-scalar.c 316 src/q8-gemm/2x2-scalar.c 317 src/q8-igemm/2x2-scalar.c 318 src/q8-vadd/scalar.c 319 src/u8-clamp/scalar.c 320 src/u8-lut32norm/scalar.c 321 src/u8-maxpool/9p8x-scalar-c1.c 322 src/u8-rmax/scalar.c 323 src/x32-packx/x2-scalar.c 324 src/x32-packx/x3-scalar.c 325 src/x32-packx/x4-scalar.c 326 src/x32-pad/x2-scalar.c 327 src/x32-unpool/scalar.c 328 src/x32-zip/x2-scalar.c 329 src/x32-zip/x3-scalar.c 330 src/x32-zip/x4-scalar.c 331 src/x32-zip/xm-scalar.c 332 src/x8-lut/scalar.c 333 src/x8-zip/x2-scalar.c 334 src/x8-zip/x3-scalar.c 335 src/x8-zip/x4-scalar.c 336 src/x8-zip/xm-scalar.c) 337 338SET(XNNPACK_PSIMD_FASTMATH_MICROKERNEL_SRCS 339 src/f32-argmaxpool/4x-psimd-c4.c 340 src/f32-argmaxpool/9p8x-psimd-c4.c 341 src/f32-argmaxpool/9x-psimd-c4.c 342 src/f32-avgpool/mp9p8q-psimd.c 343 src/f32-avgpool/up9-psimd.c 344 src/f32-bilinear/gen/psimd-c4.c 345 src/f32-bilinear/gen/psimd-c8.c 346 src/f32-clamp/psimd.c 347 src/f32-dwconv/gen/up4x25-psimd-acc2.c 348 src/f32-dwconv/gen/up4x25-psimd.c 349 src/f32-dwconv/gen/up4x4-psimd-acc2.c 350 src/f32-dwconv/gen/up4x4-psimd.c 351 src/f32-dwconv/gen/up4x9-psimd-acc2.c 352 src/f32-dwconv/gen/up4x9-psimd.c 353 src/f32-dwconv/gen/up8x25-psimd-acc2.c 354 src/f32-dwconv/gen/up8x25-psimd.c 355 src/f32-dwconv/gen/up8x4-psimd-acc2.c 356 src/f32-dwconv/gen/up8x4-psimd.c 357 src/f32-dwconv/gen/up8x9-psimd-acc2.c 358 src/f32-dwconv/gen/up8x9-psimd.c 359 src/f32-gavgpool/mp7p7q-psimd.c 360 src/f32-gavgpool/up7-psimd.c 361 src/f32-gemm/gen/1x8-psimd-loadsplat.c 362 src/f32-gemm/gen/1x8-psimd-splat.c 363 src/f32-gemm/gen/1x8s4-psimd.c 364 src/f32-gemm/gen/4x8-psimd-loadsplat.c 365 src/f32-gemm/gen/4x8-psimd-splat.c 366 src/f32-gemm/gen/4x8s4-psimd.c 367 src/f32-gemm/gen/6x8-psimd-loadsplat.c 368 src/f32-gemm/gen/6x8-psimd-splat.c 369 src/f32-gemm/gen/6x8s4-psimd.c 370 src/f32-gemm/gen-inc/1x8-psimd-loadsplat.c 371 src/f32-gemm/gen-inc/1x8-psimd-splat.c 372 src/f32-gemm/gen-inc/1x8s4-psimd.c 373 src/f32-gemm/gen-inc/4x8-psimd-loadsplat.c 374 src/f32-gemm/gen-inc/4x8-psimd-splat.c 375 src/f32-gemm/gen-inc/4x8s4-psimd.c 376 src/f32-gemm/gen-inc/6x8-psimd-loadsplat.c 377 src/f32-gemm/gen-inc/6x8-psimd-splat.c 378 src/f32-gemm/gen-inc/6x8s4-psimd.c 379 src/f32-hswish/gen/psimd-x4.c 380 src/f32-hswish/gen/psimd-x8.c 381 src/f32-igemm/gen/1x8-psimd-loadsplat.c 382 src/f32-igemm/gen/1x8-psimd-splat.c 383 src/f32-igemm/gen/1x8s4-psimd.c 384 src/f32-igemm/gen/4x2c4-psimd.c 385 src/f32-igemm/gen/4x8-psimd-loadsplat.c 386 src/f32-igemm/gen/4x8-psimd-splat.c 387 src/f32-igemm/gen/4x8s4-psimd.c 388 src/f32-igemm/gen/6x8-psimd-loadsplat.c 389 src/f32-igemm/gen/6x8-psimd-splat.c 390 src/f32-igemm/gen/6x8s4-psimd.c 391 src/f32-maxpool/9p8x-psimd-c4.c 392 src/f32-pavgpool/mp9p8q-psimd.c 393 src/f32-pavgpool/up9-psimd.c 394 src/f32-ppmm/gen/4x8-psimd.c 395 src/f32-prelu/gen/psimd-2x4.c 396 src/f32-prelu/gen/psimd-2x8.c 397 src/f32-rmax/psimd.c 398 src/f32-vbinary/gen/vadd-psimd-x4.c 399 src/f32-vbinary/gen/vadd-psimd-x8.c 400 src/f32-vbinary/gen/vaddc-psimd-x4.c 401 src/f32-vbinary/gen/vaddc-psimd-x8.c 402 src/f32-vbinary/gen/vdiv-psimd-x4.c 403 src/f32-vbinary/gen/vdiv-psimd-x8.c 404 src/f32-vbinary/gen/vdivc-psimd-x4.c 405 src/f32-vbinary/gen/vdivc-psimd-x8.c 406 src/f32-vbinary/gen/vmax-psimd-x4.c 407 src/f32-vbinary/gen/vmax-psimd-x8.c 408 src/f32-vbinary/gen/vmaxc-psimd-x4.c 409 src/f32-vbinary/gen/vmaxc-psimd-x8.c 410 src/f32-vbinary/gen/vmin-psimd-x4.c 411 src/f32-vbinary/gen/vmin-psimd-x8.c 412 src/f32-vbinary/gen/vminc-psimd-x4.c 413 src/f32-vbinary/gen/vminc-psimd-x8.c 414 src/f32-vbinary/gen/vmul-psimd-x4.c 415 src/f32-vbinary/gen/vmul-psimd-x8.c 416 src/f32-vbinary/gen/vmulc-psimd-x4.c 417 src/f32-vbinary/gen/vmulc-psimd-x8.c 418 src/f32-vbinary/gen/vrdivc-psimd-x4.c 419 src/f32-vbinary/gen/vrdivc-psimd-x8.c 420 src/f32-vbinary/gen/vrsubc-psimd-x4.c 421 src/f32-vbinary/gen/vrsubc-psimd-x8.c 422 src/f32-vbinary/gen/vsub-psimd-x4.c 423 src/f32-vbinary/gen/vsub-psimd-x8.c 424 src/f32-vbinary/gen/vsubc-psimd-x4.c 425 src/f32-vbinary/gen/vsubc-psimd-x8.c 426 src/f32-vmulcaddc/gen/c4-psimd-2x.c 427 src/f32-vmulcaddc/gen/c8-psimd-2x.c 428 src/x32-packx/x4-psimd.c 429 src/x32-pad/x2-psimd.c 430 src/x32-unpool/psimd.c 431 src/x32-zip/x2-psimd.c 432 src/x32-zip/x3-psimd.c 433 src/x32-zip/x4-psimd.c 434 src/x32-zip/xm-psimd.c) 435 436SET(XNNPACK_PSIMD_ACCMATH_MICROKERNEL_SRCS 437 src/f32-raddstoreexpminusmax/gen/psimd-p5-x4.c 438 src/f32-raddstoreexpminusmax/gen/psimd-p5-x8.c 439 src/f32-raddstoreexpminusmax/gen/psimd-p5-x8-acc2.c 440 src/f32-raddstoreexpminusmax/gen/psimd-p5-x12.c 441 src/f32-raddstoreexpminusmax/gen/psimd-p5-x12-acc2.c 442 src/f32-raddstoreexpminusmax/gen/psimd-p5-x12-acc3.c 443 src/f32-raddstoreexpminusmax/gen/psimd-p5-x16.c 444 src/f32-raddstoreexpminusmax/gen/psimd-p5-x16-acc2.c 445 src/f32-raddstoreexpminusmax/gen/psimd-p5-x16-acc4.c 446 src/f32-raddstoreexpminusmax/gen/psimd-p5-x20.c 447 src/f32-raddstoreexpminusmax/gen/psimd-p5-x20-acc2.c 448 src/f32-raddstoreexpminusmax/gen/psimd-p5-x20-acc5.c 449 src/f32-sigmoid/gen/psimd-p5-div-x4.c 450 src/f32-sigmoid/gen/psimd-p5-div-x8.c 451 src/f32-sigmoid/gen/psimd-p5-div-x12.c 452 src/f32-sigmoid/gen/psimd-p5-div-x16.c 453 src/f32-sigmoid/gen/psimd-p5-div-x20.c 454 src/f32-sigmoid/gen/psimd-p5-div-x24.c 455 src/math/sigmoid-psimd-p5-div.c) 456 457SET(XNNPACK_NEON_MICROKERNEL_SRCS 458 src/f32-avgpool/mp9p8q-neon.c 459 src/f32-avgpool/up9-neon.c 460 src/f32-bilinear/gen/neon-c4.c 461 src/f32-bilinear/gen/neon-c8.c 462 src/f32-clamp/neon.c 463 src/f32-dwconv/gen/up4x9-neon.c 464 src/f32-dwconv/gen/up4x9-neon-acc2.c 465 src/f32-dwconv/gen/up8x9-neon.c 466 src/f32-dwconv/gen/up8x9-neon-acc2.c 467 src/f32-gavgpool-spchw/neon-x4.c 468 src/f32-gavgpool/mp7p7q-neon.c 469 src/f32-gavgpool/up7-neon.c 470 src/f32-gemm/gen/1x8-neon-lane-ld64.c 471 src/f32-gemm/gen/4x2-neon-lane-ld64.c 472 src/f32-gemm/gen/4x8-neon-lane-ld128.c 473 src/f32-gemm/gen/4x8-neon-lane-ld64.c 474 src/f32-gemm/gen/5x8-neon-lane-ld64.c 475 src/f32-gemm/gen/6x8-neon-lane-ld64.c 476 src/f32-gemm/gen/6x8-neon-lane-ld128.c 477 src/f32-gemm/gen/1x8-neon-dup-ld64.c 478 src/f32-gemm/gen/4x8-neon-dup-ld128.c 479 src/f32-gemm/gen/4x8-neon-dup-ld64.c 480 src/f32-gemm/gen/6x8-neon-dup-ld64.c 481 src/f32-gemm/gen/6x8-neon-dup-ld128.c 482 src/f32-gemm/gen/1x8s4-neon.c 483 src/f32-gemm/gen/4x8s4-neon.c 484 src/f32-gemm/gen/6x8s4-neon.c 485 src/f32-gemm/gen/8x8s4-neon.c 486 src/f32-gemm/gen-inc/1x8-neon-lane-ld64.c 487 src/f32-gemm/gen-inc/4x8-neon-lane-ld128.c 488 src/f32-gemm/gen-inc/4x8-neon-lane-ld64.c 489 src/f32-gemm/gen-inc/5x8-neon-lane-ld64.c 490 src/f32-gemm/gen-inc/6x8-neon-lane-ld64.c 491 src/f32-gemm/gen-inc/6x8-neon-lane-ld128.c 492 src/f32-gemm/gen-inc/1x8-neon-dup-ld64.c 493 src/f32-gemm/gen-inc/4x8-neon-dup-ld128.c 494 src/f32-gemm/gen-inc/4x8-neon-dup-ld64.c 495 src/f32-gemm/gen-inc/6x8-neon-dup-ld64.c 496 src/f32-gemm/gen-inc/6x8-neon-dup-ld128.c 497 src/f32-gemm/gen-inc/1x8s4-neon.c 498 src/f32-gemm/gen-inc/4x8s4-neon.c 499 src/f32-gemm/gen-inc/6x8s4-neon.c 500 src/f32-gemm/gen-inc/8x8s4-neon.c 501 src/f32-hswish/gen/neon-x4.c 502 src/f32-hswish/gen/neon-x8.c 503 src/f32-igemm/gen/1x8-neon-lane-ld64.c 504 src/f32-igemm/gen/4x2-neon-lane-ld64.c 505 src/f32-igemm/gen/4x4-neon-lane-ld64.c 506 src/f32-igemm/gen/4x8-neon-lane-ld128.c 507 src/f32-igemm/gen/4x8-neon-lane-ld64.c 508 src/f32-igemm/gen/6x8-neon-lane-ld64.c 509 src/f32-igemm/gen/6x8-neon-lane-ld128.c 510 src/f32-igemm/gen/1x8-neon-dup-ld64.c 511 src/f32-igemm/gen/4x8-neon-dup-ld128.c 512 src/f32-igemm/gen/4x8-neon-dup-ld64.c 513 src/f32-igemm/gen/6x8-neon-dup-ld64.c 514 src/f32-igemm/gen/6x8-neon-dup-ld128.c 515 src/f32-igemm/gen/1x8s4-neon.c 516 src/f32-igemm/gen/4x8s4-neon.c 517 src/f32-igemm/gen/6x8s4-neon.c 518 src/f32-igemm/gen/8x8s4-neon.c 519 src/f32-pavgpool/mp9p8q-neon.c 520 src/f32-pavgpool/up9-neon.c 521 src/f32-ppmm/gen/4x8-neon.c 522 src/f32-ppmm/gen/8x8-neon.c 523 src/f32-prelu/gen/neon-2x4.c 524 src/f32-prelu/gen/neon-2x8.c 525 src/f32-raddstoreexpminusmax/gen/neon-p5-x4.c 526 src/f32-raddstoreexpminusmax/gen/neon-p5-x8.c 527 src/f32-raddstoreexpminusmax/gen/neon-p5-x8-acc2.c 528 src/f32-raddstoreexpminusmax/gen/neon-p5-x12.c 529 src/f32-raddstoreexpminusmax/gen/neon-p5-x12-acc2.c 530 src/f32-raddstoreexpminusmax/gen/neon-p5-x12-acc3.c 531 src/f32-raddstoreexpminusmax/gen/neon-p5-x16.c 532 src/f32-raddstoreexpminusmax/gen/neon-p5-x16-acc2.c 533 src/f32-raddstoreexpminusmax/gen/neon-p5-x16-acc4.c 534 src/f32-raddstoreexpminusmax/gen/neon-p5-x20.c 535 src/f32-raddstoreexpminusmax/gen/neon-p5-x20-acc2.c 536 src/f32-raddstoreexpminusmax/gen/neon-p5-x20-acc5.c 537 src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x4.c 538 src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x8.c 539 src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x8-acc2.c 540 src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x12.c 541 src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x12-acc2.c 542 src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x12-acc3.c 543 src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x16.c 544 src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x16-acc2.c 545 src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x16-acc4.c 546 src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x20.c 547 src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x20-acc2.c 548 src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x20-acc5.c 549 src/f32-rmax/neon.c 550 src/f32-sigmoid/gen/neon-frac-p9-p10-nr1recps-x16.c 551 src/f32-sigmoid/gen/neon-rr2-p5-nr2recps-x4.c 552 src/f32-sigmoid/gen/neon-rr2-p5-nr2recps-x8.c 553 src/f32-sigmoid/gen/neon-rr2-p5-nr2recps-x12.c 554 src/f32-sigmoid/gen/neon-rr2-p5-nr2recps-x16.c 555 src/f32-sigmoid/gen/neon-rr2-p5-nr2recps-x20.c 556 src/f32-sigmoid/gen/neon-rr2-p5-nr2recps-x24.c 557 src/f32-sigmoid/gen/neon-rr2-lut64-p2-nr2recps-x4.c 558 src/f32-sigmoid/gen/neon-rr2-lut64-p2-nr2recps-x8.c 559 src/f32-sigmoid/gen/neon-rr2-lut64-p2-nr2recps-x12.c 560 src/f32-sigmoid/gen/neon-rr2-lut64-p2-nr2recps-x16.c 561 src/f32-sigmoid/gen/neon-rr2-lut64-p2-nr2recps-x20.c 562 src/f32-sigmoid/gen/neon-rr2-lut64-p2-nr2recps-x24.c 563 src/f32-sigmoid/gen/neon-rr2-lut2048-p1-nr2recps-x4.c 564 src/f32-sigmoid/gen/neon-rr2-lut2048-p1-nr2recps-x8.c 565 src/f32-sigmoid/gen/neon-rr2-lut2048-p1-nr2recps-x12.c 566 src/f32-sigmoid/gen/neon-rr2-lut2048-p1-nr2recps-x16.c 567 src/f32-sigmoid/gen/neon-rr2-lut2048-p1-nr2recps-x20.c 568 src/f32-sigmoid/gen/neon-rr2-lut2048-p1-nr2recps-x24.c 569 src/f32-vbinary/gen/vadd-neon-x4.c 570 src/f32-vbinary/gen/vadd-neon-x8.c 571 src/f32-vbinary/gen/vaddc-neon-x4.c 572 src/f32-vbinary/gen/vaddc-neon-x8.c 573 src/f32-vbinary/gen/vmax-neon-x4.c 574 src/f32-vbinary/gen/vmax-neon-x8.c 575 src/f32-vbinary/gen/vmaxc-neon-x4.c 576 src/f32-vbinary/gen/vmaxc-neon-x8.c 577 src/f32-vbinary/gen/vmin-neon-x4.c 578 src/f32-vbinary/gen/vmin-neon-x8.c 579 src/f32-vbinary/gen/vminc-neon-x4.c 580 src/f32-vbinary/gen/vminc-neon-x8.c 581 src/f32-vbinary/gen/vmul-neon-x4.c 582 src/f32-vbinary/gen/vmul-neon-x8.c 583 src/f32-vbinary/gen/vmulc-neon-x4.c 584 src/f32-vbinary/gen/vmulc-neon-x8.c 585 src/f32-vbinary/gen/vrsubc-neon-x4.c 586 src/f32-vbinary/gen/vrsubc-neon-x8.c 587 src/f32-vbinary/gen/vsub-neon-x4.c 588 src/f32-vbinary/gen/vsub-neon-x8.c 589 src/f32-vbinary/gen/vsubc-neon-x4.c 590 src/f32-vbinary/gen/vsubc-neon-x8.c 591 src/f32-vmulcaddc/gen/c4-neon-2x.c 592 src/f32-vmulcaddc/gen/c8-neon-2x.c 593 src/q8-avgpool/mp9p8q-neon.c 594 src/q8-avgpool/up9-neon.c 595 src/q8-dwconv/up8x9-neon.c 596 src/q8-gavgpool/mp7p7q-neon.c 597 src/q8-gavgpool/up7-neon.c 598 src/q8-gemm/4x8-neon.c 599 src/q8-gemm/8x8-neon.c 600 src/q8-igemm/4x8-neon.c 601 src/q8-igemm/8x8-neon.c 602 src/q8-vadd/neon.c 603 src/u8-clamp/neon.c 604 src/u8-maxpool/9p8x-neon-c16.c 605 src/u8-rmax/neon.c 606 src/x32-packx/x4-neon-st4.c 607 src/x32-pad/x2-neon.c 608 src/x32-zip/x2-neon.c 609 src/x32-zip/x3-neon.c 610 src/x32-zip/x4-neon.c 611 src/x32-zip/xm-neon.c 612 src/x8-zip/x2-neon.c 613 src/x8-zip/x3-neon.c 614 src/x8-zip/x4-neon.c 615 src/x8-zip/xm-neon.c 616 src/math/sigmoid-neon-frac-p9-p10-nr1recps.c 617 src/math/sigmoid-neon-rr1-lut2048-p1-nr2recps.c 618 src/math/sigmoid-neon-rr1-lut64-p2-nr2recps.c 619 src/math/sigmoid-neon-rr1-p5-nr2recps.c 620 src/math/sigmoid-neon-rr2-lut2048-p1-nr2recps.c 621 src/math/sigmoid-neon-rr2-lut64-p2-nr2recps.c 622 src/math/sigmoid-neon-rr2-p5-nr2recps.c) 623 624SET(XNNPACK_NEONFMA_MICROKERNEL_SRCS 625 src/f32-bilinear/gen/neonfma-c4.c 626 src/f32-bilinear/gen/neonfma-c8.c 627 src/f32-igemm/gen/1x8-neonfma-dup-ld64.c 628 src/f32-igemm/gen/4x8-neonfma-dup-ld128.c 629 src/f32-igemm/gen/4x8-neonfma-dup-ld64.c 630 src/f32-igemm/gen/6x8-neonfma-dup-ld64.c 631 src/f32-igemm/gen/6x8-neonfma-dup-ld128.c 632 src/f32-igemm/gen/1x8s4-neonfma.c 633 src/f32-igemm/gen/4x8s4-neonfma.c 634 src/f32-igemm/gen/6x8s4-neonfma.c 635 src/f32-igemm/gen/8x8s4-neonfma.c 636 src/f32-dwconv/gen/up4x9-neonfma.c 637 src/f32-dwconv/gen/up4x9-neonfma-acc2.c 638 src/f32-dwconv/gen/up8x9-neonfma.c 639 src/f32-dwconv/gen/up8x9-neonfma-acc2.c 640 src/f32-gemm/gen/1x8-neonfma-dup-ld64.c 641 src/f32-gemm/gen/4x8-neonfma-dup-ld128.c 642 src/f32-gemm/gen/4x8-neonfma-dup-ld64.c 643 src/f32-gemm/gen/6x8-neonfma-dup-ld64.c 644 src/f32-gemm/gen/6x8-neonfma-dup-ld128.c 645 src/f32-gemm/gen/1x8s4-neonfma.c 646 src/f32-gemm/gen/4x8s4-neonfma.c 647 src/f32-gemm/gen/6x8s4-neonfma.c 648 src/f32-gemm/gen/8x8s4-neonfma.c 649 src/f32-gemm/gen-inc/1x8-neonfma-dup-ld64.c 650 src/f32-gemm/gen-inc/4x8-neonfma-dup-ld128.c 651 src/f32-gemm/gen-inc/4x8-neonfma-dup-ld64.c 652 src/f32-gemm/gen-inc/6x8-neonfma-dup-ld64.c 653 src/f32-gemm/gen-inc/6x8-neonfma-dup-ld128.c 654 src/f32-gemm/gen-inc/1x8s4-neonfma.c 655 src/f32-gemm/gen-inc/4x8s4-neonfma.c 656 src/f32-gemm/gen-inc/6x8s4-neonfma.c 657 src/f32-gemm/gen-inc/8x8s4-neonfma.c 658 src/f32-hswish/gen/neonfma-x4.c 659 src/f32-hswish/gen/neonfma-x8.c 660 src/f32-ppmm/gen/4x8-neonfma.c 661 src/f32-ppmm/gen/8x8-neonfma.c 662 src/f32-raddstoreexpminusmax/gen/neonfma-p5-x4.c 663 src/f32-raddstoreexpminusmax/gen/neonfma-p5-x8.c 664 src/f32-raddstoreexpminusmax/gen/neonfma-p5-x8-acc2.c 665 src/f32-raddstoreexpminusmax/gen/neonfma-p5-x12.c 666 src/f32-raddstoreexpminusmax/gen/neonfma-p5-x12-acc2.c 667 src/f32-raddstoreexpminusmax/gen/neonfma-p5-x12-acc3.c 668 src/f32-raddstoreexpminusmax/gen/neonfma-p5-x16.c 669 src/f32-raddstoreexpminusmax/gen/neonfma-p5-x16-acc2.c 670 src/f32-raddstoreexpminusmax/gen/neonfma-p5-x16-acc4.c 671 src/f32-raddstoreexpminusmax/gen/neonfma-p5-x20.c 672 src/f32-raddstoreexpminusmax/gen/neonfma-p5-x20-acc2.c 673 src/f32-raddstoreexpminusmax/gen/neonfma-p5-x20-acc5.c 674 src/f32-raddstoreexpminusmax/gen/neonfma-lut64-p2-x4.c 675 src/f32-raddstoreexpminusmax/gen/neonfma-lut64-p2-x8.c 676 src/f32-raddstoreexpminusmax/gen/neonfma-lut64-p2-x8-acc2.c 677 src/f32-raddstoreexpminusmax/gen/neonfma-lut64-p2-x12.c 678 src/f32-raddstoreexpminusmax/gen/neonfma-lut64-p2-x12-acc2.c 679 src/f32-raddstoreexpminusmax/gen/neonfma-lut64-p2-x12-acc3.c 680 src/f32-raddstoreexpminusmax/gen/neonfma-lut64-p2-x16.c 681 src/f32-raddstoreexpminusmax/gen/neonfma-lut64-p2-x16-acc2.c 682 src/f32-raddstoreexpminusmax/gen/neonfma-lut64-p2-x16-acc4.c 683 src/f32-raddstoreexpminusmax/gen/neonfma-lut64-p2-x20.c 684 src/f32-raddstoreexpminusmax/gen/neonfma-lut64-p2-x20-acc2.c 685 src/f32-raddstoreexpminusmax/gen/neonfma-lut64-p2-x20-acc5.c 686 src/f32-sigmoid/gen/neonfma-rr1-p5-nr2fma-x4.c 687 src/f32-sigmoid/gen/neonfma-rr1-p5-nr2fma-x8.c 688 src/f32-sigmoid/gen/neonfma-rr1-p5-nr2fma-x12.c 689 src/f32-sigmoid/gen/neonfma-rr1-p5-nr2fma-x16.c 690 src/f32-sigmoid/gen/neonfma-rr1-p5-nr2fma-x20.c 691 src/f32-sigmoid/gen/neonfma-rr1-p5-nr2fma-x24.c 692 src/f32-sigmoid/gen/neonfma-rr1-p5-nr1recps1fma-x4.c 693 src/f32-sigmoid/gen/neonfma-rr1-p5-nr1recps1fma-x8.c 694 src/f32-sigmoid/gen/neonfma-rr1-p5-nr1recps1fma-x12.c 695 src/f32-sigmoid/gen/neonfma-rr1-p5-nr1recps1fma-x16.c 696 src/f32-sigmoid/gen/neonfma-rr1-p5-nr1recps1fma-x20.c 697 src/f32-sigmoid/gen/neonfma-rr1-p5-nr1recps1fma-x24.c 698 src/f32-sigmoid/gen/neonfma-rr1-p5-nr2recps-x4.c 699 src/f32-sigmoid/gen/neonfma-rr1-p5-nr2recps-x8.c 700 src/f32-sigmoid/gen/neonfma-rr1-p5-nr2recps-x12.c 701 src/f32-sigmoid/gen/neonfma-rr1-p5-nr2recps-x16.c 702 src/f32-sigmoid/gen/neonfma-rr1-p5-nr2recps-x20.c 703 src/f32-sigmoid/gen/neonfma-rr1-p5-nr2recps-x24.c 704 src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr2fma-x4.c 705 src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr2fma-x8.c 706 src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr2fma-x12.c 707 src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr2fma-x16.c 708 src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr2fma-x20.c 709 src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr2fma-x24.c 710 src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr1recps1fma-x4.c 711 src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr1recps1fma-x8.c 712 src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr1recps1fma-x12.c 713 src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr1recps1fma-x16.c 714 src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr1recps1fma-x20.c 715 src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr1recps1fma-x24.c 716 src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr2recps-x4.c 717 src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr2recps-x8.c 718 src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr2recps-x12.c 719 src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr2recps-x16.c 720 src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr2recps-x20.c 721 src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr2recps-x24.c 722 src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr2fma-x4.c 723 src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr2fma-x8.c 724 src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr2fma-x12.c 725 src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr2fma-x16.c 726 src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr2fma-x20.c 727 src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr2fma-x24.c 728 src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr1recps1fma-x4.c 729 src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr1recps1fma-x8.c 730 src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr1recps1fma-x12.c 731 src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr1recps1fma-x16.c 732 src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr1recps1fma-x20.c 733 src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr1recps1fma-x24.c 734 src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr2recps-x4.c 735 src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr2recps-x8.c 736 src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr2recps-x12.c 737 src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr2recps-x16.c 738 src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr2recps-x20.c 739 src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr2recps-x24.c 740 src/f32-vmulcaddc/gen/c4-neonfma-2x.c 741 src/f32-vmulcaddc/gen/c8-neonfma-2x.c 742 src/math/exp-neonfma-lut64-p2.c 743 src/math/exp-neonfma-p5.c 744 src/math/expminus-neonfma-lut2048-p1.c 745 src/math/expminus-neonfma-lut64-p2.c 746 src/math/expminus-neonfma-p5.c 747 src/math/sigmoid-neonfma-rr1-lut2048-p1-nr1recps1fma.c 748 src/math/sigmoid-neonfma-rr1-lut2048-p1-nr2fma.c 749 src/math/sigmoid-neonfma-rr1-lut2048-p1-nr2recps.c 750 src/math/sigmoid-neonfma-rr1-lut64-p2-nr1recps1fma.c 751 src/math/sigmoid-neonfma-rr1-lut64-p2-nr2fma.c 752 src/math/sigmoid-neonfma-rr1-lut64-p2-nr2recps.c 753 src/math/sigmoid-neonfma-rr1-p5-nr1recps1fma.c 754 src/math/sigmoid-neonfma-rr1-p5-nr2fma.c 755 src/math/sigmoid-neonfma-rr1-p5-nr2recps.c 756 src/math/sigmoid-neonfma-rr2-lut2048-p1-nr1recps1fma.c 757 src/math/sigmoid-neonfma-rr2-lut2048-p1-nr2fma.c 758 src/math/sigmoid-neonfma-rr2-lut2048-p1-nr2recps.c 759 src/math/sigmoid-neonfma-rr2-lut64-p2-nr1recps1fma.c 760 src/math/sigmoid-neonfma-rr2-lut64-p2-nr2fma.c 761 src/math/sigmoid-neonfma-rr2-lut64-p2-nr2recps.c 762 src/math/sigmoid-neonfma-rr2-p5-nr1recps1fma.c 763 src/math/sigmoid-neonfma-rr2-p5-nr2fma.c 764 src/math/sigmoid-neonfma-rr2-p5-nr2recps.c) 765 766SET(XNNPACK_AARCH64_NEONFMA_MICROKERNEL_SRCS 767 src/f32-vbinary/gen/vdiv-neon-x4.c 768 src/f32-vbinary/gen/vdiv-neon-x8.c 769 src/f32-vbinary/gen/vdivc-neon-x4.c 770 src/f32-vbinary/gen/vdivc-neon-x8.c 771 src/f32-vbinary/gen/vrdivc-neon-x4.c 772 src/f32-vbinary/gen/vrdivc-neon-x8.c 773 src/f32-gemm/gen/1x8-neonfma-lane-ld64.c 774 src/f32-gemm/gen/4x2-neonfma-lane-ld64.c 775 src/f32-gemm/gen/4x8-neonfma-lane-ld128.c 776 src/f32-gemm/gen/4x8-neonfma-lane-ld64.c 777 src/f32-gemm/gen/5x8-neonfma-lane-ld64.c 778 src/f32-gemm/gen/6x8-neonfma-lane-ld64.c 779 src/f32-gemm/gen/6x8-neonfma-lane-ld128.c 780 src/f32-gemm/gen-inc/1x8-neonfma-lane-ld64.c 781 src/f32-gemm/gen-inc/4x8-neonfma-lane-ld128.c 782 src/f32-gemm/gen-inc/4x8-neonfma-lane-ld64.c 783 src/f32-gemm/gen-inc/5x8-neonfma-lane-ld64.c 784 src/f32-gemm/gen-inc/6x8-neonfma-lane-ld64.c 785 src/f32-gemm/gen-inc/6x8-neonfma-lane-ld128.c 786 src/f32-igemm/gen/1x8-neonfma-lane-ld64.c 787 src/f32-igemm/gen/4x2-neonfma-lane-ld64.c 788 src/f32-igemm/gen/4x4-neonfma-lane-ld64.c 789 src/f32-igemm/gen/4x8-neonfma-lane-ld128.c 790 src/f32-igemm/gen/4x8-neonfma-lane-ld64.c 791 src/f32-igemm/gen/6x8-neonfma-lane-ld64.c 792 src/f32-igemm/gen/6x8-neonfma-lane-ld128.c 793 src/f32-conv-hwc/3x3s2p1c3x4-neonfma-2x2.c 794 src/f32-conv-hwc/3x3s2p1c3x8-neonfma-2x2.c 795 src/f32-conv-hwc2spchw/3x3s2p1c3x4-neonfma-2x2.c 796 src/f32-dwconv-spchw/3x3p1-neonfma.c 797 src/f32-dwconv-spchw/5x5p2-neonfma.c 798 src/f32-dwconv-spchw/3x3s2p1-neonfma.c 799 src/f32-dwconv-spchw/5x5s2p2-neonfma.c 800 src/f32-sigmoid/gen/neonfma-rr1-p5-div-x4.c 801 src/f32-sigmoid/gen/neonfma-rr1-p5-div-x8.c 802 src/f32-sigmoid/gen/neonfma-rr1-p5-div-x12.c 803 src/f32-sigmoid/gen/neonfma-rr1-p5-div-x16.c 804 src/f32-sigmoid/gen/neonfma-rr1-p5-div-x20.c 805 src/f32-sigmoid/gen/neonfma-rr1-p5-div-x24.c 806 src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-div-x4.c 807 src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-div-x8.c 808 src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-div-x12.c 809 src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-div-x16.c 810 src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-div-x20.c 811 src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-div-x24.c 812 src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-div-x4.c 813 src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-div-x8.c 814 src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-div-x12.c 815 src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-div-x16.c 816 src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-div-x20.c 817 src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-div-x24.c 818 src/f32-spmm/gen/12x1-neonfma.c 819 src/f32-spmm/gen/12x2-neonfma.c 820 src/f32-spmm/gen/12x4-neonfma.c 821 src/f32-spmm/gen/16x1-neonfma-pipelined.c 822 src/f32-spmm/gen/16x1-neonfma-unroll2.c 823 src/f32-spmm/gen/16x1-neonfma.c 824 src/f32-spmm/gen/16x2-neonfma.c 825 src/f32-spmm/gen/16x4-neonfma.c 826 src/f32-spmm/gen/4x1-neonfma-pipelined.c 827 src/f32-spmm/gen/4x1-neonfma-unroll2.c 828 src/f32-spmm/gen/4x1-neonfma.c 829 src/f32-spmm/gen/4x2-neonfma.c 830 src/f32-spmm/gen/4x4-neonfma.c 831 src/f32-spmm/gen/8x1-neonfma-pipelined.c 832 src/f32-spmm/gen/8x1-neonfma-unroll2.c 833 src/f32-spmm/gen/8x1-neonfma.c 834 src/f32-spmm/gen/8x2-neonfma.c 835 src/f32-spmm/gen/8x4-neonfma.c 836 src/math/sigmoid-neonfma-rr1-lut2048-p1-div.c 837 src/math/sigmoid-neonfma-rr1-lut64-p2-div.c 838 src/math/sigmoid-neonfma-rr1-p5-div.c 839 src/math/sigmoid-neonfma-rr2-lut2048-p1-div.c 840 src/math/sigmoid-neonfma-rr2-lut64-p2-div.c 841 src/math/sigmoid-neonfma-rr2-p5-div.c) 842 843SET(XNNPACK_AARCH64_NEONFP16ARITH_MICROKERNEL_SRCS 844 src/f16-gemm/gen/4x8-neonfp16arith-ld64.c 845 src/f16-gemm/gen/6x8-neonfp16arith-ld64.c 846 src/f16-gemm/gen/8x8-neonfp16arith-ld64.c) 847 848SET(XNNPACK_SSE_MICROKERNEL_SRCS 849 src/f32-avgpool/mp9p8q-sse.c 850 src/f32-avgpool/up9-sse.c 851 src/f32-bilinear/gen/sse-c4.c 852 src/f32-bilinear/gen/sse-c8.c 853 src/f32-clamp/sse.c 854 src/f32-dwconv-spchw/3x3p1-sse.c 855 src/f32-dwconv-spchw/3x3s2p1-sse.c 856 src/f32-dwconv/gen/up4x25-sse-acc2.c 857 src/f32-dwconv/gen/up4x25-sse.c 858 src/f32-dwconv/gen/up4x4-sse-acc2.c 859 src/f32-dwconv/gen/up4x4-sse.c 860 src/f32-dwconv/gen/up4x9-sse-acc2.c 861 src/f32-dwconv/gen/up4x9-sse.c 862 src/f32-dwconv/gen/up8x25-sse-acc2.c 863 src/f32-dwconv/gen/up8x25-sse.c 864 src/f32-dwconv/gen/up8x4-sse-acc2.c 865 src/f32-dwconv/gen/up8x4-sse.c 866 src/f32-dwconv/gen/up8x9-sse-acc2.c 867 src/f32-dwconv/gen/up8x9-sse.c 868 src/f32-gavgpool-spchw/sse-x4.c 869 src/f32-gavgpool/mp7p7q-sse.c 870 src/f32-gavgpool/up7-sse.c 871 src/f32-gemm/gen/1x8-sse-dup.c 872 src/f32-gemm/gen/1x8-sse-load1.c 873 src/f32-gemm/gen/1x8s4-sse.c 874 src/f32-gemm/gen/4x8-sse-dup.c 875 src/f32-gemm/gen/4x8-sse-load1.c 876 src/f32-gemm/gen/4x8s4-sse.c 877 src/f32-gemm/gen-inc/1x8-sse-dup.c 878 src/f32-gemm/gen-inc/1x8-sse-load1.c 879 src/f32-gemm/gen-inc/1x8s4-sse.c 880 src/f32-gemm/gen-inc/4x8-sse-dup.c 881 src/f32-gemm/gen-inc/4x8-sse-load1.c 882 src/f32-gemm/gen-inc/4x8s4-sse.c 883 src/f32-hswish/gen/sse-x4.c 884 src/f32-hswish/gen/sse-x8.c 885 src/f32-igemm/gen/1x8-sse-dup.c 886 src/f32-igemm/gen/1x8-sse-load1.c 887 src/f32-igemm/gen/1x8s4-sse.c 888 src/f32-igemm/gen/4x2c4-sse.c 889 src/f32-igemm/gen/4x8-sse-dup.c 890 src/f32-igemm/gen/4x8-sse-load1.c 891 src/f32-igemm/gen/4x8s4-sse.c 892 src/f32-maxpool/9p8x-sse-c4.c 893 src/f32-pavgpool/mp9p8q-sse.c 894 src/f32-pavgpool/up9-sse.c 895 src/f32-ppmm/gen/4x8-sse.c 896 src/f32-rmax/sse.c 897 src/f32-spmm/gen/4x1-sse.c 898 src/f32-spmm/gen/8x1-sse.c 899 src/f32-vbinary/gen/vadd-sse-x4.c 900 src/f32-vbinary/gen/vadd-sse-x8.c 901 src/f32-vbinary/gen/vaddc-sse-x4.c 902 src/f32-vbinary/gen/vaddc-sse-x8.c 903 src/f32-vbinary/gen/vdiv-sse-x4.c 904 src/f32-vbinary/gen/vdiv-sse-x8.c 905 src/f32-vbinary/gen/vdivc-sse-x4.c 906 src/f32-vbinary/gen/vdivc-sse-x8.c 907 src/f32-vbinary/gen/vmax-sse-x4.c 908 src/f32-vbinary/gen/vmax-sse-x8.c 909 src/f32-vbinary/gen/vmaxc-sse-x4.c 910 src/f32-vbinary/gen/vmaxc-sse-x8.c 911 src/f32-vbinary/gen/vmin-sse-x4.c 912 src/f32-vbinary/gen/vmin-sse-x8.c 913 src/f32-vbinary/gen/vminc-sse-x4.c 914 src/f32-vbinary/gen/vminc-sse-x8.c 915 src/f32-vbinary/gen/vmul-sse-x4.c 916 src/f32-vbinary/gen/vmul-sse-x8.c 917 src/f32-vbinary/gen/vmulc-sse-x4.c 918 src/f32-vbinary/gen/vmulc-sse-x8.c 919 src/f32-vbinary/gen/vrdivc-sse-x4.c 920 src/f32-vbinary/gen/vrdivc-sse-x8.c 921 src/f32-vbinary/gen/vrsubc-sse-x4.c 922 src/f32-vbinary/gen/vrsubc-sse-x8.c 923 src/f32-vbinary/gen/vsub-sse-x4.c 924 src/f32-vbinary/gen/vsub-sse-x8.c 925 src/f32-vbinary/gen/vsubc-sse-x4.c 926 src/f32-vbinary/gen/vsubc-sse-x8.c 927 src/f32-vmulcaddc/gen/c4-sse-2x.c 928 src/f32-vmulcaddc/gen/c8-sse-2x.c 929 src/x32-packx/x4-sse.c) 930 931SET(XNNPACK_SSE2_MICROKERNEL_SRCS 932 src/f32-argmaxpool/4x-sse2-c4.c 933 src/f32-argmaxpool/9p8x-sse2-c4.c 934 src/f32-argmaxpool/9x-sse2-c4.c 935 src/f32-prelu/gen/sse2-2x4.c 936 src/f32-prelu/gen/sse2-2x8.c 937 src/f32-raddstoreexpminusmax/gen/sse2-p5-x4.c 938 src/f32-raddstoreexpminusmax/gen/sse2-p5-x8.c 939 src/f32-raddstoreexpminusmax/gen/sse2-p5-x8-acc2.c 940 src/f32-raddstoreexpminusmax/gen/sse2-p5-x12.c 941 src/f32-raddstoreexpminusmax/gen/sse2-p5-x12-acc2.c 942 src/f32-raddstoreexpminusmax/gen/sse2-p5-x12-acc3.c 943 src/f32-raddstoreexpminusmax/gen/sse2-p5-x16.c 944 src/f32-raddstoreexpminusmax/gen/sse2-p5-x16-acc2.c 945 src/f32-raddstoreexpminusmax/gen/sse2-p5-x16-acc4.c 946 src/f32-raddstoreexpminusmax/gen/sse2-p5-x20.c 947 src/f32-raddstoreexpminusmax/gen/sse2-p5-x20-acc2.c 948 src/f32-raddstoreexpminusmax/gen/sse2-p5-x20-acc5.c 949 src/f32-sigmoid/gen/sse2-p5-div-x4.c 950 src/f32-sigmoid/gen/sse2-p5-div-x8.c 951 src/f32-sigmoid/gen/sse2-p5-div-x12.c 952 src/f32-sigmoid/gen/sse2-p5-div-x16.c 953 src/f32-sigmoid/gen/sse2-p5-div-x20.c 954 src/f32-sigmoid/gen/sse2-p5-div-x24.c 955 src/q8-avgpool/mp9p8q-sse2.c 956 src/q8-avgpool/up9-sse2.c 957 src/q8-igemm/4x4c2-sse2.c 958 src/q8-dwconv/up8x9-sse2.c 959 src/q8-gavgpool/mp7p7q-sse2.c 960 src/q8-gavgpool/up7-sse2.c 961 src/q8-gemm/2x4c8-sse2.c 962 src/q8-gemm/4x4c2-sse2.c 963 src/q8-vadd/sse2.c 964 src/u8-clamp/sse2.c 965 src/u8-maxpool/9p8x-sse2-c16.c 966 src/u8-rmax/sse2.c 967 src/x32-pad/x2-sse2.c 968 src/x32-zip/x2-sse2.c 969 src/x32-zip/x3-sse2.c 970 src/x32-zip/x4-sse2.c 971 src/x32-zip/xm-sse2.c 972 src/x8-zip/x2-sse2.c 973 src/x8-zip/x3-sse2.c 974 src/x8-zip/x4-sse2.c 975 src/x8-zip/xm-sse2.c 976 src/math/exp-sse2-p5.c 977 src/math/expminus-sse2-p5.c 978 src/math/sigmoid-sse2-p5-div.c) 979 980SET(XNNPACK_SSE41_MICROKERNEL_SRCS 981 src/f32-prelu/gen/sse41-2x4.c 982 src/f32-prelu/gen/sse41-2x8.c 983 src/f32-sigmoid/gen/sse41-p5-div-x4.c 984 src/f32-sigmoid/gen/sse41-p5-div-x8.c 985 src/f32-sigmoid/gen/sse41-p5-div-x12.c 986 src/f32-sigmoid/gen/sse41-p5-div-x16.c 987 src/f32-sigmoid/gen/sse41-p5-div-x20.c 988 src/f32-sigmoid/gen/sse41-p5-div-x24.c) 989 990SET(XNNPACK_AVX_MICROKERNEL_SRCS 991 src/f32-clamp/avx.c 992 src/f32-dwconv/gen/up16x4-avx-acc2.c 993 src/f32-dwconv/gen/up16x4-avx.c 994 src/f32-dwconv/gen/up8x4-avx-acc2.c 995 src/f32-dwconv/gen/up8x4-avx.c 996 src/f32-dwconv/gen/up16x9-avx-acc2.c 997 src/f32-dwconv/gen/up16x9-avx.c 998 src/f32-dwconv/gen/up8x9-avx-acc2.c 999 src/f32-dwconv/gen/up8x9-avx.c 1000 src/f32-dwconv/gen/up16x25-avx-acc2.c 1001 src/f32-dwconv/gen/up16x25-avx.c 1002 src/f32-dwconv/gen/up8x25-avx-acc2.c 1003 src/f32-dwconv/gen/up8x25-avx.c 1004 src/f32-gemm/gen/1x8-avx-broadcast.c 1005 src/f32-gemm/gen/4x8-avx-broadcast.c 1006 src/f32-gemm/gen/5x8-avx-broadcast.c 1007 src/f32-gemm/gen/6x8-avx-broadcast.c 1008 src/f32-gemm/gen/7x8-avx-broadcast.c 1009 src/f32-gemm/gen/1x16-avx-broadcast.c 1010 src/f32-gemm/gen/3x16-avx-broadcast.c 1011 src/f32-gemm/gen/4x16-avx-broadcast.c 1012 src/f32-gemm/gen/5x16-avx-broadcast.c 1013 src/f32-gemm/gen-inc/1x8-avx-broadcast.c 1014 src/f32-gemm/gen-inc/4x8-avx-broadcast.c 1015 src/f32-gemm/gen-inc/5x8-avx-broadcast.c 1016 src/f32-gemm/gen-inc/6x8-avx-broadcast.c 1017 src/f32-gemm/gen-inc/7x8-avx-broadcast.c 1018 src/f32-gemm/gen-inc/1x16-avx-broadcast.c 1019 src/f32-gemm/gen-inc/3x16-avx-broadcast.c 1020 src/f32-gemm/gen-inc/4x16-avx-broadcast.c 1021 src/f32-gemm/gen-inc/5x16-avx-broadcast.c 1022 src/f32-hswish/gen/avx-x8.c 1023 src/f32-hswish/gen/avx-x16.c 1024 src/f32-igemm/gen/1x8-avx-broadcast.c 1025 src/f32-igemm/gen/4x8-avx-broadcast.c 1026 src/f32-igemm/gen/5x8-avx-broadcast.c 1027 src/f32-igemm/gen/6x8-avx-broadcast.c 1028 src/f32-igemm/gen/7x8-avx-broadcast.c 1029 src/f32-igemm/gen/1x16-avx-broadcast.c 1030 src/f32-igemm/gen/3x16-avx-broadcast.c 1031 src/f32-igemm/gen/4x16-avx-broadcast.c 1032 src/f32-igemm/gen/5x16-avx-broadcast.c 1033 src/f32-rmax/avx.c 1034 src/f32-vbinary/gen/vadd-avx-x8.c 1035 src/f32-vbinary/gen/vadd-avx-x16.c 1036 src/f32-vbinary/gen/vaddc-avx-x8.c 1037 src/f32-vbinary/gen/vaddc-avx-x16.c 1038 src/f32-vbinary/gen/vdiv-avx-x8.c 1039 src/f32-vbinary/gen/vdiv-avx-x16.c 1040 src/f32-vbinary/gen/vdivc-avx-x8.c 1041 src/f32-vbinary/gen/vdivc-avx-x16.c 1042 src/f32-vbinary/gen/vmax-avx-x8.c 1043 src/f32-vbinary/gen/vmax-avx-x16.c 1044 src/f32-vbinary/gen/vmaxc-avx-x8.c 1045 src/f32-vbinary/gen/vmaxc-avx-x16.c 1046 src/f32-vbinary/gen/vmin-avx-x8.c 1047 src/f32-vbinary/gen/vmin-avx-x16.c 1048 src/f32-vbinary/gen/vminc-avx-x8.c 1049 src/f32-vbinary/gen/vminc-avx-x16.c 1050 src/f32-vbinary/gen/vmul-avx-x8.c 1051 src/f32-vbinary/gen/vmul-avx-x16.c 1052 src/f32-vbinary/gen/vmulc-avx-x8.c 1053 src/f32-vbinary/gen/vmulc-avx-x16.c 1054 src/f32-vbinary/gen/vrdivc-avx-x8.c 1055 src/f32-vbinary/gen/vrdivc-avx-x16.c 1056 src/f32-vbinary/gen/vrsubc-avx-x8.c 1057 src/f32-vbinary/gen/vrsubc-avx-x16.c 1058 src/f32-vbinary/gen/vsub-avx-x8.c 1059 src/f32-vbinary/gen/vsub-avx-x16.c 1060 src/f32-vbinary/gen/vsubc-avx-x8.c 1061 src/f32-vbinary/gen/vsubc-avx-x16.c 1062 src/f32-vscale/avx-unroll32.c) 1063 1064SET(XNNPACK_FMA3_MICROKERNEL_SRCS 1065 src/f32-dwconv/gen/up16x4-fma3-acc2.c 1066 src/f32-dwconv/gen/up16x4-fma3.c 1067 src/f32-dwconv/gen/up8x4-fma3-acc2.c 1068 src/f32-dwconv/gen/up8x4-fma3.c 1069 src/f32-dwconv/gen/up16x9-fma3-acc2.c 1070 src/f32-dwconv/gen/up16x9-fma3.c 1071 src/f32-dwconv/gen/up8x9-fma3-acc2.c 1072 src/f32-dwconv/gen/up8x9-fma3.c 1073 src/f32-dwconv/gen/up16x25-fma3-acc2.c 1074 src/f32-dwconv/gen/up16x25-fma3.c 1075 src/f32-dwconv/gen/up8x25-fma3-acc2.c 1076 src/f32-dwconv/gen/up8x25-fma3.c 1077 src/f32-gemm/gen/1x8-fma3-broadcast.c 1078 src/f32-gemm/gen/4x8-fma3-broadcast.c 1079 src/f32-gemm/gen/5x8-fma3-broadcast.c 1080 src/f32-gemm/gen/6x8-fma3-broadcast.c 1081 src/f32-gemm/gen/7x8-fma3-broadcast.c 1082 src/f32-gemm/gen/8x8-fma3-broadcast.c 1083 src/f32-gemm/gen/1x16-fma3-broadcast.c 1084 src/f32-gemm/gen/3x16-fma3-broadcast.c 1085 src/f32-gemm/gen/4x16-fma3-broadcast.c 1086 src/f32-gemm/gen/5x16-fma3-broadcast.c 1087 src/f32-gemm/gen/1x16s4-fma3-broadcast.c 1088 src/f32-gemm/gen/3x16s4-fma3-broadcast.c 1089 src/f32-gemm/gen/4x16s4-fma3-broadcast.c 1090 src/f32-gemm/gen/5x16s4-fma3-broadcast.c 1091 src/f32-gemm/gen-inc/1x8-fma3-broadcast.c 1092 src/f32-gemm/gen-inc/4x8-fma3-broadcast.c 1093 src/f32-gemm/gen-inc/5x8-fma3-broadcast.c 1094 src/f32-gemm/gen-inc/6x8-fma3-broadcast.c 1095 src/f32-gemm/gen-inc/7x8-fma3-broadcast.c 1096 src/f32-gemm/gen-inc/8x8-fma3-broadcast.c 1097 src/f32-gemm/gen-inc/1x16-fma3-broadcast.c 1098 src/f32-gemm/gen-inc/3x16-fma3-broadcast.c 1099 src/f32-gemm/gen-inc/4x16-fma3-broadcast.c 1100 src/f32-gemm/gen-inc/5x16-fma3-broadcast.c 1101 src/f32-gemm/gen-inc/1x16s4-fma3-broadcast.c 1102 src/f32-gemm/gen-inc/3x16s4-fma3-broadcast.c 1103 src/f32-gemm/gen-inc/4x16s4-fma3-broadcast.c 1104 src/f32-gemm/gen-inc/5x16s4-fma3-broadcast.c 1105 src/f32-hswish/gen/fma3-x8.c 1106 src/f32-hswish/gen/fma3-x16.c 1107 src/f32-igemm/gen/1x8-fma3-broadcast.c 1108 src/f32-igemm/gen/4x8-fma3-broadcast.c 1109 src/f32-igemm/gen/5x8-fma3-broadcast.c 1110 src/f32-igemm/gen/6x8-fma3-broadcast.c 1111 src/f32-igemm/gen/7x8-fma3-broadcast.c 1112 src/f32-igemm/gen/8x8-fma3-broadcast.c 1113 src/f32-igemm/gen/1x16-fma3-broadcast.c 1114 src/f32-igemm/gen/3x16-fma3-broadcast.c 1115 src/f32-igemm/gen/4x16-fma3-broadcast.c 1116 src/f32-igemm/gen/5x16-fma3-broadcast.c 1117 src/f32-igemm/gen/1x16s4-fma3-broadcast.c 1118 src/f32-igemm/gen/3x16s4-fma3-broadcast.c 1119 src/f32-igemm/gen/4x16s4-fma3-broadcast.c 1120 src/f32-igemm/gen/5x16s4-fma3-broadcast.c) 1121 1122SET(XNNPACK_AVX2_MICROKERNEL_SRCS 1123 src/f32-raddexpminusmax/gen/avx2-p5-x64.c 1124 src/f32-raddexpminusmax/gen/avx2-p5-x64-acc2.c 1125 src/f32-raddexpminusmax/gen/avx2-p5-x64-acc4.c 1126 src/f32-raddexpminusmax/gen/avx2-p5-x72.c 1127 src/f32-raddexpminusmax/gen/avx2-p5-x72-acc3.c 1128 src/f32-raddexpminusmax/gen/avx2-p5-x80.c 1129 src/f32-raddexpminusmax/gen/avx2-p5-x80-acc2.c 1130 src/f32-raddexpminusmax/gen/avx2-p5-x80-acc5.c 1131 src/f32-raddexpminusmax/gen/avx2-p5-x96.c 1132 src/f32-raddexpminusmax/gen/avx2-p5-x96-acc2.c 1133 src/f32-raddexpminusmax/gen/avx2-p5-x96-acc3.c 1134 src/f32-raddexpminusmax/gen/avx2-p5-x96-acc6.c 1135 src/f32-raddextexp/gen/avx2-p5-x64.c 1136 src/f32-raddextexp/gen/avx2-p5-x64-acc2.c 1137 src/f32-raddextexp/gen/avx2-p5-x64-acc4.c 1138 src/f32-raddextexp/gen/avx2-p5-x72.c 1139 src/f32-raddextexp/gen/avx2-p5-x72-acc3.c 1140 src/f32-raddextexp/gen/avx2-p5-x80.c 1141 src/f32-raddextexp/gen/avx2-p5-x80-acc2.c 1142 src/f32-raddextexp/gen/avx2-p5-x80-acc5.c 1143 src/f32-raddextexp/gen/avx2-p5-x96.c 1144 src/f32-raddextexp/gen/avx2-p5-x96-acc2.c 1145 src/f32-raddextexp/gen/avx2-p5-x96-acc3.c 1146 src/f32-raddextexp/gen/avx2-p5-x96-acc6.c 1147 src/f32-raddstoreexpminusmax/gen/avx2-p5-x64.c 1148 src/f32-raddstoreexpminusmax/gen/avx2-p5-x64-acc2.c 1149 src/f32-raddstoreexpminusmax/gen/avx2-p5-x64-acc4.c 1150 src/f32-raddstoreexpminusmax/gen/avx2-p5-x72.c 1151 src/f32-raddstoreexpminusmax/gen/avx2-p5-x72-acc3.c 1152 src/f32-raddstoreexpminusmax/gen/avx2-p5-x80.c 1153 src/f32-raddstoreexpminusmax/gen/avx2-p5-x80-acc2.c 1154 src/f32-raddstoreexpminusmax/gen/avx2-p5-x80-acc5.c 1155 src/f32-raddstoreexpminusmax/gen/avx2-p5-x96.c 1156 src/f32-raddstoreexpminusmax/gen/avx2-p5-x96-acc2.c 1157 src/f32-raddstoreexpminusmax/gen/avx2-p5-x96-acc3.c 1158 src/f32-raddstoreexpminusmax/gen/avx2-p5-x96-acc6.c 1159 src/f32-sigmoid/gen/avx2-rr1-p5-div-x8.c 1160 src/f32-sigmoid/gen/avx2-rr1-p5-div-x16.c 1161 src/f32-sigmoid/gen/avx2-rr1-p5-div-x24.c 1162 src/f32-sigmoid/gen/avx2-rr1-p5-div-x32.c 1163 src/f32-sigmoid/gen/avx2-rr1-p5-div-x40.c 1164 src/f32-sigmoid/gen/avx2-rr1-p5-div-x48.c 1165 src/f32-sigmoid/gen/avx2-rr1-p5-div-x56.c 1166 src/f32-sigmoid/gen/avx2-rr1-p5-div-x64.c 1167 src/f32-sigmoid/gen/avx2-rr1-p5-div-x72.c 1168 src/f32-sigmoid/gen/avx2-rr1-p5-div-x80.c 1169 src/f32-sigmoid/gen/avx2-rr1-p5-nr1fma-x8.c 1170 src/f32-sigmoid/gen/avx2-rr1-p5-nr1fma-x16.c 1171 src/f32-sigmoid/gen/avx2-rr1-p5-nr1fma-x24.c 1172 src/f32-sigmoid/gen/avx2-rr1-p5-nr1fma-x32.c 1173 src/f32-sigmoid/gen/avx2-rr1-p5-nr1fma-x40.c 1174 src/f32-sigmoid/gen/avx2-rr1-p5-nr1fma-x48.c 1175 src/f32-sigmoid/gen/avx2-rr1-p5-nr1fma-x56.c 1176 src/f32-sigmoid/gen/avx2-rr1-p5-nr1fma-x64.c 1177 src/f32-sigmoid/gen/avx2-rr1-p5-nr1fma-x72.c 1178 src/f32-sigmoid/gen/avx2-rr1-p5-nr1fma-x80.c 1179 src/f32-sigmoid/gen/avx2-rr1-p5-nr2fma-x8.c 1180 src/f32-sigmoid/gen/avx2-rr1-p5-nr2fma-x16.c 1181 src/f32-sigmoid/gen/avx2-rr1-p5-nr2fma-x24.c 1182 src/f32-sigmoid/gen/avx2-rr1-p5-nr2fma-x32.c 1183 src/f32-sigmoid/gen/avx2-rr1-p5-nr2fma-x40.c 1184 src/f32-sigmoid/gen/avx2-rr1-p5-nr2fma-x48.c 1185 src/f32-sigmoid/gen/avx2-rr1-p5-nr2fma-x56.c 1186 src/f32-sigmoid/gen/avx2-rr1-p5-nr2fma-x64.c 1187 src/f32-sigmoid/gen/avx2-rr1-p5-nr2fma-x72.c 1188 src/f32-sigmoid/gen/avx2-rr1-p5-nr2fma-x80.c 1189 src/f32-vscaleexpminusmax/gen/avx2-p5-x8.c 1190 src/f32-vscaleexpminusmax/gen/avx2-p5-x16.c 1191 src/f32-vscaleexpminusmax/gen/avx2-p5-x24.c 1192 src/f32-vscaleexpminusmax/gen/avx2-p5-x32.c 1193 src/f32-vscaleexpminusmax/gen/avx2-p5-x40.c 1194 src/f32-vscaleexpminusmax/gen/avx2-p5-x48.c 1195 src/f32-vscaleexpminusmax/gen/avx2-p5-x56.c 1196 src/f32-vscaleexpminusmax/gen/avx2-p5-x64.c 1197 src/f32-vscaleexpminusmax/gen/avx2-p5-x72.c 1198 src/f32-vscaleexpminusmax/gen/avx2-p5-x80.c 1199 src/f32-vscaleexpminusmax/gen/avx2-p5-x88.c 1200 src/f32-vscaleexpminusmax/gen/avx2-p5-x96.c 1201 src/f32-vscaleextexp/gen/avx2-p5-x8.c 1202 src/f32-vscaleextexp/gen/avx2-p5-x16.c 1203 src/f32-vscaleextexp/gen/avx2-p5-x24.c 1204 src/f32-vscaleextexp/gen/avx2-p5-x32.c 1205 src/f32-vscaleextexp/gen/avx2-p5-x40.c 1206 src/f32-vscaleextexp/gen/avx2-p5-x48.c 1207 src/f32-vscaleextexp/gen/avx2-p5-x56.c 1208 src/f32-vscaleextexp/gen/avx2-p5-x64.c 1209 src/f32-vscaleextexp/gen/avx2-p5-x72.c 1210 src/f32-vscaleextexp/gen/avx2-p5-x80.c 1211 src/f32-vscaleextexp/gen/avx2-p5-x88.c 1212 src/f32-vscaleextexp/gen/avx2-p5-x96.c 1213 src/math/exp-avx2-p5.c 1214 src/math/exp-avx2-perm-p3.c 1215 src/math/exp-avx2-perm-p4.c 1216 src/math/expminus-avx2-p5.c 1217 src/math/extexp-avx2-p5.c 1218 src/math/sigmoid-avx2-rr2-p5-div.c 1219 src/math/sigmoid-avx2-rr1-p5-div.c 1220 src/math/sigmoid-avx2-rr2-p5-nr2fma.c 1221 src/math/sigmoid-avx2-rr1-p5-nr2fma.c 1222 src/math/sigmoid-avx2-rr2-p5-nr1fma.c 1223 src/math/sigmoid-avx2-rr1-p5-nr1fma.c) 1224 1225SET(XNNPACK_AVX512F_MICROKERNEL_SRCS 1226 src/f32-clamp/avx512f.c 1227 src/f32-dwconv/gen/up32x4-avx512f-acc2.c 1228 src/f32-dwconv/gen/up32x4-avx512f.c 1229 src/f32-dwconv/gen/up16x4-avx512f-acc2.c 1230 src/f32-dwconv/gen/up16x4-avx512f.c 1231 src/f32-dwconv/gen/up32x9-avx512f-acc2.c 1232 src/f32-dwconv/gen/up32x9-avx512f.c 1233 src/f32-dwconv/gen/up16x9-avx512f-acc2.c 1234 src/f32-dwconv/gen/up16x9-avx512f.c 1235 src/f32-dwconv/gen/up32x25-avx512f-acc2.c 1236 src/f32-dwconv/gen/up32x25-avx512f.c 1237 src/f32-dwconv/gen/up16x25-avx512f-acc2.c 1238 src/f32-dwconv/gen/up16x25-avx512f.c 1239 src/f32-gemm/gen/1x16-avx512f-broadcast.c 1240 src/f32-gemm/gen/4x16-avx512f-broadcast.c 1241 src/f32-gemm/gen/5x16-avx512f-broadcast.c 1242 src/f32-gemm/gen/6x16-avx512f-broadcast.c 1243 src/f32-gemm/gen/7x16-avx512f-broadcast.c 1244 src/f32-gemm/gen/8x16-avx512f-broadcast.c 1245 src/f32-gemm/gen-inc/1x16-avx512f-broadcast.c 1246 src/f32-gemm/gen-inc/4x16-avx512f-broadcast.c 1247 src/f32-gemm/gen-inc/5x16-avx512f-broadcast.c 1248 src/f32-gemm/gen-inc/6x16-avx512f-broadcast.c 1249 src/f32-gemm/gen-inc/7x16-avx512f-broadcast.c 1250 src/f32-gemm/gen-inc/8x16-avx512f-broadcast.c 1251 src/f32-hswish/gen/avx512f-x16.c 1252 src/f32-hswish/gen/avx512f-x32.c 1253 src/f32-igemm/gen/1x16-avx512f-broadcast.c 1254 src/f32-igemm/gen/4x16-avx512f-broadcast.c 1255 src/f32-igemm/gen/5x16-avx512f-broadcast.c 1256 src/f32-igemm/gen/6x16-avx512f-broadcast.c 1257 src/f32-igemm/gen/7x16-avx512f-broadcast.c 1258 src/f32-igemm/gen/8x16-avx512f-broadcast.c 1259 src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x128.c 1260 src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x128-acc2.c 1261 src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x128-acc4.c 1262 src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x144.c 1263 src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x144-acc3.c 1264 src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x160.c 1265 src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x160-acc2.c 1266 src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x160-acc5.c 1267 src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x192.c 1268 src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x192-acc2.c 1269 src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x192-acc3.c 1270 src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x192-acc6.c 1271 src/f32-raddextexp/gen/avx512f-p5-scalef-x128.c 1272 src/f32-raddextexp/gen/avx512f-p5-scalef-x128-acc2.c 1273 src/f32-raddextexp/gen/avx512f-p5-scalef-x128-acc4.c 1274 src/f32-raddextexp/gen/avx512f-p5-scalef-x144.c 1275 src/f32-raddextexp/gen/avx512f-p5-scalef-x144-acc3.c 1276 src/f32-raddextexp/gen/avx512f-p5-scalef-x160.c 1277 src/f32-raddextexp/gen/avx512f-p5-scalef-x160-acc2.c 1278 src/f32-raddextexp/gen/avx512f-p5-scalef-x160-acc5.c 1279 src/f32-raddextexp/gen/avx512f-p5-scalef-x192.c 1280 src/f32-raddextexp/gen/avx512f-p5-scalef-x192-acc2.c 1281 src/f32-raddextexp/gen/avx512f-p5-scalef-x192-acc3.c 1282 src/f32-raddextexp/gen/avx512f-p5-scalef-x192-acc6.c 1283 src/f32-raddstoreexpminusmax/gen/avx512f-p5-scalef-x128.c 1284 src/f32-raddstoreexpminusmax/gen/avx512f-p5-scalef-x128-acc2.c 1285 src/f32-raddstoreexpminusmax/gen/avx512f-p5-scalef-x128-acc4.c 1286 src/f32-raddstoreexpminusmax/gen/avx512f-p5-scalef-x144.c 1287 src/f32-raddstoreexpminusmax/gen/avx512f-p5-scalef-x144-acc3.c 1288 src/f32-raddstoreexpminusmax/gen/avx512f-p5-scalef-x160.c 1289 src/f32-raddstoreexpminusmax/gen/avx512f-p5-scalef-x160-acc2.c 1290 src/f32-raddstoreexpminusmax/gen/avx512f-p5-scalef-x160-acc5.c 1291 src/f32-raddstoreexpminusmax/gen/avx512f-p5-scalef-x192.c 1292 src/f32-raddstoreexpminusmax/gen/avx512f-p5-scalef-x192-acc2.c 1293 src/f32-raddstoreexpminusmax/gen/avx512f-p5-scalef-x192-acc3.c 1294 src/f32-raddstoreexpminusmax/gen/avx512f-p5-scalef-x192-acc6.c 1295 src/f32-rmax/avx512f.c 1296 src/f32-vbinary/gen/vadd-avx512f-x16.c 1297 src/f32-vbinary/gen/vadd-avx512f-x32.c 1298 src/f32-vbinary/gen/vaddc-avx512f-x16.c 1299 src/f32-vbinary/gen/vaddc-avx512f-x32.c 1300 src/f32-vbinary/gen/vdiv-avx512f-x16.c 1301 src/f32-vbinary/gen/vdiv-avx512f-x32.c 1302 src/f32-vbinary/gen/vdivc-avx512f-x16.c 1303 src/f32-vbinary/gen/vdivc-avx512f-x32.c 1304 src/f32-vbinary/gen/vmax-avx512f-x16.c 1305 src/f32-vbinary/gen/vmax-avx512f-x32.c 1306 src/f32-vbinary/gen/vmaxc-avx512f-x16.c 1307 src/f32-vbinary/gen/vmaxc-avx512f-x32.c 1308 src/f32-vbinary/gen/vmin-avx512f-x16.c 1309 src/f32-vbinary/gen/vmin-avx512f-x32.c 1310 src/f32-vbinary/gen/vminc-avx512f-x16.c 1311 src/f32-vbinary/gen/vminc-avx512f-x32.c 1312 src/f32-vbinary/gen/vmul-avx512f-x16.c 1313 src/f32-vbinary/gen/vmul-avx512f-x32.c 1314 src/f32-vbinary/gen/vmulc-avx512f-x16.c 1315 src/f32-vbinary/gen/vmulc-avx512f-x32.c 1316 src/f32-vbinary/gen/vrdivc-avx512f-x16.c 1317 src/f32-vbinary/gen/vrdivc-avx512f-x32.c 1318 src/f32-vbinary/gen/vrsubc-avx512f-x16.c 1319 src/f32-vbinary/gen/vrsubc-avx512f-x32.c 1320 src/f32-vbinary/gen/vsub-avx512f-x16.c 1321 src/f32-vbinary/gen/vsub-avx512f-x32.c 1322 src/f32-vbinary/gen/vsubc-avx512f-x16.c 1323 src/f32-vbinary/gen/vsubc-avx512f-x32.c 1324 src/f32-vscale/avx512f-unroll64.c 1325 src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x16.c 1326 src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x32.c 1327 src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x48.c 1328 src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x64.c 1329 src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x80.c 1330 src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x96.c 1331 src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x112.c 1332 src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x128.c 1333 src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x144.c 1334 src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x160.c 1335 src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x176.c 1336 src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x192.c 1337 src/f32-vscaleextexp/gen/avx512f-p5-scalef-x16.c 1338 src/f32-vscaleextexp/gen/avx512f-p5-scalef-x32.c 1339 src/f32-vscaleextexp/gen/avx512f-p5-scalef-x48.c 1340 src/f32-vscaleextexp/gen/avx512f-p5-scalef-x64.c 1341 src/f32-vscaleextexp/gen/avx512f-p5-scalef-x80.c 1342 src/f32-vscaleextexp/gen/avx512f-p5-scalef-x96.c 1343 src/f32-vscaleextexp/gen/avx512f-p5-scalef-x112.c 1344 src/f32-vscaleextexp/gen/avx512f-p5-scalef-x128.c 1345 src/f32-vscaleextexp/gen/avx512f-p5-scalef-x144.c 1346 src/f32-vscaleextexp/gen/avx512f-p5-scalef-x160.c 1347 src/f32-vscaleextexp/gen/avx512f-p5-scalef-x176.c 1348 src/f32-vscaleextexp/gen/avx512f-p5-scalef-x192.c 1349 src/math/exp-avx512f-p5-scalef.c 1350 src/math/exp-avx512f-p5.c 1351 src/math/exp-avx512f-perm-p3.c 1352 src/math/exp-avx512f-perm2-p2.c 1353 src/math/extexp-avx512f-p5.c) 1354 1355SET(XNNPACK_AARCH32_ASM_MICROKERNEL_SRCS 1356 src/q8-dwconv/up8x9-aarch32-neon.S 1357 src/f32-gemm/4x8-aarch32-neon-cortex-a53.S 1358 src/f32-gemm/gen/4x8-aarch32-neon-cortex-a75.S 1359 src/f32-gemm/gen/4x8-aarch32-neon-pld-cortex-a75.S 1360 src/f32-gemm/4x8-aarch32-neon-ld64.S 1361 src/f32-igemm/4x8-aarch32-neon-ld64.S 1362 src/f32-igemm/gen/4x8-aarch32-neon-cortex-a75.S 1363 src/f32-igemm/gen/4x8-aarch32-neon-pld-cortex-a75.S) 1364 1365SET(XNNPACK_AARCH64_ASM_MICROKERNEL_SRCS 1366 src/f32-dwconv/up4x9-aarch64-neonfma-cortex-a55.S 1367 src/f32-dwconv/up4x9-aarch64-neonfma.S 1368 src/f32-gemm/gen/1x12-aarch64-neonfma-cortex-a53.S 1369 src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a53.S 1370 src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a57.S 1371 src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a75.S 1372 src/f32-gemm/gen/4x12-aarch64-neonfma-cortex-a53.S 1373 src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a53.S 1374 src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a57.S 1375 src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a75.S 1376 src/f32-gemm/gen/4x8-aarch64-neonfma-ld128.S 1377 src/f32-gemm/gen/4x8-aarch64-neonfma-ld64.S 1378 src/f32-gemm/gen/5x8-aarch64-neonfma-cortex-a57.S 1379 src/f32-gemm/gen/5x8-aarch64-neonfma-cortex-a75.S 1380 src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a53.S 1381 src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a73.S 1382 src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a57.S 1383 src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a75.S 1384 src/f32-gemm/gen/6x8-aarch64-neonfma-ld128.S 1385 src/f32-gemm/gen/6x8-aarch64-neonfma-ld64.S 1386 src/f32-gemm/gen-inc/1x12-aarch64-neonfma-cortex-a53.S 1387 src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a53.S 1388 src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a57.S 1389 src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a75.S 1390 src/f32-gemm/gen-inc/4x12-aarch64-neonfma-cortex-a53.S 1391 src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a53.S 1392 src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a57.S 1393 src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a75.S 1394 src/f32-gemm/gen-inc/4x8-aarch64-neonfma-ld128.S 1395 src/f32-gemm/gen-inc/4x8-aarch64-neonfma-ld64.S 1396 src/f32-gemm/gen-inc/5x8-aarch64-neonfma-cortex-a57.S 1397 src/f32-gemm/gen-inc/5x8-aarch64-neonfma-cortex-a75.S 1398 src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a53.S 1399 src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a73.S 1400 src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a57.S 1401 src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a75.S 1402 src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ld128.S 1403 src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ld64.S 1404 src/f32-igemm/1x12-aarch64-neonfma-cortex-a53.S 1405 src/f32-igemm/1x8-aarch64-neonfma-cortex-a53.S 1406 src/f32-igemm/gen/1x8-aarch64-neonfma-cortex-a57.S 1407 src/f32-igemm/gen/1x8-aarch64-neonfma-cortex-a75.S 1408 src/f32-igemm/4x8-aarch64-neonfma-cortex-a53.S 1409 src/f32-igemm/4x12-aarch64-neonfma-cortex-a53.S 1410 src/f32-igemm/gen/4x8-aarch64-neonfma-cortex-a57.S 1411 src/f32-igemm/gen/4x8-aarch64-neonfma-cortex-a75.S 1412 src/f32-igemm/gen/5x8-aarch64-neonfma-cortex-a57.S 1413 src/f32-igemm/gen/5x8-aarch64-neonfma-cortex-a75.S 1414 src/f32-igemm/6x8-aarch64-neonfma-cortex-a53.S 1415 src/f32-igemm/6x8-aarch64-neonfma-cortex-a73.S 1416 src/f32-igemm/gen/6x8-aarch64-neonfma-cortex-a57.S 1417 src/f32-igemm/gen/6x8-aarch64-neonfma-cortex-a75.S) 1418 1419SET(XNNPACK_MICROKERNEL_SRCS ${XNNPACK_SCALAR_MICROKERNEL_SRCS}) 1420IF(NOT CMAKE_SYSTEM_NAME STREQUAL "Emscripten") 1421 LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_PSIMD_FASTMATH_MICROKERNEL_SRCS}) 1422 LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_PSIMD_ACCMATH_MICROKERNEL_SRCS}) 1423ENDIF() 1424IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^armv[5-8]" OR IOS_ARCH MATCHES "^armv7") 1425 LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_NEON_MICROKERNEL_SRCS}) 1426 LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_NEONFMA_MICROKERNEL_SRCS}) 1427 LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_AARCH32_ASM_MICROKERNEL_SRCS}) 1428ENDIF() 1429IF(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" OR IOS_ARCH MATCHES "^arm64.*") 1430 LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_NEON_MICROKERNEL_SRCS}) 1431 LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_NEONFMA_MICROKERNEL_SRCS}) 1432 LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_AARCH64_NEONFMA_MICROKERNEL_SRCS}) 1433 LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_AARCH64_NEONFP16ARITH_MICROKERNEL_SRCS}) 1434 LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_AARCH64_ASM_MICROKERNEL_SRCS}) 1435ENDIF() 1436IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i[3-6]86|x86_64)$" OR IOS_ARCH MATCHES "^(i386|x86_64)$") 1437 LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_SSE_MICROKERNEL_SRCS}) 1438 LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_SSE2_MICROKERNEL_SRCS}) 1439 LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_SSE41_MICROKERNEL_SRCS}) 1440 LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_AVX_MICROKERNEL_SRCS}) 1441 LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_FMA3_MICROKERNEL_SRCS}) 1442 LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_AVX2_MICROKERNEL_SRCS}) 1443 LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_AVX512F_MICROKERNEL_SRCS}) 1444ENDIF() 1445 1446IF(XNNPACK_LIBRARY_TYPE STREQUAL "default") 1447 ADD_LIBRARY(XNNPACK ${XNNPACK_COLD_SRCS} ${XNNPACK_HOT_SRCS} ${XNNPACK_TABLE_SRCS} ${XNNPACK_MICROKERNEL_SRCS}) 1448ELSEIF(XNNPACK_LIBRARY_TYPE STREQUAL "shared") 1449 ADD_LIBRARY(XNNPACK SHARED ${XNNPACK_COLD_SRCS} ${XNNPACK_HOT_SRCS} ${XNNPACK_TABLE_SRCS} ${XNNPACK_MICROKERNEL_SRCS}) 1450ELSEIF(XNNPACK_LIBRARY_TYPE STREQUAL "static") 1451 ADD_LIBRARY(XNNPACK STATIC ${XNNPACK_COLD_SRCS} ${XNNPACK_HOT_SRCS} ${XNNPACK_TABLE_SRCS} ${XNNPACK_MICROKERNEL_SRCS}) 1452ELSE() 1453 MESSAGE(FATAL_ERROR "Unsupported XNNPACK library type \"${XNNPACK_LIBRARY_TYPE}\". Must be \"static\", \"shared\", or \"default\"") 1454ENDIF() 1455SET_TARGET_PROPERTIES(XNNPACK PROPERTIES 1456 C_STANDARD 99 1457 C_EXTENSIONS YES) 1458IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^armv[5-8]" OR IOS_ARCH MATCHES "^armv7") 1459 SET_PROPERTY(SOURCE ${XNNPACK_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -marm ") 1460 SET_PROPERTY(SOURCE ${XNNPACK_PSIMD_FASTMATH_MICROKERNEL_SRCS} ${XNNPACK_PSIMD_ACCMATH_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -mfpu=neon ") 1461 SET_PROPERTY(SOURCE ${XNNPACK_NEON_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -mfpu=neon ") 1462 SET_PROPERTY(SOURCE ${XNNPACK_NEONFMA_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -mfpu=neon-vfpv4 ") 1463 IF(IOS) 1464 SET_PROPERTY(SOURCE ${XNNPACK_AARCH32_ASM_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -arch ${IOS_ARCH} ") 1465 ENDIF() 1466ENDIF() 1467IF(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" OR IOS_ARCH MATCHES "^arm64.*") 1468 SET_PROPERTY(SOURCE ${XNNPACK_AARCH64_NEONFP16ARITH_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -march=armv8.2-a+fp16 ") 1469 IF(IOS) 1470 SET_PROPERTY(SOURCE ${XNNPACK_AARCH64_ASM_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -arch ${IOS_ARCH} ") 1471 ENDIF() 1472ENDIF() 1473IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i[3-6]86|x86_64)$" OR IOS_ARCH MATCHES "^(i386|x86_64)$") 1474 SET_PROPERTY(SOURCE ${XNNPACK_SSE_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -msse ") 1475 SET_PROPERTY(SOURCE ${XNNPACK_SSE2_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -msse2 ") 1476 SET_PROPERTY(SOURCE ${XNNPACK_SSE41_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -msse4.1 ") 1477 SET_PROPERTY(SOURCE ${XNNPACK_AVX_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -mavx ") 1478 SET_PROPERTY(SOURCE ${XNNPACK_FMA3_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -mfma ") 1479 SET_PROPERTY(SOURCE ${XNNPACK_AVX2_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -mfma -mavx2 ") 1480 SET_PROPERTY(SOURCE ${XNNPACK_AVX512F_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -mavx512f ") 1481ENDIF() 1482IF(CMAKE_BUILD_TYPE STREQUAL "Debug") 1483 TARGET_COMPILE_DEFINITIONS(XNNPACK PRIVATE XNN_LOG_LEVEL=5) 1484ELSE() 1485 TARGET_COMPILE_DEFINITIONS(XNNPACK PRIVATE XNN_LOG_LEVEL=0) 1486 SET_PROPERTY(SOURCE ${XNNPACK_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -O2 ") 1487 SET_PROPERTY(SOURCE ${XNNPACK_HOT_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -O2 ") 1488 SET_PROPERTY(SOURCE ${XNNPACK_COLD_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -Os ") 1489ENDIF() 1490IF(NOT CMAKE_SYSTEM_NAME STREQUAL "Emscripten") 1491 SET_PROPERTY(SOURCE ${XNNPACK_PSIMD_ACCMATH_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -O3 ") 1492 SET_PROPERTY(SOURCE ${XNNPACK_PSIMD_FASTMATH_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -O3 -ffast-math ") 1493ENDIF() 1494 1495TARGET_INCLUDE_DIRECTORIES(XNNPACK PUBLIC include) 1496TARGET_INCLUDE_DIRECTORIES(XNNPACK PRIVATE src) 1497SET_TARGET_PROPERTIES(XNNPACK PROPERTIES PUBLIC_HEADER include/xnnpack.h) 1498 1499# ---[ Configure clog 1500IF(NOT TARGET clog) 1501 SET(CLOG_BUILD_TESTS OFF CACHE BOOL "") 1502 SET(CLOG_RUNTIME_TYPE "${CPUINFO_RUNTIME_TYPE}" CACHE STRING "") 1503 ADD_SUBDIRECTORY( 1504 "${CLOG_SOURCE_DIR}/deps/clog" 1505 "${CMAKE_BINARY_DIR}/clog") 1506 # We build static version of clog but a dynamic library may indirectly depend on it 1507 SET_PROPERTY(TARGET clog PROPERTY POSITION_INDEPENDENT_CODE ON) 1508ENDIF() 1509TARGET_LINK_LIBRARIES(XNNPACK PRIVATE clog) 1510 1511# ---[ Configure cpuinfo 1512IF(NOT TARGET cpuinfo) 1513 SET(CPUINFO_BUILD_TOOLS OFF CACHE BOOL "") 1514 SET(CPUINFO_BUILD_UNIT_TESTS OFF CACHE BOOL "") 1515 SET(CPUINFO_BUILD_MOCK_TESTS OFF CACHE BOOL "") 1516 SET(CPUINFO_BUILD_BENCHMARKS OFF CACHE BOOL "") 1517 ADD_SUBDIRECTORY( 1518 "${CPUINFO_SOURCE_DIR}" 1519 "${CMAKE_BINARY_DIR}/cpuinfo") 1520ENDIF() 1521TARGET_LINK_LIBRARIES(XNNPACK PRIVATE cpuinfo) 1522 1523# ---[ Configure pthreadpool 1524IF(NOT TARGET pthreadpool) 1525 SET(PTHREADPOOL_BUILD_TESTS OFF CACHE BOOL "") 1526 SET(PTHREADPOOL_BUILD_BENCHMARKS OFF CACHE BOOL "") 1527 SET(PTHREADPOOL_ALLOW_DEPRECATED_API OFF CACHE BOOL "") 1528 ADD_SUBDIRECTORY( 1529 "${PTHREADPOOL_SOURCE_DIR}" 1530 "${CMAKE_BINARY_DIR}/pthreadpool") 1531ENDIF() 1532TARGET_LINK_LIBRARIES(XNNPACK PUBLIC pthreadpool) 1533 1534# ---[ Configure FXdiv 1535IF(NOT TARGET fxdiv) 1536 SET(FXDIV_BUILD_TESTS OFF CACHE BOOL "") 1537 SET(FXDIV_BUILD_BENCHMARKS OFF CACHE BOOL "") 1538 ADD_SUBDIRECTORY( 1539 "${FXDIV_SOURCE_DIR}" 1540 "${CMAKE_BINARY_DIR}/FXdiv") 1541ENDIF() 1542TARGET_LINK_LIBRARIES(XNNPACK PRIVATE fxdiv) 1543 1544# ---[ Configure psimd 1545IF(NOT TARGET psimd) 1546 ADD_SUBDIRECTORY( 1547 "${PSIMD_SOURCE_DIR}" 1548 "${CMAKE_BINARY_DIR}/psimd") 1549ENDIF() 1550TARGET_LINK_LIBRARIES(XNNPACK PRIVATE psimd) 1551 1552# ---[ Configure FP16 1553IF(NOT TARGET fp16) 1554 SET(FP16_BUILD_TESTS OFF CACHE BOOL "") 1555 SET(FP16_BUILD_BENCHMARKS OFF CACHE BOOL "") 1556 ADD_SUBDIRECTORY( 1557 "${FP16_SOURCE_DIR}" 1558 "${CMAKE_BINARY_DIR}/FP16") 1559ENDIF() 1560TARGET_LINK_LIBRARIES(XNNPACK PRIVATE fp16) 1561 1562INSTALL(TARGETS XNNPACK 1563 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} 1564 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} 1565 PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) 1566 1567# ---[ XNNPACK unit tests 1568IF(XNNPACK_BUILD_TESTS) 1569 # ---[ Build google test 1570 IF(NOT TARGET gtest) 1571 SET(gtest_force_shared_crt ON CACHE BOOL "" FORCE) 1572 ADD_SUBDIRECTORY( 1573 "${GOOGLETEST_SOURCE_DIR}" 1574 "${CMAKE_BINARY_DIR}/googletest") 1575 ENDIF() 1576 1577 # ---[ Build operator-level unit tests 1578 ADD_EXECUTABLE(add-nc-test test/add-nc.cc) 1579 SET_TARGET_PROPERTIES(add-nc-test PROPERTIES 1580 CXX_STANDARD 11 1581 CXX_STANDARD_REQUIRED YES 1582 CXX_EXTENSIONS NO) 1583 TARGET_INCLUDE_DIRECTORIES(add-nc-test PRIVATE src test) 1584 TARGET_LINK_LIBRARIES(add-nc-test PRIVATE XNNPACK gtest gtest_main) 1585 ADD_TEST(add-nc-test add-nc-test) 1586 1587 ADD_EXECUTABLE(add-nd-test test/add-nd.cc) 1588 SET_TARGET_PROPERTIES(add-nd-test PROPERTIES 1589 CXX_STANDARD 11 1590 CXX_STANDARD_REQUIRED YES 1591 CXX_EXTENSIONS NO) 1592 TARGET_INCLUDE_DIRECTORIES(add-nd-test PRIVATE src test) 1593 TARGET_LINK_LIBRARIES(add-nd-test PRIVATE XNNPACK gtest gtest_main) 1594 ADD_TEST(add-nd-test add-nd-test) 1595 1596 ADD_EXECUTABLE(argmax-pooling-nhwc-test test/argmax-pooling-nhwc.cc) 1597 SET_TARGET_PROPERTIES(argmax-pooling-nhwc-test PROPERTIES 1598 CXX_STANDARD 11 1599 CXX_STANDARD_REQUIRED YES 1600 CXX_EXTENSIONS NO) 1601 TARGET_INCLUDE_DIRECTORIES(argmax-pooling-nhwc-test PRIVATE src test) 1602 TARGET_LINK_LIBRARIES(argmax-pooling-nhwc-test PRIVATE XNNPACK gtest gtest_main) 1603 ADD_TEST(argmax-pooling-nhwc-test argmax-pooling-nhwc-test) 1604 1605 ADD_EXECUTABLE(average-pooling-nhwc-test test/average-pooling-nhwc.cc) 1606 SET_TARGET_PROPERTIES(average-pooling-nhwc-test PROPERTIES 1607 CXX_STANDARD 11 1608 CXX_STANDARD_REQUIRED YES 1609 CXX_EXTENSIONS NO) 1610 TARGET_INCLUDE_DIRECTORIES(average-pooling-nhwc-test PRIVATE src test) 1611 TARGET_LINK_LIBRARIES(average-pooling-nhwc-test PRIVATE XNNPACK gtest gtest_main) 1612 ADD_TEST(average-pooling-nhwc-test average-pooling-nhwc-test) 1613 1614 ADD_EXECUTABLE(channel-pad-nc-test test/channel-pad-nc.cc) 1615 SET_TARGET_PROPERTIES(channel-pad-nc-test PROPERTIES 1616 CXX_STANDARD 11 1617 CXX_STANDARD_REQUIRED YES 1618 CXX_EXTENSIONS NO) 1619 TARGET_INCLUDE_DIRECTORIES(channel-pad-nc-test PRIVATE src test) 1620 TARGET_LINK_LIBRARIES(channel-pad-nc-test PRIVATE XNNPACK gtest gtest_main) 1621 ADD_TEST(channel-pad-nc-test channel-pad-nc-test) 1622 1623 ADD_EXECUTABLE(channel-shuffle-nc-test test/channel-shuffle-nc.cc) 1624 SET_TARGET_PROPERTIES(channel-shuffle-nc-test PROPERTIES 1625 CXX_STANDARD 11 1626 CXX_STANDARD_REQUIRED YES 1627 CXX_EXTENSIONS NO) 1628 TARGET_INCLUDE_DIRECTORIES(channel-shuffle-nc-test PRIVATE src test) 1629 TARGET_LINK_LIBRARIES(channel-shuffle-nc-test PRIVATE XNNPACK gtest gtest_main) 1630 ADD_TEST(channel-shuffle-nc-test channel-shuffle-nc-test) 1631 1632 ADD_EXECUTABLE(clamp-nc-test test/clamp-nc.cc) 1633 SET_TARGET_PROPERTIES(clamp-nc-test PROPERTIES 1634 CXX_STANDARD 11 1635 CXX_STANDARD_REQUIRED YES 1636 CXX_EXTENSIONS NO) 1637 TARGET_INCLUDE_DIRECTORIES(clamp-nc-test PRIVATE src test) 1638 TARGET_LINK_LIBRARIES(clamp-nc-test PRIVATE XNNPACK gtest gtest_main) 1639 ADD_TEST(clamp-nc-test clamp-nc-test) 1640 1641 ADD_EXECUTABLE(convolution-nhwc-test test/convolution-nhwc.cc) 1642 SET_TARGET_PROPERTIES(convolution-nhwc-test PROPERTIES 1643 CXX_STANDARD 11 1644 CXX_STANDARD_REQUIRED YES 1645 CXX_EXTENSIONS NO) 1646 TARGET_INCLUDE_DIRECTORIES(convolution-nhwc-test PRIVATE src test) 1647 TARGET_LINK_LIBRARIES(convolution-nhwc-test PRIVATE XNNPACK gtest gtest_main) 1648 ADD_TEST(convolution-nhwc-test convolution-nhwc-test) 1649 1650 ADD_EXECUTABLE(convolution-nchw-test test/convolution-nchw.cc) 1651 SET_TARGET_PROPERTIES(convolution-nchw-test PROPERTIES 1652 CXX_STANDARD 11 1653 CXX_STANDARD_REQUIRED YES 1654 CXX_EXTENSIONS NO) 1655 TARGET_INCLUDE_DIRECTORIES(convolution-nchw-test PRIVATE src test) 1656 TARGET_LINK_LIBRARIES(convolution-nchw-test PRIVATE XNNPACK gtest gtest_main) 1657 ADD_TEST(convolution-nchw-test convolution-nchw-test) 1658 1659 ADD_EXECUTABLE(deconvolution-nhwc-test test/deconvolution-nhwc.cc) 1660 SET_TARGET_PROPERTIES(deconvolution-nhwc-test PROPERTIES 1661 CXX_STANDARD 11 1662 CXX_STANDARD_REQUIRED YES 1663 CXX_EXTENSIONS NO) 1664 TARGET_INCLUDE_DIRECTORIES(deconvolution-nhwc-test PRIVATE src test) 1665 TARGET_LINK_LIBRARIES(deconvolution-nhwc-test PRIVATE XNNPACK gtest gtest_main) 1666 ADD_TEST(deconvolution-nhwc-test deconvolution-nhwc-test) 1667 1668 ADD_EXECUTABLE(divide-nd-test test/divide-nd.cc) 1669 SET_TARGET_PROPERTIES(divide-nd-test PROPERTIES 1670 CXX_STANDARD 11 1671 CXX_STANDARD_REQUIRED YES 1672 CXX_EXTENSIONS NO) 1673 TARGET_INCLUDE_DIRECTORIES(divide-nd-test PRIVATE src test) 1674 TARGET_LINK_LIBRARIES(divide-nd-test PRIVATE XNNPACK gtest gtest_main) 1675 ADD_TEST(divide-nd-test divide-nd-test) 1676 1677 ADD_EXECUTABLE(fully-connected-nc-test test/fully-connected-nc.cc) 1678 SET_TARGET_PROPERTIES(fully-connected-nc-test PROPERTIES 1679 CXX_STANDARD 11 1680 CXX_STANDARD_REQUIRED YES 1681 CXX_EXTENSIONS NO) 1682 TARGET_INCLUDE_DIRECTORIES(fully-connected-nc-test PRIVATE src test) 1683 TARGET_LINK_LIBRARIES(fully-connected-nc-test PRIVATE XNNPACK gtest gtest_main) 1684 ADD_TEST(fully-connected-nc-test fully-connected-nc-test) 1685 1686 ADD_EXECUTABLE(global-average-pooling-nwc-test test/global-average-pooling-nwc.cc) 1687 SET_TARGET_PROPERTIES(global-average-pooling-nwc-test PROPERTIES 1688 CXX_STANDARD 11 1689 CXX_STANDARD_REQUIRED YES 1690 CXX_EXTENSIONS NO) 1691 TARGET_INCLUDE_DIRECTORIES(global-average-pooling-nwc-test PRIVATE src test) 1692 TARGET_LINK_LIBRARIES(global-average-pooling-nwc-test PRIVATE XNNPACK gtest gtest_main) 1693 ADD_TEST(global-average-pooling-nwc-test global-average-pooling-nwc-test) 1694 1695 ADD_EXECUTABLE(global-average-pooling-ncw-test test/global-average-pooling-ncw.cc) 1696 SET_TARGET_PROPERTIES(global-average-pooling-ncw-test PROPERTIES 1697 CXX_STANDARD 11 1698 CXX_STANDARD_REQUIRED YES 1699 CXX_EXTENSIONS NO) 1700 TARGET_INCLUDE_DIRECTORIES(global-average-pooling-ncw-test PRIVATE src test) 1701 TARGET_LINK_LIBRARIES(global-average-pooling-ncw-test PRIVATE XNNPACK gtest gtest_main) 1702 ADD_TEST(global-average-pooling-ncw-test global-average-pooling-ncw-test) 1703 1704 ADD_EXECUTABLE(hardswish-nc-test test/hardswish-nc.cc) 1705 SET_TARGET_PROPERTIES(hardswish-nc-test PROPERTIES 1706 CXX_STANDARD 11 1707 CXX_STANDARD_REQUIRED YES 1708 CXX_EXTENSIONS NO) 1709 TARGET_INCLUDE_DIRECTORIES(hardswish-nc-test PRIVATE src test) 1710 TARGET_LINK_LIBRARIES(hardswish-nc-test PRIVATE XNNPACK gtest gtest_main) 1711 ADD_TEST(hardswish-nc-test hardswish-nc-test) 1712 1713 ADD_EXECUTABLE(leaky-relu-nc-test test/leaky-relu-nc.cc) 1714 SET_TARGET_PROPERTIES(leaky-relu-nc-test PROPERTIES 1715 CXX_STANDARD 11 1716 CXX_STANDARD_REQUIRED YES 1717 CXX_EXTENSIONS NO) 1718 TARGET_INCLUDE_DIRECTORIES(leaky-relu-nc-test PRIVATE src test) 1719 TARGET_LINK_LIBRARIES(leaky-relu-nc-test PRIVATE XNNPACK gtest gtest_main) 1720 ADD_TEST(leaky-relu-nc-test leaky-relu-nc-test) 1721 1722 ADD_EXECUTABLE(max-pooling-nhwc-test test/max-pooling-nhwc.cc) 1723 SET_TARGET_PROPERTIES(max-pooling-nhwc-test PROPERTIES 1724 CXX_STANDARD 11 1725 CXX_STANDARD_REQUIRED YES 1726 CXX_EXTENSIONS NO) 1727 TARGET_INCLUDE_DIRECTORIES(max-pooling-nhwc-test PRIVATE src test) 1728 TARGET_LINK_LIBRARIES(max-pooling-nhwc-test PRIVATE XNNPACK gtest gtest_main) 1729 ADD_TEST(max-pooling-nhwc-test max-pooling-nhwc-test) 1730 1731 ADD_EXECUTABLE(maximum-nd-test test/multiply-nd.cc) 1732 SET_TARGET_PROPERTIES(maximum-nd-test PROPERTIES 1733 CXX_STANDARD 11 1734 CXX_STANDARD_REQUIRED YES 1735 CXX_EXTENSIONS NO) 1736 TARGET_INCLUDE_DIRECTORIES(maximum-nd-test PRIVATE src test) 1737 TARGET_LINK_LIBRARIES(maximum-nd-test PRIVATE XNNPACK gtest gtest_main) 1738 ADD_TEST(maximum-nd-test maximum-nd-test) 1739 1740 ADD_EXECUTABLE(minimum-nd-test test/multiply-nd.cc) 1741 SET_TARGET_PROPERTIES(minimum-nd-test PROPERTIES 1742 CXX_STANDARD 11 1743 CXX_STANDARD_REQUIRED YES 1744 CXX_EXTENSIONS NO) 1745 TARGET_INCLUDE_DIRECTORIES(minimum-nd-test PRIVATE src test) 1746 TARGET_LINK_LIBRARIES(minimum-nd-test PRIVATE XNNPACK gtest gtest_main) 1747 ADD_TEST(minimum-nd-test minimum-nd-test) 1748 1749 ADD_EXECUTABLE(multiply-nd-test test/multiply-nd.cc) 1750 SET_TARGET_PROPERTIES(multiply-nd-test PROPERTIES 1751 CXX_STANDARD 11 1752 CXX_STANDARD_REQUIRED YES 1753 CXX_EXTENSIONS NO) 1754 TARGET_INCLUDE_DIRECTORIES(multiply-nd-test PRIVATE src test) 1755 TARGET_LINK_LIBRARIES(multiply-nd-test PRIVATE XNNPACK gtest gtest_main) 1756 ADD_TEST(multiply-nd-test multiply-nd-test) 1757 1758 ADD_EXECUTABLE(prelu-nc-test test/prelu-nc.cc) 1759 SET_TARGET_PROPERTIES(prelu-nc-test PROPERTIES 1760 CXX_STANDARD 11 1761 CXX_STANDARD_REQUIRED YES 1762 CXX_EXTENSIONS NO) 1763 TARGET_INCLUDE_DIRECTORIES(prelu-nc-test PRIVATE src test) 1764 TARGET_LINK_LIBRARIES(prelu-nc-test PRIVATE XNNPACK gtest gtest_main) 1765 ADD_TEST(prelu-nc-test prelu-nc-test) 1766 1767 ADD_EXECUTABLE(resize-bilinear-nhwc-test test/resize-bilinear-nhwc.cc) 1768 SET_TARGET_PROPERTIES(resize-bilinear-nhwc-test PROPERTIES 1769 CXX_STANDARD 11 1770 CXX_STANDARD_REQUIRED YES 1771 CXX_EXTENSIONS NO) 1772 TARGET_INCLUDE_DIRECTORIES(resize-bilinear-nhwc-test PRIVATE src test) 1773 TARGET_LINK_LIBRARIES(resize-bilinear-nhwc-test PRIVATE XNNPACK gtest gtest_main) 1774 ADD_TEST(resize-bilinear-nhwc-test resize-bilinear-nhwc-test) 1775 1776 ADD_EXECUTABLE(sigmoid-nc-test test/sigmoid-nc.cc) 1777 SET_TARGET_PROPERTIES(sigmoid-nc-test PROPERTIES 1778 CXX_STANDARD 11 1779 CXX_STANDARD_REQUIRED YES 1780 CXX_EXTENSIONS NO) 1781 TARGET_INCLUDE_DIRECTORIES(sigmoid-nc-test PRIVATE src test) 1782 TARGET_LINK_LIBRARIES(sigmoid-nc-test PRIVATE XNNPACK gtest gtest_main) 1783 ADD_TEST(sigmoid-nc-test sigmoid-nc-test) 1784 1785 ADD_EXECUTABLE(softmax-nc-test test/softmax-nc.cc) 1786 SET_TARGET_PROPERTIES(softmax-nc-test PROPERTIES 1787 CXX_STANDARD 11 1788 CXX_STANDARD_REQUIRED YES 1789 CXX_EXTENSIONS NO) 1790 TARGET_INCLUDE_DIRECTORIES(softmax-nc-test PRIVATE src test) 1791 TARGET_LINK_LIBRARIES(softmax-nc-test PRIVATE XNNPACK gtest gtest_main) 1792 ADD_TEST(softmax-nc-test softmax-nc-test) 1793 1794 ADD_EXECUTABLE(subtract-nd-test test/subtract-nd.cc) 1795 SET_TARGET_PROPERTIES(subtract-nd-test PROPERTIES 1796 CXX_STANDARD 11 1797 CXX_STANDARD_REQUIRED YES 1798 CXX_EXTENSIONS NO) 1799 TARGET_INCLUDE_DIRECTORIES(subtract-nd-test PRIVATE src test) 1800 TARGET_LINK_LIBRARIES(subtract-nd-test PRIVATE XNNPACK gtest gtest_main) 1801 ADD_TEST(subtract-nd-test subtract-nd-test) 1802 1803 ADD_EXECUTABLE(unpooling-nhwc-test test/unpooling-nhwc.cc) 1804 SET_TARGET_PROPERTIES(unpooling-nhwc-test PROPERTIES 1805 CXX_STANDARD 11 1806 CXX_STANDARD_REQUIRED YES 1807 CXX_EXTENSIONS NO) 1808 TARGET_INCLUDE_DIRECTORIES(unpooling-nhwc-test PRIVATE src test) 1809 TARGET_LINK_LIBRARIES(unpooling-nhwc-test PRIVATE XNNPACK gtest gtest_main) 1810 ADD_TEST(unpooling-nhwc-test unpooling-nhwc-test) 1811 1812 # ---[ Build microkernel-level unit tests 1813 ADD_EXECUTABLE(f16-gemm-test test/f16-gemm.cc) 1814 SET_TARGET_PROPERTIES(f16-gemm-test PROPERTIES 1815 CXX_STANDARD 11 1816 CXX_STANDARD_REQUIRED YES 1817 CXX_EXTENSIONS YES) 1818 TARGET_INCLUDE_DIRECTORIES(f16-gemm-test PRIVATE src test) 1819 TARGET_LINK_LIBRARIES(f16-gemm-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 1820 ADD_TEST(f16-gemm-test f16-gemm-test) 1821 1822 ADD_EXECUTABLE(f32-argmaxpool-test test/f32-argmaxpool.cc) 1823 SET_TARGET_PROPERTIES(f32-argmaxpool-test PROPERTIES 1824 CXX_STANDARD 11 1825 CXX_STANDARD_REQUIRED YES 1826 CXX_EXTENSIONS YES) 1827 TARGET_INCLUDE_DIRECTORIES(f32-argmaxpool-test PRIVATE src test) 1828 TARGET_LINK_LIBRARIES(f32-argmaxpool-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 1829 ADD_TEST(f32-argmaxpool-test f32-argmaxpool-test) 1830 1831 ADD_EXECUTABLE(f32-avgpool-test test/f32-avgpool.cc) 1832 SET_TARGET_PROPERTIES(f32-avgpool-test PROPERTIES 1833 CXX_STANDARD 11 1834 CXX_STANDARD_REQUIRED YES 1835 CXX_EXTENSIONS YES) 1836 TARGET_INCLUDE_DIRECTORIES(f32-avgpool-test PRIVATE src test) 1837 TARGET_LINK_LIBRARIES(f32-avgpool-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 1838 ADD_TEST(f32-avgpool-test f32-avgpool-test) 1839 1840 ADD_EXECUTABLE(f32-bilinear-test test/f32-bilinear.cc) 1841 SET_TARGET_PROPERTIES(f32-bilinear-test PROPERTIES 1842 CXX_STANDARD 11 1843 CXX_STANDARD_REQUIRED YES 1844 CXX_EXTENSIONS YES) 1845 TARGET_INCLUDE_DIRECTORIES(f32-bilinear-test PRIVATE src test) 1846 TARGET_LINK_LIBRARIES(f32-bilinear-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 1847 ADD_TEST(f32-bilinear-test f32-bilinear-test) 1848 1849 ADD_EXECUTABLE(f32-clamp-test test/f32-clamp.cc) 1850 SET_TARGET_PROPERTIES(f32-clamp-test PROPERTIES 1851 CXX_STANDARD 11 1852 CXX_STANDARD_REQUIRED YES 1853 CXX_EXTENSIONS YES) 1854 TARGET_INCLUDE_DIRECTORIES(f32-clamp-test PRIVATE src test) 1855 TARGET_LINK_LIBRARIES(f32-clamp-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 1856 ADD_TEST(f32-clamp-test f32-clamp-test) 1857 1858 ADD_EXECUTABLE(f32-conv-hwc-test test/f32-conv-hwc.cc) 1859 SET_TARGET_PROPERTIES(f32-conv-hwc-test PROPERTIES 1860 CXX_STANDARD 11 1861 CXX_STANDARD_REQUIRED YES 1862 CXX_EXTENSIONS YES) 1863 TARGET_INCLUDE_DIRECTORIES(f32-conv-hwc-test PRIVATE src test) 1864 TARGET_LINK_LIBRARIES(f32-conv-hwc-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 1865 ADD_TEST(f32-conv-hwc-test f32-conv-hwc-test) 1866 1867 ADD_EXECUTABLE(f32-conv-hwc2spchw-test test/f32-conv-hwc2spchw.cc) 1868 SET_TARGET_PROPERTIES(f32-conv-hwc2spchw-test PROPERTIES 1869 CXX_STANDARD 11 1870 CXX_STANDARD_REQUIRED YES 1871 CXX_EXTENSIONS YES) 1872 TARGET_INCLUDE_DIRECTORIES(f32-conv-hwc2spchw-test PRIVATE src test) 1873 TARGET_LINK_LIBRARIES(f32-conv-hwc2spchw-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 1874 ADD_TEST(f32-conv-hwc2spchw-test f32-conv-hwc2spchw-test) 1875 1876 ADD_EXECUTABLE(f32-dwconv-spchw-test test/f32-dwconv-spchw.cc) 1877 SET_TARGET_PROPERTIES(f32-dwconv-spchw-test PROPERTIES 1878 CXX_STANDARD 11 1879 CXX_STANDARD_REQUIRED YES 1880 CXX_EXTENSIONS YES) 1881 TARGET_INCLUDE_DIRECTORIES(f32-dwconv-spchw-test PRIVATE src test) 1882 TARGET_LINK_LIBRARIES(f32-dwconv-spchw-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 1883 ADD_TEST(f32-dwconv-spchw-test f32-dwconv-spchw-test) 1884 1885 ADD_EXECUTABLE(f32-dwconv-test test/f32-dwconv.cc) 1886 SET_TARGET_PROPERTIES(f32-dwconv-test PROPERTIES 1887 CXX_STANDARD 11 1888 CXX_STANDARD_REQUIRED YES 1889 CXX_EXTENSIONS YES) 1890 TARGET_INCLUDE_DIRECTORIES(f32-dwconv-test PRIVATE src test) 1891 TARGET_LINK_LIBRARIES(f32-dwconv-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 1892 ADD_TEST(f32-dwconv-test f32-dwconv-test) 1893 1894 ADD_EXECUTABLE(f32-gavgpool-spchw-test test/f32-gavgpool-spchw.cc) 1895 SET_TARGET_PROPERTIES(f32-gavgpool-spchw-test PROPERTIES 1896 CXX_STANDARD 11 1897 CXX_STANDARD_REQUIRED YES 1898 CXX_EXTENSIONS YES) 1899 TARGET_INCLUDE_DIRECTORIES(f32-gavgpool-spchw-test PRIVATE src test) 1900 TARGET_LINK_LIBRARIES(f32-gavgpool-spchw-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 1901 ADD_TEST(f32-gavgpool-spchw-test f32-gavgpool-spchw-test) 1902 1903 ADD_EXECUTABLE(f32-gavgpool-test test/f32-gavgpool.cc) 1904 SET_TARGET_PROPERTIES(f32-gavgpool-test PROPERTIES 1905 CXX_STANDARD 11 1906 CXX_STANDARD_REQUIRED YES 1907 CXX_EXTENSIONS YES) 1908 TARGET_INCLUDE_DIRECTORIES(f32-gavgpool-test PRIVATE src test) 1909 TARGET_LINK_LIBRARIES(f32-gavgpool-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 1910 ADD_TEST(f32-gavgpool-test f32-gavgpool-test) 1911 1912 ADD_EXECUTABLE(f32-gemm-test test/f32-gemm.cc) 1913 SET_TARGET_PROPERTIES(f32-gemm-test PROPERTIES 1914 CXX_STANDARD 11 1915 CXX_STANDARD_REQUIRED YES 1916 CXX_EXTENSIONS YES) 1917 TARGET_INCLUDE_DIRECTORIES(f32-gemm-test PRIVATE src test) 1918 TARGET_LINK_LIBRARIES(f32-gemm-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 1919 ADD_TEST(f32-gemm-test f32-gemm-test) 1920 1921 ADD_EXECUTABLE(f32-gemminc-test test/f32-gemminc.cc) 1922 SET_TARGET_PROPERTIES(f32-gemminc-test PROPERTIES 1923 CXX_STANDARD 11 1924 CXX_STANDARD_REQUIRED YES 1925 CXX_EXTENSIONS YES) 1926 TARGET_INCLUDE_DIRECTORIES(f32-gemminc-test PRIVATE src test) 1927 TARGET_LINK_LIBRARIES(f32-gemminc-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 1928 ADD_TEST(f32-gemminc-test f32-gemminc-test) 1929 1930 ADD_EXECUTABLE(f32-hswish-test test/f32-hswish.cc) 1931 SET_TARGET_PROPERTIES(f32-hswish-test PROPERTIES 1932 CXX_STANDARD 11 1933 CXX_STANDARD_REQUIRED YES 1934 CXX_EXTENSIONS YES) 1935 TARGET_INCLUDE_DIRECTORIES(f32-hswish-test PRIVATE src test) 1936 TARGET_LINK_LIBRARIES(f32-hswish-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 1937 ADD_TEST(f32-hswish-test f32-hswish-test) 1938 1939 ADD_EXECUTABLE(f32-igemm-test test/f32-igemm.cc) 1940 SET_TARGET_PROPERTIES(f32-igemm-test PROPERTIES 1941 CXX_STANDARD 11 1942 CXX_STANDARD_REQUIRED YES 1943 CXX_EXTENSIONS YES) 1944 TARGET_INCLUDE_DIRECTORIES(f32-igemm-test PRIVATE src test) 1945 TARGET_LINK_LIBRARIES(f32-igemm-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 1946 ADD_TEST(f32-igemm-test f32-igemm-test) 1947 1948 ADD_EXECUTABLE(f32-maxpool-test test/f32-maxpool.cc) 1949 SET_TARGET_PROPERTIES(f32-maxpool-test PROPERTIES 1950 CXX_STANDARD 11 1951 CXX_STANDARD_REQUIRED YES 1952 CXX_EXTENSIONS YES) 1953 TARGET_INCLUDE_DIRECTORIES(f32-maxpool-test PRIVATE src test) 1954 TARGET_LINK_LIBRARIES(f32-maxpool-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 1955 ADD_TEST(f32-maxpool-test f32-maxpool-test) 1956 1957 ADD_EXECUTABLE(f32-pavgpool-test test/f32-pavgpool.cc) 1958 SET_TARGET_PROPERTIES(f32-pavgpool-test PROPERTIES 1959 CXX_STANDARD 11 1960 CXX_STANDARD_REQUIRED YES 1961 CXX_EXTENSIONS YES) 1962 TARGET_INCLUDE_DIRECTORIES(f32-pavgpool-test PRIVATE src test) 1963 TARGET_LINK_LIBRARIES(f32-pavgpool-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 1964 ADD_TEST(f32-pavgpool-test f32-pavgpool-test) 1965 1966 ADD_EXECUTABLE(f32-ppmm-test test/f32-ppmm.cc) 1967 SET_TARGET_PROPERTIES(f32-ppmm-test PROPERTIES 1968 CXX_STANDARD 11 1969 CXX_STANDARD_REQUIRED YES 1970 CXX_EXTENSIONS YES) 1971 TARGET_INCLUDE_DIRECTORIES(f32-ppmm-test PRIVATE src test) 1972 TARGET_LINK_LIBRARIES(f32-ppmm-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 1973 ADD_TEST(f32-ppmm-test f32-ppmm-test) 1974 1975 ADD_EXECUTABLE(f32-prelu-test test/f32-prelu.cc) 1976 SET_TARGET_PROPERTIES(f32-prelu-test PROPERTIES 1977 CXX_STANDARD 11 1978 CXX_STANDARD_REQUIRED YES 1979 CXX_EXTENSIONS YES) 1980 TARGET_INCLUDE_DIRECTORIES(f32-prelu-test PRIVATE src test) 1981 TARGET_LINK_LIBRARIES(f32-prelu-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 1982 ADD_TEST(f32-prelu-test f32-prelu-test) 1983 1984 ADD_EXECUTABLE(f32-raddexpminusmax-test test/f32-raddexpminusmax.cc) 1985 SET_TARGET_PROPERTIES(f32-raddexpminusmax-test PROPERTIES 1986 CXX_STANDARD 11 1987 CXX_STANDARD_REQUIRED YES 1988 CXX_EXTENSIONS YES) 1989 TARGET_INCLUDE_DIRECTORIES(f32-raddexpminusmax-test PRIVATE src test) 1990 TARGET_LINK_LIBRARIES(f32-raddexpminusmax-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 1991 ADD_TEST(f32-raddexpminusmax-test f32-raddexpminusmax-test) 1992 1993 ADD_EXECUTABLE(f32-raddextexp-test test/f32-raddextexp.cc) 1994 SET_TARGET_PROPERTIES(f32-raddextexp-test PROPERTIES 1995 CXX_STANDARD 11 1996 CXX_STANDARD_REQUIRED YES 1997 CXX_EXTENSIONS YES) 1998 TARGET_INCLUDE_DIRECTORIES(f32-raddextexp-test PRIVATE src test) 1999 TARGET_LINK_LIBRARIES(f32-raddextexp-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2000 ADD_TEST(f32-raddextexp-test f32-raddextexp-test) 2001 2002 ADD_EXECUTABLE(f32-raddstoreexpminusmax-test test/f32-raddstoreexpminusmax.cc) 2003 SET_TARGET_PROPERTIES(f32-raddstoreexpminusmax-test PROPERTIES 2004 CXX_STANDARD 11 2005 CXX_STANDARD_REQUIRED YES 2006 CXX_EXTENSIONS YES) 2007 TARGET_INCLUDE_DIRECTORIES(f32-raddstoreexpminusmax-test PRIVATE src test) 2008 TARGET_LINK_LIBRARIES(f32-raddstoreexpminusmax-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2009 ADD_TEST(f32-raddstoreexpminusmax-test f32-raddstoreexpminusmax-test) 2010 2011 ADD_EXECUTABLE(f32-rmax-test test/f32-rmax.cc) 2012 SET_TARGET_PROPERTIES(f32-rmax-test PROPERTIES 2013 CXX_STANDARD 11 2014 CXX_STANDARD_REQUIRED YES 2015 CXX_EXTENSIONS YES) 2016 TARGET_INCLUDE_DIRECTORIES(f32-rmax-test PRIVATE src test) 2017 TARGET_LINK_LIBRARIES(f32-rmax-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2018 ADD_TEST(f32-rmax-test f32-rmax-test) 2019 2020 ADD_EXECUTABLE(f32-sigmoid-test test/f32-sigmoid.cc) 2021 SET_TARGET_PROPERTIES(f32-sigmoid-test PROPERTIES 2022 CXX_STANDARD 11 2023 CXX_STANDARD_REQUIRED YES 2024 CXX_EXTENSIONS YES) 2025 TARGET_INCLUDE_DIRECTORIES(f32-sigmoid-test PRIVATE src test) 2026 TARGET_LINK_LIBRARIES(f32-sigmoid-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2027 ADD_TEST(f32-sigmoid-test f32-sigmoid-test) 2028 2029 ADD_EXECUTABLE(f32-spmm-test test/f32-spmm.cc) 2030 SET_TARGET_PROPERTIES(f32-spmm-test PROPERTIES 2031 CXX_STANDARD 11 2032 CXX_STANDARD_REQUIRED YES 2033 CXX_EXTENSIONS YES) 2034 TARGET_INCLUDE_DIRECTORIES(f32-spmm-test PRIVATE src test) 2035 TARGET_LINK_LIBRARIES(f32-spmm-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2036 ADD_TEST(f32-spmm-test f32-spmm-test) 2037 2038 ADD_EXECUTABLE(f32-vadd-test test/f32-vadd.cc) 2039 SET_TARGET_PROPERTIES(f32-vadd-test PROPERTIES 2040 CXX_STANDARD 11 2041 CXX_STANDARD_REQUIRED YES 2042 CXX_EXTENSIONS YES) 2043 TARGET_INCLUDE_DIRECTORIES(f32-vadd-test PRIVATE src test) 2044 TARGET_LINK_LIBRARIES(f32-vadd-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2045 ADD_TEST(f32-vadd-test f32-vadd-test) 2046 2047 ADD_EXECUTABLE(f32-vaddc-test test/f32-vaddc.cc) 2048 SET_TARGET_PROPERTIES(f32-vaddc-test PROPERTIES 2049 CXX_STANDARD 11 2050 CXX_STANDARD_REQUIRED YES 2051 CXX_EXTENSIONS YES) 2052 TARGET_INCLUDE_DIRECTORIES(f32-vaddc-test PRIVATE src test) 2053 TARGET_LINK_LIBRARIES(f32-vaddc-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2054 ADD_TEST(f32-vaddc-test f32-vaddc-test) 2055 2056 ADD_EXECUTABLE(f32-vdiv-test test/f32-vdiv.cc) 2057 SET_TARGET_PROPERTIES(f32-vdiv-test PROPERTIES 2058 CXX_STANDARD 11 2059 CXX_STANDARD_REQUIRED YES 2060 CXX_EXTENSIONS YES) 2061 TARGET_INCLUDE_DIRECTORIES(f32-vdiv-test PRIVATE src test) 2062 TARGET_LINK_LIBRARIES(f32-vdiv-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2063 ADD_TEST(f32-vdiv-test f32-vdiv-test) 2064 2065 ADD_EXECUTABLE(f32-vdivc-test test/f32-vdivc.cc) 2066 SET_TARGET_PROPERTIES(f32-vdivc-test PROPERTIES 2067 CXX_STANDARD 11 2068 CXX_STANDARD_REQUIRED YES 2069 CXX_EXTENSIONS YES) 2070 TARGET_INCLUDE_DIRECTORIES(f32-vdivc-test PRIVATE src test) 2071 TARGET_LINK_LIBRARIES(f32-vdivc-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2072 ADD_TEST(f32-vdivc-test f32-vdivc-test) 2073 2074 ADD_EXECUTABLE(f32-vrdivc-test test/f32-vrdivc.cc) 2075 SET_TARGET_PROPERTIES(f32-vrdivc-test PROPERTIES 2076 CXX_STANDARD 11 2077 CXX_STANDARD_REQUIRED YES 2078 CXX_EXTENSIONS YES) 2079 TARGET_INCLUDE_DIRECTORIES(f32-vrdivc-test PRIVATE src test) 2080 TARGET_LINK_LIBRARIES(f32-vrdivc-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2081 ADD_TEST(f32-vrdivc-test f32-vrdivc-test) 2082 2083 ADD_EXECUTABLE(f32-vmax-test test/f32-vmax.cc) 2084 SET_TARGET_PROPERTIES(f32-vmax-test PROPERTIES 2085 CXX_STANDARD 11 2086 CXX_STANDARD_REQUIRED YES 2087 CXX_EXTENSIONS YES) 2088 TARGET_INCLUDE_DIRECTORIES(f32-vmax-test PRIVATE src test) 2089 TARGET_LINK_LIBRARIES(f32-vmax-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2090 ADD_TEST(f32-vmax-test f32-vmax-test) 2091 2092 ADD_EXECUTABLE(f32-vmaxc-test test/f32-vmaxc.cc) 2093 SET_TARGET_PROPERTIES(f32-vmaxc-test PROPERTIES 2094 CXX_STANDARD 11 2095 CXX_STANDARD_REQUIRED YES 2096 CXX_EXTENSIONS YES) 2097 TARGET_INCLUDE_DIRECTORIES(f32-vmaxc-test PRIVATE src test) 2098 TARGET_LINK_LIBRARIES(f32-vmaxc-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2099 ADD_TEST(f32-vmaxc-test f32-vmaxc-test) 2100 2101 ADD_EXECUTABLE(f32-vmin-test test/f32-vmin.cc) 2102 SET_TARGET_PROPERTIES(f32-vmin-test PROPERTIES 2103 CXX_STANDARD 11 2104 CXX_STANDARD_REQUIRED YES 2105 CXX_EXTENSIONS YES) 2106 TARGET_INCLUDE_DIRECTORIES(f32-vmin-test PRIVATE src test) 2107 TARGET_LINK_LIBRARIES(f32-vmin-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2108 ADD_TEST(f32-vmin-test f32-vmin-test) 2109 2110 ADD_EXECUTABLE(f32-vminc-test test/f32-vminc.cc) 2111 SET_TARGET_PROPERTIES(f32-vminc-test PROPERTIES 2112 CXX_STANDARD 11 2113 CXX_STANDARD_REQUIRED YES 2114 CXX_EXTENSIONS YES) 2115 TARGET_INCLUDE_DIRECTORIES(f32-vminc-test PRIVATE src test) 2116 TARGET_LINK_LIBRARIES(f32-vminc-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2117 ADD_TEST(f32-vminc-test f32-vminc-test) 2118 2119 ADD_EXECUTABLE(f32-vmul-test test/f32-vmul.cc) 2120 SET_TARGET_PROPERTIES(f32-vmul-test PROPERTIES 2121 CXX_STANDARD 11 2122 CXX_STANDARD_REQUIRED YES 2123 CXX_EXTENSIONS YES) 2124 TARGET_INCLUDE_DIRECTORIES(f32-vmul-test PRIVATE src test) 2125 TARGET_LINK_LIBRARIES(f32-vmul-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2126 ADD_TEST(f32-vmul-test f32-vmul-test) 2127 2128 ADD_EXECUTABLE(f32-vmulc-test test/f32-vmulc.cc) 2129 SET_TARGET_PROPERTIES(f32-vmulc-test PROPERTIES 2130 CXX_STANDARD 11 2131 CXX_STANDARD_REQUIRED YES 2132 CXX_EXTENSIONS YES) 2133 TARGET_INCLUDE_DIRECTORIES(f32-vmulc-test PRIVATE src test) 2134 TARGET_LINK_LIBRARIES(f32-vmulc-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2135 ADD_TEST(f32-vmulc-test f32-vmulc-test) 2136 2137 ADD_EXECUTABLE(f32-vmulcaddc-test test/f32-vmulcaddc.cc) 2138 SET_TARGET_PROPERTIES(f32-vmulcaddc-test PROPERTIES 2139 CXX_STANDARD 11 2140 CXX_STANDARD_REQUIRED YES 2141 CXX_EXTENSIONS YES) 2142 TARGET_INCLUDE_DIRECTORIES(f32-vmulcaddc-test PRIVATE src test) 2143 TARGET_LINK_LIBRARIES(f32-vmulcaddc-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2144 ADD_TEST(f32-vmulcaddc-test f32-vmulcaddc-test) 2145 2146 ADD_EXECUTABLE(f32-vscaleexpminusmax-test test/f32-vscaleexpminusmax.cc) 2147 SET_TARGET_PROPERTIES(f32-vscaleexpminusmax-test PROPERTIES 2148 CXX_STANDARD 11 2149 CXX_STANDARD_REQUIRED YES 2150 CXX_EXTENSIONS YES) 2151 TARGET_INCLUDE_DIRECTORIES(f32-vscaleexpminusmax-test PRIVATE src test) 2152 TARGET_LINK_LIBRARIES(f32-vscaleexpminusmax-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2153 ADD_TEST(f32-vscaleexpminusmax-test f32-vscaleexpminusmax-test) 2154 2155 ADD_EXECUTABLE(f32-vscaleextexp-test test/f32-vscaleextexp.cc) 2156 SET_TARGET_PROPERTIES(f32-vscaleexpminusmax-test PROPERTIES 2157 CXX_STANDARD 11 2158 CXX_STANDARD_REQUIRED YES 2159 CXX_EXTENSIONS YES) 2160 TARGET_INCLUDE_DIRECTORIES(f32-vscaleextexp-test PRIVATE src test) 2161 TARGET_LINK_LIBRARIES(f32-vscaleextexp-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2162 ADD_TEST(f32-vscaleextexp-test f32-vscaleextexp-test) 2163 2164 ADD_EXECUTABLE(f32-vsub-test test/f32-vsub.cc) 2165 SET_TARGET_PROPERTIES(f32-vsub-test PROPERTIES 2166 CXX_STANDARD 11 2167 CXX_STANDARD_REQUIRED YES 2168 CXX_EXTENSIONS YES) 2169 TARGET_INCLUDE_DIRECTORIES(f32-vsub-test PRIVATE src test) 2170 TARGET_LINK_LIBRARIES(f32-vsub-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2171 ADD_TEST(f32-vsub-test f32-vsub-test) 2172 2173 ADD_EXECUTABLE(f32-vsubc-test test/f32-vsubc.cc) 2174 SET_TARGET_PROPERTIES(f32-vsubc-test PROPERTIES 2175 CXX_STANDARD 11 2176 CXX_STANDARD_REQUIRED YES 2177 CXX_EXTENSIONS YES) 2178 TARGET_INCLUDE_DIRECTORIES(f32-vsubc-test PRIVATE src test) 2179 TARGET_LINK_LIBRARIES(f32-vsubc-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2180 ADD_TEST(f32-vsubc-test f32-vsubc-test) 2181 2182 ADD_EXECUTABLE(f32-vrsubc-test test/f32-vrsubc.cc) 2183 SET_TARGET_PROPERTIES(f32-vrsubc-test PROPERTIES 2184 CXX_STANDARD 11 2185 CXX_STANDARD_REQUIRED YES 2186 CXX_EXTENSIONS YES) 2187 TARGET_INCLUDE_DIRECTORIES(f32-vrsubc-test PRIVATE src test) 2188 TARGET_LINK_LIBRARIES(f32-vrsubc-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2189 ADD_TEST(f32-vrsubc-test f32-vrsubc-test) 2190 2191 ADD_EXECUTABLE(q8-avgpool-test test/q8-avgpool.cc) 2192 SET_TARGET_PROPERTIES(q8-avgpool-test PROPERTIES 2193 CXX_STANDARD 11 2194 CXX_STANDARD_REQUIRED YES 2195 CXX_EXTENSIONS YES) 2196 TARGET_INCLUDE_DIRECTORIES(q8-avgpool-test PRIVATE src test) 2197 TARGET_LINK_LIBRARIES(q8-avgpool-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2198 ADD_TEST(q8-avgpool-test q8-avgpool-test) 2199 2200 ADD_EXECUTABLE(q8-dwconv-test test/q8-dwconv.cc) 2201 SET_TARGET_PROPERTIES(q8-dwconv-test PROPERTIES 2202 CXX_STANDARD 11 2203 CXX_STANDARD_REQUIRED YES 2204 CXX_EXTENSIONS YES) 2205 TARGET_INCLUDE_DIRECTORIES(q8-dwconv-test PRIVATE src test) 2206 TARGET_LINK_LIBRARIES(q8-dwconv-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2207 ADD_TEST(q8-dwconv-test q8-dwconv-test) 2208 2209 ADD_EXECUTABLE(q8-gavgpool-test test/q8-gavgpool.cc) 2210 SET_TARGET_PROPERTIES(q8-gavgpool-test PROPERTIES 2211 CXX_STANDARD 11 2212 CXX_STANDARD_REQUIRED YES 2213 CXX_EXTENSIONS YES) 2214 TARGET_INCLUDE_DIRECTORIES(q8-gavgpool-test PRIVATE src test) 2215 TARGET_LINK_LIBRARIES(q8-gavgpool-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2216 ADD_TEST(q8-gavgpool-test q8-gavgpool-test) 2217 2218 ADD_EXECUTABLE(q8-gemm-test test/q8-gemm.cc) 2219 SET_TARGET_PROPERTIES(q8-gemm-test PROPERTIES 2220 CXX_STANDARD 11 2221 CXX_STANDARD_REQUIRED YES 2222 CXX_EXTENSIONS YES) 2223 TARGET_INCLUDE_DIRECTORIES(q8-gemm-test PRIVATE src test) 2224 TARGET_LINK_LIBRARIES(q8-gemm-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2225 ADD_TEST(q8-gemm-test q8-gemm-test) 2226 2227 ADD_EXECUTABLE(q8-igemm-test test/q8-igemm.cc) 2228 SET_TARGET_PROPERTIES(q8-igemm-test PROPERTIES 2229 CXX_STANDARD 11 2230 CXX_STANDARD_REQUIRED YES 2231 CXX_EXTENSIONS YES) 2232 TARGET_INCLUDE_DIRECTORIES(q8-igemm-test PRIVATE src test) 2233 TARGET_LINK_LIBRARIES(q8-igemm-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2234 ADD_TEST(q8-igemm-test q8-igemm-test) 2235 2236 ADD_EXECUTABLE(q8-vadd-test test/q8-vadd.cc) 2237 SET_TARGET_PROPERTIES(q8-vadd-test PROPERTIES 2238 CXX_STANDARD 11 2239 CXX_STANDARD_REQUIRED YES 2240 CXX_EXTENSIONS YES) 2241 TARGET_INCLUDE_DIRECTORIES(q8-vadd-test PRIVATE src test) 2242 TARGET_LINK_LIBRARIES(q8-vadd-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2243 ADD_TEST(q8-vadd-test q8-vadd-test) 2244 2245 ADD_EXECUTABLE(u8-clamp-test test/u8-clamp.cc) 2246 SET_TARGET_PROPERTIES(u8-clamp-test PROPERTIES 2247 CXX_STANDARD 11 2248 CXX_STANDARD_REQUIRED YES 2249 CXX_EXTENSIONS YES) 2250 TARGET_INCLUDE_DIRECTORIES(u8-clamp-test PRIVATE src test) 2251 TARGET_LINK_LIBRARIES(u8-clamp-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2252 ADD_TEST(u8-clamp-test u8-clamp-test) 2253 2254 ADD_EXECUTABLE(u8-lut32norm-test test/u8-lut32norm.cc) 2255 SET_TARGET_PROPERTIES(u8-lut32norm-test PROPERTIES 2256 CXX_STANDARD 11 2257 CXX_STANDARD_REQUIRED YES 2258 CXX_EXTENSIONS YES) 2259 TARGET_INCLUDE_DIRECTORIES(u8-lut32norm-test PRIVATE src test) 2260 TARGET_LINK_LIBRARIES(u8-lut32norm-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2261 ADD_TEST(u8-lut32norm-test u8-lut32norm-test) 2262 2263 ADD_EXECUTABLE(u8-maxpool-test test/u8-maxpool.cc) 2264 SET_TARGET_PROPERTIES(u8-maxpool-test PROPERTIES 2265 CXX_STANDARD 11 2266 CXX_STANDARD_REQUIRED YES 2267 CXX_EXTENSIONS YES) 2268 TARGET_INCLUDE_DIRECTORIES(u8-maxpool-test PRIVATE src test) 2269 TARGET_LINK_LIBRARIES(u8-maxpool-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2270 ADD_TEST(u8-maxpool-test u8-maxpool-test) 2271 2272 ADD_EXECUTABLE(u8-rmax-test test/u8-rmax.cc) 2273 SET_TARGET_PROPERTIES(u8-rmax-test PROPERTIES 2274 CXX_STANDARD 11 2275 CXX_STANDARD_REQUIRED YES 2276 CXX_EXTENSIONS YES) 2277 TARGET_INCLUDE_DIRECTORIES(u8-rmax-test PRIVATE src test) 2278 TARGET_LINK_LIBRARIES(u8-rmax-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2279 ADD_TEST(u8-rmax-test u8-rmax-test) 2280 2281 ADD_EXECUTABLE(x32-packx-test test/x32-packx.cc) 2282 SET_TARGET_PROPERTIES(x32-packx-test PROPERTIES 2283 CXX_STANDARD 11 2284 CXX_STANDARD_REQUIRED YES 2285 CXX_EXTENSIONS YES) 2286 TARGET_INCLUDE_DIRECTORIES(x32-packx-test PRIVATE src test) 2287 TARGET_LINK_LIBRARIES(x32-packx-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2288 ADD_TEST(x32-packx-test x32-packx-test) 2289 2290 ADD_EXECUTABLE(x32-pad-test test/x32-pad.cc) 2291 SET_TARGET_PROPERTIES(x32-pad-test PROPERTIES 2292 CXX_STANDARD 11 2293 CXX_STANDARD_REQUIRED YES 2294 CXX_EXTENSIONS YES) 2295 TARGET_INCLUDE_DIRECTORIES(x32-pad-test PRIVATE src test) 2296 TARGET_LINK_LIBRARIES(x32-pad-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2297 ADD_TEST(x32-pad-test x32-pad-test) 2298 2299 ADD_EXECUTABLE(x32-unpool-test test/x32-unpool.cc) 2300 SET_TARGET_PROPERTIES(x32-unpool-test PROPERTIES 2301 CXX_STANDARD 11 2302 CXX_STANDARD_REQUIRED YES 2303 CXX_EXTENSIONS YES) 2304 TARGET_INCLUDE_DIRECTORIES(x32-unpool-test PRIVATE src test) 2305 TARGET_LINK_LIBRARIES(x32-unpool-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2306 ADD_TEST(x32-unpool-test x32-unpool-test) 2307 2308 ADD_EXECUTABLE(x32-zip-test test/x32-zip.cc) 2309 SET_TARGET_PROPERTIES(x32-zip-test PROPERTIES 2310 CXX_STANDARD 11 2311 CXX_STANDARD_REQUIRED YES 2312 CXX_EXTENSIONS YES) 2313 TARGET_INCLUDE_DIRECTORIES(x32-zip-test PRIVATE src test) 2314 TARGET_LINK_LIBRARIES(x32-zip-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2315 ADD_TEST(x32-zip-test x32-zip-test) 2316 2317 ADD_EXECUTABLE(x8-lut-test test/x8-lut.cc) 2318 SET_TARGET_PROPERTIES(x8-lut-test PROPERTIES 2319 CXX_STANDARD 11 2320 CXX_STANDARD_REQUIRED YES 2321 CXX_EXTENSIONS YES) 2322 TARGET_INCLUDE_DIRECTORIES(x8-lut-test PRIVATE src test) 2323 TARGET_LINK_LIBRARIES(x8-lut-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2324 ADD_TEST(x8-lut-test x8-lut-test) 2325 2326 ADD_EXECUTABLE(x8-zip-test test/x8-zip.cc) 2327 SET_TARGET_PROPERTIES(x8-zip-test PROPERTIES 2328 CXX_STANDARD 11 2329 CXX_STANDARD_REQUIRED YES 2330 CXX_EXTENSIONS YES) 2331 TARGET_INCLUDE_DIRECTORIES(x8-zip-test PRIVATE src test) 2332 TARGET_LINK_LIBRARIES(x8-zip-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main) 2333 ADD_TEST(x8-zip-test x8-zip-test) 2334ENDIF() 2335 2336# ---[ XNNPACK microbenchmarks 2337IF(XNNPACK_BUILD_BENCHMARKS) 2338 # ---[ Build google benchmark 2339 IF(NOT TARGET benchmark) 2340 SET(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "") 2341 ADD_SUBDIRECTORY( 2342 "${GOOGLEBENCHMARK_SOURCE_DIR}" 2343 "${CONFU_DEPENDENCIES_BINARY_DIR}/googlebenchmark") 2344 ENDIF() 2345 2346 ADD_LIBRARY(bench-utils bench/utils.cc) 2347 SET_TARGET_PROPERTIES(bench-utils PROPERTIES 2348 CXX_STANDARD 11 2349 CXX_STANDARD_REQUIRED YES 2350 CXX_EXTENSIONS NO) 2351 TARGET_INCLUDE_DIRECTORIES(bench-utils PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") 2352 TARGET_LINK_LIBRARIES(bench-utils PRIVATE benchmark cpuinfo) 2353 2354 # ---[ Build accuracy microbenchmarks 2355 ADD_EXECUTABLE(f32-exp-eval eval/f32-exp.cc) 2356 SET_TARGET_PROPERTIES(f32-exp-eval PROPERTIES 2357 CXX_STANDARD 11 2358 CXX_STANDARD_REQUIRED YES 2359 CXX_EXTENSIONS NO) 2360 TARGET_INCLUDE_DIRECTORIES(f32-exp-eval PRIVATE src) 2361 TARGET_LINK_LIBRARIES(f32-exp-eval PRIVATE XNNPACK benchmark fp16) 2362 2363 ADD_EXECUTABLE(f32-expminus-eval eval/f32-expminus.cc) 2364 SET_TARGET_PROPERTIES(f32-expminus-eval PROPERTIES 2365 CXX_STANDARD 11 2366 CXX_STANDARD_REQUIRED YES 2367 CXX_EXTENSIONS NO) 2368 TARGET_INCLUDE_DIRECTORIES(f32-expminus-eval PRIVATE src) 2369 TARGET_LINK_LIBRARIES(f32-expminus-eval PRIVATE XNNPACK benchmark fp16) 2370 2371 ADD_EXECUTABLE(f32-extexp-eval eval/f32-extexp.cc) 2372 SET_TARGET_PROPERTIES(f32-extexp-eval PROPERTIES 2373 CXX_STANDARD 11 2374 CXX_STANDARD_REQUIRED YES 2375 CXX_EXTENSIONS YES) 2376 TARGET_INCLUDE_DIRECTORIES(f32-extexp-eval PRIVATE src) 2377 TARGET_LINK_LIBRARIES(f32-extexp-eval PRIVATE XNNPACK benchmark fp16) 2378 2379 ADD_EXECUTABLE(f32-sigmoid-eval eval/f32-sigmoid.cc) 2380 SET_TARGET_PROPERTIES(f32-sigmoid-eval PROPERTIES 2381 CXX_STANDARD 11 2382 CXX_STANDARD_REQUIRED YES 2383 CXX_EXTENSIONS NO) 2384 TARGET_INCLUDE_DIRECTORIES(f32-sigmoid-eval PRIVATE src) 2385 TARGET_LINK_LIBRARIES(f32-sigmoid-eval PRIVATE XNNPACK benchmark fp16) 2386 2387 # ---[ Build end-to-end microbenchmarks 2388 ADD_LIBRARY(bench-models STATIC 2389 models/mobilenet-v1.cc 2390 models/mobilenet-v2.cc 2391 models/mobilenet-v3-large.cc 2392 models/mobilenet-v3-small.cc) 2393 SET_TARGET_PROPERTIES(bench-models PROPERTIES 2394 CXX_STANDARD 11 2395 CXX_STANDARD_REQUIRED YES 2396 CXX_EXTENSIONS YES) 2397 TARGET_INCLUDE_DIRECTORIES(bench-models PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") 2398 TARGET_LINK_LIBRARIES(bench-models PRIVATE XNNPACK benchmark bench-utils) 2399 2400 ADD_EXECUTABLE(end2end-bench bench/end2end.cc) 2401 SET_TARGET_PROPERTIES(end2end-bench PROPERTIES 2402 CXX_STANDARD 11 2403 CXX_STANDARD_REQUIRED YES 2404 CXX_EXTENSIONS NO) 2405 TARGET_INCLUDE_DIRECTORIES(end2end-bench PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") 2406 TARGET_LINK_LIBRARIES(end2end-bench PRIVATE XNNPACK benchmark bench-models bench-utils) 2407 2408 ADD_EXECUTABLE(f32-dwconv-e2e-bench bench/f32-dwconv-e2e.cc) 2409 SET_TARGET_PROPERTIES(f32-dwconv-e2e-bench PROPERTIES 2410 CXX_STANDARD 11 2411 CXX_STANDARD_REQUIRED YES 2412 CXX_EXTENSIONS NO) 2413 TARGET_INCLUDE_DIRECTORIES(f32-dwconv-e2e-bench PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}" src) 2414 TARGET_LINK_LIBRARIES(f32-dwconv-e2e-bench PRIVATE XNNPACK benchmark bench-models bench-utils) 2415 2416 ADD_EXECUTABLE(f32-gemm-e2e-bench bench/f32-gemm-e2e.cc) 2417 SET_TARGET_PROPERTIES(f32-gemm-e2e-bench PROPERTIES 2418 CXX_STANDARD 11 2419 CXX_STANDARD_REQUIRED YES 2420 CXX_EXTENSIONS NO) 2421 TARGET_INCLUDE_DIRECTORIES(f32-gemm-e2e-bench PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}" src) 2422 TARGET_LINK_LIBRARIES(f32-gemm-e2e-bench PRIVATE XNNPACK benchmark bench-models bench-utils) 2423 2424 # ---[ Build operator-level microbenchmarks 2425 ADD_EXECUTABLE(add-bench bench/add.cc) 2426 SET_TARGET_PROPERTIES(add-bench PROPERTIES 2427 CXX_STANDARD 11 2428 CXX_STANDARD_REQUIRED YES 2429 CXX_EXTENSIONS NO) 2430 TARGET_INCLUDE_DIRECTORIES(add-bench PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") 2431 TARGET_LINK_LIBRARIES(add-bench PRIVATE XNNPACK cpuinfo benchmark bench-utils) 2432 2433 ADD_EXECUTABLE(average-pooling-bench bench/average-pooling.cc) 2434 SET_TARGET_PROPERTIES(average-pooling-bench PROPERTIES 2435 CXX_STANDARD 11 2436 CXX_STANDARD_REQUIRED YES 2437 CXX_EXTENSIONS NO) 2438 TARGET_INCLUDE_DIRECTORIES(average-pooling-bench PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") 2439 TARGET_LINK_LIBRARIES(average-pooling-bench PRIVATE XNNPACK cpuinfo benchmark bench-utils) 2440 2441 ADD_EXECUTABLE(channel-shuffle-bench bench/channel-shuffle.cc) 2442 SET_TARGET_PROPERTIES(channel-shuffle-bench PROPERTIES 2443 CXX_STANDARD 11 2444 CXX_STANDARD_REQUIRED YES 2445 CXX_EXTENSIONS NO) 2446 TARGET_INCLUDE_DIRECTORIES(channel-shuffle-bench PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") 2447 TARGET_LINK_LIBRARIES(channel-shuffle-bench PRIVATE XNNPACK cpuinfo benchmark bench-utils) 2448 2449 ADD_EXECUTABLE(convolution-bench bench/convolution.cc) 2450 SET_TARGET_PROPERTIES(convolution-bench PROPERTIES 2451 CXX_STANDARD 11 2452 CXX_STANDARD_REQUIRED YES 2453 CXX_EXTENSIONS NO) 2454 TARGET_INCLUDE_DIRECTORIES(convolution-bench PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") 2455 TARGET_LINK_LIBRARIES(convolution-bench PRIVATE XNNPACK cpuinfo benchmark bench-utils) 2456 2457 ADD_EXECUTABLE(deconvolution-bench bench/deconvolution.cc) 2458 SET_TARGET_PROPERTIES(deconvolution-bench PROPERTIES 2459 CXX_STANDARD 11 2460 CXX_STANDARD_REQUIRED YES 2461 CXX_EXTENSIONS NO) 2462 TARGET_INCLUDE_DIRECTORIES(deconvolution-bench PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") 2463 TARGET_LINK_LIBRARIES(deconvolution-bench PRIVATE XNNPACK cpuinfo benchmark bench-utils) 2464 2465 ADD_EXECUTABLE(global-average-pooling-bench bench/global-average-pooling.cc) 2466 SET_TARGET_PROPERTIES(global-average-pooling-bench PROPERTIES 2467 CXX_STANDARD 11 2468 CXX_STANDARD_REQUIRED YES 2469 CXX_EXTENSIONS NO) 2470 TARGET_INCLUDE_DIRECTORIES(global-average-pooling-bench PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") 2471 TARGET_LINK_LIBRARIES(global-average-pooling-bench PRIVATE XNNPACK cpuinfo benchmark bench-utils) 2472 2473 ADD_EXECUTABLE(max-pooling-bench bench/max-pooling.cc) 2474 SET_TARGET_PROPERTIES(max-pooling-bench PROPERTIES 2475 CXX_STANDARD 11 2476 CXX_STANDARD_REQUIRED YES 2477 CXX_EXTENSIONS NO) 2478 TARGET_INCLUDE_DIRECTORIES(max-pooling-bench PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") 2479 TARGET_LINK_LIBRARIES(max-pooling-bench PRIVATE XNNPACK cpuinfo benchmark bench-utils) 2480 2481 ADD_EXECUTABLE(prelu-bench bench/prelu.cc) 2482 SET_TARGET_PROPERTIES(prelu-bench PROPERTIES 2483 CXX_STANDARD 11 2484 CXX_STANDARD_REQUIRED YES 2485 CXX_EXTENSIONS NO) 2486 TARGET_INCLUDE_DIRECTORIES(prelu-bench PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") 2487 TARGET_LINK_LIBRARIES(prelu-bench PRIVATE XNNPACK cpuinfo benchmark bench-utils) 2488 2489 ADD_EXECUTABLE(sigmoid-bench bench/sigmoid.cc) 2490 SET_TARGET_PROPERTIES(sigmoid-bench PROPERTIES 2491 CXX_STANDARD 11 2492 CXX_STANDARD_REQUIRED YES 2493 CXX_EXTENSIONS NO) 2494 TARGET_INCLUDE_DIRECTORIES(sigmoid-bench PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") 2495 TARGET_LINK_LIBRARIES(sigmoid-bench PRIVATE XNNPACK cpuinfo benchmark bench-utils) 2496 2497 ADD_EXECUTABLE(softmax-bench bench/softmax.cc) 2498 SET_TARGET_PROPERTIES(softmax-bench PROPERTIES 2499 CXX_STANDARD 11 2500 CXX_STANDARD_REQUIRED YES 2501 CXX_EXTENSIONS NO) 2502 TARGET_INCLUDE_DIRECTORIES(softmax-bench PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") 2503 TARGET_LINK_LIBRARIES(softmax-bench PRIVATE XNNPACK cpuinfo benchmark bench-utils) 2504 2505 # ---[ Build microkernel-level microbenchmarks 2506 ADD_EXECUTABLE(f16-gemm-bench bench/f16-gemm.cc) 2507 SET_TARGET_PROPERTIES(f16-gemm-bench PROPERTIES 2508 CXX_STANDARD 11 2509 CXX_STANDARD_REQUIRED YES 2510 CXX_EXTENSIONS YES) 2511 TARGET_INCLUDE_DIRECTORIES(f16-gemm-bench PRIVATE src) 2512 TARGET_INCLUDE_DIRECTORIES(f16-gemm-bench PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") 2513 TARGET_LINK_LIBRARIES(f16-gemm-bench PRIVATE XNNPACK cpuinfo fp16 benchmark bench-utils) 2514 2515 ADD_EXECUTABLE(f32-conv-hwc-bench bench/f32-conv-hwc.cc) 2516 SET_TARGET_PROPERTIES(f32-conv-hwc-bench PROPERTIES 2517 CXX_STANDARD 11 2518 CXX_STANDARD_REQUIRED YES 2519 CXX_EXTENSIONS YES) 2520 TARGET_INCLUDE_DIRECTORIES(f32-conv-hwc-bench PRIVATE src) 2521 TARGET_INCLUDE_DIRECTORIES(f32-conv-hwc-bench PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") 2522 TARGET_LINK_LIBRARIES(f32-conv-hwc-bench PRIVATE XNNPACK cpuinfo fp16 benchmark bench-utils) 2523 2524 ADD_EXECUTABLE(f32-dwconv-spchw-bench bench/f32-dwconv-spchw.cc) 2525 SET_TARGET_PROPERTIES(f32-dwconv-spchw-bench PROPERTIES 2526 CXX_STANDARD 11 2527 CXX_STANDARD_REQUIRED YES 2528 CXX_EXTENSIONS YES) 2529 TARGET_INCLUDE_DIRECTORIES(f32-dwconv-spchw-bench PRIVATE src) 2530 TARGET_INCLUDE_DIRECTORIES(f32-dwconv-spchw-bench PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") 2531 TARGET_LINK_LIBRARIES(f32-dwconv-spchw-bench PRIVATE XNNPACK cpuinfo fp16 benchmark bench-utils) 2532 2533 ADD_EXECUTABLE(f32-dwconv-bench bench/f32-dwconv.cc) 2534 SET_TARGET_PROPERTIES(f32-dwconv-bench PROPERTIES 2535 CXX_STANDARD 11 2536 CXX_STANDARD_REQUIRED YES 2537 CXX_EXTENSIONS YES) 2538 TARGET_INCLUDE_DIRECTORIES(f32-dwconv-bench PRIVATE src) 2539 TARGET_INCLUDE_DIRECTORIES(f32-dwconv-bench PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") 2540 TARGET_LINK_LIBRARIES(f32-dwconv-bench PRIVATE XNNPACK cpuinfo fp16 benchmark bench-utils) 2541 2542 ADD_EXECUTABLE(f32-gemm-bench bench/f32-gemm.cc) 2543 SET_TARGET_PROPERTIES(f32-gemm-bench PROPERTIES 2544 CXX_STANDARD 11 2545 CXX_STANDARD_REQUIRED YES 2546 CXX_EXTENSIONS YES) 2547 TARGET_INCLUDE_DIRECTORIES(f32-gemm-bench PRIVATE src) 2548 TARGET_INCLUDE_DIRECTORIES(f32-gemm-bench PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") 2549 TARGET_LINK_LIBRARIES(f32-gemm-bench PRIVATE XNNPACK cpuinfo fp16 benchmark bench-utils) 2550 2551 ADD_EXECUTABLE(f32-igemm-bench bench/f32-igemm.cc) 2552 SET_TARGET_PROPERTIES(f32-igemm-bench PROPERTIES 2553 CXX_STANDARD 11 2554 CXX_STANDARD_REQUIRED YES 2555 CXX_EXTENSIONS YES) 2556 TARGET_INCLUDE_DIRECTORIES(f32-igemm-bench PRIVATE src) 2557 TARGET_INCLUDE_DIRECTORIES(f32-igemm-bench PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") 2558 TARGET_LINK_LIBRARIES(f32-igemm-bench PRIVATE XNNPACK cpuinfo fp16 benchmark bench-utils) 2559 2560 ADD_EXECUTABLE(f32-im2col-gemm-bench bench/f32-im2col-gemm.cc src/im2col.c) 2561 SET_TARGET_PROPERTIES(f32-im2col-gemm-bench PROPERTIES 2562 C_STANDARD 99 2563 C_STANDARD_REQUIRED YES 2564 C_EXTENSIONS NO 2565 CXX_STANDARD 11 2566 CXX_STANDARD_REQUIRED YES 2567 CXX_EXTENSIONS YES) 2568 TARGET_INCLUDE_DIRECTORIES(f32-im2col-gemm-bench PRIVATE src) 2569 TARGET_INCLUDE_DIRECTORIES(f32-im2col-gemm-bench PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") 2570 TARGET_LINK_LIBRARIES(f32-im2col-gemm-bench PRIVATE XNNPACK cpuinfo fp16 benchmark bench-utils) 2571 2572 ADD_EXECUTABLE(f32-rmax-bench bench/f32-rmax.cc) 2573 SET_TARGET_PROPERTIES(f32-rmax-bench PROPERTIES 2574 CXX_STANDARD 11 2575 CXX_STANDARD_REQUIRED YES 2576 CXX_EXTENSIONS YES) 2577 TARGET_INCLUDE_DIRECTORIES(f32-rmax-bench PRIVATE src) 2578 TARGET_INCLUDE_DIRECTORIES(f32-rmax-bench PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") 2579 TARGET_LINK_LIBRARIES(f32-rmax-bench PRIVATE XNNPACK cpuinfo fp16 benchmark bench-utils) 2580 2581 ADD_EXECUTABLE(f32-sigmoid-bench bench/f32-sigmoid.cc) 2582 SET_TARGET_PROPERTIES(f32-sigmoid-bench PROPERTIES 2583 CXX_STANDARD 11 2584 CXX_STANDARD_REQUIRED YES 2585 CXX_EXTENSIONS YES) 2586 TARGET_INCLUDE_DIRECTORIES(f32-sigmoid-bench PRIVATE src) 2587 TARGET_INCLUDE_DIRECTORIES(f32-sigmoid-bench PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") 2588 TARGET_LINK_LIBRARIES(f32-sigmoid-bench PRIVATE XNNPACK benchmark bench-utils) 2589 2590 ADD_EXECUTABLE(f32-spmm-bench bench/f32-spmm.cc) 2591 SET_TARGET_PROPERTIES(f32-spmm-bench PROPERTIES 2592 CXX_STANDARD 11 2593 CXX_STANDARD_REQUIRED YES 2594 CXX_EXTENSIONS YES) 2595 TARGET_INCLUDE_DIRECTORIES(f32-spmm-bench PRIVATE src) 2596 TARGET_INCLUDE_DIRECTORIES(f32-spmm-bench PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") 2597 TARGET_LINK_LIBRARIES(f32-spmm-bench PRIVATE XNNPACK cpuinfo fp16 benchmark bench-utils) 2598 2599 ADD_EXECUTABLE(f32-softmax-bench bench/f32-softmax.cc) 2600 SET_TARGET_PROPERTIES(f32-softmax-bench PROPERTIES 2601 CXX_STANDARD 11 2602 CXX_STANDARD_REQUIRED YES 2603 CXX_EXTENSIONS YES) 2604 TARGET_INCLUDE_DIRECTORIES(f32-softmax-bench PRIVATE src) 2605 TARGET_INCLUDE_DIRECTORIES(f32-softmax-bench PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") 2606 TARGET_LINK_LIBRARIES(f32-softmax-bench PRIVATE XNNPACK fp16 benchmark bench-utils) 2607 2608 ADD_EXECUTABLE(q8-gemm-bench bench/q8-gemm.cc) 2609 SET_TARGET_PROPERTIES(q8-gemm-bench PROPERTIES 2610 CXX_STANDARD 11 2611 CXX_STANDARD_REQUIRED YES 2612 CXX_EXTENSIONS YES) 2613 TARGET_INCLUDE_DIRECTORIES(q8-gemm-bench PRIVATE src) 2614 TARGET_INCLUDE_DIRECTORIES(q8-gemm-bench PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") 2615 TARGET_LINK_LIBRARIES(q8-gemm-bench PRIVATE XNNPACK cpuinfo fp16 benchmark bench-utils) 2616ENDIF() 2617