• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1load("//tensorflow/lite:special_rules.bzl", "tflite_portable_test_suite_combined")
2load("//tensorflow:tensorflow.bzl", "get_compatible_with_portable")
3
4package(
5    default_visibility = ["//visibility:public"],
6    licenses = ["notice"],  # Apache 2.0
7)
8
9EMSCRIPTEN_LINKOPTS = [
10    "-s ASSERTIONS=2",
11    "-s ERROR_ON_UNDEFINED_SYMBOLS=1",
12    "-s DEMANGLE_SUPPORT=1",
13    "-s EXIT_RUNTIME=1",
14    "-s ALLOW_MEMORY_GROWTH=1",
15    "-s TOTAL_MEMORY=134217728",
16]
17
18exports_files([
19    "xnnpack_delegate.h",
20])
21
22cc_library(
23    name = "xnnpack_delegate",
24    srcs = ["xnnpack_delegate.cc"],
25    hdrs = ["xnnpack_delegate.h"],
26    linkstatic = True,
27    deps = [
28        "//tensorflow/lite:kernel_api",
29        "//tensorflow/lite:minimal_logging",
30        "//tensorflow/lite:util",
31        "//tensorflow/lite/c:common",
32        "//tensorflow/lite/schema:schema_fbs",
33        "//tensorflow/lite/tools/optimize/sparsity:format_converter",
34        "@FP16",
35        "@XNNPACK//:xnnpack_f32",
36    ],
37)
38
39cc_library(
40    name = "xnnpack_delegate_hdrs_only",
41    hdrs = ["xnnpack_delegate.h"],
42    compatible_with = get_compatible_with_portable(),
43    visibility = ["//tensorflow/lite:__subpackages__"],
44    deps = [
45        "//tensorflow/lite/c:common",
46    ],
47)
48
49cc_library(
50    name = "xnnpack_delegate_test_mode",
51    srcs = ["xnnpack_delegate.cc"],
52    hdrs = ["xnnpack_delegate.h"],
53    copts = ["-DXNNPACK_DELEGATE_TEST_MODE=1"],
54    linkstatic = True,
55    deps = [
56        "//tensorflow/lite:kernel_api",
57        "//tensorflow/lite:minimal_logging",
58        "//tensorflow/lite:util",
59        "//tensorflow/lite/c:common",
60        "//tensorflow/lite/schema:schema_fbs",
61        "//tensorflow/lite/tools/optimize/sparsity:format_converter",
62        "@FP16",
63        "@XNNPACK",
64    ],
65)
66
67################################ Tester classes ################################
68
69cc_library(
70    name = "binary_elementwise_tester",
71    testonly = 1,
72    srcs = ["binary_elementwise_tester.cc"],
73    hdrs = ["binary_elementwise_tester.h"],
74    deps = [
75        "//tensorflow/lite:framework",
76        "//tensorflow/lite:schema_fbs_version",
77        "//tensorflow/lite/c:common",
78        "//tensorflow/lite/kernels:builtin_ops",
79        "//tensorflow/lite/schema:schema_conversion_utils",
80        "//tensorflow/lite/schema:schema_fbs",
81        "@FP16",
82        "@com_google_googletest//:gtest",
83        "@flatbuffers",
84    ],
85)
86
87cc_library(
88    name = "conv_2d_tester",
89    testonly = 1,
90    srcs = ["conv_2d_tester.cc"],
91    hdrs = ["conv_2d_tester.h"],
92    deps = [
93        "//tensorflow/lite:framework",
94        "//tensorflow/lite:schema_fbs_version",
95        "//tensorflow/lite/c:common",
96        "//tensorflow/lite/kernels:builtin_ops",
97        "//tensorflow/lite/schema:schema_conversion_utils",
98        "//tensorflow/lite/schema:schema_fbs",
99        "@FP16",
100        "@com_google_googletest//:gtest",
101        "@flatbuffers",
102    ],
103)
104
105cc_library(
106    name = "depth_to_space_tester",
107    testonly = 1,
108    srcs = ["depth_to_space_tester.cc"],
109    hdrs = ["depth_to_space_tester.h"],
110    deps = [
111        "//tensorflow/lite:framework",
112        "//tensorflow/lite:schema_fbs_version",
113        "//tensorflow/lite/c:common",
114        "//tensorflow/lite/kernels:builtin_ops",
115        "//tensorflow/lite/schema:schema_conversion_utils",
116        "//tensorflow/lite/schema:schema_fbs",
117        "@com_google_googletest//:gtest",
118        "@flatbuffers",
119    ],
120)
121
122cc_library(
123    name = "depthwise_conv_2d_tester",
124    testonly = 1,
125    srcs = ["depthwise_conv_2d_tester.cc"],
126    hdrs = ["depthwise_conv_2d_tester.h"],
127    deps = [
128        "//tensorflow/lite:framework",
129        "//tensorflow/lite:schema_fbs_version",
130        "//tensorflow/lite/c:common",
131        "//tensorflow/lite/kernels:builtin_ops",
132        "//tensorflow/lite/schema:schema_conversion_utils",
133        "//tensorflow/lite/schema:schema_fbs",
134        "@FP16",
135        "@com_google_googletest//:gtest",
136        "@flatbuffers",
137    ],
138)
139
140cc_library(
141    name = "fully_connected_tester",
142    testonly = 1,
143    srcs = ["fully_connected_tester.cc"],
144    hdrs = ["fully_connected_tester.h"],
145    deps = [
146        "//tensorflow/lite:framework",
147        "//tensorflow/lite:schema_fbs_version",
148        "//tensorflow/lite/c:common",
149        "//tensorflow/lite/kernels:builtin_ops",
150        "//tensorflow/lite/schema:schema_conversion_utils",
151        "//tensorflow/lite/schema:schema_fbs",
152        "@FP16",
153        "@com_google_googletest//:gtest",
154        "@flatbuffers",
155    ],
156)
157
158cc_library(
159    name = "leaky_relu_tester",
160    testonly = 1,
161    srcs = ["leaky_relu_tester.cc"],
162    hdrs = ["leaky_relu_tester.h"],
163    deps = [
164        "//tensorflow/lite:framework",
165        "//tensorflow/lite:schema_fbs_version",
166        "//tensorflow/lite/c:common",
167        "//tensorflow/lite/kernels:builtin_ops",
168        "//tensorflow/lite/schema:schema_conversion_utils",
169        "//tensorflow/lite/schema:schema_fbs",
170        "@com_google_googletest//:gtest",
171        "@flatbuffers",
172    ],
173)
174
175cc_library(
176    name = "pad_tester",
177    testonly = 1,
178    srcs = ["pad_tester.cc"],
179    hdrs = ["pad_tester.h"],
180    deps = [
181        "//tensorflow/lite:framework",
182        "//tensorflow/lite:schema_fbs_version",
183        "//tensorflow/lite/c:common",
184        "//tensorflow/lite/kernels:builtin_ops",
185        "//tensorflow/lite/schema:schema_conversion_utils",
186        "//tensorflow/lite/schema:schema_fbs",
187        "@com_google_googletest//:gtest",
188        "@flatbuffers",
189    ],
190)
191
192cc_library(
193    name = "pool_2d_tester",
194    testonly = 1,
195    srcs = ["pool_2d_tester.cc"],
196    hdrs = ["pool_2d_tester.h"],
197    deps = [
198        "//tensorflow/lite:framework",
199        "//tensorflow/lite:schema_fbs_version",
200        "//tensorflow/lite/c:common",
201        "//tensorflow/lite/kernels:builtin_ops",
202        "//tensorflow/lite/schema:schema_conversion_utils",
203        "//tensorflow/lite/schema:schema_fbs",
204        "@com_google_googletest//:gtest",
205        "@flatbuffers",
206    ],
207)
208
209cc_library(
210    name = "prelu_tester",
211    testonly = 1,
212    srcs = ["prelu_tester.cc"],
213    hdrs = ["prelu_tester.h"],
214    deps = [
215        "//tensorflow/lite:framework",
216        "//tensorflow/lite:schema_fbs_version",
217        "//tensorflow/lite/c:common",
218        "//tensorflow/lite/kernels:builtin_ops",
219        "//tensorflow/lite/schema:schema_conversion_utils",
220        "//tensorflow/lite/schema:schema_fbs",
221        "@FP16",
222        "@com_google_googletest//:gtest",
223        "@flatbuffers",
224    ],
225)
226
227cc_library(
228    name = "reduce_tester",
229    testonly = 1,
230    srcs = ["reduce_tester.cc"],
231    hdrs = ["reduce_tester.h"],
232    deps = [
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        "@com_google_googletest//:gtest",
240        "@flatbuffers",
241    ],
242)
243
244cc_library(
245    name = "reshape_tester",
246    testonly = 1,
247    srcs = ["reshape_tester.cc"],
248    hdrs = ["reshape_tester.h"],
249    deps = [
250        "//tensorflow/lite:framework",
251        "//tensorflow/lite:schema_fbs_version",
252        "//tensorflow/lite/c:common",
253        "//tensorflow/lite/kernels:builtin_ops",
254        "//tensorflow/lite/schema:schema_conversion_utils",
255        "//tensorflow/lite/schema:schema_fbs",
256        "@com_google_googletest//:gtest",
257        "@flatbuffers",
258    ],
259)
260
261cc_library(
262    name = "resize_bilinear_tester",
263    testonly = 1,
264    srcs = ["resize_bilinear_tester.cc"],
265    hdrs = ["resize_bilinear_tester.h"],
266    deps = [
267        "//tensorflow/lite:framework",
268        "//tensorflow/lite:schema_fbs_version",
269        "//tensorflow/lite/c:common",
270        "//tensorflow/lite/kernels:builtin_ops",
271        "//tensorflow/lite/schema:schema_conversion_utils",
272        "//tensorflow/lite/schema:schema_fbs",
273        "@com_google_googletest//:gtest",
274        "@flatbuffers",
275    ],
276)
277
278cc_library(
279    name = "softmax_tester",
280    testonly = 1,
281    srcs = ["softmax_tester.cc"],
282    hdrs = ["softmax_tester.h"],
283    deps = [
284        "//tensorflow/lite:framework",
285        "//tensorflow/lite:schema_fbs_version",
286        "//tensorflow/lite/c:common",
287        "//tensorflow/lite/kernels:builtin_ops",
288        "//tensorflow/lite/schema:schema_conversion_utils",
289        "//tensorflow/lite/schema:schema_fbs",
290        "@com_google_googletest//:gtest",
291        "@flatbuffers",
292    ],
293)
294
295cc_library(
296    name = "unary_elementwise_tester",
297    testonly = 1,
298    srcs = ["unary_elementwise_tester.cc"],
299    hdrs = ["unary_elementwise_tester.h"],
300    deps = [
301        "//tensorflow/lite:framework",
302        "//tensorflow/lite:schema_fbs_version",
303        "//tensorflow/lite/c:common",
304        "//tensorflow/lite/kernels:builtin_ops",
305        "//tensorflow/lite/schema:schema_conversion_utils",
306        "//tensorflow/lite/schema:schema_fbs",
307        "@com_google_googletest//:gtest",
308        "@flatbuffers",
309    ],
310)
311
312############################## Integration tests ###############################
313
314cc_library(
315    name = "test_main",
316    testonly = 1,
317    linkopts = select({
318        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
319        "//conditions:default": [],
320    }),
321    deps = [
322        "@com_google_googletest//:gtest_main",
323    ],
324)
325
326cc_test(
327    name = "abs_test",
328    srcs = ["abs_test.cc"],
329    linkopts = select({
330        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
331        "//conditions:default": [],
332    }),
333    deps = [
334        ":test_main",
335        ":unary_elementwise_tester",
336        ":xnnpack_delegate_test_mode",
337        "@com_google_googletest//:gtest",
338    ],
339)
340
341cc_test(
342    name = "add_test",
343    srcs = ["add_test.cc"],
344    linkopts = select({
345        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
346        "//conditions:default": [],
347    }),
348    deps = [
349        ":binary_elementwise_tester",
350        ":test_main",
351        ":xnnpack_delegate_test_mode",
352        "@com_google_googletest//:gtest",
353    ],
354)
355
356cc_test(
357    name = "average_pool_2d_test",
358    srcs = ["average_pool_2d_test.cc"],
359    linkopts = select({
360        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
361        "//conditions:default": [],
362    }),
363    deps = [
364        ":pool_2d_tester",
365        ":test_main",
366        ":xnnpack_delegate_test_mode",
367        "@com_google_googletest//:gtest",
368    ],
369)
370
371cc_test(
372    name = "ceil_test",
373    srcs = ["ceil_test.cc"],
374    linkopts = select({
375        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
376        "//conditions:default": [],
377    }),
378    deps = [
379        ":test_main",
380        ":unary_elementwise_tester",
381        ":xnnpack_delegate_test_mode",
382        "@com_google_googletest//:gtest",
383    ],
384)
385
386cc_test(
387    name = "conv_2d_test",
388    srcs = ["conv_2d_test.cc"],
389    linkopts = select({
390        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
391        "//conditions:default": [],
392    }),
393    deps = [
394        ":conv_2d_tester",
395        ":test_main",
396        ":xnnpack_delegate_test_mode",
397        "@com_google_googletest//:gtest",
398    ],
399)
400
401cc_test(
402    name = "depth_to_space_test",
403    srcs = ["depth_to_space_test.cc"],
404    linkopts = select({
405        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
406        "//conditions:default": [],
407    }),
408    deps = [
409        ":depth_to_space_tester",
410        ":test_main",
411        ":xnnpack_delegate_test_mode",
412        "@com_google_googletest//:gtest",
413    ],
414)
415
416cc_test(
417    name = "depthwise_conv_2d_test",
418    srcs = ["depthwise_conv_2d_test.cc"],
419    linkopts = select({
420        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
421        "//conditions:default": [],
422    }),
423    deps = [
424        ":depthwise_conv_2d_tester",
425        ":test_main",
426        ":xnnpack_delegate_test_mode",
427        "@com_google_googletest//:gtest",
428    ],
429)
430
431cc_test(
432    name = "div_test",
433    srcs = ["div_test.cc"],
434    linkopts = select({
435        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
436        "//conditions:default": [],
437    }),
438    deps = [
439        ":binary_elementwise_tester",
440        ":test_main",
441        ":xnnpack_delegate_test_mode",
442        "@com_google_googletest//:gtest",
443    ],
444)
445
446cc_test(
447    name = "elu_test",
448    srcs = ["elu_test.cc"],
449    linkopts = select({
450        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
451        "//conditions:default": [],
452    }),
453    deps = [
454        ":test_main",
455        ":unary_elementwise_tester",
456        ":xnnpack_delegate_test_mode",
457        "@com_google_googletest//:gtest",
458    ],
459)
460
461cc_test(
462    name = "fully_connected_test",
463    srcs = ["fully_connected_test.cc"],
464    linkopts = select({
465        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
466        "//conditions:default": [],
467    }),
468    deps = [
469        ":fully_connected_tester",
470        ":test_main",
471        ":xnnpack_delegate_test_mode",
472        "@com_google_googletest//:gtest",
473    ],
474)
475
476cc_test(
477    name = "floor_test",
478    srcs = ["floor_test.cc"],
479    linkopts = select({
480        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
481        "//conditions:default": [],
482    }),
483    deps = [
484        ":test_main",
485        ":unary_elementwise_tester",
486        ":xnnpack_delegate_test_mode",
487        "@com_google_googletest//:gtest",
488    ],
489)
490
491cc_test(
492    name = "hard_swish_test",
493    srcs = ["hard_swish_test.cc"],
494    linkopts = select({
495        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
496        "//conditions:default": [],
497    }),
498    deps = [
499        ":test_main",
500        ":unary_elementwise_tester",
501        ":xnnpack_delegate_test_mode",
502        "@com_google_googletest//:gtest",
503    ],
504)
505
506cc_test(
507    name = "leaky_relu_test",
508    srcs = ["leaky_relu_test.cc"],
509    linkopts = select({
510        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
511        "//conditions:default": [],
512    }),
513    deps = [
514        ":leaky_relu_tester",
515        ":test_main",
516        ":xnnpack_delegate_test_mode",
517        "@com_google_googletest//:gtest",
518    ],
519)
520
521cc_test(
522    name = "logistic_test",
523    srcs = ["logistic_test.cc"],
524    linkopts = select({
525        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
526        "//conditions:default": [],
527    }),
528    deps = [
529        ":test_main",
530        ":unary_elementwise_tester",
531        ":xnnpack_delegate_test_mode",
532        "@com_google_googletest//:gtest",
533    ],
534)
535
536cc_test(
537    name = "max_pool_2d_test",
538    srcs = ["max_pool_2d_test.cc"],
539    linkopts = select({
540        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
541        "//conditions:default": [],
542    }),
543    deps = [
544        ":pool_2d_tester",
545        ":test_main",
546        ":xnnpack_delegate_test_mode",
547        "@com_google_googletest//:gtest",
548    ],
549)
550
551cc_test(
552    name = "maximum_test",
553    srcs = ["maximum_test.cc"],
554    linkopts = select({
555        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
556        "//conditions:default": [],
557    }),
558    deps = [
559        ":binary_elementwise_tester",
560        ":test_main",
561        ":xnnpack_delegate_test_mode",
562        "@com_google_googletest//:gtest",
563    ],
564)
565
566cc_test(
567    name = "mean_test",
568    srcs = ["mean_test.cc"],
569    linkopts = select({
570        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
571        "//conditions:default": [],
572    }),
573    deps = [
574        ":reduce_tester",
575        ":test_main",
576        ":xnnpack_delegate_test_mode",
577        "@com_google_googletest//:gtest",
578    ],
579)
580
581cc_test(
582    name = "minimum_test",
583    srcs = ["minimum_test.cc"],
584    linkopts = select({
585        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
586        "//conditions:default": [],
587    }),
588    deps = [
589        ":binary_elementwise_tester",
590        ":test_main",
591        ":xnnpack_delegate_test_mode",
592        "@com_google_googletest//:gtest",
593    ],
594)
595
596cc_test(
597    name = "mul_test",
598    srcs = ["mul_test.cc"],
599    linkopts = select({
600        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
601        "//conditions:default": [],
602    }),
603    deps = [
604        ":binary_elementwise_tester",
605        ":test_main",
606        ":xnnpack_delegate_test_mode",
607        "@com_google_googletest//:gtest",
608    ],
609)
610
611cc_test(
612    name = "neg_test",
613    srcs = ["neg_test.cc"],
614    linkopts = select({
615        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
616        "//conditions:default": [],
617    }),
618    deps = [
619        ":test_main",
620        ":unary_elementwise_tester",
621        ":xnnpack_delegate_test_mode",
622        "@com_google_googletest//:gtest",
623    ],
624)
625
626cc_test(
627    name = "pad_test",
628    srcs = ["pad_test.cc"],
629    linkopts = select({
630        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
631        "//conditions:default": [],
632    }),
633    deps = [
634        ":pad_tester",
635        ":test_main",
636        ":xnnpack_delegate_test_mode",
637        "@com_google_googletest//:gtest",
638    ],
639)
640
641cc_test(
642    name = "prelu_test",
643    srcs = ["prelu_test.cc"],
644    linkopts = select({
645        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
646        "//conditions:default": [],
647    }),
648    deps = [
649        ":prelu_tester",
650        ":test_main",
651        ":xnnpack_delegate_test_mode",
652        "@com_google_googletest//:gtest",
653    ],
654)
655
656cc_test(
657    name = "relu_test",
658    srcs = ["relu_test.cc"],
659    linkopts = select({
660        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
661        "//conditions:default": [],
662    }),
663    deps = [
664        ":test_main",
665        ":unary_elementwise_tester",
666        ":xnnpack_delegate_test_mode",
667        "@com_google_googletest//:gtest",
668    ],
669)
670
671cc_test(
672    name = "relu6_test",
673    srcs = ["relu6_test.cc"],
674    linkopts = select({
675        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
676        "//conditions:default": [],
677    }),
678    deps = [
679        ":test_main",
680        ":unary_elementwise_tester",
681        ":xnnpack_delegate_test_mode",
682        "@com_google_googletest//:gtest",
683    ],
684)
685
686cc_test(
687    name = "relu_n1_to_1_test",
688    srcs = ["relu_n1_to_1_test.cc"],
689    linkopts = select({
690        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
691        "//conditions:default": [],
692    }),
693    deps = [
694        ":test_main",
695        ":unary_elementwise_tester",
696        ":xnnpack_delegate_test_mode",
697        "@com_google_googletest//:gtest",
698    ],
699)
700
701cc_test(
702    name = "reshape_test",
703    srcs = ["reshape_test.cc"],
704    linkopts = select({
705        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
706        "//conditions:default": [],
707    }),
708    deps = [
709        ":reshape_tester",
710        ":test_main",
711        ":xnnpack_delegate_test_mode",
712        "@com_google_googletest//:gtest",
713    ],
714)
715
716cc_test(
717    name = "resize_bilinear_test",
718    srcs = ["resize_bilinear_test.cc"],
719    linkopts = select({
720        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
721        "//conditions:default": [],
722    }),
723    deps = [
724        ":resize_bilinear_tester",
725        ":test_main",
726        ":xnnpack_delegate_test_mode",
727        "@com_google_googletest//:gtest",
728    ],
729)
730
731cc_test(
732    name = "round_test",
733    srcs = ["round_test.cc"],
734    linkopts = select({
735        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
736        "//conditions:default": [],
737    }),
738    deps = [
739        ":test_main",
740        ":unary_elementwise_tester",
741        ":xnnpack_delegate_test_mode",
742        "@com_google_googletest//:gtest",
743    ],
744)
745
746cc_test(
747    name = "softmax_test",
748    srcs = ["softmax_test.cc"],
749    linkopts = select({
750        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
751        "//conditions:default": [],
752    }),
753    deps = [
754        ":softmax_tester",
755        ":test_main",
756        ":xnnpack_delegate_test_mode",
757        "@com_google_googletest//:gtest",
758    ],
759)
760
761cc_test(
762    name = "sqrt_test",
763    srcs = ["sqrt_test.cc"],
764    linkopts = select({
765        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
766        "//conditions:default": [],
767    }),
768    deps = [
769        ":test_main",
770        ":unary_elementwise_tester",
771        ":xnnpack_delegate_test_mode",
772        "@com_google_googletest//:gtest",
773    ],
774)
775
776cc_test(
777    name = "square_test",
778    srcs = ["square_test.cc"],
779    linkopts = select({
780        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
781        "//conditions:default": [],
782    }),
783    deps = [
784        ":test_main",
785        ":unary_elementwise_tester",
786        ":xnnpack_delegate_test_mode",
787        "@com_google_googletest//:gtest",
788    ],
789)
790
791cc_test(
792    name = "squared_difference_test",
793    srcs = ["squared_difference_test.cc"],
794    linkopts = select({
795        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
796        "//conditions:default": [],
797    }),
798    deps = [
799        ":binary_elementwise_tester",
800        ":test_main",
801        ":xnnpack_delegate_test_mode",
802        "@com_google_googletest//:gtest",
803    ],
804)
805
806cc_test(
807    name = "sub_test",
808    srcs = ["sub_test.cc"],
809    linkopts = select({
810        "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS,
811        "//conditions:default": [],
812    }),
813    deps = [
814        ":binary_elementwise_tester",
815        ":test_main",
816        ":xnnpack_delegate_test_mode",
817        "@com_google_googletest//:gtest",
818    ],
819)
820
821tflite_portable_test_suite_combined(combine_conditions = {"deps": [":test_main"]})
822