brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.2 KiB · 37eff99 Raw
93 lines · plain
1// RUN: mlir-opt %s -split-input-file -mlir-print-debuginfo | FileCheck %s2// 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 %s4 5// CHECK-DAG: #test2Ealias = "alias_test:dot_in_name"6"test.op"() {alias_test = "alias_test:dot_in_name"} : () -> ()7 8// CHECK-DAG: #test_alias0 = "alias_test:trailing_digit"9"test.op"() {alias_test = "alias_test:trailing_digit"} : () -> ()10 11// CHECK-DAG: #_0_test_alias = "alias_test:prefixed_digit"12"test.op"() {alias_test = "alias_test:prefixed_digit"} : () -> ()13 14// CHECK-DAG: #_25test = "alias_test:prefixed_symbol"15"test.op"() {alias_test = "alias_test:prefixed_symbol"} : () -> ()16 17// CHECK-DAG: #test_alias_conflict0 = "alias_test:trailing_digit_conflict_b"18// CHECK-DAG: #test_alias_conflict0_1 = "alias_test:trailing_digit_conflict_c"19// CHECK-DAG: #test_alias_conflict0_ = "alias_test:trailing_digit_conflict_d"20// CHECK-DAG: #test_alias_conflict0_1_1 = "alias_test:trailing_digit_conflict_e"21// CHECK-DAG: #test_alias_conflict0_1_2 = "alias_test:trailing_digit_conflict_f"22// CHECK-DAG: #test_alias_conflict0_1_ = "alias_test:trailing_digit_conflict_g"23// CHECK-DAG: #test_alias_conflict0_1_1_1 = "alias_test:trailing_digit_conflict_h"24// CHECK-DAG: #test_alias_conflict0_1_1_1_1 = "alias_test:trailing_digit_conflict_a"25"test.op"() {alias_test = ["alias_test:trailing_digit_conflict_a", "alias_test:trailing_digit_conflict_b", "alias_test:trailing_digit_conflict_c", "alias_test:trailing_digit_conflict_d", "alias_test:trailing_digit_conflict_e", "alias_test:trailing_digit_conflict_f", "alias_test:trailing_digit_conflict_g", "alias_test:trailing_digit_conflict_h"]} : () -> ()26 27// 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>28"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>)29 30// 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>31"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>)32 33// CHECK-DAG: #test_encoding = "alias_test:tensor_encoding"34// CHECK-DAG: tensor<32xf32, #test_encoding>35"test.op"() : () -> tensor<32xf32, "alias_test:tensor_encoding">36 37// CHECK-DAG: !test_ui8 = !test.int<unsigned, 8>38// CHECK-DAG: tensor<32x!test_ui8>39"test.op"() : () -> tensor<32x!test.int<unsigned, 8>>40 41// CHECK-DAG: #[[LOC_NESTED:.+]] = loc("nested")42// CHECK-DAG: #[[LOC_RAW:.+]] = loc("test.mlir":10:8)43// CHECK-DAG: = loc(fused<#[[LOC_NESTED]]>[#[[LOC_RAW]]])44"test.op"() {alias_test = loc(fused<loc("nested")>["test.mlir":10:8])} : () -> ()45 46// -----47 48// Check proper ordering of intermixed attribute/type aliases.49// CHECK: !tuple = tuple<50// CHECK: = loc(fused<!tuple51"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])} : () -> ()52 53// -----54 55// Ensure self type parameters get considered for aliases.56// CHECK: !test_ui8 = !test.int<unsigned, 8>57// CHECK: #test.attr_with_self_type_param : !test_ui858"test.op"() {alias_test = #test.attr_with_self_type_param : !test.int<unsigned, 8> } : () -> ()59 60// -----61 62// Check that we don't print aliases for things that aren't printed.63// CHECK: = loc(fused<memref<1xi32>64// CHECK-NOT: #map65"test.op"() {alias_test = loc(fused<memref<1xi32, affine_map<(d0) -> (d0)>>>["test.mlir":10:8])} : () -> ()66 67// -----68 69#unalias_me = "goodbye"70#keep_aliased = "alias_test:dot_in_name"71 72// CHECK: #test.conditional_alias<hello>73"test.op"() {attr = #test.conditional_alias<"hello">} : () -> ()74// CHECK-NEXT: #test.conditional_alias<#test_encoding>75"test.op"() {attr = #test.conditional_alias<"alias_test:tensor_encoding">} : () -> ()76// CHECK: #test.conditional_alias<goodbye>77"test.op"() {attr = #test.conditional_alias<#unalias_me>} : () -> ()78// CHECK-NEXT: #test.conditional_alias<#test2Ealias>79"test.op"() {attr = #test.conditional_alias<#keep_aliased>} : () -> ()80 81// -----82 83// Check that a deferred no_alias attr can be un-deferred.84 85#keep_aliased = "alias_test:dot_in_name"86#cond_alias = #test.conditional_alias<#keep_aliased>87#no_alias = loc(fused<#cond_alias>["test.mlir":1:1])88 89// CHECK: #[[TEST_ALIAS:.+]] = "alias_test:dot_in_name"90// CHECK: fused<#test.conditional_alias<#[[TEST_ALIAS]]>91// CHECK: "test.op"92"test.op"() {attr = #no_alias} : () -> () loc(fused<#no_alias>["test.mlir":0:0])93