brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.4 KiB · 2436e4f Raw
167 lines · plain
1// RUN: mlir-opt -split-input-file -verify-diagnostics %s2 3// expected-error@below {{attribute 'dlti.unknown' not supported by dialect}}4"test.unknown_op"() { dlti.unknown } : () -> ()5 6// -----7 8// expected-error@below {{'dlti.map' is expected to be a #dlti.map attribute}}9"test.unknown_op"() { dlti.map = 42 } : () -> ()10 11// -----12 13// expected-error@below {{'dlti.dl_spec' is expected to be a #dlti.dl_spec attribute}}14"test.unknown_op"() { dlti.dl_spec = 42 } : () -> ()15 16// -----17 18// expected-error@below {{invalid kind of attribute specified}}19"test.unknown_op"() { dlti.dl_spec = #dlti.dl_spec<[]> } : () -> ()20 21// -----22 23// expected-error@below {{expected a type or a quoted string}}24"test.unknown_op"() { test.unknown_attr = #dlti.dl_entry<42, 42> } : () -> ()25 26// -----27 28// expected-error@below {{empty string as DLTI key is not allowed}}29"test.unknown_op"() { test.unknown_attr = #dlti.map<"" = 42> } : () -> ()30 31// -----32 33// expected-error@below {{repeated DLTI key: "test.id"}}34"test.unknown_op"() { test.unknown_attr = #dlti.dl_spec<35  #dlti.dl_entry<"test.id", 42>,36  #dlti.dl_entry<"test.id", 43>37>} : () -> ()38 39// -----40 41// expected-error@below {{repeated DLTI key: i32}}42"test.unknown_op"() { test.unknown_attr = #dlti.map<43  #dlti.dl_entry<i32, 42>,44  #dlti.dl_entry<i32, 42>45>} : () -> ()46 47// -----48 49// expected-error@below {{repeated DLTI key: i32}}50"test.unknown_op"() { test.unknown_attr = #dlti.dl_spec<51  #dlti.dl_entry<i32, 42>,52  #dlti.dl_entry<i32, 42>53>} : () -> ()54 55// -----56 57// expected-error@below {{unknown attribute `unknown` in dialect `dlti`}}58"test.unknown_op"() { test.unknown_attr = #dlti.unknown } : () -> ()59 60// -----61 62// expected-error@below {{unknown data layout entry name: dlti.unknown_id}}63"test.op_with_data_layout"() ({64}) { dlti.dl_spec = #dlti.dl_spec<#dlti.dl_entry<"dlti.unknown_id", 42>> } : () -> ()65 66// -----67 68// expected-error@below {{'dlti.endianness' data layout entry is expected to be either 'big' or 'little'}}69"test.op_with_data_layout"() ({70}) { dlti.dl_spec = #dlti.dl_spec<#dlti.dl_entry<"dlti.endianness", "some">> } : () -> ()71 72// -----73 74// Mismatching entries don't combine.75"test.op_with_data_layout"() ({76  // expected-error@below {{data layout does not combine with layouts of enclosing ops}}77  // expected-note@above {{enclosing op with data layout}}78  "test.op_with_data_layout"() { dlti.dl_spec = #dlti.dl_spec<#dlti.dl_entry<"unknown.unknown", 32>> } : () -> ()79  "test.maybe_terminator_op"() : () -> ()80}) { dlti.dl_spec = #dlti.dl_spec<#dlti.dl_entry<"unknown.unknown", 33>> } : () -> ()81 82// -----83 84// Layout not supported some built-in types.85// expected-error@below {{unexpected data layout for a built-in type}}86"test.op_with_data_layout"() { dlti.dl_spec = #dlti.dl_spec<#dlti.dl_entry<tensor<f32>, 32>> } : () -> ()87 88// -----89 90// expected-error@below {{data layout specified for a type that does not support it}}91"test.op_with_data_layout"() { dlti.dl_spec = #dlti.dl_spec<#dlti.dl_entry<!test.test_type, 32>> } : () -> ()92 93// -----94 95// Mismatching entries are checked on module ops as well.96module attributes { dlti.dl_spec = #dlti.dl_spec<#dlti.dl_entry<"unknown.unknown", 33>>} {97  // expected-error@below {{data layout does not combine with layouts of enclosing ops}}98  // expected-note@above {{enclosing op with data layout}}99  module attributes { dlti.dl_spec = #dlti.dl_spec<#dlti.dl_entry<"unknown.unknown", 32>>} {100  }101}102 103// -----104 105// Mismatching entries are checked on a combination of modules and other ops.106module attributes { dlti.dl_spec = #dlti.dl_spec<#dlti.dl_entry<"unknown.unknown", 33>>} {107  // expected-error@below {{data layout does not combine with layouts of enclosing ops}}108  // expected-note@above {{enclosing op with data layout}}109  "test.op_with_data_layout"() { dlti.dl_spec = #dlti.dl_spec<#dlti.dl_entry<"unknown.unknown", 32>>} : () -> ()110}111 112// -----113 114// expected-error@below {{'dlti.target_system_spec' is expected to be a #dlti.target_system_spec attribute}}115"test.unknown_op"() { dlti.target_system_spec = 42 } : () -> ()116 117// -----118 119// expected-error@below {{invalid kind of attribute specified}}120"test.unknown_op"() { dlti.target_system_spec = #dlti.target_system_spec<[]> } : () -> ()121 122// -----123 124module attributes {125  // Device ID is missing126  //127  // expected-error@below {{expected attribute value}}128  dlti.target_system_spec = #dlti.target_system_spec<129    = #dlti.target_device_spec<130      #dlti.dl_entry<"L1_cache_size_in_bytes", 4096 : i32>>131  >} {}132 133// -----134 135module attributes {136  // Device ID is wrong type137  //138  // expected-error@+2 {{invalid kind of attribute specified}}139  dlti.target_system_spec = #dlti.target_system_spec<140    0 = #dlti.target_device_spec<141        #dlti.dl_entry<"L1_cache_size_in_bytes", 4096 : i32>>142  >} {}143 144// -----145 146module attributes {147  // Repeated Device ID148  //149  // expected-error@+1 {{repeated device ID in dlti.target_system_spec: "CPU}}150  dlti.target_system_spec = #dlti.target_system_spec<151    "CPU" = #dlti.target_device_spec<152            #dlti.dl_entry<"L1_cache_size_in_bytes", 4096>>,153    "CPU" = #dlti.target_device_spec<154            #dlti.dl_entry<"L1_cache_size_in_bytes", 8192>>155  >} {}156 157// -----158 159module attributes {160  // Repeated DLTI entry161  //162  // expected-error@+2 {{repeated DLTI key: "L1_cache_size_in_bytes"}}163  dlti.target_system_spec = #dlti.target_system_spec<164    "CPU" = #dlti.target_device_spec<"L1_cache_size_in_bytes" = 4096,165                                     "L1_cache_size_in_bytes" = 8192>166  >} {}167