[flang][OpenMP] Extend delayed privatization for `omp.simd` (#122156)
[llvm-project.git] / mlir / test / IR / print-attr-type-aliases.mlir
blobe878d862076c907934b7dbec037da896c6a4efdb
1 // RUN: mlir-opt %s -split-input-file -mlir-print-debuginfo | FileCheck %s
2 // Verify printer of type & attr aliases.
3 // RUN: mlir-opt %s -split-input-file -mlir-print-debuginfo | mlir-opt -split-input-file -mlir-print-debuginfo | FileCheck %s
5 // CHECK-DAG: #test2Ealias = "alias_test:dot_in_name"
6 "test.op"() {alias_test = "alias_test:dot_in_name"} : () -> ()
8 // CHECK-DAG: #test_alias0_ = "alias_test:trailing_digit"
9 "test.op"() {alias_test = "alias_test:trailing_digit"} : () -> ()
11 // CHECK-DAG: #_0_test_alias = "alias_test:prefixed_digit"
12 "test.op"() {alias_test = "alias_test:prefixed_digit"} : () -> ()
14 // CHECK-DAG: #_25test = "alias_test:prefixed_symbol"
15 "test.op"() {alias_test = "alias_test:prefixed_symbol"} : () -> ()
17 // CHECK-DAG: #test_alias_conflict0_ = "alias_test:sanitize_conflict_a"
18 // CHECK-DAG: #test_alias_conflict0_1 = "alias_test:sanitize_conflict_b"
19 "test.op"() {alias_test = ["alias_test:sanitize_conflict_a", "alias_test:sanitize_conflict_b"]} : () -> ()
21 // CHECK-DAG: !tuple = tuple<i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32>
22 "test.op"() {alias_test = "alias_test:large_tuple"} : () -> (tuple<i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32>)
24 // CHECK-DAG: !test_tuple = tuple<!test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla>
25 "test.op"() {alias_test = "alias_test:large_tuple"} : () -> (tuple<!test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla, !test.smpla>)
27 // CHECK-DAG: #test_encoding = "alias_test:tensor_encoding"
28 // CHECK-DAG: tensor<32xf32, #test_encoding>
29 "test.op"() : () -> tensor<32xf32, "alias_test:tensor_encoding">
31 // CHECK-DAG: !test_ui8_ = !test.int<unsigned, 8>
32 // CHECK-DAG: tensor<32x!test_ui8_>
33 "test.op"() : () -> tensor<32x!test.int<unsigned, 8>>
35 // CHECK-DAG: #[[LOC_NESTED:.+]] = loc("nested")
36 // CHECK-DAG: #[[LOC_RAW:.+]] = loc("test.mlir":10:8)
37 // CHECK-DAG: = loc(fused<#[[LOC_NESTED]]>[#[[LOC_RAW]]])
38 "test.op"() {alias_test = loc(fused<loc("nested")>["test.mlir":10:8])} : () -> ()
40 // -----
42 // Check proper ordering of intermixed attribute/type aliases.
43 // CHECK: !tuple = tuple<
44 // CHECK: = loc(fused<!tuple
45 "test.op"() {alias_test = loc(fused<tuple<i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32>>["test.mlir":10:8])} : () -> ()
47 // -----
49 // Ensure self type parameters get considered for aliases.
50 // CHECK: !test_ui8_ = !test.int<unsigned, 8>
51 // CHECK: #test.attr_with_self_type_param : !test_ui8_
52 "test.op"() {alias_test = #test.attr_with_self_type_param : !test.int<unsigned, 8> } : () -> ()
54 // -----
56 // Check that we don't print aliases for things that aren't printed.
57 // CHECK: = loc(fused<memref<1xi32>
58 // CHECK-NOT: #map
59 "test.op"() {alias_test = loc(fused<memref<1xi32, affine_map<(d0) -> (d0)>>>["test.mlir":10:8])} : () -> ()
61 // -----
63 #unalias_me = "goodbye"
64 #keep_aliased = "alias_test:dot_in_name"
66 // CHECK: #test.conditional_alias<hello>
67 "test.op"() {attr = #test.conditional_alias<"hello">} : () -> ()
68 // CHECK-NEXT: #test.conditional_alias<#test_encoding>
69 "test.op"() {attr = #test.conditional_alias<"alias_test:tensor_encoding">} : () -> ()
70 // CHECK: #test.conditional_alias<goodbye>
71 "test.op"() {attr = #test.conditional_alias<#unalias_me>} : () -> ()
72 // CHECK-NEXT: #test.conditional_alias<#test2Ealias>
73 "test.op"() {attr = #test.conditional_alias<#keep_aliased>} : () -> ()
75 // -----
77 // Check that a deferred no_alias attr can be un-deferred.
79 #keep_aliased = "alias_test:dot_in_name"
80 #cond_alias = #test.conditional_alias<#keep_aliased>
81 #no_alias = loc(fused<#cond_alias>["test.mlir":1:1])
83 // CHECK: #[[TEST_ALIAS:.+]] = "alias_test:dot_in_name"
84 // CHECK: fused<#test.conditional_alias<#[[TEST_ALIAS]]>
85 // CHECK: "test.op"
86 "test.op"() {attr = #no_alias} : () -> () loc(fused<#no_alias>["test.mlir":0:0])