1*523fa7a6SAndroid Build Coastguard Workerload( 2*523fa7a6SAndroid Build Coastguard Worker ":xnnpack_src_defs.bzl", 3*523fa7a6SAndroid Build Coastguard Worker "LOGGING_SRCS", 4*523fa7a6SAndroid Build Coastguard Worker "OPERATOR_SRCS", 5*523fa7a6SAndroid Build Coastguard Worker "SUBGRAPH_SRCS", 6*523fa7a6SAndroid Build Coastguard Worker "TABLE_SRCS", 7*523fa7a6SAndroid Build Coastguard Worker "XNNPACK_SRCS", 8*523fa7a6SAndroid Build Coastguard Worker "get_xnnpack_headers", 9*523fa7a6SAndroid Build Coastguard Worker "prod_srcs_for_arch_wrapper", 10*523fa7a6SAndroid Build Coastguard Worker) 11*523fa7a6SAndroid Build Coastguard Worker 12*523fa7a6SAndroid Build Coastguard Workerdef define_xnnpack(): 13*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 14*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 15*523fa7a6SAndroid Build Coastguard Worker name = "interface", 16*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 17*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 18*523fa7a6SAndroid Build Coastguard Worker exported_headers = { 19*523fa7a6SAndroid Build Coastguard Worker "xnnpack.h": "XNNPACK/include/xnnpack.h", 20*523fa7a6SAndroid Build Coastguard Worker }, 21*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 22*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 23*523fa7a6SAndroid Build Coastguard Worker ], 24*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 25*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 26*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 27*523fa7a6SAndroid Build Coastguard Worker ], 28*523fa7a6SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 29*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 30*523fa7a6SAndroid Build Coastguard Worker ":pthreadpool", 31*523fa7a6SAndroid Build Coastguard Worker ], 32*523fa7a6SAndroid Build Coastguard Worker ) 33*523fa7a6SAndroid Build Coastguard Worker 34*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 35*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 36*523fa7a6SAndroid Build Coastguard Worker name = "operators", 37*523fa7a6SAndroid Build Coastguard Worker srcs = OPERATOR_SRCS + [ 38*523fa7a6SAndroid Build Coastguard Worker "XNNPACK/src/allocator.c", 39*523fa7a6SAndroid Build Coastguard Worker "XNNPACK/src/cache.c", 40*523fa7a6SAndroid Build Coastguard Worker "XNNPACK/src/indirection.c", 41*523fa7a6SAndroid Build Coastguard Worker "XNNPACK/src/memory.c", 42*523fa7a6SAndroid Build Coastguard Worker "XNNPACK/src/mutex.c", 43*523fa7a6SAndroid Build Coastguard Worker "XNNPACK/src/normalization.c", 44*523fa7a6SAndroid Build Coastguard Worker "XNNPACK/src/operator-utils.c", 45*523fa7a6SAndroid Build Coastguard Worker "XNNPACK/src/packing.cc", 46*523fa7a6SAndroid Build Coastguard Worker ], 47*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 48*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 49*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 50*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 51*523fa7a6SAndroid Build Coastguard Worker ], 52*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 53*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 54*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 55*523fa7a6SAndroid Build Coastguard Worker "-DXNN_ENABLE_GEMM_M_SPECIALIZATION=0", 56*523fa7a6SAndroid Build Coastguard Worker ], 57*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 58*523fa7a6SAndroid Build Coastguard Worker ":FP16", 59*523fa7a6SAndroid Build Coastguard Worker ":FXdiv", 60*523fa7a6SAndroid Build Coastguard Worker ":clog", 61*523fa7a6SAndroid Build Coastguard Worker ":interface", 62*523fa7a6SAndroid Build Coastguard Worker ":ukernels_f16c", 63*523fa7a6SAndroid Build Coastguard Worker ":cpuinfo", 64*523fa7a6SAndroid Build Coastguard Worker ], 65*523fa7a6SAndroid Build Coastguard Worker ) 66*523fa7a6SAndroid Build Coastguard Worker 67*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 68*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 69*523fa7a6SAndroid Build Coastguard Worker name = "subgraph", 70*523fa7a6SAndroid Build Coastguard Worker srcs = SUBGRAPH_SRCS, 71*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 72*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 73*523fa7a6SAndroid Build Coastguard Worker ], 74*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 75*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 76*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 77*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 78*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 79*523fa7a6SAndroid Build Coastguard Worker "-DXNN_ENABLE_SPARSE=0", 80*523fa7a6SAndroid Build Coastguard Worker "-DXNN_ENABLE_GEMM_M_SPECIALIZATION=0", 81*523fa7a6SAndroid Build Coastguard Worker "-DXNN_ENABLE_MEMOPT", 82*523fa7a6SAndroid Build Coastguard Worker ], 83*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 84*523fa7a6SAndroid Build Coastguard Worker ":FP16", 85*523fa7a6SAndroid Build Coastguard Worker ":FXdiv", 86*523fa7a6SAndroid Build Coastguard Worker ":clog", 87*523fa7a6SAndroid Build Coastguard Worker ":interface", 88*523fa7a6SAndroid Build Coastguard Worker ], 89*523fa7a6SAndroid Build Coastguard Worker ) 90*523fa7a6SAndroid Build Coastguard Worker 91*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 92*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 93*523fa7a6SAndroid Build Coastguard Worker name = "tables", 94*523fa7a6SAndroid Build Coastguard Worker srcs = TABLE_SRCS, 95*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 96*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 97*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 98*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 99*523fa7a6SAndroid Build Coastguard Worker ], 100*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 101*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 102*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 103*523fa7a6SAndroid Build Coastguard Worker ], 104*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 105*523fa7a6SAndroid Build Coastguard Worker ":FP16", 106*523fa7a6SAndroid Build Coastguard Worker ":FXdiv", 107*523fa7a6SAndroid Build Coastguard Worker ":clog", 108*523fa7a6SAndroid Build Coastguard Worker ":interface", 109*523fa7a6SAndroid Build Coastguard Worker ], 110*523fa7a6SAndroid Build Coastguard Worker ) 111*523fa7a6SAndroid Build Coastguard Worker 112*523fa7a6SAndroid Build Coastguard Worker DEFAULT_DUMMY_SRC = [] 113*523fa7a6SAndroid Build Coastguard Worker 114*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 115*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 116*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_scalar", 117*523fa7a6SAndroid Build Coastguard Worker srcs = prod_srcs_for_arch_wrapper("scalar"), 118*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 119*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 120*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 121*523fa7a6SAndroid Build Coastguard Worker "-O3", 122*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 123*523fa7a6SAndroid Build Coastguard Worker "-fno-fast-math", 124*523fa7a6SAndroid Build Coastguard Worker "-fno-math-errno", 125*523fa7a6SAndroid Build Coastguard Worker "-ffp-contract=off", 126*523fa7a6SAndroid Build Coastguard Worker ], 127*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 128*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 129*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 130*523fa7a6SAndroid Build Coastguard Worker ], 131*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 132*523fa7a6SAndroid Build Coastguard Worker ":FP16", 133*523fa7a6SAndroid Build Coastguard Worker ":FXdiv", 134*523fa7a6SAndroid Build Coastguard Worker ":interface", 135*523fa7a6SAndroid Build Coastguard Worker ], 136*523fa7a6SAndroid Build Coastguard Worker ) 137*523fa7a6SAndroid Build Coastguard Worker 138*523fa7a6SAndroid Build Coastguard Worker ARMSIMD32_COMPILER_FLAGS = [ 139*523fa7a6SAndroid Build Coastguard Worker "-marm", 140*523fa7a6SAndroid Build Coastguard Worker "-march=armv6", 141*523fa7a6SAndroid Build Coastguard Worker "-mfpu=vfp", 142*523fa7a6SAndroid Build Coastguard Worker "-munaligned-access", 143*523fa7a6SAndroid Build Coastguard Worker ] 144*523fa7a6SAndroid Build Coastguard Worker 145*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 146*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 147*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_armsimd32", 148*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 149*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": DEFAULT_DUMMY_SRC, 150*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": prod_srcs_for_arch_wrapper("armsimd32"), 151*523fa7a6SAndroid Build Coastguard Worker }), 152*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 153*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 154*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 155*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 156*523fa7a6SAndroid Build Coastguard Worker "-fno-fast-math", 157*523fa7a6SAndroid Build Coastguard Worker "-fno-math-errno", 158*523fa7a6SAndroid Build Coastguard Worker ] + select({ 159*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": [], 160*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": ARMSIMD32_COMPILER_FLAGS, 161*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_32": [], 162*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_64": [], 163*523fa7a6SAndroid Build Coastguard Worker }), 164*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 165*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 166*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 167*523fa7a6SAndroid Build Coastguard Worker ], 168*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 169*523fa7a6SAndroid Build Coastguard Worker ":FP16", 170*523fa7a6SAndroid Build Coastguard Worker ":FXdiv", 171*523fa7a6SAndroid Build Coastguard Worker ":interface", 172*523fa7a6SAndroid Build Coastguard Worker ], 173*523fa7a6SAndroid Build Coastguard Worker ) 174*523fa7a6SAndroid Build Coastguard Worker 175*523fa7a6SAndroid Build Coastguard Worker FP16ARITH_COMPILER_FLAGS = [ 176*523fa7a6SAndroid Build Coastguard Worker "-marm", 177*523fa7a6SAndroid Build Coastguard Worker "-march=armv8.2-a+fp16", 178*523fa7a6SAndroid Build Coastguard Worker # GCC emits wrong directives for assembler with -mfpu=fp-armv8 179*523fa7a6SAndroid Build Coastguard Worker "-mfpu=neon-fp-armv8", 180*523fa7a6SAndroid Build Coastguard Worker # For vsqrth_f16 polyfill using sqrtf 181*523fa7a6SAndroid Build Coastguard Worker "-fno-math-errno", 182*523fa7a6SAndroid Build Coastguard Worker # For vminh_f16/vmaxh_f16 polyfills using compare + select 183*523fa7a6SAndroid Build Coastguard Worker "-ffinite-math-only", 184*523fa7a6SAndroid Build Coastguard Worker ] 185*523fa7a6SAndroid Build Coastguard Worker 186*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 187*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 188*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_fp16arith", 189*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 190*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": prod_srcs_for_arch_wrapper("fp16arith"), 191*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_32": DEFAULT_DUMMY_SRC, 192*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_64": DEFAULT_DUMMY_SRC, 193*523fa7a6SAndroid Build Coastguard Worker }), 194*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 195*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 196*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 197*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 198*523fa7a6SAndroid Build Coastguard Worker "-fno-fast-math", 199*523fa7a6SAndroid Build Coastguard Worker "-fno-math-errno", 200*523fa7a6SAndroid Build Coastguard Worker ] + select({ 201*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": [], 202*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": FP16ARITH_COMPILER_FLAGS, 203*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_32": [], 204*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_64": [], 205*523fa7a6SAndroid Build Coastguard Worker }), 206*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 207*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 208*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 209*523fa7a6SAndroid Build Coastguard Worker ], 210*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 211*523fa7a6SAndroid Build Coastguard Worker ":FP16", 212*523fa7a6SAndroid Build Coastguard Worker ":FXdiv", 213*523fa7a6SAndroid Build Coastguard Worker ":interface", 214*523fa7a6SAndroid Build Coastguard Worker ], 215*523fa7a6SAndroid Build Coastguard Worker ) 216*523fa7a6SAndroid Build Coastguard Worker 217*523fa7a6SAndroid Build Coastguard Worker SSE_COMPILER_FLAGS = ["-msse"] 218*523fa7a6SAndroid Build Coastguard Worker 219*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 220*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 221*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_sse", 222*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 223*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": prod_srcs_for_arch_wrapper("sse"), 224*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": DEFAULT_DUMMY_SRC, 225*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": DEFAULT_DUMMY_SRC, 226*523fa7a6SAndroid Build Coastguard Worker }), 227*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 228*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 229*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 230*523fa7a6SAndroid Build Coastguard Worker "-O2", 231*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 232*523fa7a6SAndroid Build Coastguard Worker ] + select({ 233*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": SSE_COMPILER_FLAGS, 234*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": [], 235*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": [], 236*523fa7a6SAndroid Build Coastguard Worker }), 237*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 238*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 239*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 240*523fa7a6SAndroid Build Coastguard Worker ], 241*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 242*523fa7a6SAndroid Build Coastguard Worker ":FP16", 243*523fa7a6SAndroid Build Coastguard Worker ":interface", 244*523fa7a6SAndroid Build Coastguard Worker ], 245*523fa7a6SAndroid Build Coastguard Worker ) 246*523fa7a6SAndroid Build Coastguard Worker 247*523fa7a6SAndroid Build Coastguard Worker SSE2_COMPILER_FLAGS = ["-msse2"] 248*523fa7a6SAndroid Build Coastguard Worker 249*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 250*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 251*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_sse2", 252*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 253*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": prod_srcs_for_arch_wrapper("sse2"), 254*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": DEFAULT_DUMMY_SRC, 255*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": DEFAULT_DUMMY_SRC, 256*523fa7a6SAndroid Build Coastguard Worker }), 257*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 258*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 259*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 260*523fa7a6SAndroid Build Coastguard Worker "-O2", 261*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 262*523fa7a6SAndroid Build Coastguard Worker ] + select({ 263*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": SSE2_COMPILER_FLAGS, 264*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": [], 265*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": [], 266*523fa7a6SAndroid Build Coastguard Worker }), 267*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 268*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 269*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 270*523fa7a6SAndroid Build Coastguard Worker ], 271*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 272*523fa7a6SAndroid Build Coastguard Worker ":FP16", 273*523fa7a6SAndroid Build Coastguard Worker ":interface", 274*523fa7a6SAndroid Build Coastguard Worker ], 275*523fa7a6SAndroid Build Coastguard Worker ) 276*523fa7a6SAndroid Build Coastguard Worker 277*523fa7a6SAndroid Build Coastguard Worker SSE3_COMPILER_FLAGS = ["-mssse3"] 278*523fa7a6SAndroid Build Coastguard Worker 279*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 280*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 281*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_ssse3", 282*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 283*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": prod_srcs_for_arch_wrapper("ssse3"), 284*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": DEFAULT_DUMMY_SRC, 285*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": DEFAULT_DUMMY_SRC, 286*523fa7a6SAndroid Build Coastguard Worker }), 287*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 288*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 289*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 290*523fa7a6SAndroid Build Coastguard Worker "-O2", 291*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 292*523fa7a6SAndroid Build Coastguard Worker ] + select({ 293*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": SSE3_COMPILER_FLAGS, 294*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": [], 295*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": [], 296*523fa7a6SAndroid Build Coastguard Worker }), 297*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 298*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 299*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 300*523fa7a6SAndroid Build Coastguard Worker ], 301*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 302*523fa7a6SAndroid Build Coastguard Worker ":FP16", 303*523fa7a6SAndroid Build Coastguard Worker ":interface", 304*523fa7a6SAndroid Build Coastguard Worker ], 305*523fa7a6SAndroid Build Coastguard Worker ) 306*523fa7a6SAndroid Build Coastguard Worker 307*523fa7a6SAndroid Build Coastguard Worker SSE41_COMPILER_FLAGS = ["-msse4.1"] 308*523fa7a6SAndroid Build Coastguard Worker 309*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 310*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 311*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_sse41", 312*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 313*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": prod_srcs_for_arch_wrapper("sse41"), 314*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": DEFAULT_DUMMY_SRC, 315*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": DEFAULT_DUMMY_SRC, 316*523fa7a6SAndroid Build Coastguard Worker }), 317*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 318*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 319*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 320*523fa7a6SAndroid Build Coastguard Worker "-O2", 321*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 322*523fa7a6SAndroid Build Coastguard Worker ] + select({ 323*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": SSE41_COMPILER_FLAGS, 324*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": [], 325*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": [], 326*523fa7a6SAndroid Build Coastguard Worker }), 327*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 328*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 329*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 330*523fa7a6SAndroid Build Coastguard Worker ], 331*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 332*523fa7a6SAndroid Build Coastguard Worker ":FP16", 333*523fa7a6SAndroid Build Coastguard Worker ":interface", 334*523fa7a6SAndroid Build Coastguard Worker ], 335*523fa7a6SAndroid Build Coastguard Worker ) 336*523fa7a6SAndroid Build Coastguard Worker 337*523fa7a6SAndroid Build Coastguard Worker AVX_COMPILER_FLAGS = ["-mavx"] 338*523fa7a6SAndroid Build Coastguard Worker 339*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 340*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 341*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_avx", 342*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 343*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": prod_srcs_for_arch_wrapper("avx"), 344*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": DEFAULT_DUMMY_SRC, 345*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": DEFAULT_DUMMY_SRC, 346*523fa7a6SAndroid Build Coastguard Worker }), 347*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 348*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 349*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 350*523fa7a6SAndroid Build Coastguard Worker "-O2", 351*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 352*523fa7a6SAndroid Build Coastguard Worker ] + select({ 353*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": AVX_COMPILER_FLAGS, 354*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": [], 355*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": [], 356*523fa7a6SAndroid Build Coastguard Worker }), 357*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 358*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 359*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 360*523fa7a6SAndroid Build Coastguard Worker ], 361*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 362*523fa7a6SAndroid Build Coastguard Worker ":FP16", 363*523fa7a6SAndroid Build Coastguard Worker ":interface", 364*523fa7a6SAndroid Build Coastguard Worker ], 365*523fa7a6SAndroid Build Coastguard Worker ) 366*523fa7a6SAndroid Build Coastguard Worker 367*523fa7a6SAndroid Build Coastguard Worker F16C_COMPILER_FLAGS = ["-mf16c"] 368*523fa7a6SAndroid Build Coastguard Worker 369*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 370*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 371*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_f16c", 372*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 373*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": prod_srcs_for_arch_wrapper("f16c"), 374*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": DEFAULT_DUMMY_SRC, 375*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": DEFAULT_DUMMY_SRC, 376*523fa7a6SAndroid Build Coastguard Worker }), 377*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 378*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 379*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 380*523fa7a6SAndroid Build Coastguard Worker "-O2", 381*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 382*523fa7a6SAndroid Build Coastguard Worker ] + select({ 383*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": F16C_COMPILER_FLAGS, 384*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": [], 385*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": [], 386*523fa7a6SAndroid Build Coastguard Worker }), 387*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 388*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 389*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 390*523fa7a6SAndroid Build Coastguard Worker ], 391*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 392*523fa7a6SAndroid Build Coastguard Worker ":FP16", 393*523fa7a6SAndroid Build Coastguard Worker ":interface", 394*523fa7a6SAndroid Build Coastguard Worker ], 395*523fa7a6SAndroid Build Coastguard Worker ) 396*523fa7a6SAndroid Build Coastguard Worker 397*523fa7a6SAndroid Build Coastguard Worker FMA3_COMPILER_FLAGS = [ 398*523fa7a6SAndroid Build Coastguard Worker "-mfma", 399*523fa7a6SAndroid Build Coastguard Worker "-mf16c", 400*523fa7a6SAndroid Build Coastguard Worker ] 401*523fa7a6SAndroid Build Coastguard Worker 402*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 403*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 404*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_fma3", 405*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 406*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": prod_srcs_for_arch_wrapper("fma3"), 407*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": DEFAULT_DUMMY_SRC, 408*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": DEFAULT_DUMMY_SRC, 409*523fa7a6SAndroid Build Coastguard Worker }), 410*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 411*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 412*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 413*523fa7a6SAndroid Build Coastguard Worker "-O2", 414*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 415*523fa7a6SAndroid Build Coastguard Worker ] + select({ 416*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": FMA3_COMPILER_FLAGS, 417*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": [], 418*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": [], 419*523fa7a6SAndroid Build Coastguard Worker }), 420*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 421*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 422*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 423*523fa7a6SAndroid Build Coastguard Worker ], 424*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 425*523fa7a6SAndroid Build Coastguard Worker ":FP16", 426*523fa7a6SAndroid Build Coastguard Worker ":interface", 427*523fa7a6SAndroid Build Coastguard Worker ], 428*523fa7a6SAndroid Build Coastguard Worker ) 429*523fa7a6SAndroid Build Coastguard Worker 430*523fa7a6SAndroid Build Coastguard Worker AVX2_COMPILER_FLAGS = [ 431*523fa7a6SAndroid Build Coastguard Worker "-mavx2", 432*523fa7a6SAndroid Build Coastguard Worker "-mfma", 433*523fa7a6SAndroid Build Coastguard Worker "-mf16c", 434*523fa7a6SAndroid Build Coastguard Worker ] 435*523fa7a6SAndroid Build Coastguard Worker 436*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 437*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 438*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_avx2", 439*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 440*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": prod_srcs_for_arch_wrapper("avx2"), 441*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": DEFAULT_DUMMY_SRC, 442*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": DEFAULT_DUMMY_SRC, 443*523fa7a6SAndroid Build Coastguard Worker }), 444*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 445*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 446*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 447*523fa7a6SAndroid Build Coastguard Worker "-O2", 448*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 449*523fa7a6SAndroid Build Coastguard Worker ] + select({ 450*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": AVX2_COMPILER_FLAGS, 451*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": [], 452*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": [], 453*523fa7a6SAndroid Build Coastguard Worker }), 454*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 455*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 456*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 457*523fa7a6SAndroid Build Coastguard Worker ], 458*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 459*523fa7a6SAndroid Build Coastguard Worker ":FP16", 460*523fa7a6SAndroid Build Coastguard Worker ":interface", 461*523fa7a6SAndroid Build Coastguard Worker ], 462*523fa7a6SAndroid Build Coastguard Worker ) 463*523fa7a6SAndroid Build Coastguard Worker 464*523fa7a6SAndroid Build Coastguard Worker AVX512F_COMPILER_FLAGS = ["-mavx512f"] 465*523fa7a6SAndroid Build Coastguard Worker 466*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 467*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 468*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_avx512", 469*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 470*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": prod_srcs_for_arch_wrapper("avx512f"), 471*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": DEFAULT_DUMMY_SRC, 472*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": DEFAULT_DUMMY_SRC, 473*523fa7a6SAndroid Build Coastguard Worker }), 474*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 475*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 476*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 477*523fa7a6SAndroid Build Coastguard Worker "-O2", 478*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 479*523fa7a6SAndroid Build Coastguard Worker ] + select({ 480*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": AVX512F_COMPILER_FLAGS, 481*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": [], 482*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": [], 483*523fa7a6SAndroid Build Coastguard Worker }), 484*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 485*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 486*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 487*523fa7a6SAndroid Build Coastguard Worker ], 488*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 489*523fa7a6SAndroid Build Coastguard Worker ":FP16", 490*523fa7a6SAndroid Build Coastguard Worker ":interface", 491*523fa7a6SAndroid Build Coastguard Worker ], 492*523fa7a6SAndroid Build Coastguard Worker ) 493*523fa7a6SAndroid Build Coastguard Worker 494*523fa7a6SAndroid Build Coastguard Worker AVX512SKX_COMPILER_FLAGS = [ 495*523fa7a6SAndroid Build Coastguard Worker "-mavx512f", 496*523fa7a6SAndroid Build Coastguard Worker "-mavx512cd", 497*523fa7a6SAndroid Build Coastguard Worker "-mavx512bw", 498*523fa7a6SAndroid Build Coastguard Worker "-mavx512dq", 499*523fa7a6SAndroid Build Coastguard Worker "-mavx512vl", 500*523fa7a6SAndroid Build Coastguard Worker ] 501*523fa7a6SAndroid Build Coastguard Worker 502*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 503*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 504*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_avx512skx", 505*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 506*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": prod_srcs_for_arch_wrapper("avx512skx"), 507*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": DEFAULT_DUMMY_SRC, 508*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": DEFAULT_DUMMY_SRC, 509*523fa7a6SAndroid Build Coastguard Worker }), 510*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 511*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 512*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 513*523fa7a6SAndroid Build Coastguard Worker "-O2", 514*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 515*523fa7a6SAndroid Build Coastguard Worker ] + select({ 516*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": AVX512SKX_COMPILER_FLAGS, 517*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": [], 518*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": [], 519*523fa7a6SAndroid Build Coastguard Worker }), 520*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 521*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 522*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 523*523fa7a6SAndroid Build Coastguard Worker ], 524*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 525*523fa7a6SAndroid Build Coastguard Worker ":FP16", 526*523fa7a6SAndroid Build Coastguard Worker ":interface", 527*523fa7a6SAndroid Build Coastguard Worker ], 528*523fa7a6SAndroid Build Coastguard Worker ) 529*523fa7a6SAndroid Build Coastguard Worker 530*523fa7a6SAndroid Build Coastguard Worker NEON_COMPILER_FLAGS = [ 531*523fa7a6SAndroid Build Coastguard Worker "-march=armv7-a", 532*523fa7a6SAndroid Build Coastguard Worker "-fpu=neon", 533*523fa7a6SAndroid Build Coastguard Worker "-mfloat-abi=softfp", 534*523fa7a6SAndroid Build Coastguard Worker ] 535*523fa7a6SAndroid Build Coastguard Worker 536*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 537*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 538*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_asm", 539*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 540*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": DEFAULT_DUMMY_SRC, 541*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": prod_srcs_for_arch_wrapper("aarch32"), 542*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": prod_srcs_for_arch_wrapper("aarch64"), 543*523fa7a6SAndroid Build Coastguard Worker }), 544*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 545*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 546*523fa7a6SAndroid Build Coastguard Worker platform_compiler_flags = [ 547*523fa7a6SAndroid Build Coastguard Worker ( 548*523fa7a6SAndroid Build Coastguard Worker "(aarch64|arm64)", 549*523fa7a6SAndroid Build Coastguard Worker [ 550*523fa7a6SAndroid Build Coastguard Worker "-march=armv8.2-a+fp16+dotprod", 551*523fa7a6SAndroid Build Coastguard Worker ], 552*523fa7a6SAndroid Build Coastguard Worker ), 553*523fa7a6SAndroid Build Coastguard Worker ( 554*523fa7a6SAndroid Build Coastguard Worker "(aarch32|arm32)", 555*523fa7a6SAndroid Build Coastguard Worker [ 556*523fa7a6SAndroid Build Coastguard Worker "-marm", 557*523fa7a6SAndroid Build Coastguard Worker "-march=armv8.2-a+dotprod", 558*523fa7a6SAndroid Build Coastguard Worker "-mfpu=neon-fp-armv8", 559*523fa7a6SAndroid Build Coastguard Worker ], 560*523fa7a6SAndroid Build Coastguard Worker ), 561*523fa7a6SAndroid Build Coastguard Worker ], 562*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 563*523fa7a6SAndroid Build Coastguard Worker "-O2", 564*523fa7a6SAndroid Build Coastguard Worker ], 565*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 566*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 567*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 568*523fa7a6SAndroid Build Coastguard Worker ], 569*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 570*523fa7a6SAndroid Build Coastguard Worker ":FP16", 571*523fa7a6SAndroid Build Coastguard Worker ":interface", 572*523fa7a6SAndroid Build Coastguard Worker ], 573*523fa7a6SAndroid Build Coastguard Worker ) 574*523fa7a6SAndroid Build Coastguard Worker 575*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 576*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 577*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_neon", 578*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 579*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": prod_srcs_for_arch_wrapper("neon"), 580*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_32": DEFAULT_DUMMY_SRC, 581*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_64": DEFAULT_DUMMY_SRC, 582*523fa7a6SAndroid Build Coastguard Worker }), 583*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 584*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 585*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 586*523fa7a6SAndroid Build Coastguard Worker "-O2", 587*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 588*523fa7a6SAndroid Build Coastguard Worker ] + select({ 589*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": [], 590*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": NEON_COMPILER_FLAGS, 591*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_32": [], 592*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_64": [], 593*523fa7a6SAndroid Build Coastguard Worker }), 594*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 595*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 596*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 597*523fa7a6SAndroid Build Coastguard Worker ], 598*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 599*523fa7a6SAndroid Build Coastguard Worker ":FP16", 600*523fa7a6SAndroid Build Coastguard Worker ":interface", 601*523fa7a6SAndroid Build Coastguard Worker ], 602*523fa7a6SAndroid Build Coastguard Worker ) 603*523fa7a6SAndroid Build Coastguard Worker 604*523fa7a6SAndroid Build Coastguard Worker AVX512VBMI_COMPILER_FLAGS = ["-mavx512vbmi"] 605*523fa7a6SAndroid Build Coastguard Worker 606*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 607*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 608*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_avx512vbmi", 609*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 610*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": prod_srcs_for_arch_wrapper("avx512vbmi"), 611*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": DEFAULT_DUMMY_SRC, 612*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": DEFAULT_DUMMY_SRC, 613*523fa7a6SAndroid Build Coastguard Worker }), 614*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 615*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 616*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 617*523fa7a6SAndroid Build Coastguard Worker "-O2", 618*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 619*523fa7a6SAndroid Build Coastguard Worker ] + select({ 620*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": AVX512VBMI_COMPILER_FLAGS, 621*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": [], 622*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": [], 623*523fa7a6SAndroid Build Coastguard Worker }), 624*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 625*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 626*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 627*523fa7a6SAndroid Build Coastguard Worker ], 628*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 629*523fa7a6SAndroid Build Coastguard Worker ":FP16", 630*523fa7a6SAndroid Build Coastguard Worker ":interface", 631*523fa7a6SAndroid Build Coastguard Worker ], 632*523fa7a6SAndroid Build Coastguard Worker ) 633*523fa7a6SAndroid Build Coastguard Worker 634*523fa7a6SAndroid Build Coastguard Worker NEON64_AARCH64_COMPILER_FLAGS = [] 635*523fa7a6SAndroid Build Coastguard Worker 636*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 637*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 638*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_neon_aarch64", 639*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 640*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": prod_srcs_for_arch_wrapper("neon_aarch64"), 641*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": DEFAULT_DUMMY_SRC, 642*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_32": DEFAULT_DUMMY_SRC, 643*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_64": DEFAULT_DUMMY_SRC, 644*523fa7a6SAndroid Build Coastguard Worker }), 645*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 646*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 647*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 648*523fa7a6SAndroid Build Coastguard Worker "-O2", 649*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 650*523fa7a6SAndroid Build Coastguard Worker ] + select({ 651*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": NEON64_AARCH64_COMPILER_FLAGS, 652*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": [], 653*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_32": [], 654*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_64": [], 655*523fa7a6SAndroid Build Coastguard Worker }), 656*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 657*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 658*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 659*523fa7a6SAndroid Build Coastguard Worker ], 660*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 661*523fa7a6SAndroid Build Coastguard Worker ":FP16", 662*523fa7a6SAndroid Build Coastguard Worker ":interface", 663*523fa7a6SAndroid Build Coastguard Worker ], 664*523fa7a6SAndroid Build Coastguard Worker ) 665*523fa7a6SAndroid Build Coastguard Worker 666*523fa7a6SAndroid Build Coastguard Worker NEON_FP16_COMPILER_FLAGS = ["-mfpu=neon-fp16"] 667*523fa7a6SAndroid Build Coastguard Worker 668*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 669*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 670*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_neon_fp16", 671*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 672*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": prod_srcs_for_arch_wrapper("neonfp16"), 673*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_32": DEFAULT_DUMMY_SRC, 674*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_64": DEFAULT_DUMMY_SRC, 675*523fa7a6SAndroid Build Coastguard Worker }), 676*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 677*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 678*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 679*523fa7a6SAndroid Build Coastguard Worker "-O2", 680*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 681*523fa7a6SAndroid Build Coastguard Worker ] + select({ 682*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": [], 683*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": NEON_FP16_COMPILER_FLAGS, 684*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_32": [], 685*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_64": [], 686*523fa7a6SAndroid Build Coastguard Worker }), 687*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 688*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 689*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 690*523fa7a6SAndroid Build Coastguard Worker ], 691*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 692*523fa7a6SAndroid Build Coastguard Worker ":interface", 693*523fa7a6SAndroid Build Coastguard Worker ":FP16", 694*523fa7a6SAndroid Build Coastguard Worker ], 695*523fa7a6SAndroid Build Coastguard Worker ) 696*523fa7a6SAndroid Build Coastguard Worker 697*523fa7a6SAndroid Build Coastguard Worker NEON32_FMA_COMPILER_FLAGS = ["-mfpu=neon-vfp4"] 698*523fa7a6SAndroid Build Coastguard Worker NEON64_FMA_COMPILER_FLAGS = [ 699*523fa7a6SAndroid Build Coastguard Worker "-march=armv8-a", 700*523fa7a6SAndroid Build Coastguard Worker ] 701*523fa7a6SAndroid Build Coastguard Worker 702*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 703*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 704*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_neon_fma", 705*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 706*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": DEFAULT_DUMMY_SRC, 707*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": prod_srcs_for_arch_wrapper("neonfma"), 708*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": prod_srcs_for_arch_wrapper("neonfma") + prod_srcs_for_arch_wrapper("neonfma_aarch64"), 709*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_32": DEFAULT_DUMMY_SRC, 710*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_64": DEFAULT_DUMMY_SRC, 711*523fa7a6SAndroid Build Coastguard Worker }), 712*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 713*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 714*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 715*523fa7a6SAndroid Build Coastguard Worker "-O2", 716*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 717*523fa7a6SAndroid Build Coastguard Worker ] + select({ 718*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": [], 719*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": NEON32_FMA_COMPILER_FLAGS, 720*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": NEON64_FMA_COMPILER_FLAGS, 721*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_32": [], 722*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_64": [], 723*523fa7a6SAndroid Build Coastguard Worker }), 724*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 725*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 726*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 727*523fa7a6SAndroid Build Coastguard Worker ], 728*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 729*523fa7a6SAndroid Build Coastguard Worker ":FP16", 730*523fa7a6SAndroid Build Coastguard Worker ":interface", 731*523fa7a6SAndroid Build Coastguard Worker ], 732*523fa7a6SAndroid Build Coastguard Worker ) 733*523fa7a6SAndroid Build Coastguard Worker 734*523fa7a6SAndroid Build Coastguard Worker NEON64_V8_COMPILER_FLAGS = [ 735*523fa7a6SAndroid Build Coastguard Worker "-march=armv8-a", 736*523fa7a6SAndroid Build Coastguard Worker ] 737*523fa7a6SAndroid Build Coastguard Worker 738*523fa7a6SAndroid Build Coastguard Worker NEON32_V8_COMPILER_FLAGS = [ 739*523fa7a6SAndroid Build Coastguard Worker "-march=armv8-a", 740*523fa7a6SAndroid Build Coastguard Worker "-mfpu=neon-fp-armv8", 741*523fa7a6SAndroid Build Coastguard Worker "-mfloat-abi=softfp", 742*523fa7a6SAndroid Build Coastguard Worker ] 743*523fa7a6SAndroid Build Coastguard Worker 744*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 745*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 746*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_neon_v8", 747*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 748*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": prod_srcs_for_arch_wrapper("neonv8"), 749*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_32": DEFAULT_DUMMY_SRC, 750*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_64": DEFAULT_DUMMY_SRC, 751*523fa7a6SAndroid Build Coastguard Worker }), 752*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 753*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 754*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 755*523fa7a6SAndroid Build Coastguard Worker "-O2", 756*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 757*523fa7a6SAndroid Build Coastguard Worker ] + select({ 758*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": NEON64_V8_COMPILER_FLAGS, 759*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": NEON32_V8_COMPILER_FLAGS, 760*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_32": [], 761*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_64": [], 762*523fa7a6SAndroid Build Coastguard Worker }), 763*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 764*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 765*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 766*523fa7a6SAndroid Build Coastguard Worker ], 767*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 768*523fa7a6SAndroid Build Coastguard Worker ":FP16", 769*523fa7a6SAndroid Build Coastguard Worker ":interface", 770*523fa7a6SAndroid Build Coastguard Worker ], 771*523fa7a6SAndroid Build Coastguard Worker ) 772*523fa7a6SAndroid Build Coastguard Worker 773*523fa7a6SAndroid Build Coastguard Worker NEON64_FP16ARITH_COMPILER_FLAGS = ["-march=armv8.2-a+fp16"] 774*523fa7a6SAndroid Build Coastguard Worker NEON32_FP16ARITH_COMPILER_FLAGS = [ 775*523fa7a6SAndroid Build Coastguard Worker "-marm", 776*523fa7a6SAndroid Build Coastguard Worker "-march=armv8.2-a+fp16", 777*523fa7a6SAndroid Build Coastguard Worker "-mfpu=neon-fp-armv8", 778*523fa7a6SAndroid Build Coastguard Worker ] 779*523fa7a6SAndroid Build Coastguard Worker 780*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 781*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 782*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_neon_fp16arith", 783*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 784*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": DEFAULT_DUMMY_SRC, 785*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": prod_srcs_for_arch_wrapper("neonfp16arith"), 786*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": prod_srcs_for_arch_wrapper("neonfp16arith") + prod_srcs_for_arch_wrapper("neonfp16arith_aarch64"), 787*523fa7a6SAndroid Build Coastguard Worker }), 788*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 789*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 790*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 791*523fa7a6SAndroid Build Coastguard Worker "-O2", 792*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 793*523fa7a6SAndroid Build Coastguard Worker ] + select({ 794*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": NEON64_FP16ARITH_COMPILER_FLAGS, 795*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": NEON32_FP16ARITH_COMPILER_FLAGS, 796*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": NEON64_FP16ARITH_COMPILER_FLAGS, 797*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_32": [], 798*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_64": [], 799*523fa7a6SAndroid Build Coastguard Worker }), 800*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 801*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 802*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 803*523fa7a6SAndroid Build Coastguard Worker ], 804*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 805*523fa7a6SAndroid Build Coastguard Worker ":FP16", 806*523fa7a6SAndroid Build Coastguard Worker ":interface", 807*523fa7a6SAndroid Build Coastguard Worker ], 808*523fa7a6SAndroid Build Coastguard Worker ) 809*523fa7a6SAndroid Build Coastguard Worker 810*523fa7a6SAndroid Build Coastguard Worker NEONDOTFP16ARITH_COMPILER_FLAGS = [ 811*523fa7a6SAndroid Build Coastguard Worker "-marm", 812*523fa7a6SAndroid Build Coastguard Worker "-march=armv8.2-a+dotprod+fp16", 813*523fa7a6SAndroid Build Coastguard Worker "-mfpu=neon-fp-armv8", 814*523fa7a6SAndroid Build Coastguard Worker ] 815*523fa7a6SAndroid Build Coastguard Worker 816*523fa7a6SAndroid Build Coastguard Worker NEONDOTFP16ARITH_AARCH64_COMPILER_FLAGS = [ 817*523fa7a6SAndroid Build Coastguard Worker "-march=armv8.2-a+dotprod+fp16", 818*523fa7a6SAndroid Build Coastguard Worker ] 819*523fa7a6SAndroid Build Coastguard Worker 820*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 821*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 822*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_neondotfp16arith", 823*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 824*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": DEFAULT_DUMMY_SRC, 825*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": prod_srcs_for_arch_wrapper("neondotfp16arith"), 826*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": prod_srcs_for_arch_wrapper("neondotfp16arith") + prod_srcs_for_arch_wrapper("neondotfp16arith_aarch64"), 827*523fa7a6SAndroid Build Coastguard Worker }), 828*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 829*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 830*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 831*523fa7a6SAndroid Build Coastguard Worker "-O2", 832*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 833*523fa7a6SAndroid Build Coastguard Worker ] + select({ 834*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": NEONDOTFP16ARITH_COMPILER_FLAGS, 835*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": NEONDOTFP16ARITH_AARCH64_COMPILER_FLAGS, 836*523fa7a6SAndroid Build Coastguard Worker }), 837*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 838*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 839*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 840*523fa7a6SAndroid Build Coastguard Worker ], 841*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 842*523fa7a6SAndroid Build Coastguard Worker ":FP16", 843*523fa7a6SAndroid Build Coastguard Worker ":interface", 844*523fa7a6SAndroid Build Coastguard Worker ], 845*523fa7a6SAndroid Build Coastguard Worker ) 846*523fa7a6SAndroid Build Coastguard Worker 847*523fa7a6SAndroid Build Coastguard Worker NEON64_DOT_COMPILER_FLAGS = ["-march=armv8.2-a+dotprod"] 848*523fa7a6SAndroid Build Coastguard Worker 849*523fa7a6SAndroid Build Coastguard Worker NEON32_DOT_COMPILER_FLAGS = [ 850*523fa7a6SAndroid Build Coastguard Worker "-march=armv8.2-a+dotprod", 851*523fa7a6SAndroid Build Coastguard Worker "-mfpu=neon-fp-armv8", 852*523fa7a6SAndroid Build Coastguard Worker "-mfloat-abi=softfp", 853*523fa7a6SAndroid Build Coastguard Worker ] 854*523fa7a6SAndroid Build Coastguard Worker 855*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 856*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 857*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_neon_dot", 858*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 859*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": DEFAULT_DUMMY_SRC, 860*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": prod_srcs_for_arch_wrapper("neondot"), 861*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": prod_srcs_for_arch_wrapper("neondot") + prod_srcs_for_arch_wrapper("neondot_aarch64"), 862*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_32": DEFAULT_DUMMY_SRC, 863*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_64": DEFAULT_DUMMY_SRC, 864*523fa7a6SAndroid Build Coastguard Worker }), 865*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 866*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 867*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 868*523fa7a6SAndroid Build Coastguard Worker "-O2", 869*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 870*523fa7a6SAndroid Build Coastguard Worker ] + select({ 871*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": [], 872*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": NEON32_DOT_COMPILER_FLAGS, 873*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": NEON64_DOT_COMPILER_FLAGS, 874*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_32": [], 875*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_64": [], 876*523fa7a6SAndroid Build Coastguard Worker }), 877*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 878*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 879*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 880*523fa7a6SAndroid Build Coastguard Worker ], 881*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 882*523fa7a6SAndroid Build Coastguard Worker ":FP16", 883*523fa7a6SAndroid Build Coastguard Worker ":interface", 884*523fa7a6SAndroid Build Coastguard Worker ], 885*523fa7a6SAndroid Build Coastguard Worker ) 886*523fa7a6SAndroid Build Coastguard Worker 887*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 888*523fa7a6SAndroid Build Coastguard Worker NEON32_I8MM_COMPILER_FLAGS = [ 889*523fa7a6SAndroid Build Coastguard Worker "-marm", 890*523fa7a6SAndroid Build Coastguard Worker "-march=armv8.2-a+i8mm+fp16", 891*523fa7a6SAndroid Build Coastguard Worker "-mfpu=neon-fp-armv8", 892*523fa7a6SAndroid Build Coastguard Worker ] 893*523fa7a6SAndroid Build Coastguard Worker 894*523fa7a6SAndroid Build Coastguard Worker NEON64_I8MM_COMPILER_FLAGS = [ 895*523fa7a6SAndroid Build Coastguard Worker "-march=armv8.2-a+i8mm+fp16", 896*523fa7a6SAndroid Build Coastguard Worker ] 897*523fa7a6SAndroid Build Coastguard Worker 898*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 899*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 900*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_neon_i8mm", 901*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 902*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": prod_srcs_for_arch_wrapper("neoni8mm"), 903*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_32": DEFAULT_DUMMY_SRC, 904*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_64": DEFAULT_DUMMY_SRC, 905*523fa7a6SAndroid Build Coastguard Worker }), 906*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 907*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 908*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 909*523fa7a6SAndroid Build Coastguard Worker "-O2", 910*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 911*523fa7a6SAndroid Build Coastguard Worker ] + select({ 912*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": NEON64_I8MM_COMPILER_FLAGS, 913*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": NEON32_I8MM_COMPILER_FLAGS, 914*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_32": [], 915*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:x86_64": [], 916*523fa7a6SAndroid Build Coastguard Worker }), 917*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 918*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 919*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 920*523fa7a6SAndroid Build Coastguard Worker ], 921*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 922*523fa7a6SAndroid Build Coastguard Worker ":FP16", 923*523fa7a6SAndroid Build Coastguard Worker ":interface", 924*523fa7a6SAndroid Build Coastguard Worker ], 925*523fa7a6SAndroid Build Coastguard Worker ) 926*523fa7a6SAndroid Build Coastguard Worker 927*523fa7a6SAndroid Build Coastguard Worker AVX512VNNI_COMPILER_FLAGS = [ 928*523fa7a6SAndroid Build Coastguard Worker "-mavx512f", 929*523fa7a6SAndroid Build Coastguard Worker "-mavx512cd", 930*523fa7a6SAndroid Build Coastguard Worker "-mavx512bw", 931*523fa7a6SAndroid Build Coastguard Worker "-mavx512dq", 932*523fa7a6SAndroid Build Coastguard Worker "-mavx512vl", 933*523fa7a6SAndroid Build Coastguard Worker "-mavx512vnni", 934*523fa7a6SAndroid Build Coastguard Worker ] 935*523fa7a6SAndroid Build Coastguard Worker 936*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 937*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 938*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_avx512vnni", 939*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 940*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": prod_srcs_for_arch_wrapper("avx512vnni"), 941*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": DEFAULT_DUMMY_SRC, 942*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": DEFAULT_DUMMY_SRC, 943*523fa7a6SAndroid Build Coastguard Worker }), 944*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 945*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 946*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 947*523fa7a6SAndroid Build Coastguard Worker "-O2", 948*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 949*523fa7a6SAndroid Build Coastguard Worker ] + select({ 950*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": AVX512VNNI_COMPILER_FLAGS, 951*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": [], 952*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": [], 953*523fa7a6SAndroid Build Coastguard Worker }), 954*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 955*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 956*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 957*523fa7a6SAndroid Build Coastguard Worker ], 958*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 959*523fa7a6SAndroid Build Coastguard Worker ":FP16", 960*523fa7a6SAndroid Build Coastguard Worker ":interface", 961*523fa7a6SAndroid Build Coastguard Worker ], 962*523fa7a6SAndroid Build Coastguard Worker ) 963*523fa7a6SAndroid Build Coastguard Worker 964*523fa7a6SAndroid Build Coastguard Worker AVX512VNNIGFNI_COMPILER_FLAGS = AVX512VNNI_COMPILER_FLAGS + [ 965*523fa7a6SAndroid Build Coastguard Worker "-mgfni", 966*523fa7a6SAndroid Build Coastguard Worker ] 967*523fa7a6SAndroid Build Coastguard Worker 968*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 969*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 970*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_avx512vnnigfni", 971*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 972*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": prod_srcs_for_arch_wrapper("avx512vnnifgni"), 973*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": DEFAULT_DUMMY_SRC, 974*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": DEFAULT_DUMMY_SRC, 975*523fa7a6SAndroid Build Coastguard Worker }), 976*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 977*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 978*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 979*523fa7a6SAndroid Build Coastguard Worker "-O2", 980*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 981*523fa7a6SAndroid Build Coastguard Worker ] + select({ 982*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": AVX512VNNIGFNI_COMPILER_FLAGS, 983*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": [], 984*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": [], 985*523fa7a6SAndroid Build Coastguard Worker }), 986*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 987*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 988*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 989*523fa7a6SAndroid Build Coastguard Worker ], 990*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 991*523fa7a6SAndroid Build Coastguard Worker ":FP16", 992*523fa7a6SAndroid Build Coastguard Worker ":interface", 993*523fa7a6SAndroid Build Coastguard Worker ], 994*523fa7a6SAndroid Build Coastguard Worker ) 995*523fa7a6SAndroid Build Coastguard Worker 996*523fa7a6SAndroid Build Coastguard Worker AVXVNNI_COMPILER_FLAGS = [ 997*523fa7a6SAndroid Build Coastguard Worker "-mavx2", 998*523fa7a6SAndroid Build Coastguard Worker "-mavxvnni", 999*523fa7a6SAndroid Build Coastguard Worker "-mf16c", 1000*523fa7a6SAndroid Build Coastguard Worker "-mfma", 1001*523fa7a6SAndroid Build Coastguard Worker ] 1002*523fa7a6SAndroid Build Coastguard Worker 1003*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 1004*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 1005*523fa7a6SAndroid Build Coastguard Worker name = "ukernels_avxvnni", 1006*523fa7a6SAndroid Build Coastguard Worker srcs = select({ 1007*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": prod_srcs_for_arch_wrapper("avxvnni"), 1008*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": DEFAULT_DUMMY_SRC, 1009*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": DEFAULT_DUMMY_SRC, 1010*523fa7a6SAndroid Build Coastguard Worker }), 1011*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 1012*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 1013*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 1014*523fa7a6SAndroid Build Coastguard Worker "-O2", 1015*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 1016*523fa7a6SAndroid Build Coastguard Worker ] + select({ 1017*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": AVXVNNI_COMPILER_FLAGS, 1018*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": [], 1019*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": [], 1020*523fa7a6SAndroid Build Coastguard Worker }), 1021*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 1022*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 1023*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 1024*523fa7a6SAndroid Build Coastguard Worker ], 1025*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 1026*523fa7a6SAndroid Build Coastguard Worker ":FP16", 1027*523fa7a6SAndroid Build Coastguard Worker ":interface", 1028*523fa7a6SAndroid Build Coastguard Worker ], 1029*523fa7a6SAndroid Build Coastguard Worker ) 1030*523fa7a6SAndroid Build Coastguard Worker 1031*523fa7a6SAndroid Build Coastguard Worker COMMON_XNNPACK_DEPS = [ 1032*523fa7a6SAndroid Build Coastguard Worker ":operators", 1033*523fa7a6SAndroid Build Coastguard Worker ":subgraph", 1034*523fa7a6SAndroid Build Coastguard Worker ":tables", 1035*523fa7a6SAndroid Build Coastguard Worker ":ukernels_scalar", 1036*523fa7a6SAndroid Build Coastguard Worker ] 1037*523fa7a6SAndroid Build Coastguard Worker 1038*523fa7a6SAndroid Build Coastguard Worker X86_64_XNNPACK_DEPS = [ 1039*523fa7a6SAndroid Build Coastguard Worker ":ukernels_avx", 1040*523fa7a6SAndroid Build Coastguard Worker ":ukernels_avx2", 1041*523fa7a6SAndroid Build Coastguard Worker ":ukernels_avx512", 1042*523fa7a6SAndroid Build Coastguard Worker ":ukernels_avx512skx", 1043*523fa7a6SAndroid Build Coastguard Worker ":ukernels_f16c", 1044*523fa7a6SAndroid Build Coastguard Worker ":ukernels_fma3", 1045*523fa7a6SAndroid Build Coastguard Worker ":ukernels_sse", 1046*523fa7a6SAndroid Build Coastguard Worker ":ukernels_sse2", 1047*523fa7a6SAndroid Build Coastguard Worker ":ukernels_sse41", 1048*523fa7a6SAndroid Build Coastguard Worker ":ukernels_ssse3", 1049*523fa7a6SAndroid Build Coastguard Worker ":ukernels_avx512vbmi", 1050*523fa7a6SAndroid Build Coastguard Worker ":ukernels_avx512vnnigfni", 1051*523fa7a6SAndroid Build Coastguard Worker ":ukernels_avx512vnni", 1052*523fa7a6SAndroid Build Coastguard Worker ":ukernels_avxvnni", 1053*523fa7a6SAndroid Build Coastguard Worker ] 1054*523fa7a6SAndroid Build Coastguard Worker 1055*523fa7a6SAndroid Build Coastguard Worker ARM_XNNPACK_DEPS = [ 1056*523fa7a6SAndroid Build Coastguard Worker ":ukernels_armsimd32", 1057*523fa7a6SAndroid Build Coastguard Worker ":ukernels_fp16arith", 1058*523fa7a6SAndroid Build Coastguard Worker ":ukernels_asm", 1059*523fa7a6SAndroid Build Coastguard Worker ":ukernels_neon", 1060*523fa7a6SAndroid Build Coastguard Worker ":ukernels_neon_aarch64", 1061*523fa7a6SAndroid Build Coastguard Worker ":ukernels_neon_fp16", 1062*523fa7a6SAndroid Build Coastguard Worker ":ukernels_neon_fma", 1063*523fa7a6SAndroid Build Coastguard Worker ":ukernels_neon_v8", 1064*523fa7a6SAndroid Build Coastguard Worker ":ukernels_neon_fp16arith", 1065*523fa7a6SAndroid Build Coastguard Worker ":ukernels_neon_dot", 1066*523fa7a6SAndroid Build Coastguard Worker ":ukernels_neon_i8mm", 1067*523fa7a6SAndroid Build Coastguard Worker ":ukernels_neondotfp16arith", 1068*523fa7a6SAndroid Build Coastguard Worker ] 1069*523fa7a6SAndroid Build Coastguard Worker 1070*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: native and fb_native are explicitly forbidden in fbcode. 1071*523fa7a6SAndroid Build Coastguard Worker native.cxx_library( 1072*523fa7a6SAndroid Build Coastguard Worker name = "XNNPACK", 1073*523fa7a6SAndroid Build Coastguard Worker srcs = XNNPACK_SRCS + LOGGING_SRCS + [ 1074*523fa7a6SAndroid Build Coastguard Worker "XNNPACK/src/init.c", 1075*523fa7a6SAndroid Build Coastguard Worker "XNNPACK/src/params.c", 1076*523fa7a6SAndroid Build Coastguard Worker "XNNPACK/src/configs/hardware-config.c", 1077*523fa7a6SAndroid Build Coastguard Worker "XNNPACK/src/microparams-init.c", 1078*523fa7a6SAndroid Build Coastguard Worker "XNNPACK/src/microkernel-utils.c", 1079*523fa7a6SAndroid Build Coastguard Worker ], 1080*523fa7a6SAndroid Build Coastguard Worker headers = get_xnnpack_headers(), 1081*523fa7a6SAndroid Build Coastguard Worker exported_headers = { 1082*523fa7a6SAndroid Build Coastguard Worker "xnnpack.h": "XNNPACK/include/xnnpack.h", 1083*523fa7a6SAndroid Build Coastguard Worker }, 1084*523fa7a6SAndroid Build Coastguard Worker header_namespace = "", 1085*523fa7a6SAndroid Build Coastguard Worker compiler_flags = [ 1086*523fa7a6SAndroid Build Coastguard Worker "-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default 1087*523fa7a6SAndroid Build Coastguard Worker ], 1088*523fa7a6SAndroid Build Coastguard Worker preferred_linkage = "static", 1089*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = [ 1090*523fa7a6SAndroid Build Coastguard Worker "-DXNN_LOG_LEVEL=0", 1091*523fa7a6SAndroid Build Coastguard Worker "-DXNN_ENABLE_MEMOPT", 1092*523fa7a6SAndroid Build Coastguard Worker "-DXNN_ENABLE_SPARSE=0", 1093*523fa7a6SAndroid Build Coastguard Worker "-DXNN_ENABLE_ASSEMBLY", 1094*523fa7a6SAndroid Build Coastguard Worker "-DXNN_ENABLE_GEMM_M_SPECIALIZATION", 1095*523fa7a6SAndroid Build Coastguard Worker "-DXNN_ENABLE_ARM_DOTPROD", 1096*523fa7a6SAndroid Build Coastguard Worker "-DXNN_ENABLE_CPUINFO", 1097*523fa7a6SAndroid Build Coastguard Worker # "-DXNN_ENABLE_DWCONV_MULTIPLASS=1", 1098*523fa7a6SAndroid Build Coastguard Worker "-DXNN_ENABLE_ARM_I8MM=1", 1099*523fa7a6SAndroid Build Coastguard Worker "-DXNN_ENABLE_ARM_FP16_VECTOR=1", 1100*523fa7a6SAndroid Build Coastguard Worker ], 1101*523fa7a6SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1102*523fa7a6SAndroid Build Coastguard Worker exported_deps = COMMON_XNNPACK_DEPS + [ 1103*523fa7a6SAndroid Build Coastguard Worker ":FP16", 1104*523fa7a6SAndroid Build Coastguard Worker ":pthreadpool", 1105*523fa7a6SAndroid Build Coastguard Worker ":interface", 1106*523fa7a6SAndroid Build Coastguard Worker ":cpuinfo", 1107*523fa7a6SAndroid Build Coastguard Worker ] + select({ 1108*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": X86_64_XNNPACK_DEPS, 1109*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm32": ARM_XNNPACK_DEPS, 1110*523fa7a6SAndroid Build Coastguard Worker "ovr_config//cpu:arm64": ARM_XNNPACK_DEPS, 1111*523fa7a6SAndroid Build Coastguard Worker }), 1112*523fa7a6SAndroid Build Coastguard Worker ) 1113