xref: /llvm-project/utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel (revision d444558f51a86c623e4b108e19f8f2400ec28782)
1# This file is licensed under the Apache License v2.0 with LLVM Exceptions.
2# See https://llvm.org/LICENSE.txt for license information.
3# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
4
5load("@bazel_skylib//rules:expand_template.bzl", "expand_template")
6load("//llvm:lit_test.bzl", "package_path")
7load("//mlir:tblgen.bzl", "gentbl_cc_library", "gentbl_sharded_ops", "td_library")
8
9package(
10    default_visibility = ["//visibility:public"],
11    features = ["layering_check"],
12)
13
14licenses(["notice"])
15
16LLVM_LIT_PATH_FUNCTION = " " + \
17                         "# Allow generated file to be relocatable.\n" + \
18                         "from pathlib import Path\n" + \
19                         "def path(p):\n" + \
20                         "    if not p: return ''\n" + \
21                         "    return str((Path(__file__).parent / p).resolve())\n"
22
23LIT_SITE_CFG_IN_HEADER = "# Autogenerated, do not edit." + LLVM_LIT_PATH_FUNCTION
24
25expand_template(
26    name = "lit_site_cfg_py",
27    testonly = True,
28    out = "lit.site.cfg.py",
29    substitutions = {
30        "@LIT_SITE_CFG_IN_HEADER@": LIT_SITE_CFG_IN_HEADER,
31        "@LLVM_TOOLS_DIR@": package_path("//llvm:BUILD"),
32        "@ENABLE_SHARED@": "1",
33        "@ENABLE_ASSERTIONS@": "1",
34        "@MLIR_SOURCE_DIR@": package_path("//mlir:BUILD"),
35        "@MLIR_TOOLS_DIR@": package_path("//mlir:BUILD"),
36        "\"@MLIR_BINARY_DIR@\"": "os.environ[\"TEST_UNDECLARED_OUTPUTS_DIR\"]",
37        # All disabled, but required to substituted because they are not in quotes.
38        "@LLVM_BUILD_EXAMPLES@": "0",
39        "@LLVM_HAS_NVPTX_TARGET@": "0",
40        "@MLIR_ENABLE_CUDA_RUNNER@": "0",
41        "@MLIR_ENABLE_ROCM_CONVERSIONS@": "0",
42        "@MLIR_ENABLE_ROCM_RUNNER@": "0",
43        "@MLIR_ENABLE_SYCL_RUNNER@": "0",
44        "@MLIR_ENABLE_SPIRV_CPU_RUNNER@": "0",
45        "@MLIR_ENABLE_VULKAN_RUNNER@": "0",
46        "@MLIR_ENABLE_BINDINGS_PYTHON@": "0",
47        "@MLIR_RUN_AMX_TESTS@": "0",
48        "@MLIR_RUN_ARM_SVE_TESTS@": "0",
49        "@MLIR_RUN_ARM_SME_TESTS@": "0",
50        "@MLIR_RUN_X86VECTOR_TESTS@": "0",
51        "@MLIR_RUN_CUDA_TENSOR_CORE_TESTS@": "0",
52        "@MLIR_RUN_CUDA_SM80_TESTS@": "0",
53        "@MLIR_RUN_CUDA_SM80_LT_TESTS@": "0",
54        "@MLIR_RUN_CUDA_SM90_TESTS@": "0",
55        "@MLIR_INCLUDE_INTEGRATION_TESTS@": "0",
56        "@SHLIBDIR@": package_path("//llvm:BUILD"),
57    },
58    template = "lit.site.cfg.py.in",
59)
60
61# Common data used by most lit tests.
62filegroup(
63    name = "lit_data",
64    testonly = True,
65    data = [
66        "lit.cfg.py",
67        "lit.site.cfg.py",
68        "//llvm:FileCheck",
69        "//llvm:count",
70        "//llvm:not",
71    ],
72)
73
74cc_library(
75    name = "IRProducingAPITest",
76    hdrs = ["APITest.h"],
77    includes = ["."],
78)
79
80cc_library(
81    name = "TestAnalysis",
82    srcs = glob(
83        [
84            "lib/Analysis/*.cpp",
85            "lib/Analysis/*.h",
86            "lib/Analysis/DataFlow/*.cpp",
87            "lib/Analysis/DataFlow/*.h",
88        ],
89    ),
90    includes = ["lib/Dialect/Test"],
91    deps = [
92        ":TestDialect",
93        "//llvm:Support",
94        "//mlir:AffineAnalysis",
95        "//mlir:AffineDialect",
96        "//mlir:Analysis",
97        "//mlir:CallOpInterfaces",
98        "//mlir:ControlFlowInterfaces",
99        "//mlir:FuncDialect",
100        "//mlir:FunctionInterfaces",
101        "//mlir:IR",
102        "//mlir:MemRefDialect",
103        "//mlir:Pass",
104        "//mlir:SideEffectInterfaces",
105        "//mlir:Support",
106    ],
107)
108
109td_library(
110    name = "TestOpTdFiles",
111    srcs = glob(["lib/Dialect/Test/*.td"]),
112    deps = [
113        "//mlir:BuiltinDialectTdFiles",
114        "//mlir:CallInterfacesTdFiles",
115        "//mlir:ControlFlowInterfacesTdFiles",
116        "//mlir:CopyOpInterfaceTdFiles",
117        "//mlir:DLTIDialectTdFiles",
118        "//mlir:DataLayoutInterfacesTdFiles",
119        "//mlir:DestinationStyleOpInterfaceTdFiles",
120        "//mlir:FunctionInterfacesTdFiles",
121        "//mlir:InferIntRangeInterfaceTdFiles",
122        "//mlir:InferTypeOpInterfaceTdFiles",
123        "//mlir:LinalgStructuredOpsTdFiles",
124        "//mlir:MemorySlotInterfacesTdFiles",
125        "//mlir:OpBaseTdFiles",
126        "//mlir:PolynomialTdFiles",
127        "//mlir:SideEffectInterfacesTdFiles",
128    ],
129)
130
131gentbl_cc_library(
132    name = "TestOpsSyntaxIncGen",
133    strip_include_prefix = "lib/Dialect/Test",
134    tbl_outs = [
135        (
136            ["-gen-op-decls"],
137            "lib/Dialect/Test/TestOpsSyntax.h.inc",
138        ),
139        (
140            ["-gen-op-defs"],
141            "lib/Dialect/Test/TestOpsSyntax.cpp.inc",
142        ),
143    ],
144    tblgen = "//mlir:mlir-tblgen",
145    td_file = "lib/Dialect/Test/TestOpsSyntax.td",
146    test = True,
147    deps = [
148        ":TestOpTdFiles",
149    ],
150)
151
152gentbl_cc_library(
153    name = "TestOpsIncGen",
154    strip_include_prefix = "lib/Dialect/Test",
155    tbl_outs = [
156        (
157            [
158                "-gen-dialect-decls",
159                "-dialect=test",
160            ],
161            "lib/Dialect/Test/TestOpsDialect.h.inc",
162        ),
163        (
164            [
165                "-gen-dialect-defs",
166                "-dialect=test",
167            ],
168            "lib/Dialect/Test/TestOpsDialect.cpp.inc",
169        ),
170        (
171            ["-gen-rewriters"],
172            "lib/Dialect/Test/TestPatterns.inc",
173        ),
174    ],
175    tblgen = "//mlir:mlir-tblgen",
176    td_file = "lib/Dialect/Test/TestOps.td",
177    test = True,
178    deps = [
179        ":TestOpTdFiles",
180    ],
181)
182
183gentbl_cc_library(
184    name = "TestInterfacesIncGen",
185    strip_include_prefix = "lib/Dialect/Test",
186    tbl_outs = [
187        (
188            ["-gen-attr-interface-decls"],
189            "lib/Dialect/Test/TestAttrInterfaces.h.inc",
190        ),
191        (
192            ["-gen-attr-interface-defs"],
193            "lib/Dialect/Test/TestAttrInterfaces.cpp.inc",
194        ),
195        (
196            ["-gen-type-interface-decls"],
197            "lib/Dialect/Test/TestTypeInterfaces.h.inc",
198        ),
199        (
200            ["-gen-type-interface-defs"],
201            "lib/Dialect/Test/TestTypeInterfaces.cpp.inc",
202        ),
203        (
204            ["-gen-op-interface-decls"],
205            "lib/Dialect/Test/TestOpInterfaces.h.inc",
206        ),
207        (
208            ["-gen-op-interface-defs"],
209            "lib/Dialect/Test/TestOpInterfaces.cpp.inc",
210        ),
211    ],
212    tblgen = "//mlir:mlir-tblgen",
213    td_file = "lib/Dialect/Test/TestInterfaces.td",
214    test = True,
215    deps = [
216        "//mlir:OpBaseTdFiles",
217        "//mlir:SideEffectInterfacesTdFiles",
218    ],
219)
220
221gentbl_cc_library(
222    name = "TestAttrDefsIncGen",
223    strip_include_prefix = "lib/Dialect/Test",
224    tbl_outs = [
225        (
226            [
227                "-gen-attrdef-decls",
228                "--attrdefs-dialect=test",
229            ],
230            "lib/Dialect/Test/TestAttrDefs.h.inc",
231        ),
232        (
233            [
234                "-gen-attrdef-defs",
235                "--attrdefs-dialect=test",
236            ],
237            "lib/Dialect/Test/TestAttrDefs.cpp.inc",
238        ),
239    ],
240    tblgen = "//mlir:mlir-tblgen",
241    td_file = "lib/Dialect/Test/TestOps.td",
242    test = True,
243    deps = [
244        ":TestOpTdFiles",
245    ],
246)
247
248gentbl_cc_library(
249    name = "TestEnumDefsIncGen",
250    strip_include_prefix = "lib/Dialect/Test",
251    tbl_outs = [
252        (
253            ["-gen-enum-decls"],
254            "lib/Dialect/Test/TestOpEnums.h.inc",
255        ),
256        (
257            ["-gen-enum-defs"],
258            "lib/Dialect/Test/TestOpEnums.cpp.inc",
259        ),
260    ],
261    tblgen = "//mlir:mlir-tblgen",
262    td_file = "lib/Dialect/Test/TestEnumDefs.td",
263    test = True,
264    deps = [
265        ":TestOpTdFiles",
266    ],
267)
268
269gentbl_cc_library(
270    name = "TestTypeDefsIncGen",
271    strip_include_prefix = "lib/Dialect/Test",
272    tbl_outs = [
273        (
274            [
275                "-gen-typedef-decls",
276                "--typedefs-dialect=test",
277            ],
278            "lib/Dialect/Test/TestTypeDefs.h.inc",
279        ),
280        (
281            [
282                "-gen-typedef-defs",
283                "--typedefs-dialect=test",
284            ],
285            "lib/Dialect/Test/TestTypeDefs.cpp.inc",
286        ),
287    ],
288    tblgen = "//mlir:mlir-tblgen",
289    td_file = "lib/Dialect/Test/TestTypeDefs.td",
290    test = True,
291    deps = [
292        ":TestOpTdFiles",
293        "//mlir:BuiltinDialectTdFiles",
294    ],
295)
296
297cc_library(
298    name = "TestTestDynDialect",
299    srcs = glob([
300        "lib/Dialect/TestDyn/*.cpp",
301    ]),
302    deps = [
303        "//mlir:IR",
304    ],
305)
306
307td_library(
308    name = "TransformDialectTdFiles",
309    srcs = glob(["lib/Dialect/Transform/*.td"]),
310    deps = [
311        "//mlir:OpBaseTdFiles",
312    ],
313)
314
315gentbl_cc_library(
316    name = "TestTransformDialectExtensionIncGen",
317    strip_include_prefix = "lib/Dialect/Transform",
318    tbl_outs = [
319        (
320            ["-gen-op-decls"],
321            "lib/Dialect/Transform/TestTransformDialectExtension.h.inc",
322        ),
323        (
324            ["-gen-op-defs"],
325            "lib/Dialect/Transform/TestTransformDialectExtension.cpp.inc",
326        ),
327        (
328            [
329                "-gen-typedef-decls",
330                "-typedefs-dialect=transform",
331            ],
332            "lib/Dialect/Transform/TestTransformDialectExtensionTypes.h.inc",
333        ),
334        (
335            [
336                "-gen-typedef-defs",
337                "-typedefs-dialect=transform",
338            ],
339            "lib/Dialect/Transform/TestTransformDialectExtensionTypes.cpp.inc",
340        ),
341    ],
342    tblgen = "//mlir:mlir-tblgen",
343    td_file = "lib/Dialect/Transform/TestTransformDialectExtension.td",
344    test = True,
345    deps = [
346        ":TransformDialectTdFiles",
347        "//mlir:PDLDialectTdFiles",
348        "//mlir:TransformDialectTdFiles",
349        "//mlir:TransformPDLExtension",
350    ],
351)
352
353cc_library(
354    name = "TestTransformDialect",
355    srcs = glob(["lib/Dialect/Transform/*.cpp"]),
356    hdrs = glob(["lib/Dialect/Transform/*.h"]),
357    includes = ["lib/Dialect/Transform"],
358    deps = [
359        ":TestTransformDialectExtensionIncGen",
360        "//llvm:Support",
361        "//mlir:BytecodeOpInterface",
362        "//mlir:IR",
363        "//mlir:PDLDialect",
364        "//mlir:Pass",
365        "//mlir:TransformDebugExtension",
366        "//mlir:TransformDialect",
367        "//mlir:TransformDialectInterfaces",
368        "//mlir:TransformDialectTransforms",
369        "//mlir:TransformPDLExtension",
370    ],
371)
372
373gentbl_sharded_ops(
374    name = "TestDialectOpSrcs",
375    hdr_out = "lib/Dialect/Test/TestOps.h.inc",
376    shard_count = 20,
377    sharder = "//mlir:mlir-src-sharder",
378    src_file = "lib/Dialect/Test/TestOps.cpp",
379    src_out = "lib/Dialect/Test/TestOps.cpp.inc",
380    tblgen = "//mlir:mlir-tblgen",
381    td_file = "lib/Dialect/Test/TestOps.td",
382    test = True,
383    deps = [":TestOpTdFiles"],
384)
385
386cc_library(
387    name = "TestDialect",
388    srcs = glob(
389        ["lib/Dialect/Test/*.cpp"],
390        exclude = ["lib/Dialect/Test/TestToLLVMIRTranslation.cpp"],
391    ) + [":TestDialectOpSrcs"],
392    hdrs = glob(["lib/Dialect/Test/*.h"]),
393    includes = [
394        "lib/Dialect/Test",
395    ],
396    deps = [
397        ":TestAttrDefsIncGen",
398        ":TestEnumDefsIncGen",
399        ":TestInterfacesIncGen",
400        ":TestOpsIncGen",
401        ":TestOpsSyntaxIncGen",
402        ":TestTypeDefsIncGen",
403        "//llvm:Core",
404        "//llvm:IRReader",
405        "//llvm:Support",
406        "//mlir:ArithDialect",
407        "//mlir:BytecodeOpInterface",
408        "//mlir:CallOpInterfaces",
409        "//mlir:ControlFlowInterfaces",
410        "//mlir:CopyOpInterface",
411        "//mlir:DLTIDialect",
412        "//mlir:DataLayoutInterfaces",
413        "//mlir:DerivedAttributeOpInterface",
414        "//mlir:DestinationStyleOpInterface",
415        "//mlir:Dialect",
416        "//mlir:DialectUtils",
417        "//mlir:FromLLVMIRTranslation",
418        "//mlir:FuncDialect",
419        "//mlir:FuncTransforms",
420        "//mlir:FunctionInterfaces",
421        "//mlir:IR",
422        "//mlir:InferIntRangeInterface",
423        "//mlir:InferTypeOpInterface",
424        "//mlir:InliningUtils",
425        "//mlir:LLVMDialect",
426        "//mlir:LLVMIRToLLVMTranslation",
427        "//mlir:LinalgDialect",
428        "//mlir:LoopLikeInterface",
429        "//mlir:MemorySlotInterfaces",
430        "//mlir:Pass",
431        "//mlir:PolynomialDialect",
432        "//mlir:Reducer",
433        "//mlir:SideEffectInterfaces",
434        "//mlir:Support",
435        "//mlir:TensorDialect",
436        "//mlir:TransformUtils",
437        "//mlir:Transforms",
438        "//mlir:TranslateLib",
439        "//mlir:ValueBoundsOpInterface",
440        "//mlir:ViewLikeInterface",
441    ],
442)
443
444cc_library(
445    name = "TestToLLVMIRTranslation",
446    srcs = ["lib/Dialect/Test/TestToLLVMIRTranslation.cpp"],
447    deps = [
448        ":TestDialect",
449        "//llvm:Core",
450        "//llvm:Support",
451        "//mlir:BuiltinToLLVMIRTranslation",
452        "//mlir:IR",
453        "//mlir:LLVMToLLVMIRTranslation",
454        "//mlir:ToLLVMIRTranslation",
455        "//mlir:TranslateLib",
456    ],
457)
458
459cc_library(
460    name = "TestIR",
461    srcs = glob(["lib/IR/*.cpp"]),
462    deps = [
463        ":TestDialect",
464        "//llvm:Support",
465        "//mlir:Analysis",
466        "//mlir:ArithDialect",
467        "//mlir:BytecodeOpInterface",
468        "//mlir:BytecodeReader",
469        "//mlir:BytecodeWriter",
470        "//mlir:FuncDialect",
471        "//mlir:FunctionInterfaces",
472        "//mlir:IR",
473        "//mlir:LinalgDialect",
474        "//mlir:Parser",
475        "//mlir:Pass",
476        "//mlir:Support",
477    ],
478)
479
480cc_library(
481    name = "TestLoopLikeInterface",
482    srcs = glob(["lib/Interfaces/LoopLikeInterface/*.cpp"]),
483    deps = [
484        "//llvm:Support",
485        "//mlir:FuncDialect",
486        "//mlir:IR",
487        "//mlir:LoopLikeInterface",
488        "//mlir:Pass",
489    ],
490)
491
492gentbl_cc_library(
493    name = "TestTilingInterfaceTransformOpsIncGen",
494    includes = ["lib/Interfaces/TilingInterface"],
495    strip_include_prefix = "lib",
496    tbl_outs = [
497        (
498            ["-gen-op-decls"],
499            "lib/Interfaces/TilingInterface/TestTilingInterfaceTransformOps.h.inc",
500        ),
501        (
502            ["-gen-op-defs"],
503            "lib/Interfaces/TilingInterface/TestTilingInterfaceTransformOps.cpp.inc",
504        ),
505    ],
506    tblgen = "//mlir:mlir-tblgen",
507    td_file = "lib/Interfaces/TilingInterface/TestTilingInterfaceTransformOps.td",
508    deps = [
509        "//mlir:SCFTdFiles",
510        "//mlir:TransformDialectTdFiles",
511    ],
512)
513
514cc_library(
515    name = "TestTilingInterface",
516    srcs = glob(["lib/Interfaces/TilingInterface/*.cpp"]),
517    includes = ["lib/Interfaces/TilingInterface"],
518    deps = [
519        ":TestTilingInterfaceTransformOpsIncGen",
520        "//llvm:Support",
521        "//mlir:AffineDialect",
522        "//mlir:ArithDialect",
523        "//mlir:DialectUtils",
524        "//mlir:FuncDialect",
525        "//mlir:GPUDialect",
526        "//mlir:IR",
527        "//mlir:IndexDialect",
528        "//mlir:LinalgDialect",
529        "//mlir:LinalgTransforms",
530        "//mlir:MemRefDialect",
531        "//mlir:Pass",
532        "//mlir:SCFDialect",
533        "//mlir:SCFTransforms",
534        "//mlir:TensorDialect",
535        "//mlir:TensorTilingInterfaceImpl",
536        "//mlir:TilingInterface",
537        "//mlir:TransformDialect",
538        "//mlir:TransformDialectInterfaces",
539        "//mlir:Transforms",
540    ],
541)
542
543cc_library(
544    name = "TestPass",
545    srcs = glob(["lib/Pass/*.cpp"]),
546    deps = [
547        ":TestDialect",
548        "//llvm:Support",
549        "//mlir:ArithToSPIRV",
550        "//mlir:ArithTransforms",
551        "//mlir:FuncDialect",
552        "//mlir:FuncToSPIRV",
553        "//mlir:GPUDialect",
554        "//mlir:GPUToGPURuntimeTransforms",
555        "//mlir:GPUToSPIRV",
556        "//mlir:GPUTransforms",
557        "//mlir:IR",
558        "//mlir:IndexToSPIRV",
559        "//mlir:LLVMIRTransforms",
560        "//mlir:MemRefToLLVM",
561        "//mlir:MemRefToSPIRV",
562        "//mlir:MemRefTransforms",
563        "//mlir:Pass",
564        "//mlir:Rewrite",
565        "//mlir:SCFToSPIRV",
566        "//mlir:SPIRVConversion",
567        "//mlir:SPIRVDialect",
568        "//mlir:SPIRVToLLVM",
569        "//mlir:SPIRVTransforms",
570        "//mlir:Support",
571        "//mlir:TransformUtils",
572        "//mlir:UBToSPIRV",
573        "//mlir:VectorDialect",
574        "//mlir:VectorToSPIRV",
575        "//mlir:VectorTransforms",
576    ],
577)
578
579cc_library(
580    name = "TestRewrite",
581    srcs = [
582        "lib/Rewrite/TestPDLByteCode.cpp",
583    ],
584    deps = [
585        "//mlir:IR",
586        "//mlir:PDLInterpDialect",
587        "//mlir:Pass",
588        "//mlir:Support",
589        "//mlir:TransformUtils",
590        "//mlir:Transforms",
591    ],
592)
593
594cc_library(
595    name = "TestReducer",
596    srcs = [
597        "lib/Reducer/MLIRTestReducer.cpp",
598    ],
599    deps = [
600        "//mlir:IR",
601        "//mlir:Pass",
602        "//mlir:Support",
603    ],
604)
605
606cc_library(
607    name = "TestTransforms",
608    srcs = glob(["lib/Transforms/*.cpp"]),
609    includes = ["lib/Dialect/Test"],
610    deps = [
611        ":TestDialect",
612        ":TestDialectConversionPDLLPatternsIncGen",
613        "//llvm:Support",
614        "//mlir:AffineAnalysis",
615        "//mlir:AffineDialect",
616        "//mlir:Analysis",
617        "//mlir:ArithDialect",
618        "//mlir:FuncDialect",
619        "//mlir:IR",
620        "//mlir:InliningUtils",
621        "//mlir:MathDialect",
622        "//mlir:PDLDialect",
623        "//mlir:PDLInterpDialect",
624        "//mlir:Parser",
625        "//mlir:Pass",
626        "//mlir:SCFDialect",
627        "//mlir:SPIRVDialect",
628        "//mlir:SideEffectInterfaces",
629        "//mlir:Support",
630        "//mlir:TransformUtils",
631        "//mlir:Transforms",
632    ],
633)
634
635cc_library(
636    name = "TestFuncToLLVM",
637    srcs = glob(["lib/Conversion/FuncToLLVM/*.cpp"]),
638    includes = ["lib/Dialect/Test"],
639    deps = [
640        ":TestDialect",
641        "//mlir:FuncDialect",
642        "//mlir:FuncToLLVM",
643        "//mlir:IR",
644        "//mlir:LLVMCommonConversion",
645        "//mlir:LLVMDialect",
646        "//mlir:Pass",
647    ],
648)
649
650cc_library(
651    name = "TestOneToNTypeConversion",
652    srcs = glob(["lib/Conversion/OneToNTypeConversion/*.cpp"]),
653    includes = ["lib/Dialect/Test"],
654    deps = [
655        ":TestDialect",
656        "//mlir:FuncDialect",
657        "//mlir:FuncTransforms",
658        "//mlir:IR",
659        "//mlir:Pass",
660        "//mlir:SCFDialect",
661        "//mlir:SCFTransforms",
662        "//mlir:TransformUtils",
663        "//mlir:Transforms",
664    ],
665)
666
667cc_library(
668    name = "TestVectorToSPIRV",
669    srcs = glob(["lib/Conversion/VectorToSPIRV/*.cpp"]),
670    deps = [
671        "//mlir:ArithDialect",
672        "//mlir:FuncDialect",
673        "//mlir:Pass",
674        "//mlir:SPIRVDialect",
675        "//mlir:TransformUtils",
676        "//mlir:Transforms",
677        "//mlir:VectorDialect",
678        "//mlir:VectorToSPIRV",
679    ],
680)
681
682cc_library(
683    name = "TestConvertToSPIRV",
684    srcs = glob(["lib/Conversion/ConvertToSPIRV/*.cpp"]),
685    deps = [
686        "//mlir:ArithDialect",
687        "//mlir:FuncDialect",
688        "//mlir:Pass",
689        "//mlir:SPIRVConversion",
690        "//mlir:SPIRVDialect",
691        "//mlir:TransformUtils",
692        "//mlir:Transforms",
693        "//mlir:VectorDialect",
694        "//mlir:VectorTransforms",
695    ],
696)
697
698cc_library(
699    name = "TestAffine",
700    srcs = glob([
701        "lib/Dialect/Affine/*.cpp",
702    ]),
703    deps = [
704        ":TestDialect",
705        "//llvm:Support",
706        "//mlir:AffineAnalysis",
707        "//mlir:AffineDialect",
708        "//mlir:AffineTransforms",
709        "//mlir:AffineUtils",
710        "//mlir:Analysis",
711        "//mlir:ArithTransforms",
712        "//mlir:DialectUtils",
713        "//mlir:FuncDialect",
714        "//mlir:FunctionInterfaces",
715        "//mlir:IR",
716        "//mlir:MemRefDialect",
717        "//mlir:Pass",
718        "//mlir:SCFDialect",
719        "//mlir:Support",
720        "//mlir:TensorDialect",
721        "//mlir:TransformUtils",
722        "//mlir:Transforms",
723        "//mlir:ValueBoundsOpInterface",
724        "//mlir:VectorDialect",
725        "//mlir:VectorUtils",
726    ],
727)
728
729cc_library(
730    name = "TestDLTI",
731    srcs = glob(["lib/Dialect/DLTI/*.cpp"]),
732    includes = ["lib/Dialect/Test"],
733    deps = [
734        ":TestDialect",
735        "//mlir:Analysis",
736        "//mlir:DLTIDialect",
737        "//mlir:IR",
738        "//mlir:Pass",
739    ],
740)
741
742cc_library(
743    name = "TestGPU",
744    srcs = glob(["lib/Dialect/GPU/*.cpp"]),
745    includes = ["lib/Dialect/Test"],
746    deps = [
747        "//llvm:NVPTXCodeGen",
748        "//llvm:Support",
749        "//mlir:AffineDialect",
750        "//mlir:AffineToStandard",
751        "//mlir:ArithDialect",
752        "//mlir:ArithToLLVM",
753        "//mlir:FuncDialect",
754        "//mlir:FuncToLLVM",
755        "//mlir:GPUDialect",
756        "//mlir:GPUToGPURuntimeTransforms",
757        "//mlir:GPUToNVVMTransforms",
758        "//mlir:GPUTransforms",
759        "//mlir:IR",
760        "//mlir:IndexDialect",
761        "//mlir:IndexToLLVM",
762        "//mlir:LLVMDialect",
763        "//mlir:LinalgTransforms",
764        "//mlir:MathToLLVM",
765        "//mlir:MemRefDialect",
766        "//mlir:MemRefToLLVM",
767        "//mlir:MemRefTransforms",
768        "//mlir:NVGPUToNVVM",
769        "//mlir:NVVMToLLVM",
770        "//mlir:NVVMToLLVMIRTranslation",
771        "//mlir:Pass",
772        "//mlir:ROCDLToLLVMIRTranslation",
773        "//mlir:ReconcileUnrealizedCasts",
774        "//mlir:SCFDialect",
775        "//mlir:SCFToControlFlow",
776        "//mlir:SPIRVDialect",
777        "//mlir:ToLLVMIRTranslation",
778        "//mlir:TransformUtils",
779        "//mlir:Transforms",
780        "//mlir:VectorDialect",
781        "//mlir:VectorToLLVM",
782        "//mlir:VectorToSCF",
783    ],
784)
785
786cc_library(
787    name = "TestLinalg",
788    srcs = glob(["lib/Dialect/Linalg/*.cpp"]),
789    includes = ["lib/Dialect/Test"],
790    deps = [
791        "//llvm:Support",
792        "//mlir:AffineDialect",
793        "//mlir:ArithDialect",
794        "//mlir:ArithTransforms",
795        "//mlir:BufferizationDialect",
796        "//mlir:BufferizationTransforms",
797        "//mlir:FuncDialect",
798        "//mlir:FuncTransforms",
799        "//mlir:GPUDialect",
800        "//mlir:IR",
801        "//mlir:LinalgDialect",
802        "//mlir:LinalgTransforms",
803        "//mlir:LinalgUtils",
804        "//mlir:MemRefDialect",
805        "//mlir:Parser",
806        "//mlir:Pass",
807        "//mlir:SCFDialect",
808        "//mlir:SCFTransforms",
809        "//mlir:TensorDialect",
810        "//mlir:TensorTransforms",
811        "//mlir:TransformUtils",
812        "//mlir:Transforms",
813        "//mlir:VectorDialect",
814        "//mlir:VectorToSCF",
815        "//mlir:VectorTransforms",
816    ],
817)
818
819cc_library(
820    name = "TestLLVM",
821    srcs = glob(["lib/Dialect/LLVM/*.cpp"]),
822    includes = ["lib/Dialect/Test"],
823    deps = [
824        "//mlir:AffineToStandard",
825        "//mlir:ArithToLLVM",
826        "//mlir:ControlFlowToLLVM",
827        "//mlir:FuncDialect",
828        "//mlir:FuncToLLVM",
829        "//mlir:IR",
830        "//mlir:IndexToLLVM",
831        "//mlir:LLVMCommonConversion",
832        "//mlir:LLVMDialect",
833        "//mlir:LinalgTransforms",
834        "//mlir:MathToLLVM",
835        "//mlir:MemRefToLLVM",
836        "//mlir:MemRefTransforms",
837        "//mlir:Pass",
838        "//mlir:ReconcileUnrealizedCasts",
839        "//mlir:SCFToControlFlow",
840        "//mlir:TransformUtils",
841        "//mlir:Transforms",
842        "//mlir:VectorToLLVM",
843        "//mlir:VectorToSCF",
844    ],
845)
846
847cc_library(
848    name = "TestMath",
849    srcs = glob(["lib/Dialect/Math/*.cpp"]),
850    includes = ["lib/Dialect/Test"],
851    deps = [
852        "//mlir:ArithDialect",
853        "//mlir:MathDialect",
854        "//mlir:MathTransforms",
855        "//mlir:Pass",
856        "//mlir:SCFDialect",
857        "//mlir:TransformUtils",
858        "//mlir:Transforms",
859        "//mlir:VectorDialect",
860        "//mlir:X86VectorDialect",
861    ],
862)
863
864cc_library(
865    name = "TestMathToVCIX",
866    srcs = glob(["lib/Conversion/MathToVCIX/*.cpp"]),
867    includes = ["lib/Dialect/Test"],
868    deps = [
869        "//mlir:ArithDialect",
870        "//mlir:FuncDialect",
871        "//mlir:IR",
872        "//mlir:MathDialect",
873        "//mlir:Pass",
874        "//mlir:TransformUtils",
875        "//mlir:Transforms",
876        "//mlir:VCIXDialect",
877        "//mlir:VectorDialect",
878    ],
879)
880
881cc_library(
882    name = "TestMemRef",
883    srcs = glob(["lib/Dialect/MemRef/*.cpp"]),
884    includes = ["lib/Dialect/Test"],
885    deps = [
886        ":TestDialect",
887        "//mlir:AffineDialect",
888        "//mlir:ArithDialect",
889        "//mlir:ArithTransforms",
890        "//mlir:FuncDialect",
891        "//mlir:MemRefDialect",
892        "//mlir:MemRefTransforms",
893        "//mlir:Pass",
894        "//mlir:TransformUtils",
895        "//mlir:Transforms",
896        "//mlir:VectorDialect",
897        "//mlir:VectorTransforms",
898    ],
899)
900
901cc_library(
902    name = "TestMesh",
903    srcs = glob(["lib/Dialect/Mesh/**/*.cpp"]),
904    includes = ["lib/Dialect/Test"],
905    deps = [
906        ":TestDialect",
907        "//mlir:ArithDialect",
908        "//mlir:DialectUtils",
909        "//mlir:FuncDialect",
910        "//mlir:IR",
911        "//mlir:MeshDialect",
912        "//mlir:MeshTransforms",
913        "//mlir:Pass",
914        "//mlir:SPIRVDialect",
915        "//mlir:Support",
916        "//mlir:TransformUtils",
917        "//mlir:Transforms",
918    ],
919)
920
921cc_library(
922    name = "TestNVGPU",
923    srcs = glob(["lib/Dialect/NVGPU/*.cpp"]),
924    includes = ["lib/Dialect/Test"],
925    deps = [
926        "//mlir:AffineDialect",
927        "//mlir:Analysis",
928        "//mlir:FuncDialect",
929        "//mlir:GPUDialect",
930        "//mlir:IR",
931        "//mlir:LLVMDialect",
932        "//mlir:LinalgDialect",
933        "//mlir:LinalgTransforms",
934        "//mlir:MemRefDialect",
935        "//mlir:NVGPUDialect",
936        "//mlir:NVGPUTransforms",
937        "//mlir:Pass",
938        "//mlir:SCFDialect",
939        "//mlir:Support",
940        "//mlir:TransformUtils",
941        "//mlir:Transforms",
942    ],
943)
944
945cc_library(
946    name = "TestSCF",
947    srcs = glob(["lib/Dialect/SCF/*.cpp"]),
948    includes = ["lib/Dialect/Test"],
949    deps = [
950        "//llvm:Support",
951        "//mlir:ArithDialect",
952        "//mlir:FuncDialect",
953        "//mlir:IR",
954        "//mlir:MathDialect",
955        "//mlir:MemRefDialect",
956        "//mlir:Pass",
957        "//mlir:SCFDialect",
958        "//mlir:SCFTransforms",
959        "//mlir:SCFUtils",
960        "//mlir:TransformUtils",
961        "//mlir:Transforms",
962    ],
963)
964
965cc_library(
966    name = "TestArith",
967    srcs = glob(["lib/Dialect/Arith/*.cpp"]),
968    includes = ["lib/Dialect/Test"],
969    deps = [
970        "//mlir:ArithDialect",
971        "//mlir:ArithTransforms",
972        "//mlir:FuncDialect",
973        "//mlir:LLVMDialect",
974        "//mlir:MathDialect",
975        "//mlir:Pass",
976        "//mlir:TransformUtils",
977        "//mlir:Transforms",
978        "//mlir:VectorDialect",
979    ],
980)
981
982cc_library(
983    name = "TestArmNeon",
984    srcs = glob(["lib/Dialect/ArmNeon/*.cpp"]),
985    includes = ["lib/Dialect/Test"],
986    deps = [
987        "//mlir:ArmNeonDialect",
988        "//mlir:ArmNeonTransforms",
989        "//mlir:FuncDialect",
990        "//mlir:IR",
991        "//mlir:Pass",
992        "//mlir:Support",
993        "//mlir:TransformUtils",
994        "//mlir:Transforms",
995    ],
996)
997
998cc_library(
999    name = "TestArmSME",
1000    srcs = glob(["lib/Dialect/ArmSME/*.cpp"]),
1001    includes = ["lib/Dialect/Test"],
1002    deps = [
1003        "//mlir:ArithToArmSME",
1004        "//mlir:ArmSMEToLLVM",
1005        "//mlir:ArmSMEToSCF",
1006        "//mlir:ArmSMETransforms",
1007        "//mlir:ArmSVETransforms",
1008        "//mlir:FuncDialect",
1009        "//mlir:IR",
1010        "//mlir:Pass",
1011        "//mlir:SCFToControlFlow",
1012        "//mlir:Transforms",
1013        "//mlir:VectorToArmSME",
1014        "//mlir:VectorToSCF",
1015    ],
1016)
1017
1018cc_library(
1019    name = "TestBufferization",
1020    srcs = glob(["lib/Dialect/Bufferization/*.cpp"]),
1021    includes = ["lib/Dialect/Test"],
1022    deps = [
1023        "//mlir:BufferizationDialect",
1024        "//mlir:BufferizationTransforms",
1025        "//mlir:IR",
1026        "//mlir:Pass",
1027    ],
1028)
1029
1030cc_library(
1031    name = "TestControlFlow",
1032    srcs = glob(["lib/Dialect/ControlFlow/*.cpp"]),
1033    includes = ["lib/Dialect/Test"],
1034    deps = [
1035        "//mlir:ControlFlowDialect",
1036        "//mlir:ControlFlowToLLVM",
1037        "//mlir:FuncDialect",
1038        "//mlir:LLVMCommonConversion",
1039        "//mlir:LLVMDialect",
1040        "//mlir:Pass",
1041        "//mlir:TransformUtils",
1042        "//mlir:Transforms",
1043    ],
1044)
1045
1046cc_library(
1047    name = "TestShapeDialect",
1048    srcs = [
1049        "lib/Dialect/Shape/TestShapeFunctions.cpp",
1050        "lib/Dialect/Shape/TestShapeMappingAnalysis.cpp",
1051    ],
1052    deps = [
1053        "//llvm:Support",
1054        "//mlir:FuncDialect",
1055        "//mlir:IR",
1056        "//mlir:InferTypeOpInterface",
1057        "//mlir:Pass",
1058        "//mlir:ShapeDialect",
1059        "//mlir:ShapeTransforms",
1060    ],
1061)
1062
1063cc_library(
1064    name = "TestSPIRV",
1065    srcs = glob([
1066        "lib/Dialect/SPIRV/*.cpp",
1067    ]),
1068    deps = [
1069        "//mlir:FuncDialect",
1070        "//mlir:GPUDialect",
1071        "//mlir:IR",
1072        "//mlir:Pass",
1073        "//mlir:SPIRVConversion",
1074        "//mlir:SPIRVDialect",
1075        "//mlir:SPIRVModuleCombiner",
1076        "//mlir:Transforms",
1077    ],
1078)
1079
1080cc_library(
1081    name = "TestFunc",
1082    srcs = glob(["lib/Dialect/Func/*.cpp"]),
1083    includes = ["lib/Dialect/Test"],
1084    deps = [
1085        ":TestDialect",
1086        "//mlir:AffineDialect",
1087        "//mlir:FuncDialect",
1088        "//mlir:FuncTransforms",
1089        "//mlir:IR",
1090        "//mlir:Pass",
1091        "//mlir:TransformUtils",
1092        "//mlir:Transforms",
1093    ],
1094)
1095
1096cc_library(
1097    name = "TestTensor",
1098    srcs = glob(["lib/Dialect/Tensor/*.cpp"]),
1099    includes = ["lib/Dialect/Test"],
1100    deps = [
1101        "//mlir:ArithDialect",
1102        "//mlir:LinalgDialect",
1103        "//mlir:Pass",
1104        "//mlir:SCFDialect",
1105        "//mlir:TensorDialect",
1106        "//mlir:TensorTransforms",
1107        "//mlir:TransformDialect",
1108        "//mlir:TransformDialectInterfaces",
1109        "//mlir:TransformUtils",
1110        "//mlir:Transforms",
1111    ],
1112)
1113
1114cc_library(
1115    name = "TestVector",
1116    srcs = glob(["lib/Dialect/Vector/*.cpp"]),
1117    includes = ["lib/Dialect/Test"],
1118    deps = [
1119        "//mlir:AffineDialect",
1120        "//mlir:Analysis",
1121        "//mlir:ArithDialect",
1122        "//mlir:FuncDialect",
1123        "//mlir:GPUDialect",
1124        "//mlir:LLVMDialect",
1125        "//mlir:LinalgDialect",
1126        "//mlir:LinalgTransforms",
1127        "//mlir:MemRefDialect",
1128        "//mlir:NVGPUDialect",
1129        "//mlir:Pass",
1130        "//mlir:SCFDialect",
1131        "//mlir:Support",
1132        "//mlir:TensorDialect",
1133        "//mlir:TransformUtils",
1134        "//mlir:Transforms",
1135        "//mlir:VectorDialect",
1136        "//mlir:VectorToSCF",
1137        "//mlir:VectorTransforms",
1138        "//mlir:X86VectorDialect",
1139    ],
1140)
1141
1142cc_library(
1143    name = "TestTosaDialect",
1144    srcs = glob([
1145        "lib/Dialect/Tosa/*.cpp",
1146    ]),
1147    deps = [
1148        "//mlir:FuncDialect",
1149        "//mlir:IR",
1150        "//mlir:Pass",
1151        "//mlir:TensorDialect",
1152        "//mlir:TosaDialect",
1153        "//mlir:TransformUtils",
1154        "//mlir:Transforms",
1155    ],
1156)
1157
1158gentbl_cc_library(
1159    name = "TestPDLLPatternsIncGen",
1160    includes = ["lib/Dialect/Test"],
1161    strip_include_prefix = "lib",
1162    tbl_outs = [
1163        (
1164            ["-x=cpp"],
1165            "lib/Tools/PDLL/TestPDLLPatterns.h.inc",
1166        ),
1167    ],
1168    tblgen = "//mlir:mlir-pdll",
1169    td_file = "lib/Tools/PDLL/TestPDLL.pdll",
1170    deps = [
1171        ":TestDialect",
1172        ":TestOpTdFiles",
1173    ],
1174)
1175
1176gentbl_cc_library(
1177    name = "TestDialectConversionPDLLPatternsIncGen",
1178    includes = ["lib/Dialect/Test"],
1179    strip_include_prefix = "lib",
1180    tbl_outs = [
1181        (
1182            ["-x=cpp"],
1183            "lib/TestDialectConversionPDLLPatterns.h.inc",
1184        ),
1185    ],
1186    tblgen = "//mlir:mlir-pdll",
1187    td_file = "lib/Transforms/TestDialectConversion.pdll",
1188    deps = [
1189        ":TestDialect",
1190        ":TestOpTdFiles",
1191        "//mlir:DialectConversionPdllFiles",
1192    ],
1193)
1194
1195cc_library(
1196    name = "TestPDLL",
1197    srcs = ["lib/Tools/PDLL/TestPDLL.cpp"],
1198    includes = ["lib/Tools/PDLL"],
1199    deps = [
1200        ":TestDialect",
1201        ":TestPDLLPatternsIncGen",
1202        "//mlir:CastInterfaces",
1203        "//mlir:IR",
1204        "//mlir:PDLDialect",
1205        "//mlir:PDLInterpDialect",
1206        "//mlir:Parser",
1207        "//mlir:Pass",
1208        "//mlir:Support",
1209        "//mlir:TransformUtils",
1210        "//mlir:Transforms",
1211    ],
1212)
1213