• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1load("//tensorflow/lite:build_def.bzl", "tflite_copts")
2load("//tensorflow/lite:special_rules.bzl", "internal_visibility_allowlist", "tflite_portable_test_suite_combined")
3load("//tensorflow:tensorflow.bzl", "get_compatible_with_portable")
4
5package(
6    default_visibility = ["//visibility:public"],
7    licenses = ["notice"],
8)
9
10EMSCRIPTEN_LINKOPTS = [
11    "-s ASSERTIONS=2",
12    "-s ERROR_ON_UNDEFINED_SYMBOLS=1",
13    "-s DEMANGLE_SUPPORT=1",
14    "-s EXIT_RUNTIME=1",
15    "-s ALLOW_MEMORY_GROWTH=1",
16    "-s TOTAL_MEMORY=134217728",
17]
18
19exports_files([
20    "xnnpack_delegate.h",
21])
22
23# Force XNNPACK to run FP32 models as FP16, regardless of model metadata.
24config_setting(
25    name = "xnnpack_force_float_precision_explicit_fp16",
26    define_values = {"xnnpack_force_float_precision": "fp16"},
27)
28
29# Enable offloading of quantized 8-bit signed operators to XNNPACK delegate
30config_setting(
31    name = "tflite_with_xnnpack_qs8_explicit_true",
32    define_values = {"tflite_with_xnnpack_qs8": "true"},
33)
34
35# Disable offloading of quantized 8-bit signed operators to XNNPACK delegate
36config_setting(
37    name = "tflite_with_xnnpack_qs8_explicit_false",
38    define_values = {"tflite_with_xnnpack_qs8": "false"},
39)
40
41# Default setting for offloading of quantized 8-bit signed operators to XNNPACK delegate
42cc_library(
43    name = "tflite_with_xnnpack_qs8_default",
44    compatible_with = get_compatible_with_portable(),
45    defines = ["XNNPACK_DELEGATE_ENABLE_QS8=1"],
46)
47
48cc_library(
49    name = "tflite_with_xnnpack_qs8",
50    compatible_with = get_compatible_with_portable(),
51    defines = select({
52        ":tflite_with_xnnpack_qs8_explicit_true": ["XNNPACK_DELEGATE_ENABLE_QS8=1"],
53        ":tflite_with_xnnpack_qs8_explicit_false": [],
54        "//conditions:default": [],
55    }),
56    deps = select({
57        ":tflite_with_xnnpack_qs8_explicit_true": [],
58        ":tflite_with_xnnpack_qs8_explicit_false": [],
59        "//conditions:default": [":tflite_with_xnnpack_qs8_default"],
60    }),
61)
62
63# Enable offloading of quantized 8-bit unsigned operators to XNNPACK delegate
64config_setting(
65    name = "tflite_with_xnnpack_qu8_explicit_true",
66    define_values = {"tflite_with_xnnpack_qu8": "true"},
67)
68
69# Disable offloading of quantized 8-bit unsigned operators to XNNPACK delegate
70config_setting(
71    name = "tflite_with_xnnpack_qu8_explicit_false",
72    define_values = {"tflite_with_xnnpack_qu8": "false"},
73)
74
75# Default setting for offloading of quantized 8-bit unsigned operators to XNNPACK delegate
76cc_library(
77    name = "tflite_with_xnnpack_qu8_default",
78    compatible_with = get_compatible_with_portable(),
79    defines = select({
80        # Enable for WebAssembly builds
81        "//tensorflow:emscripten": ["XNNPACK_DELEGATE_ENABLE_QU8=1"],
82        # Disable for all other builds
83        "//conditions:default": [],
84    }),
85)
86
87cc_library(
88    name = "tflite_with_xnnpack_qu8",
89    compatible_with = get_compatible_with_portable(),
90    defines = select({
91        ":tflite_with_xnnpack_qu8_explicit_true": ["XNNPACK_DELEGATE_ENABLE_QU8=1"],
92        ":tflite_with_xnnpack_qu8_explicit_false": [],
93        "//conditions:default": [],
94    }),
95    deps = select({
96        ":tflite_with_xnnpack_qu8_explicit_true": [],
97        ":tflite_with_xnnpack_qu8_explicit_false": [],
98        "//conditions:default": [":tflite_with_xnnpack_qu8_default"],
99    }),
100)
101
102cc_library(
103    name = "xnnpack_delegate",
104    srcs = ["xnnpack_delegate.cc"],
105    hdrs = ["xnnpack_delegate.h"],
106    compatible_with = get_compatible_with_portable(),
107    copts = tflite_copts() + select({
108        ":xnnpack_force_float_precision_explicit_fp16": ["-DXNNPACK_DELEGATE_FORCE_PRECISION_FP16=1"],
109        "//conditions:default": [],
110    }),
111    linkstatic = True,
112    deps = [
113        ":quantization_util",
114        ":tflite_with_xnnpack_qs8",
115        ":tflite_with_xnnpack_qu8",
116        "//tensorflow/lite:kernel_api",
117        "//tensorflow/lite:minimal_logging",
118        "//tensorflow/lite/c:common",
119        "//tensorflow/lite/core/api",
120        "//tensorflow/lite/kernels:kernel_util",
121        "//tensorflow/lite/kernels:padding",
122        "//tensorflow/lite/kernels/internal:compatibility",
123        "//tensorflow/lite/kernels/internal:tensor",
124        "//tensorflow/lite/kernels/internal/utils:sparsity_format_converter",
125        "//tensorflow/lite/tools/optimize:reduced_precision_support",
126        "@XNNPACK//:xnnpack_for_tflite",
127    ],
128)
129
130cc_library(
131    name = "xnnpack_delegate_hdrs_only",
132    hdrs = ["xnnpack_delegate.h"],
133    compatible_with = get_compatible_with_portable(),
134    visibility = internal_visibility_allowlist(),
135    deps = [
136        "//tensorflow/lite/c:common",
137    ],
138)
139
140cc_library(
141    name = "xnnpack_delegate_test_mode",
142    srcs = ["xnnpack_delegate.cc"],
143    hdrs = ["xnnpack_delegate.h"],
144    copts = tflite_copts() + ["-DXNNPACK_DELEGATE_TEST_MODE=1"],
145    linkstatic = True,
146    deps = [
147        ":quantization_util",
148        "//tensorflow/lite:kernel_api",
149        "//tensorflow/lite:minimal_logging",
150        "//tensorflow/lite/c:common",
151        "//tensorflow/lite/core/api",
152        "//tensorflow/lite/kernels:kernel_util",
153        "//tensorflow/lite/kernels:padding",
154        "//tensorflow/lite/kernels/internal:compatibility",
155        "//tensorflow/lite/kernels/internal:tensor",
156        "//tensorflow/lite/kernels/internal/utils:sparsity_format_converter",
157        "//tensorflow/lite/tools/optimize:reduced_precision_support",
158        "@XNNPACK",
159    ],
160)
161
162cc_library(
163    name = "quantization_util",
164    srcs = ["quantization_util.cc"],
165    hdrs = ["quantization_util.h"],
166    compatible_with = get_compatible_with_portable(),
167    copts = tflite_copts(),
168    deps = [
169        "//tensorflow/lite/kernels/internal:optimized_base",
170        "//tensorflow/lite/kernels/internal:reference_base",
171        "//tensorflow/lite/kernels/internal:types",
172        "@FP16",
173    ],
174)
175
176################################ Tester classes ################################
177
178cc_library(
179    name = "test_util",
180    testonly = 1,
181    srcs = ["test_util.cc"],
182    hdrs = ["test_util.h"],
183    deps = [
184        "//tensorflow/lite/kernels/internal:cppmath",
185        "//tensorflow/lite/kernels/internal:types",
186    ],
187)
188
189cc_library(
190    name = "binary_elementwise_tester",
191    testonly = 1,
192    srcs = ["binary_elementwise_tester.cc"],
193    hdrs = ["binary_elementwise_tester.h"],
194    deps = [
195        ":test_util",
196        "//tensorflow/lite:framework",
197        "//tensorflow/lite:schema_fbs_version",
198        "//tensorflow/lite/c:common",
199        "//tensorflow/lite/kernels:builtin_ops",
200        "//tensorflow/lite/schema:schema_conversion_utils",
201        "//tensorflow/lite/schema:schema_fbs",
202        "@FP16",
203        "@com_google_googletest//:gtest",
204        "@flatbuffers",
205    ],
206)
207
208cc_library(
209    name = "concatenation_tester",
210    testonly = 1,
211    srcs = ["concatenation_tester.cc"],
212    hdrs = ["concatenation_tester.h"],
213    deps = [
214        "//tensorflow/lite:framework",
215        "//tensorflow/lite:schema_fbs_version",
216        "//tensorflow/lite/c:common",
217        "//tensorflow/lite/kernels:builtin_ops",
218        "//tensorflow/lite/schema:schema_conversion_utils",
219        "//tensorflow/lite/schema:schema_fbs",
220        "@com_google_googletest//:gtest",
221        "@flatbuffers",
222    ],
223)
224
225cc_library(
226    name = "conv_2d_tester",
227    testonly = 1,
228    srcs = ["conv_2d_tester.cc"],
229    hdrs = ["conv_2d_tester.h"],
230    deps = [
231        ":test_util",
232        ":xnnpack_delegate_test_mode",
233        "//tensorflow/lite:framework",
234        "//tensorflow/lite:schema_fbs_version",
235        "//tensorflow/lite/c:common",
236        "//tensorflow/lite/kernels:builtin_ops",
237        "//tensorflow/lite/schema:schema_conversion_utils",
238        "//tensorflow/lite/schema:schema_fbs",
239        "@FP16",
240        "@com_google_googletest//:gtest",
241        "@flatbuffers",
242    ],
243)
244
245cc_library(
246    name = "depth_to_space_tester",
247    testonly = 1,
248    srcs = ["depth_to_space_tester.cc"],
249    hdrs = ["depth_to_space_tester.h"],
250    deps = [
251        "//tensorflow/lite:framework",
252        "//tensorflow/lite:schema_fbs_version",
253        "//tensorflow/lite/c:common",
254        "//tensorflow/lite/kernels:builtin_ops",
255        "//tensorflow/lite/schema:schema_conversion_utils",
256        "//tensorflow/lite/schema:schema_fbs",
257        "@com_google_googletest//:gtest",
258        "@flatbuffers",
259    ],
260)
261
262cc_library(
263    name = "depthwise_conv_2d_tester",
264    testonly = 1,
265    srcs = ["depthwise_conv_2d_tester.cc"],
266    hdrs = ["depthwise_conv_2d_tester.h"],
267    deps = [
268        ":test_util",
269        ":xnnpack_delegate_test_mode",
270        "//tensorflow/lite:framework",
271        "//tensorflow/lite:schema_fbs_version",
272        "//tensorflow/lite/c:common",
273        "//tensorflow/lite/kernels:builtin_ops",
274        "//tensorflow/lite/schema:schema_conversion_utils",
275        "//tensorflow/lite/schema:schema_fbs",
276        "@FP16",
277        "@com_google_googletest//:gtest",
278        "@flatbuffers",
279    ],
280)
281
282cc_library(
283    name = "dequantize_tester",
284    testonly = 1,
285    srcs = ["dequantize_tester.cc"],
286    hdrs = ["dequantize_tester.h"],
287    deps = [
288        "//tensorflow/lite:framework",
289        "//tensorflow/lite:schema_fbs_version",
290        "//tensorflow/lite/c:common",
291        "//tensorflow/lite/kernels:builtin_ops",
292        "//tensorflow/lite/schema:schema_conversion_utils",
293        "//tensorflow/lite/schema:schema_fbs",
294        "@com_google_googletest//:gtest",
295        "@flatbuffers",
296    ],
297)
298
299cc_library(
300    name = "fully_connected_tester",
301    testonly = 1,
302    srcs = ["fully_connected_tester.cc"],
303    hdrs = ["fully_connected_tester.h"],
304    deps = [
305        ":test_util",
306        ":xnnpack_delegate_test_mode",
307        "//tensorflow/lite:framework",
308        "//tensorflow/lite:schema_fbs_version",
309        "//tensorflow/lite/c:common",
310        "//tensorflow/lite/kernels:builtin_ops",
311        "//tensorflow/lite/schema:schema_conversion_utils",
312        "//tensorflow/lite/schema:schema_fbs",
313        "@FP16",
314        "@com_google_googletest//:gtest",
315        "@flatbuffers",
316    ],
317)
318
319cc_library(
320    name = "leaky_relu_tester",
321    testonly = 1,
322    srcs = ["leaky_relu_tester.cc"],
323    hdrs = ["leaky_relu_tester.h"],
324    deps = [
325        "//tensorflow/lite:framework",
326        "//tensorflow/lite:schema_fbs_version",
327        "//tensorflow/lite/c:common",
328        "//tensorflow/lite/kernels:builtin_ops",
329        "//tensorflow/lite/schema:schema_conversion_utils",
330        "//tensorflow/lite/schema:schema_fbs",
331        "@com_google_googletest//:gtest",
332        "@flatbuffers",
333    ],
334)
335
336cc_library(
337    name = "pad_tester",
338    testonly = 1,
339    srcs = ["pad_tester.cc"],
340    hdrs = ["pad_tester.h"],
341    deps = [
342        "//tensorflow/lite:framework",
343        "//tensorflow/lite:schema_fbs_version",
344        "//tensorflow/lite/c:common",
345        "//tensorflow/lite/kernels:builtin_ops",
346        "//tensorflow/lite/schema:schema_conversion_utils",
347        "//tensorflow/lite/schema:schema_fbs",
348        "@com_google_googletest//:gtest",
349        "@flatbuffers",
350    ],
351)
352
353cc_library(
354    name = "pool_2d_tester",
355    testonly = 1,
356    srcs = ["pool_2d_tester.cc"],
357    hdrs = ["pool_2d_tester.h"],
358    deps = [
359        "//tensorflow/lite:framework",
360        "//tensorflow/lite:schema_fbs_version",
361        "//tensorflow/lite/c:common",
362        "//tensorflow/lite/kernels:builtin_ops",
363        "//tensorflow/lite/schema:schema_conversion_utils",
364        "//tensorflow/lite/schema:schema_fbs",
365        "@com_google_googletest//:gtest",
366        "@flatbuffers",
367    ],
368)
369
370cc_library(
371    name = "prelu_tester",
372    testonly = 1,
373    srcs = ["prelu_tester.cc"],
374    hdrs = ["prelu_tester.h"],
375    deps = [
376        ":test_util",
377        ":xnnpack_delegate_test_mode",
378        "//tensorflow/lite:framework",
379        "//tensorflow/lite:schema_fbs_version",
380        "//tensorflow/lite/c:common",
381        "//tensorflow/lite/kernels:builtin_ops",
382        "//tensorflow/lite/schema:schema_conversion_utils",
383        "//tensorflow/lite/schema:schema_fbs",
384        "@FP16",
385        "@com_google_googletest//:gtest",
386        "@flatbuffers",
387    ],
388)
389
390cc_library(
391    name = "quantize_tester",
392    testonly = 1,
393    srcs = ["quantize_tester.cc"],
394    hdrs = ["quantize_tester.h"],
395    deps = [
396        "//tensorflow/lite:framework",
397        "//tensorflow/lite:schema_fbs_version",
398        "//tensorflow/lite/c:common",
399        "//tensorflow/lite/kernels:builtin_ops",
400        "//tensorflow/lite/schema:schema_conversion_utils",
401        "//tensorflow/lite/schema:schema_fbs",
402        "@com_google_googletest//:gtest",
403        "@flatbuffers",
404    ],
405)
406
407cc_library(
408    name = "quantized_binary_elementwise_tester",
409    testonly = 1,
410    srcs = ["quantized_binary_elementwise_tester.cc"],
411    hdrs = ["quantized_binary_elementwise_tester.h"],
412    deps = [
413        "//tensorflow/lite:framework",
414        "//tensorflow/lite:schema_fbs_version",
415        "//tensorflow/lite/c:common",
416        "//tensorflow/lite/kernels:builtin_ops",
417        "//tensorflow/lite/schema:schema_conversion_utils",
418        "//tensorflow/lite/schema:schema_fbs",
419        "@com_google_googletest//:gtest",
420        "@flatbuffers",
421    ],
422)
423
424cc_library(
425    name = "quantized_conv_2d_tester",
426    testonly = 1,
427    srcs = ["quantized_conv_2d_tester.cc"],
428    hdrs = ["quantized_conv_2d_tester.h"],
429    deps = [
430        ":xnnpack_delegate_test_mode",
431        "//tensorflow/lite:framework",
432        "//tensorflow/lite:schema_fbs_version",
433        "//tensorflow/lite/c:common",
434        "//tensorflow/lite/kernels:builtin_ops",
435        "//tensorflow/lite/schema:schema_conversion_utils",
436        "//tensorflow/lite/schema:schema_fbs",
437        "@com_google_googletest//:gtest",
438        "@flatbuffers",
439    ],
440)
441
442cc_library(
443    name = "quantized_depthwise_conv_2d_tester",
444    testonly = 1,
445    srcs = ["quantized_depthwise_conv_2d_tester.cc"],
446    hdrs = ["quantized_depthwise_conv_2d_tester.h"],
447    deps = [
448        ":xnnpack_delegate_test_mode",
449        "//tensorflow/lite:framework",
450        "//tensorflow/lite:schema_fbs_version",
451        "//tensorflow/lite/c:common",
452        "//tensorflow/lite/kernels:builtin_ops",
453        "//tensorflow/lite/schema:schema_conversion_utils",
454        "//tensorflow/lite/schema:schema_fbs",
455        "@com_google_googletest//:gtest",
456        "@flatbuffers",
457    ],
458)
459
460cc_library(
461    name = "quantized_fully_connected_tester",
462    testonly = 1,
463    srcs = ["quantized_fully_connected_tester.cc"],
464    hdrs = ["quantized_fully_connected_tester.h"],
465    deps = [
466        ":xnnpack_delegate_test_mode",
467        "//tensorflow/lite:framework",
468        "//tensorflow/lite:schema_fbs_version",
469        "//tensorflow/lite/c:common",
470        "//tensorflow/lite/kernels:builtin_ops",
471        "//tensorflow/lite/schema:schema_conversion_utils",
472        "//tensorflow/lite/schema:schema_fbs",
473        "@com_google_googletest//:gtest",
474        "@flatbuffers",
475    ],
476)
477
478cc_library(
479    name = "quantized_leaky_relu_tester",
480    testonly = 1,
481    srcs = ["quantized_leaky_relu_tester.cc"],
482    hdrs = ["quantized_leaky_relu_tester.h"],
483    deps = [
484        "//tensorflow/lite:framework",
485        "//tensorflow/lite:schema_fbs_version",
486        "//tensorflow/lite/c:common",
487        "//tensorflow/lite/kernels:builtin_ops",
488        "//tensorflow/lite/schema:schema_conversion_utils",
489        "//tensorflow/lite/schema:schema_fbs",
490        "@com_google_googletest//:gtest",
491        "@flatbuffers",
492    ],
493)
494
495cc_library(
496    name = "quantized_pad_tester",
497    testonly = 1,
498    srcs = ["quantized_pad_tester.cc"],
499    hdrs = ["quantized_pad_tester.h"],
500    deps = [
501        "//tensorflow/lite:framework",
502        "//tensorflow/lite:schema_fbs_version",
503        "//tensorflow/lite/c:common",
504        "//tensorflow/lite/kernels:builtin_ops",
505        "//tensorflow/lite/schema:schema_conversion_utils",
506        "//tensorflow/lite/schema:schema_fbs",
507        "@com_google_googletest//:gtest",
508        "@flatbuffers",
509    ],
510)
511
512cc_library(
513    name = "quantized_pool_2d_tester",
514    testonly = 1,
515    srcs = ["quantized_pool_2d_tester.cc"],
516    hdrs = ["quantized_pool_2d_tester.h"],
517    deps = [
518        "//tensorflow/lite:framework",
519        "//tensorflow/lite:schema_fbs_version",
520        "//tensorflow/lite/c:common",
521        "//tensorflow/lite/kernels:builtin_ops",
522        "//tensorflow/lite/schema:schema_conversion_utils",
523        "//tensorflow/lite/schema:schema_fbs",
524        "@com_google_googletest//:gtest",
525        "@flatbuffers",
526    ],
527)
528
529cc_library(
530    name = "quantized_reduce_tester",
531    testonly = 1,
532    srcs = ["quantized_reduce_tester.cc"],
533    hdrs = ["quantized_reduce_tester.h"],
534    deps = [
535        "//tensorflow/lite:framework",
536        "//tensorflow/lite:schema_fbs_version",
537        "//tensorflow/lite/c:common",
538        "//tensorflow/lite/kernels:builtin_ops",
539        "//tensorflow/lite/schema:schema_conversion_utils",
540        "//tensorflow/lite/schema:schema_fbs",
541        "@com_google_googletest//:gtest",
542        "@flatbuffers",
543    ],
544)
545
546cc_library(
547    name = "quantized_resize_bilinear_tester",
548    testonly = 1,
549    srcs = ["quantized_resize_bilinear_tester.cc"],
550    hdrs = ["quantized_resize_bilinear_tester.h"],
551    deps = [
552        "//tensorflow/lite:framework",
553        "//tensorflow/lite:schema_fbs_version",
554        "//tensorflow/lite/c:common",
555        "//tensorflow/lite/kernels:builtin_ops",
556        "//tensorflow/lite/schema:schema_conversion_utils",
557        "//tensorflow/lite/schema:schema_fbs",
558        "@com_google_googletest//:gtest",
559        "@flatbuffers",
560    ],
561)
562
563cc_library(
564    name = "quantized_unary_elementwise_tester",
565    testonly = 1,
566    srcs = ["quantized_unary_elementwise_tester.cc"],
567    hdrs = ["quantized_unary_elementwise_tester.h"],
568    deps = [
569        "//tensorflow/lite:framework",
570        "//tensorflow/lite:schema_fbs_version",
571        "//tensorflow/lite/c:common",
572        "//tensorflow/lite/kernels:builtin_ops",
573        "//tensorflow/lite/schema:schema_conversion_utils",
574        "//tensorflow/lite/schema:schema_fbs",
575        "@com_google_googletest//:gtest",
576        "@flatbuffers",
577    ],
578)
579
580cc_library(
581    name = "reduce_tester",
582    testonly = 1,
583    srcs = ["reduce_tester.cc"],
584    hdrs = ["reduce_tester.h"],
585    deps = [
586        "//tensorflow/lite:framework",
587        "//tensorflow/lite:schema_fbs_version",
588        "//tensorflow/lite/c:common",
589        "//tensorflow/lite/kernels:builtin_ops",
590        "//tensorflow/lite/schema:schema_conversion_utils",
591        "//tensorflow/lite/schema:schema_fbs",
592        "@com_google_googletest//:gtest",
593        "@flatbuffers",
594    ],
595)
596
597cc_library(
598    name = "reshape_tester",
599    testonly = 1,
600    srcs = ["reshape_tester.cc"],
601    hdrs = ["reshape_tester.h"],
602    deps = [
603        "//tensorflow/lite:framework",
604        "//tensorflow/lite:schema_fbs_version",
605        "//tensorflow/lite/c:common",
606        "//tensorflow/lite/kernels:builtin_ops",
607        "//tensorflow/lite/schema:schema_conversion_utils",
608        "//tensorflow/lite/schema:schema_fbs",
609        "@com_google_googletest//:gtest",
610        "@flatbuffers",
611    ],
612)
613
614cc_library(
615    name = "resize_bilinear_tester",
616    testonly = 1,
617    srcs = ["resize_bilinear_tester.cc"],
618    hdrs = ["resize_bilinear_tester.h"],
619    deps = [
620        "//tensorflow/lite:framework",
621        "//tensorflow/lite:schema_fbs_version",
622        "//tensorflow/lite/c:common",
623        "//tensorflow/lite/kernels:builtin_ops",
624        "//tensorflow/lite/schema:schema_conversion_utils",
625        "//tensorflow/lite/schema:schema_fbs",
626        "@com_google_googletest//:gtest",
627        "@flatbuffers",
628    ],
629)
630
631cc_library(
632    name = "split_tester",
633    testonly = 1,
634    srcs = ["split_tester.cc"],
635    hdrs = ["split_tester.h"],
636    deps = [
637        "//tensorflow/lite:framework",
638        "//tensorflow/lite:schema_fbs_version",
639        "//tensorflow/lite/c:common",
640        "//tensorflow/lite/kernels:builtin_ops",
641        "//tensorflow/lite/schema:schema_conversion_utils",
642        "//tensorflow/lite/schema:schema_fbs",
643        "@com_google_googletest//:gtest",
644        "@flatbuffers",
645    ],
646)
647
648cc_library(
649    name = "softmax_tester",
650    testonly = 1,
651    srcs = ["softmax_tester.cc"],
652    hdrs = ["softmax_tester.h"],
653    deps = [
654        "//tensorflow/lite:framework",
655        "//tensorflow/lite:schema_fbs_version",
656        "//tensorflow/lite/c:common",
657        "//tensorflow/lite/kernels:builtin_ops",
658        "//tensorflow/lite/schema:schema_conversion_utils",
659        "//tensorflow/lite/schema:schema_fbs",
660        "@com_google_googletest//:gtest",
661        "@flatbuffers",
662    ],
663)
664
665cc_library(
666    name = "unary_elementwise_tester",
667    testonly = 1,
668    srcs = ["unary_elementwise_tester.cc"],
669    hdrs = ["unary_elementwise_tester.h"],
670    deps = [
671        "//tensorflow/lite:framework",
672        "//tensorflow/lite:schema_fbs_version",
673        "//tensorflow/lite/c:common",
674        "//tensorflow/lite/kernels:builtin_ops",
675        "//tensorflow/lite/schema:schema_conversion_utils",
676        "//tensorflow/lite/schema:schema_fbs",
677        "@com_google_googletest//:gtest",
678        "@flatbuffers",
679    ],
680)
681
682cc_library(
683    name = "transpose_tester",
684    testonly = 1,
685    srcs = ["transpose_tester.cc"],
686    hdrs = ["transpose_tester.h"],
687    deps = [
688        "//tensorflow/lite:framework",
689        "//tensorflow/lite:schema_fbs_version",
690        "//tensorflow/lite/c:common",
691        "//tensorflow/lite/kernels:builtin_ops",
692        "//tensorflow/lite/schema:schema_conversion_utils",
693        "//tensorflow/lite/schema:schema_fbs",
694        "@com_google_googletest//:gtest",
695        "@flatbuffers",
696    ],
697)
698
699cc_library(
700    name = "transpose_conv_tester",
701    testonly = 1,
702    srcs = ["transpose_conv_tester.cc"],
703    hdrs = ["transpose_conv_tester.h"],
704    deps = [
705        ":test_util",
706        ":xnnpack_delegate_test_mode",
707        "//tensorflow/lite:framework",
708        "//tensorflow/lite:schema_fbs_version",
709        "//tensorflow/lite/c:common",
710        "//tensorflow/lite/kernels:builtin_ops",
711        "//tensorflow/lite/schema:schema_conversion_utils",
712        "//tensorflow/lite/schema:schema_fbs",
713        "@FP16",
714        "@com_google_googletest//:gtest",
715        "@flatbuffers",
716    ],
717)
718
719cc_library(
720    name = "quantized_transpose_conv_tester",
721    testonly = 1,
722    srcs = ["quantized_transpose_conv_tester.cc"],
723    hdrs = ["quantized_transpose_conv_tester.h"],
724    deps = [
725        ":xnnpack_delegate_test_mode",
726        "//tensorflow/lite:framework",
727        "//tensorflow/lite:schema_fbs_version",
728        "//tensorflow/lite/c:common",
729        "//tensorflow/lite/kernels:builtin_ops",
730        "//tensorflow/lite/schema:schema_conversion_utils",
731        "//tensorflow/lite/schema:schema_fbs",
732        "@FP16",
733        "@com_google_googletest//:gtest",
734        "@flatbuffers",
735    ],
736)
737
738############################## Integration tests ###############################
739
740cc_library(
741    name = "test_main",
742    testonly = 1,
743    linkopts = select({
744        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
745        "//conditions:default": [],
746    }),
747    deps = [
748        "@com_google_googletest//:gtest_main",
749    ],
750)
751
752cc_test(
753    name = "abs_test",
754    srcs = ["abs_test.cc"],
755    linkopts = select({
756        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
757        "//conditions:default": [],
758    }),
759    deps = [
760        ":test_main",
761        ":unary_elementwise_tester",
762        ":xnnpack_delegate_test_mode",
763        "@com_google_googletest//:gtest",
764    ],
765)
766
767cc_test(
768    name = "add_test",
769    srcs = ["add_test.cc"],
770    linkopts = select({
771        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
772        "//conditions:default": [],
773    }),
774    deps = [
775        ":binary_elementwise_tester",
776        ":test_main",
777        ":xnnpack_delegate_test_mode",
778        "@com_google_googletest//:gtest",
779    ],
780)
781
782cc_test(
783    name = "average_pool_2d_test",
784    srcs = ["average_pool_2d_test.cc"],
785    linkopts = select({
786        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
787        "//conditions:default": [],
788    }),
789    deps = [
790        ":pool_2d_tester",
791        ":test_main",
792        ":xnnpack_delegate_test_mode",
793        "@com_google_googletest//:gtest",
794    ],
795)
796
797cc_test(
798    name = "ceil_test",
799    srcs = ["ceil_test.cc"],
800    linkopts = select({
801        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
802        "//conditions:default": [],
803    }),
804    deps = [
805        ":test_main",
806        ":unary_elementwise_tester",
807        ":xnnpack_delegate_test_mode",
808        "@com_google_googletest//:gtest",
809    ],
810)
811
812cc_test(
813    name = "channelwise_quantized_conv_2d_test",
814    srcs = ["channelwise_quantized_conv_2d_test.cc"],
815    linkopts = select({
816        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
817        "//conditions:default": [],
818    }),
819    deps = [
820        ":quantized_conv_2d_tester",
821        ":test_main",
822        ":xnnpack_delegate_test_mode",
823        "@com_google_googletest//:gtest",
824    ],
825)
826
827cc_test(
828    name = "channelwise_quantized_depthwise_conv_2d_test",
829    srcs = ["channelwise_quantized_depthwise_conv_2d_test.cc"],
830    linkopts = select({
831        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
832        "//conditions:default": [],
833    }),
834    deps = [
835        ":quantized_depthwise_conv_2d_tester",
836        ":test_main",
837        ":xnnpack_delegate_test_mode",
838        "@com_google_googletest//:gtest",
839    ],
840)
841
842cc_test(
843    name = "concatenation_test",
844    srcs = ["concatenation_test.cc"],
845    linkopts = select({
846        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
847        "//conditions:default": [],
848    }),
849    deps = [
850        ":concatenation_tester",
851        ":test_main",
852        ":xnnpack_delegate_test_mode",
853        "@com_google_googletest//:gtest",
854    ],
855)
856
857cc_test(
858    name = "conv_2d_test",
859    srcs = ["conv_2d_test.cc"],
860    linkopts = select({
861        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
862        "//conditions:default": [],
863    }),
864    deps = [
865        ":conv_2d_tester",
866        ":test_main",
867        ":xnnpack_delegate_test_mode",
868        "@com_google_googletest//:gtest",
869    ],
870)
871
872cc_test(
873    name = "delegate_test",
874    srcs = ["delegate_test.cc"],
875    linkopts = select({
876        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
877        "//conditions:default": [],
878    }),
879    deps = [
880        ":test_main",
881        ":xnnpack_delegate_test_mode",
882        "@com_google_googletest//:gtest",
883        "@pthreadpool",
884    ],
885)
886
887cc_test(
888    name = "depth_to_space_test",
889    srcs = ["depth_to_space_test.cc"],
890    linkopts = select({
891        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
892        "//conditions:default": [],
893    }),
894    deps = [
895        ":depth_to_space_tester",
896        ":test_main",
897        ":xnnpack_delegate_test_mode",
898        "@com_google_googletest//:gtest",
899    ],
900)
901
902cc_test(
903    name = "depthwise_conv_2d_test",
904    srcs = ["depthwise_conv_2d_test.cc"],
905    linkopts = select({
906        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
907        "//conditions:default": [],
908    }),
909    deps = [
910        ":depthwise_conv_2d_tester",
911        ":test_main",
912        ":xnnpack_delegate_test_mode",
913        "@com_google_googletest//:gtest",
914    ],
915)
916
917cc_test(
918    name = "div_test",
919    srcs = ["div_test.cc"],
920    linkopts = select({
921        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
922        "//conditions:default": [],
923    }),
924    deps = [
925        ":binary_elementwise_tester",
926        ":test_main",
927        ":xnnpack_delegate_test_mode",
928        "@com_google_googletest//:gtest",
929    ],
930)
931
932cc_test(
933    name = "elu_test",
934    srcs = ["elu_test.cc"],
935    linkopts = select({
936        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
937        "//conditions:default": [],
938    }),
939    deps = [
940        ":test_main",
941        ":unary_elementwise_tester",
942        ":xnnpack_delegate_test_mode",
943        "@com_google_googletest//:gtest",
944    ],
945)
946
947cc_test(
948    name = "fully_connected_test",
949    srcs = ["fully_connected_test.cc"],
950    linkopts = select({
951        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
952        "//conditions:default": [],
953    }),
954    deps = [
955        ":fully_connected_tester",
956        ":test_main",
957        ":xnnpack_delegate_test_mode",
958        "@com_google_googletest//:gtest",
959    ],
960)
961
962cc_test(
963    name = "floor_test",
964    srcs = ["floor_test.cc"],
965    linkopts = select({
966        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
967        "//conditions:default": [],
968    }),
969    deps = [
970        ":test_main",
971        ":unary_elementwise_tester",
972        ":xnnpack_delegate_test_mode",
973        "@com_google_googletest//:gtest",
974    ],
975)
976
977cc_test(
978    name = "hard_swish_test",
979    srcs = ["hard_swish_test.cc"],
980    linkopts = select({
981        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
982        "//conditions:default": [],
983    }),
984    deps = [
985        ":test_main",
986        ":unary_elementwise_tester",
987        ":xnnpack_delegate_test_mode",
988        "@com_google_googletest//:gtest",
989    ],
990)
991
992cc_test(
993    name = "leaky_relu_test",
994    srcs = ["leaky_relu_test.cc"],
995    linkopts = select({
996        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
997        "//conditions:default": [],
998    }),
999    deps = [
1000        ":leaky_relu_tester",
1001        ":test_main",
1002        ":xnnpack_delegate_test_mode",
1003        "@com_google_googletest//:gtest",
1004    ],
1005)
1006
1007cc_test(
1008    name = "logistic_test",
1009    srcs = ["logistic_test.cc"],
1010    linkopts = select({
1011        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1012        "//conditions:default": [],
1013    }),
1014    deps = [
1015        ":test_main",
1016        ":unary_elementwise_tester",
1017        ":xnnpack_delegate_test_mode",
1018        "@com_google_googletest//:gtest",
1019    ],
1020)
1021
1022cc_test(
1023    name = "max_pool_2d_test",
1024    srcs = ["max_pool_2d_test.cc"],
1025    linkopts = select({
1026        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1027        "//conditions:default": [],
1028    }),
1029    deps = [
1030        ":pool_2d_tester",
1031        ":test_main",
1032        ":xnnpack_delegate_test_mode",
1033        "@com_google_googletest//:gtest",
1034    ],
1035)
1036
1037cc_test(
1038    name = "maximum_test",
1039    srcs = ["maximum_test.cc"],
1040    linkopts = select({
1041        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1042        "//conditions:default": [],
1043    }),
1044    deps = [
1045        ":binary_elementwise_tester",
1046        ":test_main",
1047        ":xnnpack_delegate_test_mode",
1048        "@com_google_googletest//:gtest",
1049    ],
1050)
1051
1052cc_test(
1053    name = "mean_test",
1054    srcs = ["mean_test.cc"],
1055    linkopts = select({
1056        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1057        "//conditions:default": [],
1058    }),
1059    deps = [
1060        ":reduce_tester",
1061        ":test_main",
1062        ":xnnpack_delegate_test_mode",
1063        "@com_google_googletest//:gtest",
1064    ],
1065)
1066
1067cc_test(
1068    name = "minimum_test",
1069    srcs = ["minimum_test.cc"],
1070    linkopts = select({
1071        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1072        "//conditions:default": [],
1073    }),
1074    deps = [
1075        ":binary_elementwise_tester",
1076        ":test_main",
1077        ":xnnpack_delegate_test_mode",
1078        "@com_google_googletest//:gtest",
1079    ],
1080)
1081
1082cc_test(
1083    name = "mul_test",
1084    srcs = ["mul_test.cc"],
1085    linkopts = select({
1086        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1087        "//conditions:default": [],
1088    }),
1089    deps = [
1090        ":binary_elementwise_tester",
1091        ":test_main",
1092        ":xnnpack_delegate_test_mode",
1093        "@com_google_googletest//:gtest",
1094    ],
1095)
1096
1097cc_test(
1098    name = "neg_test",
1099    srcs = ["neg_test.cc"],
1100    linkopts = select({
1101        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1102        "//conditions:default": [],
1103    }),
1104    deps = [
1105        ":test_main",
1106        ":unary_elementwise_tester",
1107        ":xnnpack_delegate_test_mode",
1108        "@com_google_googletest//:gtest",
1109    ],
1110)
1111
1112cc_test(
1113    name = "pad_test",
1114    srcs = ["pad_test.cc"],
1115    linkopts = select({
1116        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1117        "//conditions:default": [],
1118    }),
1119    deps = [
1120        ":pad_tester",
1121        ":test_main",
1122        ":xnnpack_delegate_test_mode",
1123        "@com_google_googletest//:gtest",
1124    ],
1125)
1126
1127cc_test(
1128    name = "prelu_test",
1129    srcs = ["prelu_test.cc"],
1130    linkopts = select({
1131        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1132        "//conditions:default": [],
1133    }),
1134    deps = [
1135        ":prelu_tester",
1136        ":test_main",
1137        ":xnnpack_delegate_test_mode",
1138        "@com_google_googletest//:gtest",
1139    ],
1140)
1141
1142cc_test(
1143    name = "quantization_util_test",
1144    srcs = ["quantization_util_test.cc"],
1145    linkopts = select({
1146        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1147        "//conditions:default": [],
1148    }),
1149    deps = [
1150        ":quantization_util",
1151        ":test_main",
1152        "//tensorflow/lite/kernels/internal:types",
1153        "@com_google_googletest//:gtest",
1154    ],
1155)
1156
1157cc_test(
1158    name = "quantize_float32_to_int8_test",
1159    srcs = ["quantize_float32_to_int8_test.cc"],
1160    linkopts = select({
1161        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1162        "//conditions:default": [],
1163    }),
1164    deps = [
1165        ":quantize_tester",
1166        ":test_main",
1167        ":xnnpack_delegate_test_mode",
1168        "@com_google_googletest//:gtest",
1169    ],
1170)
1171
1172cc_test(
1173    name = "quantize_float32_to_uint8_test",
1174    srcs = ["quantize_float32_to_uint8_test.cc"],
1175    linkopts = select({
1176        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1177        "//conditions:default": [],
1178    }),
1179    deps = [
1180        ":quantize_tester",
1181        ":test_main",
1182        ":xnnpack_delegate_test_mode",
1183        "@com_google_googletest//:gtest",
1184    ],
1185)
1186
1187cc_test(
1188    name = "quantize_int8_to_int8_test",
1189    srcs = ["quantize_int8_to_int8_test.cc"],
1190    linkopts = select({
1191        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1192        "//conditions:default": [],
1193    }),
1194    deps = [
1195        ":quantize_tester",
1196        ":test_main",
1197        ":xnnpack_delegate_test_mode",
1198        "@com_google_googletest//:gtest",
1199    ],
1200)
1201
1202cc_test(
1203    name = "quantize_uint8_to_uint8_test",
1204    srcs = ["quantize_uint8_to_uint8_test.cc"],
1205    linkopts = select({
1206        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1207        "//conditions:default": [],
1208    }),
1209    deps = [
1210        ":quantize_tester",
1211        ":test_main",
1212        ":xnnpack_delegate_test_mode",
1213        "@com_google_googletest//:gtest",
1214    ],
1215)
1216
1217cc_test(
1218    name = "relu_test",
1219    srcs = ["relu_test.cc"],
1220    linkopts = select({
1221        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1222        "//conditions:default": [],
1223    }),
1224    deps = [
1225        ":test_main",
1226        ":unary_elementwise_tester",
1227        ":xnnpack_delegate_test_mode",
1228        "@com_google_googletest//:gtest",
1229    ],
1230)
1231
1232cc_test(
1233    name = "relu6_test",
1234    srcs = ["relu6_test.cc"],
1235    linkopts = select({
1236        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1237        "//conditions:default": [],
1238    }),
1239    deps = [
1240        ":test_main",
1241        ":unary_elementwise_tester",
1242        ":xnnpack_delegate_test_mode",
1243        "@com_google_googletest//:gtest",
1244    ],
1245)
1246
1247cc_test(
1248    name = "relu_n1_to_1_test",
1249    srcs = ["relu_n1_to_1_test.cc"],
1250    linkopts = select({
1251        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1252        "//conditions:default": [],
1253    }),
1254    deps = [
1255        ":test_main",
1256        ":unary_elementwise_tester",
1257        ":xnnpack_delegate_test_mode",
1258        "@com_google_googletest//:gtest",
1259    ],
1260)
1261
1262cc_test(
1263    name = "reshape_test",
1264    srcs = ["reshape_test.cc"],
1265    linkopts = select({
1266        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1267        "//conditions:default": [],
1268    }),
1269    deps = [
1270        ":reshape_tester",
1271        ":test_main",
1272        ":xnnpack_delegate_test_mode",
1273        "@com_google_googletest//:gtest",
1274    ],
1275)
1276
1277cc_test(
1278    name = "resize_bilinear_test",
1279    srcs = ["resize_bilinear_test.cc"],
1280    linkopts = select({
1281        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1282        "//conditions:default": [],
1283    }),
1284    deps = [
1285        ":resize_bilinear_tester",
1286        ":test_main",
1287        ":xnnpack_delegate_test_mode",
1288        "@com_google_googletest//:gtest",
1289    ],
1290)
1291
1292cc_test(
1293    name = "round_test",
1294    srcs = ["round_test.cc"],
1295    linkopts = select({
1296        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1297        "//conditions:default": [],
1298    }),
1299    deps = [
1300        ":test_main",
1301        ":unary_elementwise_tester",
1302        ":xnnpack_delegate_test_mode",
1303        "@com_google_googletest//:gtest",
1304    ],
1305)
1306
1307cc_test(
1308    name = "signed_dequantize_test",
1309    srcs = ["signed_dequantize_test.cc"],
1310    linkopts = select({
1311        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1312        "//conditions:default": [],
1313    }),
1314    deps = [
1315        ":dequantize_tester",
1316        ":test_main",
1317        ":xnnpack_delegate_test_mode",
1318        "@com_google_googletest//:gtest",
1319    ],
1320)
1321
1322cc_test(
1323    name = "signed_quantized_add_test",
1324    srcs = ["signed_quantized_add_test.cc"],
1325    linkopts = select({
1326        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1327        "//conditions:default": [],
1328    }),
1329    deps = [
1330        ":quantized_binary_elementwise_tester",
1331        ":test_main",
1332        ":xnnpack_delegate_test_mode",
1333        "@com_google_googletest//:gtest",
1334    ],
1335)
1336
1337cc_test(
1338    name = "signed_quantized_concatenation_test",
1339    srcs = ["signed_quantized_concatenation_test.cc"],
1340    linkopts = select({
1341        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1342        "//conditions:default": [],
1343    }),
1344    deps = [
1345        ":concatenation_tester",
1346        ":test_main",
1347        ":xnnpack_delegate_test_mode",
1348        "@com_google_googletest//:gtest",
1349    ],
1350)
1351
1352cc_test(
1353    name = "signed_quantized_conv_2d_test",
1354    srcs = ["signed_quantized_conv_2d_test.cc"],
1355    linkopts = select({
1356        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1357        "//conditions:default": [],
1358    }),
1359    deps = [
1360        ":quantized_conv_2d_tester",
1361        ":test_main",
1362        ":xnnpack_delegate_test_mode",
1363        "@com_google_googletest//:gtest",
1364    ],
1365)
1366
1367cc_test(
1368    name = "signed_quantized_depthwise_conv_2d_test",
1369    srcs = ["signed_quantized_depthwise_conv_2d_test.cc"],
1370    linkopts = select({
1371        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1372        "//conditions:default": [],
1373    }),
1374    deps = [
1375        ":quantized_depthwise_conv_2d_tester",
1376        ":test_main",
1377        ":xnnpack_delegate_test_mode",
1378        "@com_google_googletest//:gtest",
1379    ],
1380)
1381
1382cc_test(
1383    name = "signed_quantized_depth_to_space_test",
1384    srcs = ["signed_quantized_depth_to_space_test.cc"],
1385    linkopts = select({
1386        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1387        "//conditions:default": [],
1388    }),
1389    deps = [
1390        ":depth_to_space_tester",
1391        ":test_main",
1392        ":xnnpack_delegate_test_mode",
1393        "@com_google_googletest//:gtest",
1394    ],
1395)
1396
1397cc_test(
1398    name = "signed_quantized_elu_test",
1399    srcs = ["signed_quantized_elu_test.cc"],
1400    linkopts = select({
1401        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1402        "//conditions:default": [],
1403    }),
1404    deps = [
1405        ":quantized_unary_elementwise_tester",
1406        ":test_main",
1407        ":xnnpack_delegate_test_mode",
1408        "@com_google_googletest//:gtest",
1409    ],
1410)
1411
1412cc_test(
1413    name = "signed_quantized_fully_connected_test",
1414    srcs = ["signed_quantized_fully_connected_test.cc"],
1415    linkopts = select({
1416        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1417        "//conditions:default": [],
1418    }),
1419    deps = [
1420        ":quantized_fully_connected_tester",
1421        ":test_main",
1422        ":xnnpack_delegate_test_mode",
1423        "@com_google_googletest//:gtest",
1424    ],
1425)
1426
1427cc_test(
1428    name = "signed_quantized_leaky_relu_test",
1429    srcs = ["signed_quantized_leaky_relu_test.cc"],
1430    linkopts = select({
1431        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1432        "//conditions:default": [],
1433    }),
1434    deps = [
1435        ":quantized_leaky_relu_tester",
1436        ":test_main",
1437        ":xnnpack_delegate_test_mode",
1438        "@com_google_googletest//:gtest",
1439    ],
1440)
1441
1442cc_test(
1443    name = "signed_quantized_logistic_test",
1444    srcs = ["signed_quantized_logistic_test.cc"],
1445    linkopts = select({
1446        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1447        "//conditions:default": [],
1448    }),
1449    deps = [
1450        ":quantized_unary_elementwise_tester",
1451        ":test_main",
1452        ":xnnpack_delegate_test_mode",
1453        "@com_google_googletest//:gtest",
1454    ],
1455)
1456
1457cc_test(
1458    name = "signed_quantized_max_pool_2d_test",
1459    srcs = ["signed_quantized_max_pool_2d_test.cc"],
1460    linkopts = select({
1461        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1462        "//conditions:default": [],
1463    }),
1464    deps = [
1465        ":quantized_pool_2d_tester",
1466        ":test_main",
1467        ":xnnpack_delegate_test_mode",
1468        "@com_google_googletest//:gtest",
1469    ],
1470)
1471
1472cc_test(
1473    name = "signed_quantized_mean_test",
1474    srcs = ["signed_quantized_mean_test.cc"],
1475    linkopts = select({
1476        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1477        "//conditions:default": [],
1478    }),
1479    deps = [
1480        ":quantized_reduce_tester",
1481        ":test_main",
1482        ":xnnpack_delegate_test_mode",
1483        "@com_google_googletest//:gtest",
1484    ],
1485)
1486
1487cc_test(
1488    name = "signed_quantized_mul_test",
1489    srcs = ["signed_quantized_mul_test.cc"],
1490    linkopts = select({
1491        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1492        "//conditions:default": [],
1493    }),
1494    deps = [
1495        ":quantized_binary_elementwise_tester",
1496        ":test_main",
1497        ":xnnpack_delegate_test_mode",
1498        "@com_google_googletest//:gtest",
1499    ],
1500)
1501
1502cc_test(
1503    name = "signed_quantized_pad_test",
1504    srcs = ["signed_quantized_pad_test.cc"],
1505    linkopts = select({
1506        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1507        "//conditions:default": [],
1508    }),
1509    deps = [
1510        ":quantized_pad_tester",
1511        ":test_main",
1512        ":xnnpack_delegate_test_mode",
1513        "@com_google_googletest//:gtest",
1514    ],
1515)
1516
1517cc_test(
1518    name = "signed_quantized_resize_bilinear_test",
1519    srcs = ["signed_quantized_resize_bilinear_test.cc"],
1520    linkopts = select({
1521        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1522        "//conditions:default": [],
1523    }),
1524    deps = [
1525        ":quantized_resize_bilinear_tester",
1526        ":test_main",
1527        ":xnnpack_delegate_test_mode",
1528        "@com_google_googletest//:gtest",
1529    ],
1530)
1531
1532cc_test(
1533    name = "signed_quantized_split_test",
1534    srcs = ["signed_quantized_split_test.cc"],
1535    linkopts = select({
1536        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1537        "//conditions:default": [],
1538    }),
1539    deps = [
1540        ":split_tester",
1541        ":test_main",
1542        ":xnnpack_delegate_test_mode",
1543        "@com_google_googletest//:gtest",
1544    ],
1545)
1546
1547cc_test(
1548    name = "signed_quantized_sub_test",
1549    srcs = ["signed_quantized_sub_test.cc"],
1550    linkopts = select({
1551        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1552        "//conditions:default": [],
1553    }),
1554    deps = [
1555        ":quantized_binary_elementwise_tester",
1556        ":test_main",
1557        ":xnnpack_delegate_test_mode",
1558        "@com_google_googletest//:gtest",
1559    ],
1560)
1561
1562cc_test(
1563    name = "signed_quantized_transpose_test",
1564    srcs = ["signed_quantized_transpose_test.cc"],
1565    linkopts = select({
1566        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1567        "//conditions:default": [],
1568    }),
1569    deps = [
1570        ":test_main",
1571        ":transpose_tester",
1572        ":xnnpack_delegate_test_mode",
1573        "@com_google_googletest//:gtest",
1574    ],
1575)
1576
1577cc_test(
1578    name = "signed_quantized_transpose_conv_test",
1579    srcs = ["signed_quantized_transpose_conv_test.cc"],
1580    linkopts = select({
1581        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1582        "//conditions:default": [],
1583    }),
1584    deps = [
1585        ":quantized_transpose_conv_tester",
1586        ":test_main",
1587        ":xnnpack_delegate_test_mode",
1588        "@com_google_googletest//:gtest",
1589    ],
1590)
1591
1592cc_test(
1593    name = "split_test",
1594    srcs = ["split_test.cc"],
1595    linkopts = select({
1596        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1597        "//conditions:default": [],
1598    }),
1599    deps = [
1600        ":split_tester",
1601        ":test_main",
1602        ":xnnpack_delegate_test_mode",
1603        "@com_google_googletest//:gtest",
1604    ],
1605)
1606
1607cc_test(
1608    name = "softmax_test",
1609    srcs = ["softmax_test.cc"],
1610    linkopts = select({
1611        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1612        "//conditions:default": [],
1613    }),
1614    deps = [
1615        ":softmax_tester",
1616        ":test_main",
1617        ":xnnpack_delegate_test_mode",
1618        "@com_google_googletest//:gtest",
1619    ],
1620)
1621
1622cc_test(
1623    name = "sqrt_test",
1624    srcs = ["sqrt_test.cc"],
1625    linkopts = select({
1626        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1627        "//conditions:default": [],
1628    }),
1629    deps = [
1630        ":test_main",
1631        ":unary_elementwise_tester",
1632        ":xnnpack_delegate_test_mode",
1633        "@com_google_googletest//:gtest",
1634    ],
1635)
1636
1637cc_test(
1638    name = "square_test",
1639    srcs = ["square_test.cc"],
1640    linkopts = select({
1641        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1642        "//conditions:default": [],
1643    }),
1644    deps = [
1645        ":test_main",
1646        ":unary_elementwise_tester",
1647        ":xnnpack_delegate_test_mode",
1648        "@com_google_googletest//:gtest",
1649    ],
1650)
1651
1652cc_test(
1653    name = "squared_difference_test",
1654    srcs = ["squared_difference_test.cc"],
1655    linkopts = select({
1656        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1657        "//conditions:default": [],
1658    }),
1659    deps = [
1660        ":binary_elementwise_tester",
1661        ":test_main",
1662        ":xnnpack_delegate_test_mode",
1663        "@com_google_googletest//:gtest",
1664    ],
1665)
1666
1667cc_test(
1668    name = "sub_test",
1669    srcs = ["sub_test.cc"],
1670    linkopts = select({
1671        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1672        "//conditions:default": [],
1673    }),
1674    deps = [
1675        ":binary_elementwise_tester",
1676        ":test_main",
1677        ":xnnpack_delegate_test_mode",
1678        "@com_google_googletest//:gtest",
1679    ],
1680)
1681
1682cc_test(
1683    name = "transpose_test",
1684    srcs = ["transpose_test.cc"],
1685    linkopts = select({
1686        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1687        "//conditions:default": [],
1688    }),
1689    deps = [
1690        ":test_main",
1691        ":transpose_tester",
1692        ":xnnpack_delegate_test_mode",
1693        "@com_google_googletest//:gtest",
1694    ],
1695)
1696
1697cc_test(
1698    name = "transpose_conv_test",
1699    srcs = ["transpose_conv_test.cc"],
1700    linkopts = select({
1701        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1702        "//conditions:default": [],
1703    }),
1704    deps = [
1705        ":test_main",
1706        ":transpose_conv_tester",
1707        ":xnnpack_delegate_test_mode",
1708        "@com_google_googletest//:gtest",
1709    ],
1710)
1711
1712cc_test(
1713    name = "unsigned_dequantize_test",
1714    srcs = ["unsigned_dequantize_test.cc"],
1715    linkopts = select({
1716        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1717        "//conditions:default": [],
1718    }),
1719    deps = [
1720        ":dequantize_tester",
1721        ":test_main",
1722        ":xnnpack_delegate_test_mode",
1723        "@com_google_googletest//:gtest",
1724    ],
1725)
1726
1727cc_test(
1728    name = "unsigned_quantized_add_test",
1729    srcs = ["unsigned_quantized_add_test.cc"],
1730    linkopts = select({
1731        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1732        "//conditions:default": [],
1733    }),
1734    deps = [
1735        ":quantized_binary_elementwise_tester",
1736        ":test_main",
1737        ":xnnpack_delegate_test_mode",
1738        "@com_google_googletest//:gtest",
1739    ],
1740)
1741
1742cc_test(
1743    name = "unsigned_quantized_concatenation_test",
1744    srcs = ["unsigned_quantized_concatenation_test.cc"],
1745    linkopts = select({
1746        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1747        "//conditions:default": [],
1748    }),
1749    deps = [
1750        ":concatenation_tester",
1751        ":test_main",
1752        ":xnnpack_delegate_test_mode",
1753        "@com_google_googletest//:gtest",
1754    ],
1755)
1756
1757cc_test(
1758    name = "unsigned_quantized_conv_2d_test",
1759    srcs = ["unsigned_quantized_conv_2d_test.cc"],
1760    linkopts = select({
1761        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1762        "//conditions:default": [],
1763    }),
1764    deps = [
1765        ":quantized_conv_2d_tester",
1766        ":test_main",
1767        ":xnnpack_delegate_test_mode",
1768        "@com_google_googletest//:gtest",
1769    ],
1770)
1771
1772cc_test(
1773    name = "unsigned_quantized_depthwise_conv_2d_test",
1774    srcs = ["unsigned_quantized_depthwise_conv_2d_test.cc"],
1775    linkopts = select({
1776        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1777        "//conditions:default": [],
1778    }),
1779    deps = [
1780        ":quantized_depthwise_conv_2d_tester",
1781        ":test_main",
1782        ":xnnpack_delegate_test_mode",
1783        "@com_google_googletest//:gtest",
1784    ],
1785)
1786
1787cc_test(
1788    name = "unsigned_quantized_depth_to_space_test",
1789    srcs = ["unsigned_quantized_depth_to_space_test.cc"],
1790    linkopts = select({
1791        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1792        "//conditions:default": [],
1793    }),
1794    deps = [
1795        ":depth_to_space_tester",
1796        ":test_main",
1797        ":xnnpack_delegate_test_mode",
1798        "@com_google_googletest//:gtest",
1799    ],
1800)
1801
1802cc_test(
1803    name = "unsigned_quantized_fully_connected_test",
1804    srcs = ["unsigned_quantized_fully_connected_test.cc"],
1805    linkopts = select({
1806        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1807        "//conditions:default": [],
1808    }),
1809    deps = [
1810        ":quantized_fully_connected_tester",
1811        ":test_main",
1812        ":xnnpack_delegate_test_mode",
1813        "@com_google_googletest//:gtest",
1814    ],
1815)
1816
1817cc_test(
1818    name = "unsigned_quantized_leaky_relu_test",
1819    srcs = ["unsigned_quantized_leaky_relu_test.cc"],
1820    linkopts = select({
1821        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1822        "//conditions:default": [],
1823    }),
1824    deps = [
1825        ":quantized_leaky_relu_tester",
1826        ":test_main",
1827        ":xnnpack_delegate_test_mode",
1828        "@com_google_googletest//:gtest",
1829    ],
1830)
1831
1832cc_test(
1833    name = "unsigned_quantized_logistic_test",
1834    srcs = ["unsigned_quantized_logistic_test.cc"],
1835    linkopts = select({
1836        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1837        "//conditions:default": [],
1838    }),
1839    deps = [
1840        ":quantized_unary_elementwise_tester",
1841        ":test_main",
1842        ":xnnpack_delegate_test_mode",
1843        "@com_google_googletest//:gtest",
1844    ],
1845)
1846
1847cc_test(
1848    name = "unsigned_quantized_max_pool_2d_test",
1849    srcs = ["unsigned_quantized_max_pool_2d_test.cc"],
1850    linkopts = select({
1851        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1852        "//conditions:default": [],
1853    }),
1854    deps = [
1855        ":quantized_pool_2d_tester",
1856        ":test_main",
1857        ":xnnpack_delegate_test_mode",
1858        "@com_google_googletest//:gtest",
1859    ],
1860)
1861
1862cc_test(
1863    name = "unsigned_quantized_mean_test",
1864    srcs = ["unsigned_quantized_mean_test.cc"],
1865    linkopts = select({
1866        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1867        "//conditions:default": [],
1868    }),
1869    deps = [
1870        ":quantized_reduce_tester",
1871        ":test_main",
1872        ":xnnpack_delegate_test_mode",
1873        "@com_google_googletest//:gtest",
1874    ],
1875)
1876
1877cc_test(
1878    name = "unsigned_quantized_mul_test",
1879    srcs = ["unsigned_quantized_mul_test.cc"],
1880    linkopts = select({
1881        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1882        "//conditions:default": [],
1883    }),
1884    deps = [
1885        ":quantized_binary_elementwise_tester",
1886        ":test_main",
1887        ":xnnpack_delegate_test_mode",
1888        "@com_google_googletest//:gtest",
1889    ],
1890)
1891
1892cc_test(
1893    name = "unsigned_quantized_pad_test",
1894    srcs = ["unsigned_quantized_pad_test.cc"],
1895    linkopts = select({
1896        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1897        "//conditions:default": [],
1898    }),
1899    deps = [
1900        ":quantized_pad_tester",
1901        ":test_main",
1902        ":xnnpack_delegate_test_mode",
1903        "@com_google_googletest//:gtest",
1904    ],
1905)
1906
1907cc_test(
1908    name = "unsigned_quantized_resize_bilinear_test",
1909    srcs = ["unsigned_quantized_resize_bilinear_test.cc"],
1910    linkopts = select({
1911        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1912        "//conditions:default": [],
1913    }),
1914    deps = [
1915        ":quantized_resize_bilinear_tester",
1916        ":test_main",
1917        ":xnnpack_delegate_test_mode",
1918        "@com_google_googletest//:gtest",
1919    ],
1920)
1921
1922cc_test(
1923    name = "unsigned_quantized_split_test",
1924    srcs = ["unsigned_quantized_split_test.cc"],
1925    linkopts = select({
1926        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1927        "//conditions:default": [],
1928    }),
1929    deps = [
1930        ":split_tester",
1931        ":test_main",
1932        ":xnnpack_delegate_test_mode",
1933        "@com_google_googletest//:gtest",
1934    ],
1935)
1936
1937cc_test(
1938    name = "unsigned_quantized_sub_test",
1939    srcs = ["unsigned_quantized_sub_test.cc"],
1940    linkopts = select({
1941        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1942        "//conditions:default": [],
1943    }),
1944    deps = [
1945        ":quantized_binary_elementwise_tester",
1946        ":test_main",
1947        ":xnnpack_delegate_test_mode",
1948        "@com_google_googletest//:gtest",
1949    ],
1950)
1951
1952cc_test(
1953    name = "unsigned_quantized_transpose_test",
1954    srcs = ["unsigned_quantized_transpose_test.cc"],
1955    linkopts = select({
1956        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1957        "//conditions:default": [],
1958    }),
1959    deps = [
1960        ":test_main",
1961        ":transpose_tester",
1962        ":xnnpack_delegate_test_mode",
1963        "@com_google_googletest//:gtest",
1964    ],
1965)
1966
1967cc_test(
1968    name = "unsigned_quantized_transpose_conv_test",
1969    srcs = ["unsigned_quantized_transpose_conv_test.cc"],
1970    linkopts = select({
1971        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
1972        "//conditions:default": [],
1973    }),
1974    deps = [
1975        ":quantized_transpose_conv_tester",
1976        ":test_main",
1977        ":xnnpack_delegate_test_mode",
1978        "@com_google_googletest//:gtest",
1979    ],
1980)
1981
1982cc_test(
1983    name = "weights_cache_test",
1984    srcs = ["weights_cache_test.cc"],
1985    deps = [
1986        ":conv_2d_tester",
1987        ":test_main",
1988        ":xnnpack_delegate_test_mode",
1989        "//tensorflow/lite:framework",
1990        "//tensorflow/lite/kernels:builtin_ops",
1991        "@com_google_googletest//:gtest",
1992    ],
1993)
1994
1995tflite_portable_test_suite_combined(combine_conditions = {"deps": [":test_main"]})
1996