xref: /aosp_15_r20/external/pytorch/third_party/xnnpack.buck.bzl (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1*da0073e9SAndroid Build Coastguard Workerload("//tools/build_defs:fb_xplat_cxx_library.bzl", "fb_xplat_cxx_library")
2*da0073e9SAndroid Build Coastguard Workerload("//tools/build_defs:fbsource_utils.bzl", "is_arvr_mode")
3*da0073e9SAndroid Build Coastguard Workerload("//tools/build_defs:glob_defs.bzl", "subdir_glob")
4*da0073e9SAndroid Build Coastguard Workerload("//tools/build_defs:platform_defs.bzl", "ANDROID", "APPLE", "APPLETVOS", "CXX", "IOS", "MACOSX", "WINDOWS")
5*da0073e9SAndroid Build Coastguard Workerload(
6*da0073e9SAndroid Build Coastguard Worker    ":xnnpack_src_defs.bzl",
7*da0073e9SAndroid Build Coastguard Worker    "JIT_SRCS",
8*da0073e9SAndroid Build Coastguard Worker    "LOGGING_SRCS",
9*da0073e9SAndroid Build Coastguard Worker    "OPERATOR_SRCS",
10*da0073e9SAndroid Build Coastguard Worker    "SUBGRAPH_SRCS",
11*da0073e9SAndroid Build Coastguard Worker    "TABLE_SRCS",
12*da0073e9SAndroid Build Coastguard Worker    "XNNPACK_SRCS",
13*da0073e9SAndroid Build Coastguard Worker)
14*da0073e9SAndroid Build Coastguard Workerload(
15*da0073e9SAndroid Build Coastguard Worker    ":xnnpack_wrapper_defs.bzl",
16*da0073e9SAndroid Build Coastguard Worker    "AARCH32_ASM_MICROKERNEL_SRCS",
17*da0073e9SAndroid Build Coastguard Worker    "AARCH64_ASM_MICROKERNEL_SRCS",
18*da0073e9SAndroid Build Coastguard Worker    "PROD_ARMSIMD32_MICROKERNEL_SRCS",
19*da0073e9SAndroid Build Coastguard Worker    "PROD_AVX2_MICROKERNEL_SRCS",
20*da0073e9SAndroid Build Coastguard Worker    "PROD_AVX512F_MICROKERNEL_SRCS",
21*da0073e9SAndroid Build Coastguard Worker    "PROD_AVX512SKX_MICROKERNEL_SRCS",
22*da0073e9SAndroid Build Coastguard Worker    "PROD_AVX512VBMI_MICROKERNEL_SRCS",
23*da0073e9SAndroid Build Coastguard Worker    "PROD_AVX512VNNI_MICROKERNEL_SRCS",
24*da0073e9SAndroid Build Coastguard Worker    "PROD_AVX512VNNIGFNI_MICROKERNEL_SRCS",
25*da0073e9SAndroid Build Coastguard Worker    "PROD_AVXVNNI_MICROKERNEL_SRCS",
26*da0073e9SAndroid Build Coastguard Worker    "PROD_AVX_MICROKERNEL_SRCS",
27*da0073e9SAndroid Build Coastguard Worker    "PROD_F16C_MICROKERNEL_SRCS",
28*da0073e9SAndroid Build Coastguard Worker    "PROD_FMA3_MICROKERNEL_SRCS",
29*da0073e9SAndroid Build Coastguard Worker    "PROD_FP16ARITH_MICROKERNEL_SRCS",
30*da0073e9SAndroid Build Coastguard Worker    "PROD_NEONDOTFP16ARITH_AARCH64_MICROKERNEL_SRCS",
31*da0073e9SAndroid Build Coastguard Worker    "PROD_NEONDOTFP16ARITH_MICROKERNEL_SRCS",
32*da0073e9SAndroid Build Coastguard Worker    "PROD_NEONDOT_AARCH64_MICROKERNEL_SRCS",
33*da0073e9SAndroid Build Coastguard Worker    "PROD_NEONDOT_MICROKERNEL_SRCS",
34*da0073e9SAndroid Build Coastguard Worker    "PROD_NEONFMA_MICROKERNEL_SRCS",
35*da0073e9SAndroid Build Coastguard Worker    "PROD_NEONFP16ARITH_AARCH64_MICROKERNEL_SRCS",
36*da0073e9SAndroid Build Coastguard Worker    "PROD_NEONFP16ARITH_MICROKERNEL_SRCS",
37*da0073e9SAndroid Build Coastguard Worker    "PROD_NEONFP16_MICROKERNEL_SRCS",
38*da0073e9SAndroid Build Coastguard Worker    "PROD_NEONI8MM_MICROKERNEL_SRCS",
39*da0073e9SAndroid Build Coastguard Worker    "PROD_NEONV8_MICROKERNEL_SRCS",
40*da0073e9SAndroid Build Coastguard Worker    "PROD_NEON_AARCH64_MICROKERNEL_SRCS",
41*da0073e9SAndroid Build Coastguard Worker    "PROD_NEON_MICROKERNEL_SRCS",
42*da0073e9SAndroid Build Coastguard Worker    "PROD_SCALAR_MICROKERNEL_SRCS",
43*da0073e9SAndroid Build Coastguard Worker    "PROD_SSE2_MICROKERNEL_SRCS",
44*da0073e9SAndroid Build Coastguard Worker    "PROD_SSE41_MICROKERNEL_SRCS",
45*da0073e9SAndroid Build Coastguard Worker    "PROD_SSE_MICROKERNEL_SRCS",
46*da0073e9SAndroid Build Coastguard Worker    "PROD_SSSE3_MICROKERNEL_SRCS",
47*da0073e9SAndroid Build Coastguard Worker    "PROD_XOP_MICROKERNEL_SRCS",
48*da0073e9SAndroid Build Coastguard Worker)
49*da0073e9SAndroid Build Coastguard Worker
50*da0073e9SAndroid Build Coastguard Worker# This defines XNNPACK targets for both fbsource BUCK and OSS BUCK
51*da0073e9SAndroid Build Coastguard Worker# Note that the file path is relative to the BUCK file that called from, not to this bzl file.
52*da0073e9SAndroid Build Coastguard Worker# So for fbsource build it points to xplat/third-party/XNNPACK/XNNPACK,
53*da0073e9SAndroid Build Coastguard Worker# and for OSS it points to pytorch/third_party/XNNPACK
54*da0073e9SAndroid Build Coastguard Workerdef define_xnnpack(third_party, labels = [], XNNPACK_WINDOWS_AVX512F_ENABLED = False):
55*da0073e9SAndroid Build Coastguard Worker    WINDOWS_FLAGS = [
56*da0073e9SAndroid Build Coastguard Worker        "/D__x86_64__",
57*da0073e9SAndroid Build Coastguard Worker        "/EHsc",
58*da0073e9SAndroid Build Coastguard Worker        "/wd4090",  # 'function': different 'const' qualifiers
59*da0073e9SAndroid Build Coastguard Worker        "/wd4146",  # unary minus operator applied to unsigned type, result still unsigned
60*da0073e9SAndroid Build Coastguard Worker    ] + ([
61*da0073e9SAndroid Build Coastguard Worker        "/D__AVX512F__",  # needed to avoid linkage errors
62*da0073e9SAndroid Build Coastguard Worker        "-mavx2",
63*da0073e9SAndroid Build Coastguard Worker        "/D__builtin_clz=__lzcnt",  # Intrinsics are spelled differently in MSVC
64*da0073e9SAndroid Build Coastguard Worker        "/Drestrict=",  # MSVC doesn't understand [restrict XNN_NUM_ELEMENTS(N)] syntax
65*da0073e9SAndroid Build Coastguard Worker    ] if XNNPACK_WINDOWS_AVX512F_ENABLED else [])
66*da0073e9SAndroid Build Coastguard Worker
67*da0073e9SAndroid Build Coastguard Worker    WINDOWS_CLANG_COMPILER_FLAGS = [
68*da0073e9SAndroid Build Coastguard Worker        "-Wno-error",
69*da0073e9SAndroid Build Coastguard Worker        "-Wno-error=undef",
70*da0073e9SAndroid Build Coastguard Worker        "-Wno-error=incompatible-pointer-types",
71*da0073e9SAndroid Build Coastguard Worker        "-Wno-error=incompatible-pointer-types-discards-qualifiers",
72*da0073e9SAndroid Build Coastguard Worker    ]
73*da0073e9SAndroid Build Coastguard Worker
74*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
75*da0073e9SAndroid Build Coastguard Worker        name = "interface",
76*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
77*da0073e9SAndroid Build Coastguard Worker        exported_headers = {
78*da0073e9SAndroid Build Coastguard Worker            "xnnpack.h": "XNNPACK/include/xnnpack.h",
79*da0073e9SAndroid Build Coastguard Worker        },
80*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
81*da0073e9SAndroid Build Coastguard Worker        labels = labels,
82*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
83*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
84*da0073e9SAndroid Build Coastguard Worker        ],
85*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
86*da0073e9SAndroid Build Coastguard Worker        exported_deps = [
87*da0073e9SAndroid Build Coastguard Worker            # Dependency only on pthreadpool interface
88*da0073e9SAndroid Build Coastguard Worker            third_party("pthreadpool_header"),
89*da0073e9SAndroid Build Coastguard Worker        ],
90*da0073e9SAndroid Build Coastguard Worker    )
91*da0073e9SAndroid Build Coastguard Worker
92*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
93*da0073e9SAndroid Build Coastguard Worker        name = "subgraph",
94*da0073e9SAndroid Build Coastguard Worker        srcs = SUBGRAPH_SRCS,
95*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
96*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
97*da0073e9SAndroid Build Coastguard Worker        ]),
98*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
99*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
100*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
101*da0073e9SAndroid Build Coastguard Worker            "-O2",
102*da0073e9SAndroid Build Coastguard Worker        ],
103*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
104*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
105*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
106*da0073e9SAndroid Build Coastguard Worker        ],
107*da0073e9SAndroid Build Coastguard Worker        labels = labels,
108*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
109*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
110*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
111*da0073e9SAndroid Build Coastguard Worker            "-DXNN_ENABLE_JIT=0",
112*da0073e9SAndroid Build Coastguard Worker            "-DXNN_ENABLE_SPARSE=0",
113*da0073e9SAndroid Build Coastguard Worker            "-DXNN_ENABLE_MEMOPT",
114*da0073e9SAndroid Build Coastguard Worker        ],
115*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
116*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
117*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS,
118*da0073e9SAndroid Build Coastguard Worker        deps = [
119*da0073e9SAndroid Build Coastguard Worker            ":interface",
120*da0073e9SAndroid Build Coastguard Worker            third_party("FP16"),
121*da0073e9SAndroid Build Coastguard Worker            third_party("FXdiv"),
122*da0073e9SAndroid Build Coastguard Worker            third_party("clog"),
123*da0073e9SAndroid Build Coastguard Worker        ],
124*da0073e9SAndroid Build Coastguard Worker    )
125*da0073e9SAndroid Build Coastguard Worker
126*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
127*da0073e9SAndroid Build Coastguard Worker        name = "tables",
128*da0073e9SAndroid Build Coastguard Worker        srcs = TABLE_SRCS,
129*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
130*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
131*da0073e9SAndroid Build Coastguard Worker        ]),
132*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
133*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
134*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
135*da0073e9SAndroid Build Coastguard Worker            "-O2",
136*da0073e9SAndroid Build Coastguard Worker        ],
137*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
138*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
139*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
140*da0073e9SAndroid Build Coastguard Worker        ],
141*da0073e9SAndroid Build Coastguard Worker        labels = labels,
142*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
143*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
144*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
145*da0073e9SAndroid Build Coastguard Worker        ],
146*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
147*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
148*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS,
149*da0073e9SAndroid Build Coastguard Worker        deps = [
150*da0073e9SAndroid Build Coastguard Worker            ":interface",
151*da0073e9SAndroid Build Coastguard Worker            third_party("FP16"),
152*da0073e9SAndroid Build Coastguard Worker            third_party("FXdiv"),
153*da0073e9SAndroid Build Coastguard Worker            third_party("clog"),
154*da0073e9SAndroid Build Coastguard Worker        ],
155*da0073e9SAndroid Build Coastguard Worker    )
156*da0073e9SAndroid Build Coastguard Worker
157*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
158*da0073e9SAndroid Build Coastguard Worker        name = "jit_memory",
159*da0073e9SAndroid Build Coastguard Worker        # srcs have to include HOT_SRCS to be able to build on ARVR
160*da0073e9SAndroid Build Coastguard Worker        srcs = JIT_SRCS,
161*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
162*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
163*da0073e9SAndroid Build Coastguard Worker        ]),
164*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
165*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
166*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
167*da0073e9SAndroid Build Coastguard Worker            "-Oz",
168*da0073e9SAndroid Build Coastguard Worker        ],
169*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
170*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
171*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
172*da0073e9SAndroid Build Coastguard Worker        ],
173*da0073e9SAndroid Build Coastguard Worker        labels = labels,
174*da0073e9SAndroid Build Coastguard Worker        platforms = (APPLE, ANDROID, CXX, WINDOWS),
175*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
176*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
177*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
178*da0073e9SAndroid Build Coastguard Worker        ],
179*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
180*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
181*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS,
182*da0073e9SAndroid Build Coastguard Worker        deps = [
183*da0073e9SAndroid Build Coastguard Worker            ":interface",
184*da0073e9SAndroid Build Coastguard Worker            third_party("clog"),
185*da0073e9SAndroid Build Coastguard Worker        ],
186*da0073e9SAndroid Build Coastguard Worker    )
187*da0073e9SAndroid Build Coastguard Worker
188*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
189*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_scalar",
190*da0073e9SAndroid Build Coastguard Worker        srcs = PROD_SCALAR_MICROKERNEL_SRCS,
191*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
192*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
193*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
194*da0073e9SAndroid Build Coastguard Worker        ]),
195*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
196*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
197*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
198*da0073e9SAndroid Build Coastguard Worker            "-O2",
199*da0073e9SAndroid Build Coastguard Worker            "-fno-fast-math",
200*da0073e9SAndroid Build Coastguard Worker            "-fno-math-errno",
201*da0073e9SAndroid Build Coastguard Worker            "-ffp-contract=off",
202*da0073e9SAndroid Build Coastguard Worker        ],
203*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
204*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
205*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
206*da0073e9SAndroid Build Coastguard Worker        ],
207*da0073e9SAndroid Build Coastguard Worker        labels = labels,
208*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
209*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
210*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
211*da0073e9SAndroid Build Coastguard Worker        ],
212*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
213*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
214*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS,
215*da0073e9SAndroid Build Coastguard Worker        deps = [
216*da0073e9SAndroid Build Coastguard Worker            ":interface",
217*da0073e9SAndroid Build Coastguard Worker            third_party("FP16"),
218*da0073e9SAndroid Build Coastguard Worker            third_party("FXdiv"),
219*da0073e9SAndroid Build Coastguard Worker        ],
220*da0073e9SAndroid Build Coastguard Worker    )
221*da0073e9SAndroid Build Coastguard Worker
222*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
223*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_sse",
224*da0073e9SAndroid Build Coastguard Worker        srcs = PROD_SSE_MICROKERNEL_SRCS if is_arvr_mode() else [],
225*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
226*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
227*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
228*da0073e9SAndroid Build Coastguard Worker        ]),
229*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
230*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
231*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
232*da0073e9SAndroid Build Coastguard Worker            "-O2",
233*da0073e9SAndroid Build Coastguard Worker        ],
234*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
235*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
236*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
237*da0073e9SAndroid Build Coastguard Worker        ],
238*da0073e9SAndroid Build Coastguard Worker        labels = labels,
239*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
240*da0073e9SAndroid Build Coastguard Worker            (
241*da0073e9SAndroid Build Coastguard Worker                "x86",
242*da0073e9SAndroid Build Coastguard Worker                [
243*da0073e9SAndroid Build Coastguard Worker                    "-msse",
244*da0073e9SAndroid Build Coastguard Worker                ],
245*da0073e9SAndroid Build Coastguard Worker            ),
246*da0073e9SAndroid Build Coastguard Worker        ],
247*da0073e9SAndroid Build Coastguard Worker        platform_srcs = ([
248*da0073e9SAndroid Build Coastguard Worker            (
249*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
250*da0073e9SAndroid Build Coastguard Worker                PROD_SSE_MICROKERNEL_SRCS,
251*da0073e9SAndroid Build Coastguard Worker            ),
252*da0073e9SAndroid Build Coastguard Worker        ] if not is_arvr_mode() else []),
253*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
254*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
255*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
256*da0073e9SAndroid Build Coastguard Worker        ],
257*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
258*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-msse"],
259*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + ["-msse"],
260*da0073e9SAndroid Build Coastguard Worker        deps = [
261*da0073e9SAndroid Build Coastguard Worker            ":interface",
262*da0073e9SAndroid Build Coastguard Worker        ],
263*da0073e9SAndroid Build Coastguard Worker    )
264*da0073e9SAndroid Build Coastguard Worker
265*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
266*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_sse_ovr_win32",
267*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
268*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
269*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
270*da0073e9SAndroid Build Coastguard Worker        ]),
271*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
272*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
273*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
274*da0073e9SAndroid Build Coastguard Worker            "-O2",
275*da0073e9SAndroid Build Coastguard Worker        ],
276*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
277*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
278*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
279*da0073e9SAndroid Build Coastguard Worker        ],
280*da0073e9SAndroid Build Coastguard Worker        labels = labels,
281*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
282*da0073e9SAndroid Build Coastguard Worker            (
283*da0073e9SAndroid Build Coastguard Worker                "x86",
284*da0073e9SAndroid Build Coastguard Worker                [
285*da0073e9SAndroid Build Coastguard Worker                    "-msse",
286*da0073e9SAndroid Build Coastguard Worker                ],
287*da0073e9SAndroid Build Coastguard Worker            ),
288*da0073e9SAndroid Build Coastguard Worker        ],
289*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
290*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
291*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
292*da0073e9SAndroid Build Coastguard Worker        ],
293*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
294*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-msse"],
295*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + ["-msse"],
296*da0073e9SAndroid Build Coastguard Worker        windows_srcs = PROD_SSE_MICROKERNEL_SRCS,
297*da0073e9SAndroid Build Coastguard Worker        deps = [
298*da0073e9SAndroid Build Coastguard Worker            ":interface",
299*da0073e9SAndroid Build Coastguard Worker        ],
300*da0073e9SAndroid Build Coastguard Worker    )
301*da0073e9SAndroid Build Coastguard Worker
302*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
303*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_sse2",
304*da0073e9SAndroid Build Coastguard Worker        srcs = PROD_SSE2_MICROKERNEL_SRCS if is_arvr_mode() else [],
305*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
306*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
307*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
308*da0073e9SAndroid Build Coastguard Worker        ]),
309*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
310*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
311*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
312*da0073e9SAndroid Build Coastguard Worker            "-O2",
313*da0073e9SAndroid Build Coastguard Worker        ],
314*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
315*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
316*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
317*da0073e9SAndroid Build Coastguard Worker        ],
318*da0073e9SAndroid Build Coastguard Worker        labels = labels,
319*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
320*da0073e9SAndroid Build Coastguard Worker            (
321*da0073e9SAndroid Build Coastguard Worker                "x86",
322*da0073e9SAndroid Build Coastguard Worker                [
323*da0073e9SAndroid Build Coastguard Worker                    "-msse2",
324*da0073e9SAndroid Build Coastguard Worker                ],
325*da0073e9SAndroid Build Coastguard Worker            ),
326*da0073e9SAndroid Build Coastguard Worker        ],
327*da0073e9SAndroid Build Coastguard Worker        platform_srcs = ([
328*da0073e9SAndroid Build Coastguard Worker            (
329*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
330*da0073e9SAndroid Build Coastguard Worker                PROD_SSE2_MICROKERNEL_SRCS,
331*da0073e9SAndroid Build Coastguard Worker            ),
332*da0073e9SAndroid Build Coastguard Worker        ] if not is_arvr_mode() else []),
333*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
334*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
335*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
336*da0073e9SAndroid Build Coastguard Worker        ],
337*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
338*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-msse2"],
339*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + ["-msse2"],
340*da0073e9SAndroid Build Coastguard Worker        deps = [
341*da0073e9SAndroid Build Coastguard Worker            ":interface",
342*da0073e9SAndroid Build Coastguard Worker            third_party("FP16"),
343*da0073e9SAndroid Build Coastguard Worker        ],
344*da0073e9SAndroid Build Coastguard Worker    )
345*da0073e9SAndroid Build Coastguard Worker
346*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
347*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_sse2_ovr_win32",
348*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
349*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
350*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
351*da0073e9SAndroid Build Coastguard Worker        ]),
352*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
353*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
354*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
355*da0073e9SAndroid Build Coastguard Worker            "-O2",
356*da0073e9SAndroid Build Coastguard Worker        ],
357*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
358*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
359*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
360*da0073e9SAndroid Build Coastguard Worker        ],
361*da0073e9SAndroid Build Coastguard Worker        labels = labels,
362*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
363*da0073e9SAndroid Build Coastguard Worker            (
364*da0073e9SAndroid Build Coastguard Worker                "x86",
365*da0073e9SAndroid Build Coastguard Worker                [
366*da0073e9SAndroid Build Coastguard Worker                    "-msse2",
367*da0073e9SAndroid Build Coastguard Worker                ],
368*da0073e9SAndroid Build Coastguard Worker            ),
369*da0073e9SAndroid Build Coastguard Worker        ],
370*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
371*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
372*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
373*da0073e9SAndroid Build Coastguard Worker        ],
374*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
375*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-msse2"],
376*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + ["-msse2"],
377*da0073e9SAndroid Build Coastguard Worker        windows_srcs = PROD_SSE2_MICROKERNEL_SRCS,
378*da0073e9SAndroid Build Coastguard Worker        deps = [
379*da0073e9SAndroid Build Coastguard Worker            ":interface",
380*da0073e9SAndroid Build Coastguard Worker            third_party("FP16"),
381*da0073e9SAndroid Build Coastguard Worker        ],
382*da0073e9SAndroid Build Coastguard Worker    )
383*da0073e9SAndroid Build Coastguard Worker
384*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
385*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_ssse3",
386*da0073e9SAndroid Build Coastguard Worker        srcs = PROD_SSSE3_MICROKERNEL_SRCS if is_arvr_mode() else [],
387*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
388*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
389*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
390*da0073e9SAndroid Build Coastguard Worker        ]),
391*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
392*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
393*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
394*da0073e9SAndroid Build Coastguard Worker            "-O2",
395*da0073e9SAndroid Build Coastguard Worker        ],
396*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
397*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
398*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
399*da0073e9SAndroid Build Coastguard Worker        ],
400*da0073e9SAndroid Build Coastguard Worker        labels = labels,
401*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
402*da0073e9SAndroid Build Coastguard Worker            (
403*da0073e9SAndroid Build Coastguard Worker                "x86",
404*da0073e9SAndroid Build Coastguard Worker                [
405*da0073e9SAndroid Build Coastguard Worker                    "-mssse3",
406*da0073e9SAndroid Build Coastguard Worker                ],
407*da0073e9SAndroid Build Coastguard Worker            ),
408*da0073e9SAndroid Build Coastguard Worker        ],
409*da0073e9SAndroid Build Coastguard Worker        platform_srcs = ([
410*da0073e9SAndroid Build Coastguard Worker            (
411*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
412*da0073e9SAndroid Build Coastguard Worker                PROD_SSSE3_MICROKERNEL_SRCS,
413*da0073e9SAndroid Build Coastguard Worker            ),
414*da0073e9SAndroid Build Coastguard Worker        ] if not is_arvr_mode() else []),
415*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
416*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
417*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
418*da0073e9SAndroid Build Coastguard Worker        ],
419*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
420*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mssse3"],
421*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + ["-mssse3"],
422*da0073e9SAndroid Build Coastguard Worker        deps = [
423*da0073e9SAndroid Build Coastguard Worker            ":interface",
424*da0073e9SAndroid Build Coastguard Worker            third_party("FP16"),
425*da0073e9SAndroid Build Coastguard Worker        ],
426*da0073e9SAndroid Build Coastguard Worker    )
427*da0073e9SAndroid Build Coastguard Worker
428*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
429*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_ssse3_ovr_win32",
430*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
431*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
432*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
433*da0073e9SAndroid Build Coastguard Worker        ]),
434*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
435*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
436*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
437*da0073e9SAndroid Build Coastguard Worker            "-O2",
438*da0073e9SAndroid Build Coastguard Worker        ],
439*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
440*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
441*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
442*da0073e9SAndroid Build Coastguard Worker        ],
443*da0073e9SAndroid Build Coastguard Worker        labels = labels,
444*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
445*da0073e9SAndroid Build Coastguard Worker            (
446*da0073e9SAndroid Build Coastguard Worker                "x86",
447*da0073e9SAndroid Build Coastguard Worker                [
448*da0073e9SAndroid Build Coastguard Worker                    "-mssse3",
449*da0073e9SAndroid Build Coastguard Worker                ],
450*da0073e9SAndroid Build Coastguard Worker            ),
451*da0073e9SAndroid Build Coastguard Worker        ],
452*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
453*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
454*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
455*da0073e9SAndroid Build Coastguard Worker        ],
456*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
457*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mssse3"],
458*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + ["-mssse3"],
459*da0073e9SAndroid Build Coastguard Worker        windows_srcs = PROD_SSSE3_MICROKERNEL_SRCS,
460*da0073e9SAndroid Build Coastguard Worker        deps = [
461*da0073e9SAndroid Build Coastguard Worker            ":interface",
462*da0073e9SAndroid Build Coastguard Worker            third_party("FP16"),
463*da0073e9SAndroid Build Coastguard Worker        ],
464*da0073e9SAndroid Build Coastguard Worker    )
465*da0073e9SAndroid Build Coastguard Worker
466*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
467*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_sse41",
468*da0073e9SAndroid Build Coastguard Worker        srcs = PROD_SSE41_MICROKERNEL_SRCS if is_arvr_mode() else [],
469*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
470*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
471*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
472*da0073e9SAndroid Build Coastguard Worker        ]),
473*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
474*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
475*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
476*da0073e9SAndroid Build Coastguard Worker            "-O2",
477*da0073e9SAndroid Build Coastguard Worker        ],
478*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
479*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
480*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
481*da0073e9SAndroid Build Coastguard Worker        ],
482*da0073e9SAndroid Build Coastguard Worker        labels = labels,
483*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
484*da0073e9SAndroid Build Coastguard Worker            (
485*da0073e9SAndroid Build Coastguard Worker                "x86",
486*da0073e9SAndroid Build Coastguard Worker                [
487*da0073e9SAndroid Build Coastguard Worker                    "-msse4.1",
488*da0073e9SAndroid Build Coastguard Worker                ],
489*da0073e9SAndroid Build Coastguard Worker            ),
490*da0073e9SAndroid Build Coastguard Worker        ],
491*da0073e9SAndroid Build Coastguard Worker        platform_srcs = ([
492*da0073e9SAndroid Build Coastguard Worker            (
493*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
494*da0073e9SAndroid Build Coastguard Worker                PROD_SSE41_MICROKERNEL_SRCS,
495*da0073e9SAndroid Build Coastguard Worker            ),
496*da0073e9SAndroid Build Coastguard Worker        ] if not is_arvr_mode() else []),
497*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
498*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
499*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
500*da0073e9SAndroid Build Coastguard Worker        ],
501*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
502*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-msse4.1"],
503*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + ["-msse4.1"],
504*da0073e9SAndroid Build Coastguard Worker        deps = [
505*da0073e9SAndroid Build Coastguard Worker            ":interface",
506*da0073e9SAndroid Build Coastguard Worker            third_party("FP16"),
507*da0073e9SAndroid Build Coastguard Worker        ],
508*da0073e9SAndroid Build Coastguard Worker    )
509*da0073e9SAndroid Build Coastguard Worker
510*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
511*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_sse41_ovr_win32",
512*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
513*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
514*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
515*da0073e9SAndroid Build Coastguard Worker        ]),
516*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
517*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
518*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
519*da0073e9SAndroid Build Coastguard Worker            "-O2",
520*da0073e9SAndroid Build Coastguard Worker        ],
521*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
522*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
523*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
524*da0073e9SAndroid Build Coastguard Worker        ],
525*da0073e9SAndroid Build Coastguard Worker        labels = labels,
526*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
527*da0073e9SAndroid Build Coastguard Worker            (
528*da0073e9SAndroid Build Coastguard Worker                "x86",
529*da0073e9SAndroid Build Coastguard Worker                [
530*da0073e9SAndroid Build Coastguard Worker                    "-msse4.1",
531*da0073e9SAndroid Build Coastguard Worker                ],
532*da0073e9SAndroid Build Coastguard Worker            ),
533*da0073e9SAndroid Build Coastguard Worker        ],
534*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
535*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
536*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
537*da0073e9SAndroid Build Coastguard Worker        ],
538*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
539*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-msse4.1"],
540*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + ["-msse4.1"],
541*da0073e9SAndroid Build Coastguard Worker        windows_srcs = PROD_SSE41_MICROKERNEL_SRCS,
542*da0073e9SAndroid Build Coastguard Worker        deps = [
543*da0073e9SAndroid Build Coastguard Worker            ":interface",
544*da0073e9SAndroid Build Coastguard Worker            third_party("FP16"),
545*da0073e9SAndroid Build Coastguard Worker        ],
546*da0073e9SAndroid Build Coastguard Worker    )
547*da0073e9SAndroid Build Coastguard Worker
548*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
549*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_avx",
550*da0073e9SAndroid Build Coastguard Worker        srcs = PROD_AVX_MICROKERNEL_SRCS if is_arvr_mode() else [],
551*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
552*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
553*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
554*da0073e9SAndroid Build Coastguard Worker        ]),
555*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
556*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
557*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
558*da0073e9SAndroid Build Coastguard Worker            "-O2",
559*da0073e9SAndroid Build Coastguard Worker        ] + select({
560*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
561*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:x86_32": [
562*da0073e9SAndroid Build Coastguard Worker                "-mavx",
563*da0073e9SAndroid Build Coastguard Worker            ],
564*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:x86_64": [
565*da0073e9SAndroid Build Coastguard Worker                "-mavx",
566*da0073e9SAndroid Build Coastguard Worker            ],
567*da0073e9SAndroid Build Coastguard Worker        }),
568*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
569*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
570*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
571*da0073e9SAndroid Build Coastguard Worker        ],
572*da0073e9SAndroid Build Coastguard Worker        labels = labels,
573*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
574*da0073e9SAndroid Build Coastguard Worker            (
575*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
576*da0073e9SAndroid Build Coastguard Worker                [
577*da0073e9SAndroid Build Coastguard Worker                    "-mavx",
578*da0073e9SAndroid Build Coastguard Worker                ],
579*da0073e9SAndroid Build Coastguard Worker            ),
580*da0073e9SAndroid Build Coastguard Worker        ],
581*da0073e9SAndroid Build Coastguard Worker        platform_srcs = ([
582*da0073e9SAndroid Build Coastguard Worker            (
583*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
584*da0073e9SAndroid Build Coastguard Worker                PROD_AVX_MICROKERNEL_SRCS,
585*da0073e9SAndroid Build Coastguard Worker            ),
586*da0073e9SAndroid Build Coastguard Worker        ] if not is_arvr_mode() else []),
587*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
588*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
589*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
590*da0073e9SAndroid Build Coastguard Worker        ],
591*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
592*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mavx"],
593*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + ["-mavx"],
594*da0073e9SAndroid Build Coastguard Worker        deps = [
595*da0073e9SAndroid Build Coastguard Worker            ":interface",
596*da0073e9SAndroid Build Coastguard Worker        ],
597*da0073e9SAndroid Build Coastguard Worker    )
598*da0073e9SAndroid Build Coastguard Worker
599*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
600*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_avx_ovr_win32",
601*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
602*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
603*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
604*da0073e9SAndroid Build Coastguard Worker        ]),
605*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
606*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
607*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
608*da0073e9SAndroid Build Coastguard Worker            "-O2",
609*da0073e9SAndroid Build Coastguard Worker            "-mavx",
610*da0073e9SAndroid Build Coastguard Worker        ],
611*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
612*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
613*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
614*da0073e9SAndroid Build Coastguard Worker        ],
615*da0073e9SAndroid Build Coastguard Worker        labels = labels,
616*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
617*da0073e9SAndroid Build Coastguard Worker            (
618*da0073e9SAndroid Build Coastguard Worker                "x86",
619*da0073e9SAndroid Build Coastguard Worker                [
620*da0073e9SAndroid Build Coastguard Worker                    "-mavx",
621*da0073e9SAndroid Build Coastguard Worker                ],
622*da0073e9SAndroid Build Coastguard Worker            ),
623*da0073e9SAndroid Build Coastguard Worker        ],
624*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
625*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
626*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
627*da0073e9SAndroid Build Coastguard Worker        ],
628*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
629*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mavx"],
630*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + ["-mavx"],
631*da0073e9SAndroid Build Coastguard Worker        windows_srcs = PROD_AVX_MICROKERNEL_SRCS,
632*da0073e9SAndroid Build Coastguard Worker        deps = [
633*da0073e9SAndroid Build Coastguard Worker            ":interface",
634*da0073e9SAndroid Build Coastguard Worker        ],
635*da0073e9SAndroid Build Coastguard Worker    )
636*da0073e9SAndroid Build Coastguard Worker
637*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
638*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_avx512vnnigfni",
639*da0073e9SAndroid Build Coastguard Worker        srcs = PROD_AVX512VNNIGFNI_MICROKERNEL_SRCS if is_arvr_mode() else [],
640*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
641*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
642*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
643*da0073e9SAndroid Build Coastguard Worker        ]),
644*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
645*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
646*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
647*da0073e9SAndroid Build Coastguard Worker            "-O2",
648*da0073e9SAndroid Build Coastguard Worker        ] + select({
649*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
650*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:x86_32": [
651*da0073e9SAndroid Build Coastguard Worker                "-mavx",
652*da0073e9SAndroid Build Coastguard Worker                "-mgfni",
653*da0073e9SAndroid Build Coastguard Worker                "-mavx512vl",
654*da0073e9SAndroid Build Coastguard Worker                "-mavx512vnni",
655*da0073e9SAndroid Build Coastguard Worker                "-mavx512bw",
656*da0073e9SAndroid Build Coastguard Worker                "-mavx512dq",
657*da0073e9SAndroid Build Coastguard Worker            ],
658*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:x86_64": [
659*da0073e9SAndroid Build Coastguard Worker                "-mavx",
660*da0073e9SAndroid Build Coastguard Worker                "-mgfni",
661*da0073e9SAndroid Build Coastguard Worker                "-mavx512vl",
662*da0073e9SAndroid Build Coastguard Worker                "-mavx512vnni",
663*da0073e9SAndroid Build Coastguard Worker                "-mavx512bw",
664*da0073e9SAndroid Build Coastguard Worker                "-mavx512dq",
665*da0073e9SAndroid Build Coastguard Worker            ],
666*da0073e9SAndroid Build Coastguard Worker        }),
667*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
668*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
669*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
670*da0073e9SAndroid Build Coastguard Worker        ],
671*da0073e9SAndroid Build Coastguard Worker        labels = labels,
672*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
673*da0073e9SAndroid Build Coastguard Worker            (
674*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
675*da0073e9SAndroid Build Coastguard Worker                [
676*da0073e9SAndroid Build Coastguard Worker                    "-mavx512f",
677*da0073e9SAndroid Build Coastguard Worker                    "-mavx512cd",
678*da0073e9SAndroid Build Coastguard Worker                    "-mavx512bw",
679*da0073e9SAndroid Build Coastguard Worker                    "-mavx512dq",
680*da0073e9SAndroid Build Coastguard Worker                    "-mavx512vl",
681*da0073e9SAndroid Build Coastguard Worker                    "-mavx512vnni",
682*da0073e9SAndroid Build Coastguard Worker                    "-mgfni",
683*da0073e9SAndroid Build Coastguard Worker                ],
684*da0073e9SAndroid Build Coastguard Worker            ),
685*da0073e9SAndroid Build Coastguard Worker        ],
686*da0073e9SAndroid Build Coastguard Worker        platform_srcs = ([
687*da0073e9SAndroid Build Coastguard Worker            (
688*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
689*da0073e9SAndroid Build Coastguard Worker                PROD_AVX512VNNIGFNI_MICROKERNEL_SRCS,
690*da0073e9SAndroid Build Coastguard Worker            ),
691*da0073e9SAndroid Build Coastguard Worker        ] if not is_arvr_mode() else []),
692*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
693*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
694*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
695*da0073e9SAndroid Build Coastguard Worker        ],
696*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
697*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mavx"],
698*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + ["-mavx"],
699*da0073e9SAndroid Build Coastguard Worker        deps = [
700*da0073e9SAndroid Build Coastguard Worker            ":interface",
701*da0073e9SAndroid Build Coastguard Worker        ],
702*da0073e9SAndroid Build Coastguard Worker    )
703*da0073e9SAndroid Build Coastguard Worker
704*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
705*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_avx512vnnigfni_ovr_win32",
706*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
707*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
708*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
709*da0073e9SAndroid Build Coastguard Worker        ]),
710*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
711*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
712*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
713*da0073e9SAndroid Build Coastguard Worker            "-O2",
714*da0073e9SAndroid Build Coastguard Worker        ],
715*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
716*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
717*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
718*da0073e9SAndroid Build Coastguard Worker        ],
719*da0073e9SAndroid Build Coastguard Worker        labels = labels,
720*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
721*da0073e9SAndroid Build Coastguard Worker            (
722*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
723*da0073e9SAndroid Build Coastguard Worker                [
724*da0073e9SAndroid Build Coastguard Worker                    "-mavx512f",
725*da0073e9SAndroid Build Coastguard Worker                    "-mavx512cd",
726*da0073e9SAndroid Build Coastguard Worker                    "-mavx512bw",
727*da0073e9SAndroid Build Coastguard Worker                    "-mavx512dq",
728*da0073e9SAndroid Build Coastguard Worker                    "-mavx512vl",
729*da0073e9SAndroid Build Coastguard Worker                    "-mavx512vnni",
730*da0073e9SAndroid Build Coastguard Worker                    "-mgfni",
731*da0073e9SAndroid Build Coastguard Worker                ],
732*da0073e9SAndroid Build Coastguard Worker            ),
733*da0073e9SAndroid Build Coastguard Worker        ],
734*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
735*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
736*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
737*da0073e9SAndroid Build Coastguard Worker        ],
738*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
739*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mavx"],
740*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + ["-mavx"],
741*da0073e9SAndroid Build Coastguard Worker        windows_srcs = PROD_AVX512VNNIGFNI_MICROKERNEL_SRCS,
742*da0073e9SAndroid Build Coastguard Worker        deps = [
743*da0073e9SAndroid Build Coastguard Worker            ":interface",
744*da0073e9SAndroid Build Coastguard Worker        ],
745*da0073e9SAndroid Build Coastguard Worker    )
746*da0073e9SAndroid Build Coastguard Worker
747*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
748*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_avx512vnni",
749*da0073e9SAndroid Build Coastguard Worker        srcs = PROD_AVX512VNNI_MICROKERNEL_SRCS if is_arvr_mode() else [],
750*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
751*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
752*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
753*da0073e9SAndroid Build Coastguard Worker        ]),
754*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
755*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
756*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
757*da0073e9SAndroid Build Coastguard Worker            "-O2",
758*da0073e9SAndroid Build Coastguard Worker        ] + select({
759*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
760*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:x86_32": [
761*da0073e9SAndroid Build Coastguard Worker                "-mavx",
762*da0073e9SAndroid Build Coastguard Worker            ],
763*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:x86_64": [
764*da0073e9SAndroid Build Coastguard Worker                "-mavx",
765*da0073e9SAndroid Build Coastguard Worker            ],
766*da0073e9SAndroid Build Coastguard Worker        }),
767*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
768*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
769*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
770*da0073e9SAndroid Build Coastguard Worker        ],
771*da0073e9SAndroid Build Coastguard Worker        labels = labels,
772*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
773*da0073e9SAndroid Build Coastguard Worker            (
774*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
775*da0073e9SAndroid Build Coastguard Worker                [
776*da0073e9SAndroid Build Coastguard Worker                    "-mavx512f",
777*da0073e9SAndroid Build Coastguard Worker                    "-mavx512cd",
778*da0073e9SAndroid Build Coastguard Worker                    "-mavx512bw",
779*da0073e9SAndroid Build Coastguard Worker                    "-mavx512dq",
780*da0073e9SAndroid Build Coastguard Worker                    "-mavx512vl",
781*da0073e9SAndroid Build Coastguard Worker                    "-mavx512vnni",
782*da0073e9SAndroid Build Coastguard Worker                ],
783*da0073e9SAndroid Build Coastguard Worker            ),
784*da0073e9SAndroid Build Coastguard Worker        ],
785*da0073e9SAndroid Build Coastguard Worker        platform_srcs = ([
786*da0073e9SAndroid Build Coastguard Worker            (
787*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
788*da0073e9SAndroid Build Coastguard Worker                PROD_AVX512VNNI_MICROKERNEL_SRCS,
789*da0073e9SAndroid Build Coastguard Worker            ),
790*da0073e9SAndroid Build Coastguard Worker        ] if not is_arvr_mode() else []),
791*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
792*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
793*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
794*da0073e9SAndroid Build Coastguard Worker        ],
795*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
796*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mavx"],
797*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + ["-mavx"],
798*da0073e9SAndroid Build Coastguard Worker        deps = [
799*da0073e9SAndroid Build Coastguard Worker            ":interface",
800*da0073e9SAndroid Build Coastguard Worker        ],
801*da0073e9SAndroid Build Coastguard Worker    )
802*da0073e9SAndroid Build Coastguard Worker
803*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
804*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_avx512vnni_ovr_win32",
805*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
806*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
807*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
808*da0073e9SAndroid Build Coastguard Worker        ]),
809*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
810*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
811*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
812*da0073e9SAndroid Build Coastguard Worker            "-O2",
813*da0073e9SAndroid Build Coastguard Worker        ],
814*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
815*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
816*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
817*da0073e9SAndroid Build Coastguard Worker        ],
818*da0073e9SAndroid Build Coastguard Worker        labels = labels,
819*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
820*da0073e9SAndroid Build Coastguard Worker            (
821*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
822*da0073e9SAndroid Build Coastguard Worker                [
823*da0073e9SAndroid Build Coastguard Worker                    "-mavx512f",
824*da0073e9SAndroid Build Coastguard Worker                    "-mavx512cd",
825*da0073e9SAndroid Build Coastguard Worker                    "-mavx512bw",
826*da0073e9SAndroid Build Coastguard Worker                    "-mavx512dq",
827*da0073e9SAndroid Build Coastguard Worker                    "-mavx512vl",
828*da0073e9SAndroid Build Coastguard Worker                    "-mavx512vnni",
829*da0073e9SAndroid Build Coastguard Worker                ],
830*da0073e9SAndroid Build Coastguard Worker            ),
831*da0073e9SAndroid Build Coastguard Worker        ],
832*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
833*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
834*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
835*da0073e9SAndroid Build Coastguard Worker        ],
836*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
837*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mavx"],
838*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + ["-mavx"],
839*da0073e9SAndroid Build Coastguard Worker        windows_srcs = PROD_AVX512VNNI_MICROKERNEL_SRCS,
840*da0073e9SAndroid Build Coastguard Worker        deps = [
841*da0073e9SAndroid Build Coastguard Worker            ":interface",
842*da0073e9SAndroid Build Coastguard Worker        ],
843*da0073e9SAndroid Build Coastguard Worker    )
844*da0073e9SAndroid Build Coastguard Worker
845*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
846*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_avxvnni",
847*da0073e9SAndroid Build Coastguard Worker        srcs = PROD_AVXVNNI_MICROKERNEL_SRCS if is_arvr_mode() else [],
848*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
849*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
850*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
851*da0073e9SAndroid Build Coastguard Worker        ]),
852*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
853*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
854*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
855*da0073e9SAndroid Build Coastguard Worker            "-O2",
856*da0073e9SAndroid Build Coastguard Worker            "-mavxvnni",
857*da0073e9SAndroid Build Coastguard Worker            "-mf16c",
858*da0073e9SAndroid Build Coastguard Worker            "-mfma",
859*da0073e9SAndroid Build Coastguard Worker        ],
860*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
861*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
862*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
863*da0073e9SAndroid Build Coastguard Worker        ],
864*da0073e9SAndroid Build Coastguard Worker        labels = labels,
865*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
866*da0073e9SAndroid Build Coastguard Worker            (
867*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
868*da0073e9SAndroid Build Coastguard Worker                [
869*da0073e9SAndroid Build Coastguard Worker                    "-mavx2",
870*da0073e9SAndroid Build Coastguard Worker                    "-mavxvnni",
871*da0073e9SAndroid Build Coastguard Worker                    "-mf16c",
872*da0073e9SAndroid Build Coastguard Worker                    "-mfma",
873*da0073e9SAndroid Build Coastguard Worker                ],
874*da0073e9SAndroid Build Coastguard Worker            ),
875*da0073e9SAndroid Build Coastguard Worker        ],
876*da0073e9SAndroid Build Coastguard Worker        platform_srcs = ([
877*da0073e9SAndroid Build Coastguard Worker            (
878*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
879*da0073e9SAndroid Build Coastguard Worker                PROD_AVXVNNI_MICROKERNEL_SRCS,
880*da0073e9SAndroid Build Coastguard Worker            ),
881*da0073e9SAndroid Build Coastguard Worker        ] if not is_arvr_mode() else []),
882*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
883*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
884*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
885*da0073e9SAndroid Build Coastguard Worker        ],
886*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
887*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mavx"],
888*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + ["-mavx"],
889*da0073e9SAndroid Build Coastguard Worker        deps = [
890*da0073e9SAndroid Build Coastguard Worker            ":interface",
891*da0073e9SAndroid Build Coastguard Worker        ],
892*da0073e9SAndroid Build Coastguard Worker    )
893*da0073e9SAndroid Build Coastguard Worker
894*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
895*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_avxvnni_ovr_win32",
896*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
897*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
898*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
899*da0073e9SAndroid Build Coastguard Worker        ]),
900*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
901*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
902*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
903*da0073e9SAndroid Build Coastguard Worker            "-O2",
904*da0073e9SAndroid Build Coastguard Worker        ],
905*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
906*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
907*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
908*da0073e9SAndroid Build Coastguard Worker        ],
909*da0073e9SAndroid Build Coastguard Worker        labels = labels,
910*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
911*da0073e9SAndroid Build Coastguard Worker            (
912*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
913*da0073e9SAndroid Build Coastguard Worker                [
914*da0073e9SAndroid Build Coastguard Worker                    "-mavx2",
915*da0073e9SAndroid Build Coastguard Worker                    "-mavxvnni",
916*da0073e9SAndroid Build Coastguard Worker                ],
917*da0073e9SAndroid Build Coastguard Worker            ),
918*da0073e9SAndroid Build Coastguard Worker        ],
919*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
920*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
921*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
922*da0073e9SAndroid Build Coastguard Worker        ],
923*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
924*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mavx"],
925*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + ["-mavx"],
926*da0073e9SAndroid Build Coastguard Worker        windows_srcs = PROD_AVXVNNI_MICROKERNEL_SRCS,
927*da0073e9SAndroid Build Coastguard Worker        deps = [
928*da0073e9SAndroid Build Coastguard Worker            ":interface",
929*da0073e9SAndroid Build Coastguard Worker        ],
930*da0073e9SAndroid Build Coastguard Worker    )
931*da0073e9SAndroid Build Coastguard Worker
932*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
933*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_f16c",
934*da0073e9SAndroid Build Coastguard Worker        srcs = PROD_F16C_MICROKERNEL_SRCS if is_arvr_mode() else [],
935*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
936*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
937*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
938*da0073e9SAndroid Build Coastguard Worker        ]),
939*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
940*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
941*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
942*da0073e9SAndroid Build Coastguard Worker            "-O2",
943*da0073e9SAndroid Build Coastguard Worker        ] + select({
944*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
945*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:x86_32": [
946*da0073e9SAndroid Build Coastguard Worker                "-mf16c",
947*da0073e9SAndroid Build Coastguard Worker            ],
948*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:x86_64": [
949*da0073e9SAndroid Build Coastguard Worker                "-mf16c",
950*da0073e9SAndroid Build Coastguard Worker            ],
951*da0073e9SAndroid Build Coastguard Worker        }),
952*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
953*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
954*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
955*da0073e9SAndroid Build Coastguard Worker        ],
956*da0073e9SAndroid Build Coastguard Worker        labels = labels,
957*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
958*da0073e9SAndroid Build Coastguard Worker            (
959*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
960*da0073e9SAndroid Build Coastguard Worker                [
961*da0073e9SAndroid Build Coastguard Worker                    "-mf16c",
962*da0073e9SAndroid Build Coastguard Worker                ],
963*da0073e9SAndroid Build Coastguard Worker            ),
964*da0073e9SAndroid Build Coastguard Worker        ],
965*da0073e9SAndroid Build Coastguard Worker        platform_srcs = ([
966*da0073e9SAndroid Build Coastguard Worker            (
967*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
968*da0073e9SAndroid Build Coastguard Worker                PROD_F16C_MICROKERNEL_SRCS,
969*da0073e9SAndroid Build Coastguard Worker            ),
970*da0073e9SAndroid Build Coastguard Worker        ] if not is_arvr_mode() else []),
971*da0073e9SAndroid Build Coastguard Worker        platforms = (APPLE, ANDROID, CXX, WINDOWS),
972*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
973*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
974*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
975*da0073e9SAndroid Build Coastguard Worker        ],
976*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
977*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mf16c"],
978*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + ["-mf16c"],
979*da0073e9SAndroid Build Coastguard Worker        deps = [
980*da0073e9SAndroid Build Coastguard Worker            ":interface",
981*da0073e9SAndroid Build Coastguard Worker        ],
982*da0073e9SAndroid Build Coastguard Worker    )
983*da0073e9SAndroid Build Coastguard Worker
984*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
985*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_f16c_ovr_win32",
986*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
987*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
988*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
989*da0073e9SAndroid Build Coastguard Worker        ]),
990*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
991*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
992*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
993*da0073e9SAndroid Build Coastguard Worker            "-O2",
994*da0073e9SAndroid Build Coastguard Worker            "-mf16c",
995*da0073e9SAndroid Build Coastguard Worker        ],
996*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
997*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
998*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
999*da0073e9SAndroid Build Coastguard Worker        ],
1000*da0073e9SAndroid Build Coastguard Worker        labels = labels,
1001*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
1002*da0073e9SAndroid Build Coastguard Worker            (
1003*da0073e9SAndroid Build Coastguard Worker                "x86",
1004*da0073e9SAndroid Build Coastguard Worker                [
1005*da0073e9SAndroid Build Coastguard Worker                    "-mf16c",
1006*da0073e9SAndroid Build Coastguard Worker                ],
1007*da0073e9SAndroid Build Coastguard Worker            ),
1008*da0073e9SAndroid Build Coastguard Worker        ],
1009*da0073e9SAndroid Build Coastguard Worker        platforms = (APPLE, ANDROID, CXX, WINDOWS),
1010*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
1011*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
1012*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
1013*da0073e9SAndroid Build Coastguard Worker        ],
1014*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
1015*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mf16c"],
1016*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + ["-mf16c"],
1017*da0073e9SAndroid Build Coastguard Worker        windows_srcs = PROD_F16C_MICROKERNEL_SRCS,
1018*da0073e9SAndroid Build Coastguard Worker        deps = [
1019*da0073e9SAndroid Build Coastguard Worker            ":interface",
1020*da0073e9SAndroid Build Coastguard Worker        ],
1021*da0073e9SAndroid Build Coastguard Worker    )
1022*da0073e9SAndroid Build Coastguard Worker
1023*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
1024*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_xop",
1025*da0073e9SAndroid Build Coastguard Worker        srcs = PROD_XOP_MICROKERNEL_SRCS if is_arvr_mode() else [],
1026*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
1027*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
1028*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
1029*da0073e9SAndroid Build Coastguard Worker        ]),
1030*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
1031*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
1032*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
1033*da0073e9SAndroid Build Coastguard Worker            "-O2",
1034*da0073e9SAndroid Build Coastguard Worker        ] + select({
1035*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
1036*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:x86_32": [
1037*da0073e9SAndroid Build Coastguard Worker                "-mxop",
1038*da0073e9SAndroid Build Coastguard Worker            ],
1039*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:x86_64": [
1040*da0073e9SAndroid Build Coastguard Worker                "-mxop",
1041*da0073e9SAndroid Build Coastguard Worker            ],
1042*da0073e9SAndroid Build Coastguard Worker        }),
1043*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
1044*da0073e9SAndroid Build Coastguard Worker            (
1045*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
1046*da0073e9SAndroid Build Coastguard Worker                [
1047*da0073e9SAndroid Build Coastguard Worker                    "-mxop",
1048*da0073e9SAndroid Build Coastguard Worker                ],
1049*da0073e9SAndroid Build Coastguard Worker            ),
1050*da0073e9SAndroid Build Coastguard Worker        ],
1051*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
1052*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
1053*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
1054*da0073e9SAndroid Build Coastguard Worker        ],
1055*da0073e9SAndroid Build Coastguard Worker        labels = labels,
1056*da0073e9SAndroid Build Coastguard Worker        platform_preprocessor_flags = [
1057*da0073e9SAndroid Build Coastguard Worker            (
1058*da0073e9SAndroid Build Coastguard Worker                "windows-x86_64",
1059*da0073e9SAndroid Build Coastguard Worker                [
1060*da0073e9SAndroid Build Coastguard Worker                    "-Drestrict=",
1061*da0073e9SAndroid Build Coastguard Worker                ],
1062*da0073e9SAndroid Build Coastguard Worker            ),
1063*da0073e9SAndroid Build Coastguard Worker        ],
1064*da0073e9SAndroid Build Coastguard Worker        platform_srcs = ([
1065*da0073e9SAndroid Build Coastguard Worker            (
1066*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
1067*da0073e9SAndroid Build Coastguard Worker                PROD_XOP_MICROKERNEL_SRCS,
1068*da0073e9SAndroid Build Coastguard Worker            ),
1069*da0073e9SAndroid Build Coastguard Worker        ] if not is_arvr_mode() else []),
1070*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
1071*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
1072*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
1073*da0073e9SAndroid Build Coastguard Worker        ],
1074*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
1075*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mxop"],
1076*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + ["-mxop"],
1077*da0073e9SAndroid Build Coastguard Worker        deps = [
1078*da0073e9SAndroid Build Coastguard Worker            ":interface",
1079*da0073e9SAndroid Build Coastguard Worker        ],
1080*da0073e9SAndroid Build Coastguard Worker    )
1081*da0073e9SAndroid Build Coastguard Worker
1082*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
1083*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_xop_ovr_win32",
1084*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
1085*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
1086*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
1087*da0073e9SAndroid Build Coastguard Worker        ]),
1088*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
1089*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
1090*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
1091*da0073e9SAndroid Build Coastguard Worker            "-O2",
1092*da0073e9SAndroid Build Coastguard Worker            "-mxop",
1093*da0073e9SAndroid Build Coastguard Worker        ],
1094*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
1095*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
1096*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
1097*da0073e9SAndroid Build Coastguard Worker        ],
1098*da0073e9SAndroid Build Coastguard Worker        labels = labels,
1099*da0073e9SAndroid Build Coastguard Worker        platform_preprocessor_flags = [
1100*da0073e9SAndroid Build Coastguard Worker            (
1101*da0073e9SAndroid Build Coastguard Worker                "windows-x86_64",
1102*da0073e9SAndroid Build Coastguard Worker                [
1103*da0073e9SAndroid Build Coastguard Worker                    "-Drestrict=",
1104*da0073e9SAndroid Build Coastguard Worker                ],
1105*da0073e9SAndroid Build Coastguard Worker            ),
1106*da0073e9SAndroid Build Coastguard Worker        ],
1107*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
1108*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
1109*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
1110*da0073e9SAndroid Build Coastguard Worker        ],
1111*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
1112*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mxop"],
1113*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + ["-mxop"],
1114*da0073e9SAndroid Build Coastguard Worker        windows_srcs = PROD_XOP_MICROKERNEL_SRCS,
1115*da0073e9SAndroid Build Coastguard Worker        deps = [
1116*da0073e9SAndroid Build Coastguard Worker            ":interface",
1117*da0073e9SAndroid Build Coastguard Worker        ],
1118*da0073e9SAndroid Build Coastguard Worker    )
1119*da0073e9SAndroid Build Coastguard Worker
1120*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
1121*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_fma3",
1122*da0073e9SAndroid Build Coastguard Worker        srcs = PROD_FMA3_MICROKERNEL_SRCS if is_arvr_mode() else [],
1123*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
1124*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
1125*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
1126*da0073e9SAndroid Build Coastguard Worker        ]),
1127*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
1128*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
1129*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
1130*da0073e9SAndroid Build Coastguard Worker            "-O2",
1131*da0073e9SAndroid Build Coastguard Worker        ] + select({
1132*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
1133*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:x86_32": [
1134*da0073e9SAndroid Build Coastguard Worker                "-mfma",
1135*da0073e9SAndroid Build Coastguard Worker                "-mf16c",
1136*da0073e9SAndroid Build Coastguard Worker            ],
1137*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:x86_64": [
1138*da0073e9SAndroid Build Coastguard Worker                "-mfma",
1139*da0073e9SAndroid Build Coastguard Worker                "-mf16c",
1140*da0073e9SAndroid Build Coastguard Worker            ],
1141*da0073e9SAndroid Build Coastguard Worker        }),
1142*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
1143*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
1144*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
1145*da0073e9SAndroid Build Coastguard Worker        ],
1146*da0073e9SAndroid Build Coastguard Worker        labels = labels,
1147*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
1148*da0073e9SAndroid Build Coastguard Worker            (
1149*da0073e9SAndroid Build Coastguard Worker                "(i[3-6]86|x86|x86_64|AMD64)",
1150*da0073e9SAndroid Build Coastguard Worker                [
1151*da0073e9SAndroid Build Coastguard Worker                    "-mfma",
1152*da0073e9SAndroid Build Coastguard Worker                    "-mf16c",
1153*da0073e9SAndroid Build Coastguard Worker                ],
1154*da0073e9SAndroid Build Coastguard Worker            ),
1155*da0073e9SAndroid Build Coastguard Worker        ],
1156*da0073e9SAndroid Build Coastguard Worker        platform_srcs = ([
1157*da0073e9SAndroid Build Coastguard Worker            (
1158*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
1159*da0073e9SAndroid Build Coastguard Worker                PROD_FMA3_MICROKERNEL_SRCS,
1160*da0073e9SAndroid Build Coastguard Worker            ),
1161*da0073e9SAndroid Build Coastguard Worker        ] if not is_arvr_mode() else []),
1162*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
1163*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
1164*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
1165*da0073e9SAndroid Build Coastguard Worker        ],
1166*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
1167*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + [
1168*da0073e9SAndroid Build Coastguard Worker            "-mfma",
1169*da0073e9SAndroid Build Coastguard Worker            "-mf16c",
1170*da0073e9SAndroid Build Coastguard Worker        ],
1171*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + [
1172*da0073e9SAndroid Build Coastguard Worker            "-mfma",
1173*da0073e9SAndroid Build Coastguard Worker            "-mf16c",
1174*da0073e9SAndroid Build Coastguard Worker        ],
1175*da0073e9SAndroid Build Coastguard Worker        deps = [
1176*da0073e9SAndroid Build Coastguard Worker            ":interface",
1177*da0073e9SAndroid Build Coastguard Worker        ],
1178*da0073e9SAndroid Build Coastguard Worker    )
1179*da0073e9SAndroid Build Coastguard Worker
1180*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
1181*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_fma3_ovr_win32",
1182*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
1183*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
1184*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
1185*da0073e9SAndroid Build Coastguard Worker        ]),
1186*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
1187*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
1188*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
1189*da0073e9SAndroid Build Coastguard Worker            "-O2",
1190*da0073e9SAndroid Build Coastguard Worker            "-mfma",
1191*da0073e9SAndroid Build Coastguard Worker            "-mf16c",
1192*da0073e9SAndroid Build Coastguard Worker        ],
1193*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
1194*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
1195*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
1196*da0073e9SAndroid Build Coastguard Worker        ],
1197*da0073e9SAndroid Build Coastguard Worker        labels = labels,
1198*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
1199*da0073e9SAndroid Build Coastguard Worker            (
1200*da0073e9SAndroid Build Coastguard Worker                "^(i[3-6]86|x86|x86_64|AMD64)$",
1201*da0073e9SAndroid Build Coastguard Worker                [
1202*da0073e9SAndroid Build Coastguard Worker                    "-mfma",
1203*da0073e9SAndroid Build Coastguard Worker                    "-mf16c",
1204*da0073e9SAndroid Build Coastguard Worker                ],
1205*da0073e9SAndroid Build Coastguard Worker            ),
1206*da0073e9SAndroid Build Coastguard Worker        ],
1207*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
1208*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
1209*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
1210*da0073e9SAndroid Build Coastguard Worker        ],
1211*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
1212*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + [
1213*da0073e9SAndroid Build Coastguard Worker            "-mfma",
1214*da0073e9SAndroid Build Coastguard Worker            "-mf16c",
1215*da0073e9SAndroid Build Coastguard Worker        ],
1216*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + [
1217*da0073e9SAndroid Build Coastguard Worker            "-mfma",
1218*da0073e9SAndroid Build Coastguard Worker            "-mf16c",
1219*da0073e9SAndroid Build Coastguard Worker        ],
1220*da0073e9SAndroid Build Coastguard Worker        windows_srcs = PROD_FMA3_MICROKERNEL_SRCS,
1221*da0073e9SAndroid Build Coastguard Worker        deps = [
1222*da0073e9SAndroid Build Coastguard Worker            ":interface",
1223*da0073e9SAndroid Build Coastguard Worker        ],
1224*da0073e9SAndroid Build Coastguard Worker    )
1225*da0073e9SAndroid Build Coastguard Worker
1226*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
1227*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_avx2",
1228*da0073e9SAndroid Build Coastguard Worker        srcs = PROD_AVX2_MICROKERNEL_SRCS if is_arvr_mode() else [],
1229*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
1230*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
1231*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
1232*da0073e9SAndroid Build Coastguard Worker        ]),
1233*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
1234*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
1235*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
1236*da0073e9SAndroid Build Coastguard Worker            "-O2",
1237*da0073e9SAndroid Build Coastguard Worker        ] + select({
1238*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
1239*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:x86_32": [
1240*da0073e9SAndroid Build Coastguard Worker                "-mavx2",
1241*da0073e9SAndroid Build Coastguard Worker                "-mfma",
1242*da0073e9SAndroid Build Coastguard Worker                "-mf16c",
1243*da0073e9SAndroid Build Coastguard Worker            ],
1244*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:x86_64": [
1245*da0073e9SAndroid Build Coastguard Worker                "-mavx2",
1246*da0073e9SAndroid Build Coastguard Worker                "-mfma",
1247*da0073e9SAndroid Build Coastguard Worker                "-mf16c",
1248*da0073e9SAndroid Build Coastguard Worker            ],
1249*da0073e9SAndroid Build Coastguard Worker        }),
1250*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
1251*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
1252*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
1253*da0073e9SAndroid Build Coastguard Worker        ],
1254*da0073e9SAndroid Build Coastguard Worker        labels = labels,
1255*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
1256*da0073e9SAndroid Build Coastguard Worker            (
1257*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
1258*da0073e9SAndroid Build Coastguard Worker                [
1259*da0073e9SAndroid Build Coastguard Worker                    "-mavx2",
1260*da0073e9SAndroid Build Coastguard Worker                    "-mfma",
1261*da0073e9SAndroid Build Coastguard Worker                    "-mf16c",
1262*da0073e9SAndroid Build Coastguard Worker                ],
1263*da0073e9SAndroid Build Coastguard Worker            ),
1264*da0073e9SAndroid Build Coastguard Worker        ],
1265*da0073e9SAndroid Build Coastguard Worker        platform_srcs = ([
1266*da0073e9SAndroid Build Coastguard Worker            (
1267*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
1268*da0073e9SAndroid Build Coastguard Worker                PROD_AVX2_MICROKERNEL_SRCS,
1269*da0073e9SAndroid Build Coastguard Worker            ),
1270*da0073e9SAndroid Build Coastguard Worker        ] if not is_arvr_mode() else []),
1271*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
1272*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
1273*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
1274*da0073e9SAndroid Build Coastguard Worker        ],
1275*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
1276*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + [
1277*da0073e9SAndroid Build Coastguard Worker            "-mavx2",
1278*da0073e9SAndroid Build Coastguard Worker            "-mfma",
1279*da0073e9SAndroid Build Coastguard Worker            "-mf16c",
1280*da0073e9SAndroid Build Coastguard Worker        ],
1281*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + [
1282*da0073e9SAndroid Build Coastguard Worker            "-mavx2",
1283*da0073e9SAndroid Build Coastguard Worker            "-mfma",
1284*da0073e9SAndroid Build Coastguard Worker            "-mf16c",
1285*da0073e9SAndroid Build Coastguard Worker        ],
1286*da0073e9SAndroid Build Coastguard Worker        deps = [
1287*da0073e9SAndroid Build Coastguard Worker            ":interface",
1288*da0073e9SAndroid Build Coastguard Worker        ],
1289*da0073e9SAndroid Build Coastguard Worker    )
1290*da0073e9SAndroid Build Coastguard Worker
1291*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
1292*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_avx2_ovr_win32",
1293*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
1294*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
1295*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
1296*da0073e9SAndroid Build Coastguard Worker        ]),
1297*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
1298*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
1299*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
1300*da0073e9SAndroid Build Coastguard Worker            "-O2",
1301*da0073e9SAndroid Build Coastguard Worker            "-mavx2",
1302*da0073e9SAndroid Build Coastguard Worker            "-mfma",
1303*da0073e9SAndroid Build Coastguard Worker            "-mf16c",
1304*da0073e9SAndroid Build Coastguard Worker        ],
1305*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
1306*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
1307*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
1308*da0073e9SAndroid Build Coastguard Worker        ],
1309*da0073e9SAndroid Build Coastguard Worker        labels = labels,
1310*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
1311*da0073e9SAndroid Build Coastguard Worker            (
1312*da0073e9SAndroid Build Coastguard Worker                "x86",
1313*da0073e9SAndroid Build Coastguard Worker                [
1314*da0073e9SAndroid Build Coastguard Worker                    "-mavx2",
1315*da0073e9SAndroid Build Coastguard Worker                    "-mfma",
1316*da0073e9SAndroid Build Coastguard Worker                    "-mf16c",
1317*da0073e9SAndroid Build Coastguard Worker                ],
1318*da0073e9SAndroid Build Coastguard Worker            ),
1319*da0073e9SAndroid Build Coastguard Worker        ],
1320*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
1321*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
1322*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
1323*da0073e9SAndroid Build Coastguard Worker        ],
1324*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
1325*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + [
1326*da0073e9SAndroid Build Coastguard Worker            "-mavx2",
1327*da0073e9SAndroid Build Coastguard Worker            "-mfma",
1328*da0073e9SAndroid Build Coastguard Worker            "-mf16c",
1329*da0073e9SAndroid Build Coastguard Worker        ],
1330*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + [
1331*da0073e9SAndroid Build Coastguard Worker            "-mavx2",
1332*da0073e9SAndroid Build Coastguard Worker            "-mfma",
1333*da0073e9SAndroid Build Coastguard Worker            "-mf16c",
1334*da0073e9SAndroid Build Coastguard Worker        ],
1335*da0073e9SAndroid Build Coastguard Worker        windows_srcs = PROD_AVX2_MICROKERNEL_SRCS,
1336*da0073e9SAndroid Build Coastguard Worker        deps = [
1337*da0073e9SAndroid Build Coastguard Worker            ":interface",
1338*da0073e9SAndroid Build Coastguard Worker        ],
1339*da0073e9SAndroid Build Coastguard Worker    )
1340*da0073e9SAndroid Build Coastguard Worker
1341*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
1342*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_avx512",
1343*da0073e9SAndroid Build Coastguard Worker        srcs = PROD_AVX512F_MICROKERNEL_SRCS if is_arvr_mode() else [],
1344*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
1345*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
1346*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
1347*da0073e9SAndroid Build Coastguard Worker        ]),
1348*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
1349*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
1350*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
1351*da0073e9SAndroid Build Coastguard Worker            "-O2",
1352*da0073e9SAndroid Build Coastguard Worker        ] + select({
1353*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
1354*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:x86_32": [
1355*da0073e9SAndroid Build Coastguard Worker                "-mavx512f",
1356*da0073e9SAndroid Build Coastguard Worker            ],
1357*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:x86_64": [
1358*da0073e9SAndroid Build Coastguard Worker                "-mavx512f",
1359*da0073e9SAndroid Build Coastguard Worker            ],
1360*da0073e9SAndroid Build Coastguard Worker        }),
1361*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
1362*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
1363*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
1364*da0073e9SAndroid Build Coastguard Worker        ],
1365*da0073e9SAndroid Build Coastguard Worker        labels = labels,
1366*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
1367*da0073e9SAndroid Build Coastguard Worker            (
1368*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
1369*da0073e9SAndroid Build Coastguard Worker                [
1370*da0073e9SAndroid Build Coastguard Worker                    "-mavx512f",
1371*da0073e9SAndroid Build Coastguard Worker                ],
1372*da0073e9SAndroid Build Coastguard Worker            ),
1373*da0073e9SAndroid Build Coastguard Worker        ],
1374*da0073e9SAndroid Build Coastguard Worker        platform_srcs = ([
1375*da0073e9SAndroid Build Coastguard Worker            (
1376*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
1377*da0073e9SAndroid Build Coastguard Worker                PROD_AVX512F_MICROKERNEL_SRCS,
1378*da0073e9SAndroid Build Coastguard Worker            ),
1379*da0073e9SAndroid Build Coastguard Worker        ] if not is_arvr_mode() else []),
1380*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
1381*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
1382*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
1383*da0073e9SAndroid Build Coastguard Worker        ],
1384*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
1385*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mavx512f"],
1386*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + ["-mavx512f"],
1387*da0073e9SAndroid Build Coastguard Worker        deps = [
1388*da0073e9SAndroid Build Coastguard Worker            ":interface",
1389*da0073e9SAndroid Build Coastguard Worker        ],
1390*da0073e9SAndroid Build Coastguard Worker    )
1391*da0073e9SAndroid Build Coastguard Worker
1392*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
1393*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_avx512vbmi",
1394*da0073e9SAndroid Build Coastguard Worker        srcs = PROD_AVX512VBMI_MICROKERNEL_SRCS if is_arvr_mode() else [],
1395*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
1396*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
1397*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
1398*da0073e9SAndroid Build Coastguard Worker        ]),
1399*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
1400*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
1401*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
1402*da0073e9SAndroid Build Coastguard Worker            "-O2",
1403*da0073e9SAndroid Build Coastguard Worker        ] + select({
1404*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
1405*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:x86_32": [
1406*da0073e9SAndroid Build Coastguard Worker                "-mavx512f",
1407*da0073e9SAndroid Build Coastguard Worker                "-mavx512cd",
1408*da0073e9SAndroid Build Coastguard Worker                "-mavx512bw",
1409*da0073e9SAndroid Build Coastguard Worker                "-mavx512dq",
1410*da0073e9SAndroid Build Coastguard Worker                "-mavx512vl",
1411*da0073e9SAndroid Build Coastguard Worker                "-mavx512vbmi",
1412*da0073e9SAndroid Build Coastguard Worker            ],
1413*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:x86_64": [
1414*da0073e9SAndroid Build Coastguard Worker                "-mavx512f",
1415*da0073e9SAndroid Build Coastguard Worker                "-mavx512cd",
1416*da0073e9SAndroid Build Coastguard Worker                "-mavx512bw",
1417*da0073e9SAndroid Build Coastguard Worker                "-mavx512dq",
1418*da0073e9SAndroid Build Coastguard Worker                "-mavx512vl",
1419*da0073e9SAndroid Build Coastguard Worker                "-mavx512vbmi",
1420*da0073e9SAndroid Build Coastguard Worker            ],
1421*da0073e9SAndroid Build Coastguard Worker        }),
1422*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
1423*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
1424*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
1425*da0073e9SAndroid Build Coastguard Worker        ],
1426*da0073e9SAndroid Build Coastguard Worker        labels = labels,
1427*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
1428*da0073e9SAndroid Build Coastguard Worker            (
1429*da0073e9SAndroid Build Coastguard Worker                "(i[3-6]86|x86|x86_64|AMD64)",
1430*da0073e9SAndroid Build Coastguard Worker                [
1431*da0073e9SAndroid Build Coastguard Worker                    "-mavx512f",
1432*da0073e9SAndroid Build Coastguard Worker                    "-mavx512cd",
1433*da0073e9SAndroid Build Coastguard Worker                    "-mavx512bw",
1434*da0073e9SAndroid Build Coastguard Worker                    "-mavx512dq",
1435*da0073e9SAndroid Build Coastguard Worker                    "-mavx512vl",
1436*da0073e9SAndroid Build Coastguard Worker                    "-mavx512vbmi",
1437*da0073e9SAndroid Build Coastguard Worker                ],
1438*da0073e9SAndroid Build Coastguard Worker            ),
1439*da0073e9SAndroid Build Coastguard Worker        ],
1440*da0073e9SAndroid Build Coastguard Worker        platform_srcs = ([
1441*da0073e9SAndroid Build Coastguard Worker            (
1442*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
1443*da0073e9SAndroid Build Coastguard Worker                PROD_AVX512VBMI_MICROKERNEL_SRCS,
1444*da0073e9SAndroid Build Coastguard Worker            ),
1445*da0073e9SAndroid Build Coastguard Worker        ] if not is_arvr_mode() else []),
1446*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
1447*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
1448*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
1449*da0073e9SAndroid Build Coastguard Worker        ],
1450*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
1451*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + [
1452*da0073e9SAndroid Build Coastguard Worker            "-mavx512f",
1453*da0073e9SAndroid Build Coastguard Worker            "-mavx512cd",
1454*da0073e9SAndroid Build Coastguard Worker            "-mavx512bw",
1455*da0073e9SAndroid Build Coastguard Worker            "-mavx512dq",
1456*da0073e9SAndroid Build Coastguard Worker            "-mavx512vl",
1457*da0073e9SAndroid Build Coastguard Worker            "-mavx512vbmi",
1458*da0073e9SAndroid Build Coastguard Worker        ],
1459*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + [
1460*da0073e9SAndroid Build Coastguard Worker            "-mavx512f",
1461*da0073e9SAndroid Build Coastguard Worker            "-mavx512cd",
1462*da0073e9SAndroid Build Coastguard Worker            "-mavx512bw",
1463*da0073e9SAndroid Build Coastguard Worker            "-mavx512dq",
1464*da0073e9SAndroid Build Coastguard Worker            "-mavx512vl",
1465*da0073e9SAndroid Build Coastguard Worker            "-mavx512vbmi",
1466*da0073e9SAndroid Build Coastguard Worker        ],
1467*da0073e9SAndroid Build Coastguard Worker        deps = [
1468*da0073e9SAndroid Build Coastguard Worker            ":interface",
1469*da0073e9SAndroid Build Coastguard Worker        ],
1470*da0073e9SAndroid Build Coastguard Worker    )
1471*da0073e9SAndroid Build Coastguard Worker
1472*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
1473*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_avx512_ovr_win32",
1474*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
1475*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
1476*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
1477*da0073e9SAndroid Build Coastguard Worker        ]),
1478*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
1479*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
1480*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
1481*da0073e9SAndroid Build Coastguard Worker            "-O2",
1482*da0073e9SAndroid Build Coastguard Worker            "-mavx512f",
1483*da0073e9SAndroid Build Coastguard Worker        ],
1484*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
1485*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
1486*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
1487*da0073e9SAndroid Build Coastguard Worker        ],
1488*da0073e9SAndroid Build Coastguard Worker        labels = labels,
1489*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
1490*da0073e9SAndroid Build Coastguard Worker            (
1491*da0073e9SAndroid Build Coastguard Worker                "x86",
1492*da0073e9SAndroid Build Coastguard Worker                [
1493*da0073e9SAndroid Build Coastguard Worker                    "-mavx512f",
1494*da0073e9SAndroid Build Coastguard Worker                ],
1495*da0073e9SAndroid Build Coastguard Worker            ),
1496*da0073e9SAndroid Build Coastguard Worker        ],
1497*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
1498*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
1499*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
1500*da0073e9SAndroid Build Coastguard Worker        ],
1501*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
1502*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mavx512f"],
1503*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + ["-mavx512f"],
1504*da0073e9SAndroid Build Coastguard Worker        windows_srcs = PROD_AVX512F_MICROKERNEL_SRCS,
1505*da0073e9SAndroid Build Coastguard Worker        deps = [
1506*da0073e9SAndroid Build Coastguard Worker            ":interface",
1507*da0073e9SAndroid Build Coastguard Worker        ],
1508*da0073e9SAndroid Build Coastguard Worker    )
1509*da0073e9SAndroid Build Coastguard Worker
1510*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
1511*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_avx512skx",
1512*da0073e9SAndroid Build Coastguard Worker        srcs = PROD_AVX512SKX_MICROKERNEL_SRCS if is_arvr_mode() else [],
1513*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
1514*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
1515*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
1516*da0073e9SAndroid Build Coastguard Worker        ]),
1517*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
1518*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
1519*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
1520*da0073e9SAndroid Build Coastguard Worker            "-O2",
1521*da0073e9SAndroid Build Coastguard Worker        ] + select({
1522*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
1523*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:x86_32": [
1524*da0073e9SAndroid Build Coastguard Worker                "-mavx512f",
1525*da0073e9SAndroid Build Coastguard Worker                "-mavx512cd",
1526*da0073e9SAndroid Build Coastguard Worker                "-mavx512bw",
1527*da0073e9SAndroid Build Coastguard Worker                "-mavx512dq",
1528*da0073e9SAndroid Build Coastguard Worker                "-mavx512vl",
1529*da0073e9SAndroid Build Coastguard Worker            ],
1530*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:x86_64": [
1531*da0073e9SAndroid Build Coastguard Worker                "-mavx512f",
1532*da0073e9SAndroid Build Coastguard Worker                "-mavx512cd",
1533*da0073e9SAndroid Build Coastguard Worker                "-mavx512bw",
1534*da0073e9SAndroid Build Coastguard Worker                "-mavx512dq",
1535*da0073e9SAndroid Build Coastguard Worker                "-mavx512vl",
1536*da0073e9SAndroid Build Coastguard Worker            ],
1537*da0073e9SAndroid Build Coastguard Worker        }),
1538*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
1539*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
1540*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
1541*da0073e9SAndroid Build Coastguard Worker        ],
1542*da0073e9SAndroid Build Coastguard Worker        labels = labels,
1543*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
1544*da0073e9SAndroid Build Coastguard Worker            (
1545*da0073e9SAndroid Build Coastguard Worker                "(i[3-6]86|x86|x86_64|AMD64)",
1546*da0073e9SAndroid Build Coastguard Worker                [
1547*da0073e9SAndroid Build Coastguard Worker                    "-mavx512f",
1548*da0073e9SAndroid Build Coastguard Worker                    "-mavx512cd",
1549*da0073e9SAndroid Build Coastguard Worker                    "-mavx512bw",
1550*da0073e9SAndroid Build Coastguard Worker                    "-mavx512dq",
1551*da0073e9SAndroid Build Coastguard Worker                    "-mavx512vl",
1552*da0073e9SAndroid Build Coastguard Worker                ],
1553*da0073e9SAndroid Build Coastguard Worker            ),
1554*da0073e9SAndroid Build Coastguard Worker        ],
1555*da0073e9SAndroid Build Coastguard Worker        platform_srcs = ([
1556*da0073e9SAndroid Build Coastguard Worker            (
1557*da0073e9SAndroid Build Coastguard Worker                "x86|x86_64|platform009|platform010",
1558*da0073e9SAndroid Build Coastguard Worker                PROD_AVX512SKX_MICROKERNEL_SRCS,
1559*da0073e9SAndroid Build Coastguard Worker            ),
1560*da0073e9SAndroid Build Coastguard Worker        ] if not is_arvr_mode() else []),
1561*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
1562*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
1563*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
1564*da0073e9SAndroid Build Coastguard Worker        ],
1565*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
1566*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + [
1567*da0073e9SAndroid Build Coastguard Worker            "-mavx512f",
1568*da0073e9SAndroid Build Coastguard Worker            "-mavx512cd",
1569*da0073e9SAndroid Build Coastguard Worker            "-mavx512bw",
1570*da0073e9SAndroid Build Coastguard Worker            "-mavx512dq",
1571*da0073e9SAndroid Build Coastguard Worker            "-mavx512vl",
1572*da0073e9SAndroid Build Coastguard Worker        ],
1573*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + [
1574*da0073e9SAndroid Build Coastguard Worker            "-mavx512f",
1575*da0073e9SAndroid Build Coastguard Worker            "-mavx512cd",
1576*da0073e9SAndroid Build Coastguard Worker            "-mavx512bw",
1577*da0073e9SAndroid Build Coastguard Worker            "-mavx512dq",
1578*da0073e9SAndroid Build Coastguard Worker            "-mavx512vl",
1579*da0073e9SAndroid Build Coastguard Worker        ],
1580*da0073e9SAndroid Build Coastguard Worker        deps = [
1581*da0073e9SAndroid Build Coastguard Worker            ":interface",
1582*da0073e9SAndroid Build Coastguard Worker        ],
1583*da0073e9SAndroid Build Coastguard Worker    )
1584*da0073e9SAndroid Build Coastguard Worker
1585*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
1586*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_avx512skx_ovr_win32",
1587*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
1588*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
1589*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
1590*da0073e9SAndroid Build Coastguard Worker        ]),
1591*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
1592*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
1593*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
1594*da0073e9SAndroid Build Coastguard Worker            "-O2",
1595*da0073e9SAndroid Build Coastguard Worker            "-mavx512f",
1596*da0073e9SAndroid Build Coastguard Worker            "-mavx512cd",
1597*da0073e9SAndroid Build Coastguard Worker            "-mavx512bw",
1598*da0073e9SAndroid Build Coastguard Worker            "-mavx512dq",
1599*da0073e9SAndroid Build Coastguard Worker            "-mavx512vl",
1600*da0073e9SAndroid Build Coastguard Worker        ],
1601*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
1602*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
1603*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
1604*da0073e9SAndroid Build Coastguard Worker        ],
1605*da0073e9SAndroid Build Coastguard Worker        labels = labels,
1606*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
1607*da0073e9SAndroid Build Coastguard Worker            (
1608*da0073e9SAndroid Build Coastguard Worker                "^(i[3-6]86|x86|x86_64|AMD64)$",
1609*da0073e9SAndroid Build Coastguard Worker                [
1610*da0073e9SAndroid Build Coastguard Worker                    "-mavx512f",
1611*da0073e9SAndroid Build Coastguard Worker                    "-mavx512cd",
1612*da0073e9SAndroid Build Coastguard Worker                    "-mavx512bw",
1613*da0073e9SAndroid Build Coastguard Worker                    "-mavx512dq",
1614*da0073e9SAndroid Build Coastguard Worker                    "-mavx512vl",
1615*da0073e9SAndroid Build Coastguard Worker                ],
1616*da0073e9SAndroid Build Coastguard Worker            ),
1617*da0073e9SAndroid Build Coastguard Worker        ],
1618*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
1619*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
1620*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
1621*da0073e9SAndroid Build Coastguard Worker        ],
1622*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
1623*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + [
1624*da0073e9SAndroid Build Coastguard Worker            "-mavx512f",
1625*da0073e9SAndroid Build Coastguard Worker            "-mavx512cd",
1626*da0073e9SAndroid Build Coastguard Worker            "-mavx512bw",
1627*da0073e9SAndroid Build Coastguard Worker            "-mavx512dq",
1628*da0073e9SAndroid Build Coastguard Worker            "-mavx512vl",
1629*da0073e9SAndroid Build Coastguard Worker        ],
1630*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS + [
1631*da0073e9SAndroid Build Coastguard Worker            "-mavx512f",
1632*da0073e9SAndroid Build Coastguard Worker            "-mavx512cd",
1633*da0073e9SAndroid Build Coastguard Worker            "-mavx512bw",
1634*da0073e9SAndroid Build Coastguard Worker            "-mavx512dq",
1635*da0073e9SAndroid Build Coastguard Worker            "-mavx512vl",
1636*da0073e9SAndroid Build Coastguard Worker        ],
1637*da0073e9SAndroid Build Coastguard Worker        windows_srcs = PROD_AVX512SKX_MICROKERNEL_SRCS,
1638*da0073e9SAndroid Build Coastguard Worker        deps = [
1639*da0073e9SAndroid Build Coastguard Worker            ":interface",
1640*da0073e9SAndroid Build Coastguard Worker        ],
1641*da0073e9SAndroid Build Coastguard Worker    )
1642*da0073e9SAndroid Build Coastguard Worker
1643*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
1644*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_armsimd32",
1645*da0073e9SAndroid Build Coastguard Worker        srcs = PROD_ARMSIMD32_MICROKERNEL_SRCS,
1646*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
1647*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
1648*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
1649*da0073e9SAndroid Build Coastguard Worker        ]),
1650*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
1651*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
1652*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
1653*da0073e9SAndroid Build Coastguard Worker            "-O2",
1654*da0073e9SAndroid Build Coastguard Worker            "-fno-fast-math",
1655*da0073e9SAndroid Build Coastguard Worker            "-fno-math-errno",
1656*da0073e9SAndroid Build Coastguard Worker        ],
1657*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
1658*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
1659*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
1660*da0073e9SAndroid Build Coastguard Worker        ],
1661*da0073e9SAndroid Build Coastguard Worker        labels = labels,
1662*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
1663*da0073e9SAndroid Build Coastguard Worker            (
1664*da0073e9SAndroid Build Coastguard Worker                "(arm32|aarch32|armv7)",
1665*da0073e9SAndroid Build Coastguard Worker                [
1666*da0073e9SAndroid Build Coastguard Worker                    "-marm",
1667*da0073e9SAndroid Build Coastguard Worker                    "-march=armv6",
1668*da0073e9SAndroid Build Coastguard Worker                    "-mfpu=vfp",
1669*da0073e9SAndroid Build Coastguard Worker                    "-munaligned-access",
1670*da0073e9SAndroid Build Coastguard Worker                ],
1671*da0073e9SAndroid Build Coastguard Worker            ),
1672*da0073e9SAndroid Build Coastguard Worker        ],
1673*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
1674*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
1675*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
1676*da0073e9SAndroid Build Coastguard Worker        ],
1677*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
1678*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
1679*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS,
1680*da0073e9SAndroid Build Coastguard Worker        deps = [
1681*da0073e9SAndroid Build Coastguard Worker            ":interface",
1682*da0073e9SAndroid Build Coastguard Worker            third_party("FP16"),
1683*da0073e9SAndroid Build Coastguard Worker        ],
1684*da0073e9SAndroid Build Coastguard Worker    )
1685*da0073e9SAndroid Build Coastguard Worker
1686*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
1687*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_neon",
1688*da0073e9SAndroid Build Coastguard Worker        srcs = select({
1689*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
1690*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:arm32": PROD_NEON_MICROKERNEL_SRCS,
1691*da0073e9SAndroid Build Coastguard Worker        }) if is_arvr_mode() else [],
1692*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
1693*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
1694*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
1695*da0073e9SAndroid Build Coastguard Worker        ]),
1696*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
1697*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
1698*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
1699*da0073e9SAndroid Build Coastguard Worker            "-O2",
1700*da0073e9SAndroid Build Coastguard Worker        ] + select({
1701*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
1702*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:arm32": [
1703*da0073e9SAndroid Build Coastguard Worker                "-marm",
1704*da0073e9SAndroid Build Coastguard Worker                "-march=armv7-a",
1705*da0073e9SAndroid Build Coastguard Worker                "-mfpu=neon",
1706*da0073e9SAndroid Build Coastguard Worker            ],
1707*da0073e9SAndroid Build Coastguard Worker        }),
1708*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
1709*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
1710*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
1711*da0073e9SAndroid Build Coastguard Worker        ],
1712*da0073e9SAndroid Build Coastguard Worker        labels = labels,
1713*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
1714*da0073e9SAndroid Build Coastguard Worker            (
1715*da0073e9SAndroid Build Coastguard Worker                "(aarch32|arm32|armv7)",
1716*da0073e9SAndroid Build Coastguard Worker                [
1717*da0073e9SAndroid Build Coastguard Worker                    "-marm",
1718*da0073e9SAndroid Build Coastguard Worker                    "-march=armv7-a",
1719*da0073e9SAndroid Build Coastguard Worker                    "-mfpu=neon",
1720*da0073e9SAndroid Build Coastguard Worker                ],
1721*da0073e9SAndroid Build Coastguard Worker            ),
1722*da0073e9SAndroid Build Coastguard Worker        ],
1723*da0073e9SAndroid Build Coastguard Worker        platform_srcs = [
1724*da0073e9SAndroid Build Coastguard Worker            (
1725*da0073e9SAndroid Build Coastguard Worker                "(aarch32|arm32|armv7)",
1726*da0073e9SAndroid Build Coastguard Worker                PROD_NEON_MICROKERNEL_SRCS,
1727*da0073e9SAndroid Build Coastguard Worker            ),
1728*da0073e9SAndroid Build Coastguard Worker        ] if not is_arvr_mode() else [],
1729*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
1730*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
1731*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
1732*da0073e9SAndroid Build Coastguard Worker        ],
1733*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
1734*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
1735*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS,
1736*da0073e9SAndroid Build Coastguard Worker        deps = [
1737*da0073e9SAndroid Build Coastguard Worker            ":interface",
1738*da0073e9SAndroid Build Coastguard Worker            third_party("FP16"),
1739*da0073e9SAndroid Build Coastguard Worker        ],
1740*da0073e9SAndroid Build Coastguard Worker    )
1741*da0073e9SAndroid Build Coastguard Worker
1742*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
1743*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_neon_aarch64",
1744*da0073e9SAndroid Build Coastguard Worker        srcs = select({
1745*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
1746*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:arm64": PROD_NEON_MICROKERNEL_SRCS + [PROD_NEON_AARCH64_MICROKERNEL_SRCS[0]],
1747*da0073e9SAndroid Build Coastguard Worker        }) if is_arvr_mode() else [],
1748*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
1749*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
1750*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
1751*da0073e9SAndroid Build Coastguard Worker        ]),
1752*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
1753*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
1754*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
1755*da0073e9SAndroid Build Coastguard Worker            "-O2",
1756*da0073e9SAndroid Build Coastguard Worker        ],
1757*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
1758*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
1759*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
1760*da0073e9SAndroid Build Coastguard Worker        ],
1761*da0073e9SAndroid Build Coastguard Worker        platform_srcs = [
1762*da0073e9SAndroid Build Coastguard Worker            (
1763*da0073e9SAndroid Build Coastguard Worker                "(aarch64|arm64)",
1764*da0073e9SAndroid Build Coastguard Worker                PROD_NEON_MICROKERNEL_SRCS + [PROD_NEON_AARCH64_MICROKERNEL_SRCS[0]],
1765*da0073e9SAndroid Build Coastguard Worker            ),
1766*da0073e9SAndroid Build Coastguard Worker        ] if not is_arvr_mode() else [],
1767*da0073e9SAndroid Build Coastguard Worker        labels = labels,
1768*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
1769*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
1770*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
1771*da0073e9SAndroid Build Coastguard Worker        ],
1772*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
1773*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
1774*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS,
1775*da0073e9SAndroid Build Coastguard Worker        deps = [
1776*da0073e9SAndroid Build Coastguard Worker            ":interface",
1777*da0073e9SAndroid Build Coastguard Worker            third_party("FP16"),
1778*da0073e9SAndroid Build Coastguard Worker        ],
1779*da0073e9SAndroid Build Coastguard Worker    )
1780*da0073e9SAndroid Build Coastguard Worker
1781*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
1782*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_neon_fma",
1783*da0073e9SAndroid Build Coastguard Worker        srcs = select({
1784*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
1785*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:arm32": PROD_NEONFMA_MICROKERNEL_SRCS,
1786*da0073e9SAndroid Build Coastguard Worker        }) if is_arvr_mode() else [],
1787*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
1788*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
1789*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
1790*da0073e9SAndroid Build Coastguard Worker        ]),
1791*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
1792*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
1793*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
1794*da0073e9SAndroid Build Coastguard Worker            "-O2",
1795*da0073e9SAndroid Build Coastguard Worker        ] + select({
1796*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
1797*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:arm32": [
1798*da0073e9SAndroid Build Coastguard Worker                "-marm",
1799*da0073e9SAndroid Build Coastguard Worker                "-march=armv7-a",
1800*da0073e9SAndroid Build Coastguard Worker                "-mfpu=neon-vfpv4",
1801*da0073e9SAndroid Build Coastguard Worker            ],
1802*da0073e9SAndroid Build Coastguard Worker        }),
1803*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
1804*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
1805*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
1806*da0073e9SAndroid Build Coastguard Worker        ],
1807*da0073e9SAndroid Build Coastguard Worker        labels = labels,
1808*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
1809*da0073e9SAndroid Build Coastguard Worker            (
1810*da0073e9SAndroid Build Coastguard Worker                "^iphoneos-armv7$",
1811*da0073e9SAndroid Build Coastguard Worker                [
1812*da0073e9SAndroid Build Coastguard Worker                    "-mcpu=cyclone",
1813*da0073e9SAndroid Build Coastguard Worker                    "-mtune=generic",
1814*da0073e9SAndroid Build Coastguard Worker                ],
1815*da0073e9SAndroid Build Coastguard Worker            ),
1816*da0073e9SAndroid Build Coastguard Worker            (
1817*da0073e9SAndroid Build Coastguard Worker                "(aarch32|arm32|armv7)",
1818*da0073e9SAndroid Build Coastguard Worker                [
1819*da0073e9SAndroid Build Coastguard Worker                    "-marm",
1820*da0073e9SAndroid Build Coastguard Worker                    "-march=armv7-a",
1821*da0073e9SAndroid Build Coastguard Worker                    "-mfpu=neon-vfpv4",
1822*da0073e9SAndroid Build Coastguard Worker                ],
1823*da0073e9SAndroid Build Coastguard Worker            ),
1824*da0073e9SAndroid Build Coastguard Worker        ],
1825*da0073e9SAndroid Build Coastguard Worker        platform_srcs = [
1826*da0073e9SAndroid Build Coastguard Worker            (
1827*da0073e9SAndroid Build Coastguard Worker                "(aarch32|arm32|armv7)",
1828*da0073e9SAndroid Build Coastguard Worker                PROD_NEONFMA_MICROKERNEL_SRCS,
1829*da0073e9SAndroid Build Coastguard Worker            ),
1830*da0073e9SAndroid Build Coastguard Worker        ] if not is_arvr_mode() else [],
1831*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
1832*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
1833*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
1834*da0073e9SAndroid Build Coastguard Worker        ],
1835*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
1836*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
1837*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS,
1838*da0073e9SAndroid Build Coastguard Worker        deps = [
1839*da0073e9SAndroid Build Coastguard Worker            ":interface",
1840*da0073e9SAndroid Build Coastguard Worker            third_party("FP16"),
1841*da0073e9SAndroid Build Coastguard Worker        ],
1842*da0073e9SAndroid Build Coastguard Worker    )
1843*da0073e9SAndroid Build Coastguard Worker
1844*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
1845*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_neonfma_aarch64",
1846*da0073e9SAndroid Build Coastguard Worker        srcs = select({
1847*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
1848*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:arm64": PROD_NEONFMA_MICROKERNEL_SRCS + [PROD_NEON_AARCH64_MICROKERNEL_SRCS[1]],
1849*da0073e9SAndroid Build Coastguard Worker        }) if is_arvr_mode() else [],
1850*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
1851*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
1852*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
1853*da0073e9SAndroid Build Coastguard Worker        ]),
1854*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
1855*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
1856*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
1857*da0073e9SAndroid Build Coastguard Worker            "-O2",
1858*da0073e9SAndroid Build Coastguard Worker        ],
1859*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
1860*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
1861*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
1862*da0073e9SAndroid Build Coastguard Worker        ],
1863*da0073e9SAndroid Build Coastguard Worker        labels = labels,
1864*da0073e9SAndroid Build Coastguard Worker        platform_srcs = [
1865*da0073e9SAndroid Build Coastguard Worker            (
1866*da0073e9SAndroid Build Coastguard Worker                "(arm64|aarch64)$",
1867*da0073e9SAndroid Build Coastguard Worker                PROD_NEONFMA_MICROKERNEL_SRCS + [PROD_NEON_AARCH64_MICROKERNEL_SRCS[1]],
1868*da0073e9SAndroid Build Coastguard Worker            ),
1869*da0073e9SAndroid Build Coastguard Worker        ] if not is_arvr_mode() else [],
1870*da0073e9SAndroid Build Coastguard Worker        platforms = (APPLE, ANDROID, CXX, WINDOWS),
1871*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
1872*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
1873*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
1874*da0073e9SAndroid Build Coastguard Worker        ],
1875*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
1876*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
1877*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS,
1878*da0073e9SAndroid Build Coastguard Worker        deps = [
1879*da0073e9SAndroid Build Coastguard Worker            ":interface",
1880*da0073e9SAndroid Build Coastguard Worker            third_party("FP16"),
1881*da0073e9SAndroid Build Coastguard Worker        ],
1882*da0073e9SAndroid Build Coastguard Worker    )
1883*da0073e9SAndroid Build Coastguard Worker
1884*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
1885*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_fp16arith",
1886*da0073e9SAndroid Build Coastguard Worker        srcs = PROD_FP16ARITH_MICROKERNEL_SRCS,
1887*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
1888*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
1889*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
1890*da0073e9SAndroid Build Coastguard Worker        ]),
1891*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
1892*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
1893*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
1894*da0073e9SAndroid Build Coastguard Worker            "-O2",
1895*da0073e9SAndroid Build Coastguard Worker            "-Wno-error=missing-braces",  # required since the SGX toolchain does not have this by default
1896*da0073e9SAndroid Build Coastguard Worker            "-fno-fast-math",
1897*da0073e9SAndroid Build Coastguard Worker            "-fno-math-errno",
1898*da0073e9SAndroid Build Coastguard Worker        ] + select({
1899*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
1900*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:arm32": [
1901*da0073e9SAndroid Build Coastguard Worker                "-marm",
1902*da0073e9SAndroid Build Coastguard Worker                "-march=armv8.2-a+fp16",
1903*da0073e9SAndroid Build Coastguard Worker                # GCC emits wrong directives for assembler with -mfpu=fp-armv8
1904*da0073e9SAndroid Build Coastguard Worker                "-mfpu=neon-fp-armv8",
1905*da0073e9SAndroid Build Coastguard Worker                # For vsqrth_f16 polyfill using sqrtf
1906*da0073e9SAndroid Build Coastguard Worker                "-fno-math-errno",
1907*da0073e9SAndroid Build Coastguard Worker                # For vminh_f16/vmaxh_f16 polyfills using compare + select
1908*da0073e9SAndroid Build Coastguard Worker                "-ffinite-math-only",
1909*da0073e9SAndroid Build Coastguard Worker            ],
1910*da0073e9SAndroid Build Coastguard Worker        }),
1911*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
1912*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
1913*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
1914*da0073e9SAndroid Build Coastguard Worker        ],
1915*da0073e9SAndroid Build Coastguard Worker        labels = labels,
1916*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
1917*da0073e9SAndroid Build Coastguard Worker            (
1918*da0073e9SAndroid Build Coastguard Worker                "(aarch32|arm32|armv7)",
1919*da0073e9SAndroid Build Coastguard Worker                [
1920*da0073e9SAndroid Build Coastguard Worker                    "-marm",
1921*da0073e9SAndroid Build Coastguard Worker                    "-march=armv8.2-a+fp16",
1922*da0073e9SAndroid Build Coastguard Worker                    # GCC emits wrong directives for assembler with -mfpu=fp-armv8
1923*da0073e9SAndroid Build Coastguard Worker                    "-mfpu=neon-fp-armv8",
1924*da0073e9SAndroid Build Coastguard Worker                    # For vsqrth_f16 polyfill using sqrtf
1925*da0073e9SAndroid Build Coastguard Worker                    "-fno-math-errno",
1926*da0073e9SAndroid Build Coastguard Worker                    # For vminh_f16/vmaxh_f16 polyfills using compare + select
1927*da0073e9SAndroid Build Coastguard Worker                    "-ffinite-math-only",
1928*da0073e9SAndroid Build Coastguard Worker                ],
1929*da0073e9SAndroid Build Coastguard Worker            ),
1930*da0073e9SAndroid Build Coastguard Worker        ],
1931*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
1932*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
1933*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
1934*da0073e9SAndroid Build Coastguard Worker        ],
1935*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
1936*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
1937*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS,
1938*da0073e9SAndroid Build Coastguard Worker        deps = [
1939*da0073e9SAndroid Build Coastguard Worker            ":interface",
1940*da0073e9SAndroid Build Coastguard Worker        ],
1941*da0073e9SAndroid Build Coastguard Worker    )
1942*da0073e9SAndroid Build Coastguard Worker
1943*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
1944*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_neon_fp16",
1945*da0073e9SAndroid Build Coastguard Worker        srcs = PROD_NEONFP16_MICROKERNEL_SRCS,
1946*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
1947*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
1948*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
1949*da0073e9SAndroid Build Coastguard Worker        ]),
1950*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
1951*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
1952*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
1953*da0073e9SAndroid Build Coastguard Worker            "-O2",
1954*da0073e9SAndroid Build Coastguard Worker        ] + select({
1955*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
1956*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:arm32": [
1957*da0073e9SAndroid Build Coastguard Worker                "-marm",
1958*da0073e9SAndroid Build Coastguard Worker                "-march=armv7-a",
1959*da0073e9SAndroid Build Coastguard Worker                "-mfpu=neon-fp16",
1960*da0073e9SAndroid Build Coastguard Worker            ],
1961*da0073e9SAndroid Build Coastguard Worker        }),
1962*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
1963*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
1964*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
1965*da0073e9SAndroid Build Coastguard Worker        ],
1966*da0073e9SAndroid Build Coastguard Worker        labels = labels,
1967*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
1968*da0073e9SAndroid Build Coastguard Worker            (
1969*da0073e9SAndroid Build Coastguard Worker                "(aarch32|arm32|armv7)",
1970*da0073e9SAndroid Build Coastguard Worker                [
1971*da0073e9SAndroid Build Coastguard Worker                    "-marm",
1972*da0073e9SAndroid Build Coastguard Worker                    "-march=armv7-a",
1973*da0073e9SAndroid Build Coastguard Worker                    "-mfpu=neon-fp16",
1974*da0073e9SAndroid Build Coastguard Worker                ],
1975*da0073e9SAndroid Build Coastguard Worker            ),
1976*da0073e9SAndroid Build Coastguard Worker        ],
1977*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
1978*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
1979*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
1980*da0073e9SAndroid Build Coastguard Worker        ],
1981*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
1982*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
1983*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS,
1984*da0073e9SAndroid Build Coastguard Worker        deps = [
1985*da0073e9SAndroid Build Coastguard Worker            ":interface",
1986*da0073e9SAndroid Build Coastguard Worker        ],
1987*da0073e9SAndroid Build Coastguard Worker    )
1988*da0073e9SAndroid Build Coastguard Worker
1989*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
1990*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_neon_v8",
1991*da0073e9SAndroid Build Coastguard Worker        srcs = PROD_NEONV8_MICROKERNEL_SRCS,
1992*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
1993*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
1994*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
1995*da0073e9SAndroid Build Coastguard Worker        ]),
1996*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
1997*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
1998*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
1999*da0073e9SAndroid Build Coastguard Worker            "-O2",
2000*da0073e9SAndroid Build Coastguard Worker        ] + select({
2001*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
2002*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:arm64": ["-march=armv8-a"],
2003*da0073e9SAndroid Build Coastguard Worker        }),
2004*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
2005*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
2006*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
2007*da0073e9SAndroid Build Coastguard Worker        ],
2008*da0073e9SAndroid Build Coastguard Worker        labels = labels,
2009*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
2010*da0073e9SAndroid Build Coastguard Worker            (
2011*da0073e9SAndroid Build Coastguard Worker                "(aarch64|arm64)",
2012*da0073e9SAndroid Build Coastguard Worker                [
2013*da0073e9SAndroid Build Coastguard Worker                    "-march=armv8-a",
2014*da0073e9SAndroid Build Coastguard Worker                ],
2015*da0073e9SAndroid Build Coastguard Worker            ),
2016*da0073e9SAndroid Build Coastguard Worker            (
2017*da0073e9SAndroid Build Coastguard Worker                "^android-armv7$",
2018*da0073e9SAndroid Build Coastguard Worker                [
2019*da0073e9SAndroid Build Coastguard Worker                    "-march=armv8-a",
2020*da0073e9SAndroid Build Coastguard Worker                    "-mfpu=neon-fp-armv8",
2021*da0073e9SAndroid Build Coastguard Worker                    "-mfloat-abi=softfp",
2022*da0073e9SAndroid Build Coastguard Worker                ],
2023*da0073e9SAndroid Build Coastguard Worker            ),
2024*da0073e9SAndroid Build Coastguard Worker            (
2025*da0073e9SAndroid Build Coastguard Worker                "^iphoneos-armv7$",
2026*da0073e9SAndroid Build Coastguard Worker                [
2027*da0073e9SAndroid Build Coastguard Worker                    "-mcpu=cyclone",
2028*da0073e9SAndroid Build Coastguard Worker                    "-mtune=generic",
2029*da0073e9SAndroid Build Coastguard Worker                ],
2030*da0073e9SAndroid Build Coastguard Worker            ),
2031*da0073e9SAndroid Build Coastguard Worker        ],
2032*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
2033*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
2034*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
2035*da0073e9SAndroid Build Coastguard Worker        ],
2036*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
2037*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
2038*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS,
2039*da0073e9SAndroid Build Coastguard Worker        deps = [
2040*da0073e9SAndroid Build Coastguard Worker            ":interface",
2041*da0073e9SAndroid Build Coastguard Worker            third_party("FP16"),
2042*da0073e9SAndroid Build Coastguard Worker        ],
2043*da0073e9SAndroid Build Coastguard Worker    )
2044*da0073e9SAndroid Build Coastguard Worker
2045*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
2046*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_neon_dot",
2047*da0073e9SAndroid Build Coastguard Worker        srcs = select({
2048*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
2049*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:arm32": PROD_NEONDOT_MICROKERNEL_SRCS,
2050*da0073e9SAndroid Build Coastguard Worker        }) if is_arvr_mode() else [],
2051*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
2052*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
2053*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
2054*da0073e9SAndroid Build Coastguard Worker        ]),
2055*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
2056*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
2057*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
2058*da0073e9SAndroid Build Coastguard Worker            "-O2",
2059*da0073e9SAndroid Build Coastguard Worker        ] + select({
2060*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
2061*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:arm32": [
2062*da0073e9SAndroid Build Coastguard Worker                "-march=armv8.2-a+dotprod",
2063*da0073e9SAndroid Build Coastguard Worker                "-mfpu=neon-fp-armv8",
2064*da0073e9SAndroid Build Coastguard Worker                "-mfloat-abi=softfp",
2065*da0073e9SAndroid Build Coastguard Worker            ],
2066*da0073e9SAndroid Build Coastguard Worker        }),
2067*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
2068*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
2069*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
2070*da0073e9SAndroid Build Coastguard Worker        ],
2071*da0073e9SAndroid Build Coastguard Worker        labels = labels,
2072*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
2073*da0073e9SAndroid Build Coastguard Worker            (
2074*da0073e9SAndroid Build Coastguard Worker                "(aarch32|arm32|armv7)",
2075*da0073e9SAndroid Build Coastguard Worker                [
2076*da0073e9SAndroid Build Coastguard Worker                    "-march=armv8.2-a+dotprod",
2077*da0073e9SAndroid Build Coastguard Worker                    "-mfpu=neon-fp-armv8",
2078*da0073e9SAndroid Build Coastguard Worker                    "-mfloat-abi=softfp",
2079*da0073e9SAndroid Build Coastguard Worker                ],
2080*da0073e9SAndroid Build Coastguard Worker            ),
2081*da0073e9SAndroid Build Coastguard Worker        ],
2082*da0073e9SAndroid Build Coastguard Worker        platform_srcs = [
2083*da0073e9SAndroid Build Coastguard Worker            (
2084*da0073e9SAndroid Build Coastguard Worker                "(aarch32|arm32|armv7)",
2085*da0073e9SAndroid Build Coastguard Worker                PROD_NEONDOT_MICROKERNEL_SRCS,
2086*da0073e9SAndroid Build Coastguard Worker            ),
2087*da0073e9SAndroid Build Coastguard Worker        ] if not is_arvr_mode() else [],
2088*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
2089*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
2090*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
2091*da0073e9SAndroid Build Coastguard Worker        ],
2092*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
2093*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
2094*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS,
2095*da0073e9SAndroid Build Coastguard Worker        deps = [
2096*da0073e9SAndroid Build Coastguard Worker            ":interface",
2097*da0073e9SAndroid Build Coastguard Worker            third_party("FP16"),
2098*da0073e9SAndroid Build Coastguard Worker        ],
2099*da0073e9SAndroid Build Coastguard Worker    )
2100*da0073e9SAndroid Build Coastguard Worker
2101*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
2102*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_neon_dot_aarch64",
2103*da0073e9SAndroid Build Coastguard Worker        srcs = select({
2104*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
2105*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:arm64": PROD_NEONDOT_MICROKERNEL_SRCS + PROD_NEONDOT_AARCH64_MICROKERNEL_SRCS,
2106*da0073e9SAndroid Build Coastguard Worker        }) if is_arvr_mode() else [],
2107*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
2108*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
2109*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
2110*da0073e9SAndroid Build Coastguard Worker        ]),
2111*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
2112*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
2113*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
2114*da0073e9SAndroid Build Coastguard Worker            "-O2",
2115*da0073e9SAndroid Build Coastguard Worker        ] + select({
2116*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
2117*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:arm64": ["-march=armv8.2-a+dotprod"],
2118*da0073e9SAndroid Build Coastguard Worker        }),
2119*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
2120*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
2121*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
2122*da0073e9SAndroid Build Coastguard Worker        ],
2123*da0073e9SAndroid Build Coastguard Worker        labels = labels,
2124*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
2125*da0073e9SAndroid Build Coastguard Worker            (
2126*da0073e9SAndroid Build Coastguard Worker                "(aarch64|arm64)",
2127*da0073e9SAndroid Build Coastguard Worker                [
2128*da0073e9SAndroid Build Coastguard Worker                    "-march=armv8.2-a+dotprod",
2129*da0073e9SAndroid Build Coastguard Worker                ],
2130*da0073e9SAndroid Build Coastguard Worker            ),
2131*da0073e9SAndroid Build Coastguard Worker        ],
2132*da0073e9SAndroid Build Coastguard Worker        platform_srcs = [
2133*da0073e9SAndroid Build Coastguard Worker            (
2134*da0073e9SAndroid Build Coastguard Worker                "(aarch64|arm64)",
2135*da0073e9SAndroid Build Coastguard Worker                PROD_NEONDOT_MICROKERNEL_SRCS + PROD_NEONDOT_AARCH64_MICROKERNEL_SRCS,
2136*da0073e9SAndroid Build Coastguard Worker            ),
2137*da0073e9SAndroid Build Coastguard Worker        ] if not is_arvr_mode() else [],
2138*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
2139*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
2140*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
2141*da0073e9SAndroid Build Coastguard Worker        ],
2142*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
2143*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
2144*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS,
2145*da0073e9SAndroid Build Coastguard Worker        deps = [
2146*da0073e9SAndroid Build Coastguard Worker            ":interface",
2147*da0073e9SAndroid Build Coastguard Worker            third_party("FP16"),
2148*da0073e9SAndroid Build Coastguard Worker        ],
2149*da0073e9SAndroid Build Coastguard Worker    )
2150*da0073e9SAndroid Build Coastguard Worker
2151*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
2152*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_neon_dot_fp16arith",
2153*da0073e9SAndroid Build Coastguard Worker        srcs = select({
2154*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
2155*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:arm32": PROD_NEONDOTFP16ARITH_MICROKERNEL_SRCS,
2156*da0073e9SAndroid Build Coastguard Worker        }) if is_arvr_mode() else [],
2157*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
2158*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
2159*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
2160*da0073e9SAndroid Build Coastguard Worker        ]),
2161*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
2162*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
2163*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
2164*da0073e9SAndroid Build Coastguard Worker            "-O2",
2165*da0073e9SAndroid Build Coastguard Worker        ] + select({
2166*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
2167*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:arm32": [
2168*da0073e9SAndroid Build Coastguard Worker                "-marm",
2169*da0073e9SAndroid Build Coastguard Worker                "-march=armv8.2-a+dotprod+fp16",
2170*da0073e9SAndroid Build Coastguard Worker                "-mfpu=neon-fp-armv8",
2171*da0073e9SAndroid Build Coastguard Worker            ],
2172*da0073e9SAndroid Build Coastguard Worker        }),
2173*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
2174*da0073e9SAndroid Build Coastguard Worker            (
2175*da0073e9SAndroid Build Coastguard Worker                "(aarch32|arm32|armv7)",
2176*da0073e9SAndroid Build Coastguard Worker                [
2177*da0073e9SAndroid Build Coastguard Worker                    "-marm",
2178*da0073e9SAndroid Build Coastguard Worker                    "-march=armv8.2-a+dotprod+fp16",
2179*da0073e9SAndroid Build Coastguard Worker                    "-mfpu=neon-fp-armv8",
2180*da0073e9SAndroid Build Coastguard Worker                ],
2181*da0073e9SAndroid Build Coastguard Worker            ),
2182*da0073e9SAndroid Build Coastguard Worker        ],
2183*da0073e9SAndroid Build Coastguard Worker        platform_srcs = [
2184*da0073e9SAndroid Build Coastguard Worker            (
2185*da0073e9SAndroid Build Coastguard Worker                "(aarch32|arm32|armv7)",
2186*da0073e9SAndroid Build Coastguard Worker                PROD_NEONDOTFP16ARITH_MICROKERNEL_SRCS,
2187*da0073e9SAndroid Build Coastguard Worker            ),
2188*da0073e9SAndroid Build Coastguard Worker        ] if not is_arvr_mode() else [],
2189*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
2190*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
2191*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
2192*da0073e9SAndroid Build Coastguard Worker        ],
2193*da0073e9SAndroid Build Coastguard Worker        labels = labels,
2194*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
2195*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
2196*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
2197*da0073e9SAndroid Build Coastguard Worker        ],
2198*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
2199*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
2200*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS,
2201*da0073e9SAndroid Build Coastguard Worker        deps = [
2202*da0073e9SAndroid Build Coastguard Worker            ":interface",
2203*da0073e9SAndroid Build Coastguard Worker            third_party("FP16"),
2204*da0073e9SAndroid Build Coastguard Worker        ],
2205*da0073e9SAndroid Build Coastguard Worker    )
2206*da0073e9SAndroid Build Coastguard Worker
2207*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
2208*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_neon_dot_fp16arith_aarch64",
2209*da0073e9SAndroid Build Coastguard Worker        srcs = select({
2210*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
2211*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:arm64": PROD_NEONDOTFP16ARITH_MICROKERNEL_SRCS + PROD_NEONDOTFP16ARITH_AARCH64_MICROKERNEL_SRCS,
2212*da0073e9SAndroid Build Coastguard Worker        }) if is_arvr_mode() else [],
2213*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
2214*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
2215*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
2216*da0073e9SAndroid Build Coastguard Worker        ]),
2217*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
2218*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
2219*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
2220*da0073e9SAndroid Build Coastguard Worker            "-O2",
2221*da0073e9SAndroid Build Coastguard Worker        ] + select({
2222*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
2223*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:arm64": [
2224*da0073e9SAndroid Build Coastguard Worker                "-march=armv8.2-a+dotprod+fp16",
2225*da0073e9SAndroid Build Coastguard Worker            ],
2226*da0073e9SAndroid Build Coastguard Worker        }),
2227*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
2228*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
2229*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
2230*da0073e9SAndroid Build Coastguard Worker        ],
2231*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
2232*da0073e9SAndroid Build Coastguard Worker            (
2233*da0073e9SAndroid Build Coastguard Worker                "(aarch64|arm64)",
2234*da0073e9SAndroid Build Coastguard Worker                [
2235*da0073e9SAndroid Build Coastguard Worker                    "-march=armv8.2-a+dotprod+fp16",
2236*da0073e9SAndroid Build Coastguard Worker                ],
2237*da0073e9SAndroid Build Coastguard Worker            ),
2238*da0073e9SAndroid Build Coastguard Worker        ],
2239*da0073e9SAndroid Build Coastguard Worker        platform_srcs = [
2240*da0073e9SAndroid Build Coastguard Worker            (
2241*da0073e9SAndroid Build Coastguard Worker                "(aarch64|arm64)",
2242*da0073e9SAndroid Build Coastguard Worker                PROD_NEONDOTFP16ARITH_MICROKERNEL_SRCS + PROD_NEONDOTFP16ARITH_AARCH64_MICROKERNEL_SRCS,
2243*da0073e9SAndroid Build Coastguard Worker            ),
2244*da0073e9SAndroid Build Coastguard Worker        ] if not is_arvr_mode() else [],
2245*da0073e9SAndroid Build Coastguard Worker        labels = labels,
2246*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
2247*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
2248*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
2249*da0073e9SAndroid Build Coastguard Worker        ],
2250*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
2251*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
2252*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS,
2253*da0073e9SAndroid Build Coastguard Worker        deps = [
2254*da0073e9SAndroid Build Coastguard Worker            ":interface",
2255*da0073e9SAndroid Build Coastguard Worker            third_party("FP16"),
2256*da0073e9SAndroid Build Coastguard Worker        ],
2257*da0073e9SAndroid Build Coastguard Worker    )
2258*da0073e9SAndroid Build Coastguard Worker
2259*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
2260*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_neon_fp16arith",
2261*da0073e9SAndroid Build Coastguard Worker        srcs = select({
2262*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
2263*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:arm32": PROD_NEONFP16ARITH_MICROKERNEL_SRCS,
2264*da0073e9SAndroid Build Coastguard Worker        }) if is_arvr_mode() else [],
2265*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
2266*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
2267*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
2268*da0073e9SAndroid Build Coastguard Worker        ]),
2269*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
2270*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
2271*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
2272*da0073e9SAndroid Build Coastguard Worker            "-O2",
2273*da0073e9SAndroid Build Coastguard Worker        ] + select({
2274*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
2275*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:arm32": [
2276*da0073e9SAndroid Build Coastguard Worker                "-marm",
2277*da0073e9SAndroid Build Coastguard Worker                "-march=armv8.2-a+fp16",
2278*da0073e9SAndroid Build Coastguard Worker                "-mfpu=neon-fp-armv8",
2279*da0073e9SAndroid Build Coastguard Worker            ],
2280*da0073e9SAndroid Build Coastguard Worker        }),
2281*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
2282*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
2283*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
2284*da0073e9SAndroid Build Coastguard Worker        ],
2285*da0073e9SAndroid Build Coastguard Worker        labels = labels,
2286*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
2287*da0073e9SAndroid Build Coastguard Worker            (
2288*da0073e9SAndroid Build Coastguard Worker                "(aarch32|arm32|armv7)",
2289*da0073e9SAndroid Build Coastguard Worker                [
2290*da0073e9SAndroid Build Coastguard Worker                    "-marm",
2291*da0073e9SAndroid Build Coastguard Worker                    "-march=armv8.2-a+fp16",
2292*da0073e9SAndroid Build Coastguard Worker                    "-mfpu=neon-fp-armv8",
2293*da0073e9SAndroid Build Coastguard Worker                ],
2294*da0073e9SAndroid Build Coastguard Worker            ),
2295*da0073e9SAndroid Build Coastguard Worker        ],
2296*da0073e9SAndroid Build Coastguard Worker        platform_srcs = [
2297*da0073e9SAndroid Build Coastguard Worker            (
2298*da0073e9SAndroid Build Coastguard Worker                "(aarch32|arm32|armv7)",
2299*da0073e9SAndroid Build Coastguard Worker                PROD_NEONFP16ARITH_MICROKERNEL_SRCS,
2300*da0073e9SAndroid Build Coastguard Worker            ),
2301*da0073e9SAndroid Build Coastguard Worker        ] if not is_arvr_mode() else [],
2302*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
2303*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
2304*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
2305*da0073e9SAndroid Build Coastguard Worker        ],
2306*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
2307*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
2308*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS,
2309*da0073e9SAndroid Build Coastguard Worker        deps = [
2310*da0073e9SAndroid Build Coastguard Worker            ":interface",
2311*da0073e9SAndroid Build Coastguard Worker            third_party("FP16"),
2312*da0073e9SAndroid Build Coastguard Worker        ],
2313*da0073e9SAndroid Build Coastguard Worker    )
2314*da0073e9SAndroid Build Coastguard Worker
2315*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
2316*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_neon_fp16arith_aarch64",
2317*da0073e9SAndroid Build Coastguard Worker        srcs = select({
2318*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
2319*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:arm64": PROD_NEONFP16ARITH_MICROKERNEL_SRCS + PROD_NEONFP16ARITH_AARCH64_MICROKERNEL_SRCS,
2320*da0073e9SAndroid Build Coastguard Worker        }) if is_arvr_mode() else [],
2321*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
2322*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
2323*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
2324*da0073e9SAndroid Build Coastguard Worker        ]),
2325*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
2326*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
2327*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
2328*da0073e9SAndroid Build Coastguard Worker            "-O2",
2329*da0073e9SAndroid Build Coastguard Worker        ] + select({
2330*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
2331*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:arm64": ["-march=armv8.2-a+fp16"],
2332*da0073e9SAndroid Build Coastguard Worker        }),
2333*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
2334*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
2335*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
2336*da0073e9SAndroid Build Coastguard Worker        ],
2337*da0073e9SAndroid Build Coastguard Worker        labels = labels,
2338*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
2339*da0073e9SAndroid Build Coastguard Worker            (
2340*da0073e9SAndroid Build Coastguard Worker                "(aarch64|arm64)",
2341*da0073e9SAndroid Build Coastguard Worker                [
2342*da0073e9SAndroid Build Coastguard Worker                    "-march=armv8.2-a+fp16",
2343*da0073e9SAndroid Build Coastguard Worker                ],
2344*da0073e9SAndroid Build Coastguard Worker            ),
2345*da0073e9SAndroid Build Coastguard Worker        ],
2346*da0073e9SAndroid Build Coastguard Worker        platform_srcs = [
2347*da0073e9SAndroid Build Coastguard Worker            (
2348*da0073e9SAndroid Build Coastguard Worker                "(aarch64|arm64)",
2349*da0073e9SAndroid Build Coastguard Worker                PROD_NEONFP16ARITH_MICROKERNEL_SRCS + PROD_NEONFP16ARITH_AARCH64_MICROKERNEL_SRCS,
2350*da0073e9SAndroid Build Coastguard Worker            ),
2351*da0073e9SAndroid Build Coastguard Worker        ] if not is_arvr_mode() else [],
2352*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
2353*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
2354*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
2355*da0073e9SAndroid Build Coastguard Worker        ],
2356*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
2357*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
2358*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS,
2359*da0073e9SAndroid Build Coastguard Worker        deps = [
2360*da0073e9SAndroid Build Coastguard Worker            ":interface",
2361*da0073e9SAndroid Build Coastguard Worker            third_party("FP16"),
2362*da0073e9SAndroid Build Coastguard Worker        ],
2363*da0073e9SAndroid Build Coastguard Worker    )
2364*da0073e9SAndroid Build Coastguard Worker
2365*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
2366*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_neonfma_i8mm",
2367*da0073e9SAndroid Build Coastguard Worker        srcs = PROD_NEONI8MM_MICROKERNEL_SRCS,
2368*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
2369*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
2370*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.c"),
2371*da0073e9SAndroid Build Coastguard Worker        ]),
2372*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
2373*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
2374*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
2375*da0073e9SAndroid Build Coastguard Worker            "-O2",
2376*da0073e9SAndroid Build Coastguard Worker        ] + select({
2377*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
2378*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:arm32": [
2379*da0073e9SAndroid Build Coastguard Worker                "-marm",
2380*da0073e9SAndroid Build Coastguard Worker                "-march=armv8.2-a+i8mm+fp16",
2381*da0073e9SAndroid Build Coastguard Worker                "-mfpu=neon-fp-armv8",
2382*da0073e9SAndroid Build Coastguard Worker            ],
2383*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:arm64": [
2384*da0073e9SAndroid Build Coastguard Worker                "-march=armv8.2-a+i8mm+fp16",
2385*da0073e9SAndroid Build Coastguard Worker            ],
2386*da0073e9SAndroid Build Coastguard Worker        }),
2387*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
2388*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
2389*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
2390*da0073e9SAndroid Build Coastguard Worker        ],
2391*da0073e9SAndroid Build Coastguard Worker        labels = labels,
2392*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
2393*da0073e9SAndroid Build Coastguard Worker            (
2394*da0073e9SAndroid Build Coastguard Worker                "(aarch32|arm32|armv7)$",
2395*da0073e9SAndroid Build Coastguard Worker                [
2396*da0073e9SAndroid Build Coastguard Worker                    "-marm",
2397*da0073e9SAndroid Build Coastguard Worker                    "-march=armv8.2-a+i8mm+fp16",
2398*da0073e9SAndroid Build Coastguard Worker                    "-mfpu=neon-fp-armv8",
2399*da0073e9SAndroid Build Coastguard Worker                ],
2400*da0073e9SAndroid Build Coastguard Worker            ),
2401*da0073e9SAndroid Build Coastguard Worker            (
2402*da0073e9SAndroid Build Coastguard Worker                "(arm64|aarch64)",
2403*da0073e9SAndroid Build Coastguard Worker                [
2404*da0073e9SAndroid Build Coastguard Worker                    "-march=armv8.2-a+i8mm+fp16",
2405*da0073e9SAndroid Build Coastguard Worker                ],
2406*da0073e9SAndroid Build Coastguard Worker            ),
2407*da0073e9SAndroid Build Coastguard Worker        ],
2408*da0073e9SAndroid Build Coastguard Worker        platforms = (APPLE, ANDROID, CXX, WINDOWS),
2409*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
2410*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
2411*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
2412*da0073e9SAndroid Build Coastguard Worker        ],
2413*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
2414*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
2415*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS,
2416*da0073e9SAndroid Build Coastguard Worker        deps = [
2417*da0073e9SAndroid Build Coastguard Worker            ":interface",
2418*da0073e9SAndroid Build Coastguard Worker            third_party("FP16"),
2419*da0073e9SAndroid Build Coastguard Worker        ],
2420*da0073e9SAndroid Build Coastguard Worker    )
2421*da0073e9SAndroid Build Coastguard Worker
2422*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
2423*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_asm_aarch32",
2424*da0073e9SAndroid Build Coastguard Worker        srcs = AARCH32_ASM_MICROKERNEL_SRCS,
2425*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
2426*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "xnnpack/assembly.h"),
2427*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.S"),
2428*da0073e9SAndroid Build Coastguard Worker        ]),
2429*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
2430*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
2431*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
2432*da0073e9SAndroid Build Coastguard Worker            "-O2",
2433*da0073e9SAndroid Build Coastguard Worker        ] + select({
2434*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
2435*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:arm32": [
2436*da0073e9SAndroid Build Coastguard Worker                "-marm",
2437*da0073e9SAndroid Build Coastguard Worker                "-march=armv8.2-a+dotprod+fp16",
2438*da0073e9SAndroid Build Coastguard Worker                "-mfpu=neon-fp-armv8",
2439*da0073e9SAndroid Build Coastguard Worker            ],
2440*da0073e9SAndroid Build Coastguard Worker        }),
2441*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
2442*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
2443*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
2444*da0073e9SAndroid Build Coastguard Worker        ],
2445*da0073e9SAndroid Build Coastguard Worker        labels = labels,
2446*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
2447*da0073e9SAndroid Build Coastguard Worker            (
2448*da0073e9SAndroid Build Coastguard Worker                "(aarch32|arm32|armv7)",
2449*da0073e9SAndroid Build Coastguard Worker                [
2450*da0073e9SAndroid Build Coastguard Worker                    "-marm",
2451*da0073e9SAndroid Build Coastguard Worker                    "-march=armv8.2-a+dotprod+fp16",
2452*da0073e9SAndroid Build Coastguard Worker                    "-mfpu=neon-fp-armv8",
2453*da0073e9SAndroid Build Coastguard Worker                ],
2454*da0073e9SAndroid Build Coastguard Worker            ),
2455*da0073e9SAndroid Build Coastguard Worker        ],
2456*da0073e9SAndroid Build Coastguard Worker        platforms = (APPLE, ANDROID, CXX, WINDOWS),
2457*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
2458*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
2459*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
2460*da0073e9SAndroid Build Coastguard Worker        ],
2461*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
2462*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
2463*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS,
2464*da0073e9SAndroid Build Coastguard Worker        deps = [
2465*da0073e9SAndroid Build Coastguard Worker            ":interface",
2466*da0073e9SAndroid Build Coastguard Worker            ":jit_memory",
2467*da0073e9SAndroid Build Coastguard Worker            third_party("FP16"),
2468*da0073e9SAndroid Build Coastguard Worker        ],
2469*da0073e9SAndroid Build Coastguard Worker    )
2470*da0073e9SAndroid Build Coastguard Worker
2471*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
2472*da0073e9SAndroid Build Coastguard Worker        name = "ukernels_asm_aarch64",
2473*da0073e9SAndroid Build Coastguard Worker        srcs = AARCH64_ASM_MICROKERNEL_SRCS,
2474*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
2475*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "xnnpack/assembly.h"),
2476*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.S"),
2477*da0073e9SAndroid Build Coastguard Worker        ]),
2478*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
2479*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
2480*da0073e9SAndroid Build Coastguard Worker        compiler_flags = [
2481*da0073e9SAndroid Build Coastguard Worker            "-O2",
2482*da0073e9SAndroid Build Coastguard Worker        ] + select({
2483*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [],
2484*da0073e9SAndroid Build Coastguard Worker            "ovr_config//cpu:arm64": [
2485*da0073e9SAndroid Build Coastguard Worker                "-march=armv8.2-a+fp16+dotprod",
2486*da0073e9SAndroid Build Coastguard Worker            ],
2487*da0073e9SAndroid Build Coastguard Worker        }),
2488*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
2489*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
2490*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
2491*da0073e9SAndroid Build Coastguard Worker        ],
2492*da0073e9SAndroid Build Coastguard Worker        labels = labels,
2493*da0073e9SAndroid Build Coastguard Worker        platform_compiler_flags = [
2494*da0073e9SAndroid Build Coastguard Worker            (
2495*da0073e9SAndroid Build Coastguard Worker                "(aarch64|arm64)",
2496*da0073e9SAndroid Build Coastguard Worker                [
2497*da0073e9SAndroid Build Coastguard Worker                    "-march=armv8.2-a+fp16+dotprod",
2498*da0073e9SAndroid Build Coastguard Worker                ],
2499*da0073e9SAndroid Build Coastguard Worker            ),
2500*da0073e9SAndroid Build Coastguard Worker        ],
2501*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
2502*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
2503*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
2504*da0073e9SAndroid Build Coastguard Worker        ],
2505*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
2506*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
2507*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS,
2508*da0073e9SAndroid Build Coastguard Worker        deps = [
2509*da0073e9SAndroid Build Coastguard Worker            ":interface",
2510*da0073e9SAndroid Build Coastguard Worker            ":jit_memory",
2511*da0073e9SAndroid Build Coastguard Worker            third_party("FP16"),
2512*da0073e9SAndroid Build Coastguard Worker        ],
2513*da0073e9SAndroid Build Coastguard Worker    )
2514*da0073e9SAndroid Build Coastguard Worker
2515*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
2516*da0073e9SAndroid Build Coastguard Worker        name = "arm64_lib",
2517*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
2518*da0073e9SAndroid Build Coastguard Worker        labels = labels,
2519*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
2520*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
2521*da0073e9SAndroid Build Coastguard Worker        deps = [
2522*da0073e9SAndroid Build Coastguard Worker            ":jit_memory",
2523*da0073e9SAndroid Build Coastguard Worker            ":ukernels_asm_aarch64",
2524*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon",
2525*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon_aarch64",
2526*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon_dot_fp16arith",
2527*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon_dot_fp16arith_aarch64",
2528*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon_dot",
2529*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon_dot_aarch64",
2530*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon_fma",
2531*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon_fp16",
2532*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon_fp16arith",
2533*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon_fp16arith_aarch64",
2534*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon_v8",
2535*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neonfma_aarch64",
2536*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neonfma_i8mm",
2537*da0073e9SAndroid Build Coastguard Worker        ],
2538*da0073e9SAndroid Build Coastguard Worker    )
2539*da0073e9SAndroid Build Coastguard Worker
2540*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
2541*da0073e9SAndroid Build Coastguard Worker        name = "x86_and_x86_64_lib",
2542*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
2543*da0073e9SAndroid Build Coastguard Worker        labels = labels,
2544*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
2545*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
2546*da0073e9SAndroid Build Coastguard Worker        deps = [
2547*da0073e9SAndroid Build Coastguard Worker            ":ukernels_avx",
2548*da0073e9SAndroid Build Coastguard Worker            ":ukernels_avx2",
2549*da0073e9SAndroid Build Coastguard Worker            ":ukernels_avx512",
2550*da0073e9SAndroid Build Coastguard Worker            ":ukernels_avx512skx",
2551*da0073e9SAndroid Build Coastguard Worker            ":ukernels_f16c",
2552*da0073e9SAndroid Build Coastguard Worker            ":ukernels_fma3",
2553*da0073e9SAndroid Build Coastguard Worker            ":ukernels_sse",
2554*da0073e9SAndroid Build Coastguard Worker            ":ukernels_sse2",
2555*da0073e9SAndroid Build Coastguard Worker            ":ukernels_sse41",
2556*da0073e9SAndroid Build Coastguard Worker            ":ukernels_ssse3",
2557*da0073e9SAndroid Build Coastguard Worker            ":ukernels_xop",
2558*da0073e9SAndroid Build Coastguard Worker            ":ukernels_avx512vbmi",
2559*da0073e9SAndroid Build Coastguard Worker            ":ukernels_avx512vnni",
2560*da0073e9SAndroid Build Coastguard Worker            ":ukernels_avx512vnnigfni",
2561*da0073e9SAndroid Build Coastguard Worker            # ":ukernels_avxvnni" Excluding avxvnni microkernels because they fail on older compilers
2562*da0073e9SAndroid Build Coastguard Worker        ],
2563*da0073e9SAndroid Build Coastguard Worker    )
2564*da0073e9SAndroid Build Coastguard Worker
2565*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
2566*da0073e9SAndroid Build Coastguard Worker        name = "x86_and_x86_64_lib_ovr_win32",
2567*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
2568*da0073e9SAndroid Build Coastguard Worker        labels = labels,
2569*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
2570*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
2571*da0073e9SAndroid Build Coastguard Worker        deps = [
2572*da0073e9SAndroid Build Coastguard Worker            ":ukernels_avx2_ovr_win32",
2573*da0073e9SAndroid Build Coastguard Worker            ":ukernels_avx512_ovr_win32",
2574*da0073e9SAndroid Build Coastguard Worker            ":ukernels_avx512skx_ovr_win32",
2575*da0073e9SAndroid Build Coastguard Worker            ":ukernels_avx_ovr_win32",
2576*da0073e9SAndroid Build Coastguard Worker            ":ukernels_f16c_ovr_win32",
2577*da0073e9SAndroid Build Coastguard Worker            ":ukernels_fma3_ovr_win32",
2578*da0073e9SAndroid Build Coastguard Worker            ":ukernels_sse2_ovr_win32",
2579*da0073e9SAndroid Build Coastguard Worker            ":ukernels_sse41_ovr_win32",
2580*da0073e9SAndroid Build Coastguard Worker            ":ukernels_sse_ovr_win32",
2581*da0073e9SAndroid Build Coastguard Worker            ":ukernels_ssse3_ovr_win32",
2582*da0073e9SAndroid Build Coastguard Worker            ":ukernels_xop_ovr_win32",
2583*da0073e9SAndroid Build Coastguard Worker            ":ukernels_avx512vbmi",
2584*da0073e9SAndroid Build Coastguard Worker            ":ukernels_avx512vnni_ovr_win32",
2585*da0073e9SAndroid Build Coastguard Worker            ":ukernels_avx512vnnigfni_ovr_win32",
2586*da0073e9SAndroid Build Coastguard Worker            # ":ukernels_avxvnni_ovr_win32" Excluding avxvnni microkernels because they fail on older compilers
2587*da0073e9SAndroid Build Coastguard Worker        ],
2588*da0073e9SAndroid Build Coastguard Worker    )
2589*da0073e9SAndroid Build Coastguard Worker
2590*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
2591*da0073e9SAndroid Build Coastguard Worker        name = "arm_lib",
2592*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
2593*da0073e9SAndroid Build Coastguard Worker        labels = labels,
2594*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
2595*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
2596*da0073e9SAndroid Build Coastguard Worker        deps = [
2597*da0073e9SAndroid Build Coastguard Worker            ":jit_memory",
2598*da0073e9SAndroid Build Coastguard Worker            ":ukernels_armsimd32",
2599*da0073e9SAndroid Build Coastguard Worker            ":ukernels_asm_aarch32",
2600*da0073e9SAndroid Build Coastguard Worker            ":ukernels_asm_aarch64",
2601*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon",
2602*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon_aarch64",
2603*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon_dot",
2604*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon_dot_aarch64",
2605*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon_dot_fp16arith",
2606*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon_dot_fp16arith_aarch64",
2607*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon_fma",
2608*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon_fp16",
2609*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon_fp16arith",
2610*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon_fp16arith_aarch64",
2611*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon_v8",
2612*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neonfma_aarch64",
2613*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neonfma_i8mm",
2614*da0073e9SAndroid Build Coastguard Worker            ":ukernels_fp16arith",
2615*da0073e9SAndroid Build Coastguard Worker        ],
2616*da0073e9SAndroid Build Coastguard Worker    )
2617*da0073e9SAndroid Build Coastguard Worker
2618*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
2619*da0073e9SAndroid Build Coastguard Worker        name = "armv7_lib",
2620*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
2621*da0073e9SAndroid Build Coastguard Worker        labels = labels,
2622*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
2623*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
2624*da0073e9SAndroid Build Coastguard Worker        deps = [
2625*da0073e9SAndroid Build Coastguard Worker            ":jit_memory",
2626*da0073e9SAndroid Build Coastguard Worker            ":ukernels_asm_aarch32",
2627*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon",
2628*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon_dot",
2629*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon_fma",
2630*da0073e9SAndroid Build Coastguard Worker            ":ukernels_neon_v8",
2631*da0073e9SAndroid Build Coastguard Worker        ],
2632*da0073e9SAndroid Build Coastguard Worker    )
2633*da0073e9SAndroid Build Coastguard Worker
2634*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
2635*da0073e9SAndroid Build Coastguard Worker        name = "prod_ukernels",
2636*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
2637*da0073e9SAndroid Build Coastguard Worker        labels = labels,
2638*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
2639*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
2640*da0073e9SAndroid Build Coastguard Worker        deps = [
2641*da0073e9SAndroid Build Coastguard Worker            ":ukernels_scalar",
2642*da0073e9SAndroid Build Coastguard Worker        ] + select({
2643*da0073e9SAndroid Build Coastguard Worker            "DEFAULT": [
2644*da0073e9SAndroid Build Coastguard Worker                ":arm_lib",
2645*da0073e9SAndroid Build Coastguard Worker                ":x86_and_x86_64_lib",
2646*da0073e9SAndroid Build Coastguard Worker            ],
2647*da0073e9SAndroid Build Coastguard Worker            "ovr_config//os:windows": [":x86_and_x86_64_lib_ovr_win32"] if XNNPACK_WINDOWS_AVX512F_ENABLED else [
2648*da0073e9SAndroid Build Coastguard Worker                ":arm_lib",
2649*da0073e9SAndroid Build Coastguard Worker                ":x86_and_x86_64_lib",
2650*da0073e9SAndroid Build Coastguard Worker            ],
2651*da0073e9SAndroid Build Coastguard Worker            # doesn't cover iphonesimulator-x86_64
2652*da0073e9SAndroid Build Coastguard Worker            "ovr_config//runtime:arm64-linux-ubuntu-neon": [":arm64_lib"],
2653*da0073e9SAndroid Build Coastguard Worker            "ovr_config//runtime:platform010": [":x86_and_x86_64_lib"],
2654*da0073e9SAndroid Build Coastguard Worker        }),
2655*da0073e9SAndroid Build Coastguard Worker    )
2656*da0073e9SAndroid Build Coastguard Worker
2657*da0073e9SAndroid Build Coastguard Worker    fb_xplat_cxx_library(
2658*da0073e9SAndroid Build Coastguard Worker        name = "XNNPACK",
2659*da0073e9SAndroid Build Coastguard Worker        apple_sdks = (IOS, MACOSX, APPLETVOS),
2660*da0073e9SAndroid Build Coastguard Worker        labels = labels,
2661*da0073e9SAndroid Build Coastguard Worker        deps = [
2662*da0073e9SAndroid Build Coastguard Worker            ":subgraph",
2663*da0073e9SAndroid Build Coastguard Worker            ":tables",
2664*da0073e9SAndroid Build Coastguard Worker            ":prod_ukernels",
2665*da0073e9SAndroid Build Coastguard Worker            third_party("cpuinfo"),
2666*da0073e9SAndroid Build Coastguard Worker            third_party("pthreadpool"),
2667*da0073e9SAndroid Build Coastguard Worker        ],
2668*da0073e9SAndroid Build Coastguard Worker        exported_headers = {
2669*da0073e9SAndroid Build Coastguard Worker            "xnnpack.h": "XNNPACK/include/xnnpack.h",
2670*da0073e9SAndroid Build Coastguard Worker        },
2671*da0073e9SAndroid Build Coastguard Worker        fbobjc_preprocessor_flags = [
2672*da0073e9SAndroid Build Coastguard Worker            "-DXNN_PRIVATE=",
2673*da0073e9SAndroid Build Coastguard Worker            "-DXNN_INTERNAL=",
2674*da0073e9SAndroid Build Coastguard Worker        ],
2675*da0073e9SAndroid Build Coastguard Worker        header_namespace = "",
2676*da0073e9SAndroid Build Coastguard Worker        headers = subdir_glob([
2677*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/src", "**/*.h"),
2678*da0073e9SAndroid Build Coastguard Worker            ("XNNPACK/include", "**/*.h"),
2679*da0073e9SAndroid Build Coastguard Worker        ]),
2680*da0073e9SAndroid Build Coastguard Worker        platforms = (APPLE, ANDROID, CXX, WINDOWS),
2681*da0073e9SAndroid Build Coastguard Worker        preferred_linkage = "static",
2682*da0073e9SAndroid Build Coastguard Worker        preprocessor_flags = [
2683*da0073e9SAndroid Build Coastguard Worker            "-DXNN_LOG_LEVEL=0",
2684*da0073e9SAndroid Build Coastguard Worker            "-DXNN_NO_Q8_OPERATORS",
2685*da0073e9SAndroid Build Coastguard Worker            "-DXNN_NO_F16_OPERATORS",
2686*da0073e9SAndroid Build Coastguard Worker            "-DXNN_NO_NCHW_OPERATORS",
2687*da0073e9SAndroid Build Coastguard Worker            "-DXNN_NO_QU8_OPERATORS",
2688*da0073e9SAndroid Build Coastguard Worker            "-DXNN_NO_U8_OPERATORS",
2689*da0073e9SAndroid Build Coastguard Worker            "-DXNN_NO_X32_OPERATORS",
2690*da0073e9SAndroid Build Coastguard Worker            "-DXNN_NO_X8_OPERATORS",
2691*da0073e9SAndroid Build Coastguard Worker            "-DXNN_ENABLE_MEMOPT",
2692*da0073e9SAndroid Build Coastguard Worker            "-DXNN_ENABLE_SPARSE=0",
2693*da0073e9SAndroid Build Coastguard Worker            "-DXNN_ENABLE_JIT=0",
2694*da0073e9SAndroid Build Coastguard Worker            "-DXNN_ENABLE_ASSEMBLY",
2695*da0073e9SAndroid Build Coastguard Worker            "-DXNN_ENABLE_GEMM_M_SPECIALIZATION",
2696*da0073e9SAndroid Build Coastguard Worker            "-DXNN_ENABLE_ARM_DOTPROD",
2697*da0073e9SAndroid Build Coastguard Worker            "-DXNN_ENABLE_CPUINFO",
2698*da0073e9SAndroid Build Coastguard Worker            "-DXNN_ENABLE_ARM_I8MM=1",
2699*da0073e9SAndroid Build Coastguard Worker            "-DXNN_ENABLE_ARM_FP16_VECTOR=1",
2700*da0073e9SAndroid Build Coastguard Worker            "-DXNN_ENABLE_AVXVNNI=0",
2701*da0073e9SAndroid Build Coastguard Worker        ],
2702*da0073e9SAndroid Build Coastguard Worker        srcs = XNNPACK_SRCS + LOGGING_SRCS + OPERATOR_SRCS + [
2703*da0073e9SAndroid Build Coastguard Worker            "XNNPACK/src/configs/hardware-config.c",
2704*da0073e9SAndroid Build Coastguard Worker            "XNNPACK/src/microkernel-utils.c",
2705*da0073e9SAndroid Build Coastguard Worker            "XNNPACK/src/operator-run.c",
2706*da0073e9SAndroid Build Coastguard Worker            "XNNPACK/src/packing.c",
2707*da0073e9SAndroid Build Coastguard Worker            "XNNPACK/src/cache.c",
2708*da0073e9SAndroid Build Coastguard Worker            "XNNPACK/src/indirection.c",
2709*da0073e9SAndroid Build Coastguard Worker            "XNNPACK/src/operator-utils.c",
2710*da0073e9SAndroid Build Coastguard Worker            "XNNPACK/src/normalization.c",
2711*da0073e9SAndroid Build Coastguard Worker            "XNNPACK/src/allocator.c",
2712*da0073e9SAndroid Build Coastguard Worker            "XNNPACK/src/memory.c",
2713*da0073e9SAndroid Build Coastguard Worker            "XNNPACK/src/mutex.c",
2714*da0073e9SAndroid Build Coastguard Worker            "XNNPACK/src/microparams-init.c",
2715*da0073e9SAndroid Build Coastguard Worker            "XNNPACK/src/operators/post-operation.c",
2716*da0073e9SAndroid Build Coastguard Worker        ],
2717*da0073e9SAndroid Build Coastguard Worker        visibility = ["PUBLIC"],
2718*da0073e9SAndroid Build Coastguard Worker        windows_clang_compiler_flags_override = (WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS) if XNNPACK_WINDOWS_AVX512F_ENABLED else WINDOWS_FLAGS,
2719*da0073e9SAndroid Build Coastguard Worker        windows_compiler_flags_override = WINDOWS_FLAGS if XNNPACK_WINDOWS_AVX512F_ENABLED else [],
2720*da0073e9SAndroid Build Coastguard Worker    )
2721