annotate mlir/test/IR/invalid.mlir @ 173:0572611fdcc8 llvm10 llvm12

reorgnization done
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 11:55:54 +0900
parents 1d019706d866
children 2e18cbf3894f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1 // RUN: mlir-opt -allow-unregistered-dialect %s -split-input-file -verify-diagnostics
150
anatofuz
parents:
diff changeset
2
anatofuz
parents:
diff changeset
3 // Check different error cases.
anatofuz
parents:
diff changeset
4 // -----
anatofuz
parents:
diff changeset
5
anatofuz
parents:
diff changeset
6 func @illegaltype(i) // expected-error {{expected non-function type}}
anatofuz
parents:
diff changeset
7
anatofuz
parents:
diff changeset
8 // -----
anatofuz
parents:
diff changeset
9
anatofuz
parents:
diff changeset
10 func @illegaltype() {
anatofuz
parents:
diff changeset
11 %0 = constant dense<0> : <vector 4 x f32> : vector<4 x f32> // expected-error {{expected non-function type}}
anatofuz
parents:
diff changeset
12 }
anatofuz
parents:
diff changeset
13
anatofuz
parents:
diff changeset
14 // -----
anatofuz
parents:
diff changeset
15
anatofuz
parents:
diff changeset
16 func @nestedtensor(tensor<tensor<i8>>) -> () // expected-error {{invalid tensor element type}}
anatofuz
parents:
diff changeset
17
anatofuz
parents:
diff changeset
18 // -----
anatofuz
parents:
diff changeset
19
anatofuz
parents:
diff changeset
20 func @indexvector(vector<4 x index>) -> () // expected-error {{vector elements must be int or float type}}
anatofuz
parents:
diff changeset
21
anatofuz
parents:
diff changeset
22 // -----
anatofuz
parents:
diff changeset
23
anatofuz
parents:
diff changeset
24 func @indexmemref(memref<? x index>) -> () // expected-error {{invalid memref element type}}
anatofuz
parents:
diff changeset
25
anatofuz
parents:
diff changeset
26 // -----
anatofuz
parents:
diff changeset
27 // Test no map in memref type.
anatofuz
parents:
diff changeset
28 func @memrefs(memref<2x4xi8, >) // expected-error {{expected list element}}
anatofuz
parents:
diff changeset
29
anatofuz
parents:
diff changeset
30 // -----
anatofuz
parents:
diff changeset
31 // Test non-existent map in memref type.
anatofuz
parents:
diff changeset
32 func @memrefs(memref<2x4xi8, #map7>) // expected-error {{undefined symbol alias id 'map7'}}
anatofuz
parents:
diff changeset
33
anatofuz
parents:
diff changeset
34 // -----
anatofuz
parents:
diff changeset
35 // Test non affine map in memref type.
anatofuz
parents:
diff changeset
36 func @memrefs(memref<2x4xi8, i8>) // expected-error {{expected affine map in memref type}}
anatofuz
parents:
diff changeset
37
anatofuz
parents:
diff changeset
38 // -----
anatofuz
parents:
diff changeset
39 // Test non-existent map in map composition of memref type.
anatofuz
parents:
diff changeset
40 #map0 = affine_map<(d0, d1) -> (d0, d1)>
anatofuz
parents:
diff changeset
41
anatofuz
parents:
diff changeset
42 func @memrefs(memref<2x4xi8, #map0, #map8>) // expected-error {{undefined symbol alias id 'map8'}}
anatofuz
parents:
diff changeset
43
anatofuz
parents:
diff changeset
44 // -----
anatofuz
parents:
diff changeset
45 // Test multiple memory space error.
anatofuz
parents:
diff changeset
46 #map0 = affine_map<(d0, d1) -> (d0, d1)>
anatofuz
parents:
diff changeset
47 func @memrefs(memref<2x4xi8, #map0, 1, 2>) // expected-error {{multiple memory spaces specified in memref type}}
anatofuz
parents:
diff changeset
48
anatofuz
parents:
diff changeset
49 // -----
anatofuz
parents:
diff changeset
50 // Test affine map after memory space.
anatofuz
parents:
diff changeset
51 #map0 = affine_map<(d0, d1) -> (d0, d1)>
anatofuz
parents:
diff changeset
52 #map1 = affine_map<(d0, d1) -> (d0, d1)>
anatofuz
parents:
diff changeset
53
anatofuz
parents:
diff changeset
54 func @memrefs(memref<2x4xi8, #map0, 1, #map1>) // expected-error {{expected memory space to be last in memref type}}
anatofuz
parents:
diff changeset
55
anatofuz
parents:
diff changeset
56 // -----
anatofuz
parents:
diff changeset
57 // Test dimension mismatch between memref and layout map.
anatofuz
parents:
diff changeset
58 // The error must be emitted even for the trivial identity layout maps that are
anatofuz
parents:
diff changeset
59 // dropped in type creation.
anatofuz
parents:
diff changeset
60 #map0 = affine_map<(d0, d1) -> (d0, d1)>
anatofuz
parents:
diff changeset
61 func @memrefs(memref<42xi8, #map0>) // expected-error {{memref affine map dimension mismatch}}
anatofuz
parents:
diff changeset
62
anatofuz
parents:
diff changeset
63 // -----
anatofuz
parents:
diff changeset
64
anatofuz
parents:
diff changeset
65 #map0 = affine_map<(d0, d1) -> (d0, d1)>
anatofuz
parents:
diff changeset
66 #map1 = affine_map<(d0) -> (d0)>
anatofuz
parents:
diff changeset
67 func @memrefs(memref<42x42xi8, #map0, #map1>) // expected-error {{memref affine map dimension mismatch}}
anatofuz
parents:
diff changeset
68
anatofuz
parents:
diff changeset
69 // -----
anatofuz
parents:
diff changeset
70
anatofuz
parents:
diff changeset
71 func @memref_space_after_strides(memref<42x42xi8, 0, offset: ?, strides: [?, ?]>) // expected-error {{expected memory space to be last in memref type}}
anatofuz
parents:
diff changeset
72
anatofuz
parents:
diff changeset
73 // -----
anatofuz
parents:
diff changeset
74
anatofuz
parents:
diff changeset
75 func @memref_stride_missing_colon(memref<42x42xi8, offset ?, strides: [?, ?]>) // expected-error {{expected colon after `offset` keyword}}
anatofuz
parents:
diff changeset
76
anatofuz
parents:
diff changeset
77 // -----
anatofuz
parents:
diff changeset
78
anatofuz
parents:
diff changeset
79 func @memref_stride_invalid_offset(memref<42x42xi8, offset: [], strides: [?, ?]>) // expected-error {{invalid offset}}
anatofuz
parents:
diff changeset
80
anatofuz
parents:
diff changeset
81 // -----
anatofuz
parents:
diff changeset
82
anatofuz
parents:
diff changeset
83 func @memref_stride_missing_strides(memref<42x42xi8, offset: 0 [?, ?]>) // expected-error {{expected comma after offset value}}
anatofuz
parents:
diff changeset
84
anatofuz
parents:
diff changeset
85 // -----
anatofuz
parents:
diff changeset
86
anatofuz
parents:
diff changeset
87 func @memref_stride_missing_strides(memref<42x42xi8, offset: 0, [?, ?]>) // expected-error {{expected `strides` keyword after offset specification}}
anatofuz
parents:
diff changeset
88
anatofuz
parents:
diff changeset
89 // -----
anatofuz
parents:
diff changeset
90
anatofuz
parents:
diff changeset
91 func @memref_stride_missing_colon_2(memref<42x42xi8, offset: 0, strides [?, ?]>) // expected-error {{expected colon after `strides` keyword}}
anatofuz
parents:
diff changeset
92
anatofuz
parents:
diff changeset
93 // -----
anatofuz
parents:
diff changeset
94
anatofuz
parents:
diff changeset
95 func @memref_stride_invalid_strides(memref<42x42xi8, offset: 0, strides: ()>) // expected-error {{invalid braces-enclosed stride list}}
anatofuz
parents:
diff changeset
96
anatofuz
parents:
diff changeset
97 // -----
anatofuz
parents:
diff changeset
98
anatofuz
parents:
diff changeset
99 func @memref_zero_stride(memref<42x42xi8, offset: ?, strides: [0, ?]>) // expected-error {{invalid memref stride}}
anatofuz
parents:
diff changeset
100
anatofuz
parents:
diff changeset
101 // -----
anatofuz
parents:
diff changeset
102
anatofuz
parents:
diff changeset
103 func @bad_branch() {
anatofuz
parents:
diff changeset
104 ^bb12:
anatofuz
parents:
diff changeset
105 br ^missing // expected-error {{reference to an undefined block}}
anatofuz
parents:
diff changeset
106 }
anatofuz
parents:
diff changeset
107
anatofuz
parents:
diff changeset
108 // -----
anatofuz
parents:
diff changeset
109
anatofuz
parents:
diff changeset
110 func @block_redef() {
anatofuz
parents:
diff changeset
111 ^bb42:
anatofuz
parents:
diff changeset
112 return
anatofuz
parents:
diff changeset
113 ^bb42: // expected-error {{redefinition of block '^bb42'}}
anatofuz
parents:
diff changeset
114 return
anatofuz
parents:
diff changeset
115 }
anatofuz
parents:
diff changeset
116
anatofuz
parents:
diff changeset
117 // -----
anatofuz
parents:
diff changeset
118
anatofuz
parents:
diff changeset
119 func @no_terminator() { // expected-error {{block with no terminator}}
anatofuz
parents:
diff changeset
120 ^bb40:
anatofuz
parents:
diff changeset
121 return
anatofuz
parents:
diff changeset
122 ^bb41:
anatofuz
parents:
diff changeset
123 ^bb42:
anatofuz
parents:
diff changeset
124 return
anatofuz
parents:
diff changeset
125 }
anatofuz
parents:
diff changeset
126
anatofuz
parents:
diff changeset
127 // -----
anatofuz
parents:
diff changeset
128
anatofuz
parents:
diff changeset
129 func @block_no_rparen() {
anatofuz
parents:
diff changeset
130 ^bb42 (%bb42 : i32: // expected-error {{expected ')' to end argument list}}
anatofuz
parents:
diff changeset
131 return
anatofuz
parents:
diff changeset
132 }
anatofuz
parents:
diff changeset
133
anatofuz
parents:
diff changeset
134 // -----
anatofuz
parents:
diff changeset
135
anatofuz
parents:
diff changeset
136 func @block_arg_no_ssaid() {
anatofuz
parents:
diff changeset
137 ^bb42 (i32): // expected-error {{expected SSA operand}}
anatofuz
parents:
diff changeset
138 return
anatofuz
parents:
diff changeset
139 }
anatofuz
parents:
diff changeset
140
anatofuz
parents:
diff changeset
141 // -----
anatofuz
parents:
diff changeset
142
anatofuz
parents:
diff changeset
143 func @block_arg_no_type() {
anatofuz
parents:
diff changeset
144 ^bb42 (%0): // expected-error {{expected ':' and type for SSA operand}}
anatofuz
parents:
diff changeset
145 return
anatofuz
parents:
diff changeset
146 }
anatofuz
parents:
diff changeset
147
anatofuz
parents:
diff changeset
148 // -----
anatofuz
parents:
diff changeset
149
anatofuz
parents:
diff changeset
150 func @block_arg_no_close_paren() {
anatofuz
parents:
diff changeset
151 ^bb42:
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
152 br ^bb2( // expected-error@+1 {{expected ':'}}
150
anatofuz
parents:
diff changeset
153 return
anatofuz
parents:
diff changeset
154 }
anatofuz
parents:
diff changeset
155
anatofuz
parents:
diff changeset
156 // -----
anatofuz
parents:
diff changeset
157
anatofuz
parents:
diff changeset
158 func @block_first_has_predecessor() {
anatofuz
parents:
diff changeset
159 // expected-error@-1 {{entry block of region may not have predecessors}}
anatofuz
parents:
diff changeset
160 ^bb42:
anatofuz
parents:
diff changeset
161 br ^bb43
anatofuz
parents:
diff changeset
162 ^bb43:
anatofuz
parents:
diff changeset
163 br ^bb42
anatofuz
parents:
diff changeset
164 }
anatofuz
parents:
diff changeset
165
anatofuz
parents:
diff changeset
166 // -----
anatofuz
parents:
diff changeset
167
anatofuz
parents:
diff changeset
168 func @no_return() {
anatofuz
parents:
diff changeset
169 %x = constant 0 : i32 // expected-error {{block with no terminator}}
anatofuz
parents:
diff changeset
170 }
anatofuz
parents:
diff changeset
171
anatofuz
parents:
diff changeset
172 // -----
anatofuz
parents:
diff changeset
173
anatofuz
parents:
diff changeset
174 " // expected-error {{expected}}
anatofuz
parents:
diff changeset
175 "
anatofuz
parents:
diff changeset
176
anatofuz
parents:
diff changeset
177 // -----
anatofuz
parents:
diff changeset
178
anatofuz
parents:
diff changeset
179 " // expected-error {{expected}}
anatofuz
parents:
diff changeset
180
anatofuz
parents:
diff changeset
181 // -----
anatofuz
parents:
diff changeset
182
anatofuz
parents:
diff changeset
183 func @bad_op_type() {
anatofuz
parents:
diff changeset
184 ^bb40:
anatofuz
parents:
diff changeset
185 "foo"() : i32 // expected-error {{expected function type}}
anatofuz
parents:
diff changeset
186 return
anatofuz
parents:
diff changeset
187 }
anatofuz
parents:
diff changeset
188 // -----
anatofuz
parents:
diff changeset
189
anatofuz
parents:
diff changeset
190 func @no_terminator() {
anatofuz
parents:
diff changeset
191 ^bb40:
anatofuz
parents:
diff changeset
192 "foo"() : ()->()
anatofuz
parents:
diff changeset
193 ""() : ()->() // expected-error {{empty operation name is invalid}}
anatofuz
parents:
diff changeset
194 return
anatofuz
parents:
diff changeset
195 }
anatofuz
parents:
diff changeset
196
anatofuz
parents:
diff changeset
197 // -----
anatofuz
parents:
diff changeset
198
anatofuz
parents:
diff changeset
199 func @illegaltype(i0) // expected-error {{invalid integer width}}
anatofuz
parents:
diff changeset
200
anatofuz
parents:
diff changeset
201 // -----
anatofuz
parents:
diff changeset
202
anatofuz
parents:
diff changeset
203 func @malformed_for_percent() {
anatofuz
parents:
diff changeset
204 affine.for i = 1 to 10 { // expected-error {{expected SSA operand}}
anatofuz
parents:
diff changeset
205
anatofuz
parents:
diff changeset
206 // -----
anatofuz
parents:
diff changeset
207
anatofuz
parents:
diff changeset
208 func @malformed_for_equal() {
anatofuz
parents:
diff changeset
209 affine.for %i 1 to 10 { // expected-error {{expected '='}}
anatofuz
parents:
diff changeset
210
anatofuz
parents:
diff changeset
211 // -----
anatofuz
parents:
diff changeset
212
anatofuz
parents:
diff changeset
213 func @malformed_for_to() {
anatofuz
parents:
diff changeset
214 affine.for %i = 1 too 10 { // expected-error {{expected 'to' between bounds}}
anatofuz
parents:
diff changeset
215 }
anatofuz
parents:
diff changeset
216 }
anatofuz
parents:
diff changeset
217
anatofuz
parents:
diff changeset
218 // -----
anatofuz
parents:
diff changeset
219
anatofuz
parents:
diff changeset
220 func @incomplete_for() {
anatofuz
parents:
diff changeset
221 affine.for %i = 1 to 10 step 2
anatofuz
parents:
diff changeset
222 } // expected-error {{expected '{' to begin a region}}
anatofuz
parents:
diff changeset
223
anatofuz
parents:
diff changeset
224 // -----
anatofuz
parents:
diff changeset
225
anatofuz
parents:
diff changeset
226 #map0 = affine_map<(d0) -> (d0 floordiv 4)>
anatofuz
parents:
diff changeset
227
anatofuz
parents:
diff changeset
228 func @reference_to_iv_in_bound() {
anatofuz
parents:
diff changeset
229 // expected-error@+2 {{region entry argument '%i0' is already in use}}
anatofuz
parents:
diff changeset
230 // expected-note@+1 {{previously referenced here}}
anatofuz
parents:
diff changeset
231 affine.for %i0 = #map0(%i0) to 10 {
anatofuz
parents:
diff changeset
232 }
anatofuz
parents:
diff changeset
233 }
anatofuz
parents:
diff changeset
234
anatofuz
parents:
diff changeset
235 // -----
anatofuz
parents:
diff changeset
236
anatofuz
parents:
diff changeset
237 func @nonconstant_step(%1 : i32) {
anatofuz
parents:
diff changeset
238 affine.for %2 = 1 to 5 step %1 { // expected-error {{expected non-function type}}
anatofuz
parents:
diff changeset
239
anatofuz
parents:
diff changeset
240 // -----
anatofuz
parents:
diff changeset
241
anatofuz
parents:
diff changeset
242 func @for_negative_stride() {
anatofuz
parents:
diff changeset
243 affine.for %i = 1 to 10 step -1
anatofuz
parents:
diff changeset
244 } // expected-error@-1 {{expected step to be representable as a positive signed integer}}
anatofuz
parents:
diff changeset
245
anatofuz
parents:
diff changeset
246 // -----
anatofuz
parents:
diff changeset
247
anatofuz
parents:
diff changeset
248 func @non_operation() {
anatofuz
parents:
diff changeset
249 asd // expected-error {{custom op 'asd' is unknown}}
anatofuz
parents:
diff changeset
250 }
anatofuz
parents:
diff changeset
251
anatofuz
parents:
diff changeset
252 // -----
anatofuz
parents:
diff changeset
253
anatofuz
parents:
diff changeset
254 func @invalid_if_conditional2() {
anatofuz
parents:
diff changeset
255 affine.for %i = 1 to 10 {
anatofuz
parents:
diff changeset
256 affine.if affine_set<(i)[N] : (i >= )> // expected-error {{expected '== 0' or '>= 0' at end of affine constraint}}
anatofuz
parents:
diff changeset
257 }
anatofuz
parents:
diff changeset
258 }
anatofuz
parents:
diff changeset
259
anatofuz
parents:
diff changeset
260 // -----
anatofuz
parents:
diff changeset
261
anatofuz
parents:
diff changeset
262 func @invalid_if_conditional3() {
anatofuz
parents:
diff changeset
263 affine.for %i = 1 to 10 {
anatofuz
parents:
diff changeset
264 affine.if affine_set<(i)[N] : (i == 1)> // expected-error {{expected '0' after '=='}}
anatofuz
parents:
diff changeset
265 }
anatofuz
parents:
diff changeset
266 }
anatofuz
parents:
diff changeset
267
anatofuz
parents:
diff changeset
268 // -----
anatofuz
parents:
diff changeset
269
anatofuz
parents:
diff changeset
270 func @invalid_if_conditional4() {
anatofuz
parents:
diff changeset
271 affine.for %i = 1 to 10 {
anatofuz
parents:
diff changeset
272 affine.if affine_set<(i)[N] : (i >= 2)> // expected-error {{expected '0' after '>='}}
anatofuz
parents:
diff changeset
273 }
anatofuz
parents:
diff changeset
274 }
anatofuz
parents:
diff changeset
275
anatofuz
parents:
diff changeset
276 // -----
anatofuz
parents:
diff changeset
277
anatofuz
parents:
diff changeset
278 func @invalid_if_conditional5() {
anatofuz
parents:
diff changeset
279 affine.for %i = 1 to 10 {
anatofuz
parents:
diff changeset
280 affine.if affine_set<(i)[N] : (i <= 0)> // expected-error {{expected '== 0' or '>= 0' at end of affine constraint}}
anatofuz
parents:
diff changeset
281 }
anatofuz
parents:
diff changeset
282 }
anatofuz
parents:
diff changeset
283
anatofuz
parents:
diff changeset
284 // -----
anatofuz
parents:
diff changeset
285
anatofuz
parents:
diff changeset
286 func @invalid_if_conditional6() {
anatofuz
parents:
diff changeset
287 affine.for %i = 1 to 10 {
anatofuz
parents:
diff changeset
288 affine.if affine_set<(i) : (i)> // expected-error {{expected '== 0' or '>= 0' at end of affine constraint}}
anatofuz
parents:
diff changeset
289 }
anatofuz
parents:
diff changeset
290 }
anatofuz
parents:
diff changeset
291
anatofuz
parents:
diff changeset
292 // -----
anatofuz
parents:
diff changeset
293 // TODO (support affine.if (1)?
anatofuz
parents:
diff changeset
294 func @invalid_if_conditional7() {
anatofuz
parents:
diff changeset
295 affine.for %i = 1 to 10 {
anatofuz
parents:
diff changeset
296 affine.if affine_set<(i) : (1)> // expected-error {{expected '== 0' or '>= 0' at end of affine constraint}}
anatofuz
parents:
diff changeset
297 }
anatofuz
parents:
diff changeset
298 }
anatofuz
parents:
diff changeset
299
anatofuz
parents:
diff changeset
300 // -----
anatofuz
parents:
diff changeset
301
anatofuz
parents:
diff changeset
302 #map = affine_map<(d0) -> (% // expected-error {{invalid SSA name}}
anatofuz
parents:
diff changeset
303
anatofuz
parents:
diff changeset
304 // -----
anatofuz
parents:
diff changeset
305
anatofuz
parents:
diff changeset
306 func @test() {
anatofuz
parents:
diff changeset
307 ^bb40:
anatofuz
parents:
diff changeset
308 %1 = "foo"() : (i32)->i64 // expected-error {{expected 0 operand types but had 1}}
anatofuz
parents:
diff changeset
309 return
anatofuz
parents:
diff changeset
310 }
anatofuz
parents:
diff changeset
311
anatofuz
parents:
diff changeset
312 // -----
anatofuz
parents:
diff changeset
313
anatofuz
parents:
diff changeset
314 func @redef() {
anatofuz
parents:
diff changeset
315 ^bb42:
anatofuz
parents:
diff changeset
316 %x = "xxx"(){index = 0} : ()->i32 // expected-note {{previously defined here}}
anatofuz
parents:
diff changeset
317 %x = "xxx"(){index = 0} : ()->i32 // expected-error {{redefinition of SSA value '%x'}}
anatofuz
parents:
diff changeset
318 return
anatofuz
parents:
diff changeset
319 }
anatofuz
parents:
diff changeset
320
anatofuz
parents:
diff changeset
321 // -----
anatofuz
parents:
diff changeset
322
anatofuz
parents:
diff changeset
323 func @undef() {
anatofuz
parents:
diff changeset
324 ^bb42:
anatofuz
parents:
diff changeset
325 %x = "xxx"(%y) : (i32)->i32 // expected-error {{use of undeclared SSA value}}
anatofuz
parents:
diff changeset
326 return
anatofuz
parents:
diff changeset
327 }
anatofuz
parents:
diff changeset
328
anatofuz
parents:
diff changeset
329 // -----
anatofuz
parents:
diff changeset
330
anatofuz
parents:
diff changeset
331 func @malformed_type(%a : intt) { // expected-error {{expected non-function type}}
anatofuz
parents:
diff changeset
332 }
anatofuz
parents:
diff changeset
333
anatofuz
parents:
diff changeset
334 // -----
anatofuz
parents:
diff changeset
335
anatofuz
parents:
diff changeset
336 func @resulterror() -> i32 {
anatofuz
parents:
diff changeset
337 ^bb42:
anatofuz
parents:
diff changeset
338 return // expected-error {{'std.return' op has 0 operands, but enclosing function returns 1}}
anatofuz
parents:
diff changeset
339 }
anatofuz
parents:
diff changeset
340
anatofuz
parents:
diff changeset
341 // -----
anatofuz
parents:
diff changeset
342
anatofuz
parents:
diff changeset
343 func @func_resulterror() -> i32 {
anatofuz
parents:
diff changeset
344 return // expected-error {{'std.return' op has 0 operands, but enclosing function returns 1}}
anatofuz
parents:
diff changeset
345 }
anatofuz
parents:
diff changeset
346
anatofuz
parents:
diff changeset
347 // -----
anatofuz
parents:
diff changeset
348
anatofuz
parents:
diff changeset
349 func @argError() {
anatofuz
parents:
diff changeset
350 ^bb1(%a: i64): // expected-note {{previously defined here}}
anatofuz
parents:
diff changeset
351 br ^bb2
anatofuz
parents:
diff changeset
352 ^bb2(%a: i64): // expected-error{{redefinition of SSA value '%a'}}
anatofuz
parents:
diff changeset
353 return
anatofuz
parents:
diff changeset
354 }
anatofuz
parents:
diff changeset
355
anatofuz
parents:
diff changeset
356 // -----
anatofuz
parents:
diff changeset
357
anatofuz
parents:
diff changeset
358 func @br_mismatch() {
anatofuz
parents:
diff changeset
359 ^bb0:
anatofuz
parents:
diff changeset
360 %0:2 = "foo"() : () -> (i1, i17)
anatofuz
parents:
diff changeset
361 // expected-error @+1 {{branch has 2 operands for successor #0, but target block has 1}}
anatofuz
parents:
diff changeset
362 br ^bb1(%0#1, %0#0 : i17, i1)
anatofuz
parents:
diff changeset
363
anatofuz
parents:
diff changeset
364 ^bb1(%x: i17):
anatofuz
parents:
diff changeset
365 return
anatofuz
parents:
diff changeset
366 }
anatofuz
parents:
diff changeset
367
anatofuz
parents:
diff changeset
368 // -----
anatofuz
parents:
diff changeset
369
anatofuz
parents:
diff changeset
370 func @succ_arg_type_mismatch() {
anatofuz
parents:
diff changeset
371 ^bb0:
anatofuz
parents:
diff changeset
372 %0 = "getBool"() : () -> i1
anatofuz
parents:
diff changeset
373 // expected-error @+1 {{type mismatch for bb argument #0 of successor #0}}
anatofuz
parents:
diff changeset
374 br ^bb1(%0 : i1)
anatofuz
parents:
diff changeset
375
anatofuz
parents:
diff changeset
376 ^bb1(%x: i32):
anatofuz
parents:
diff changeset
377 return
anatofuz
parents:
diff changeset
378 }
anatofuz
parents:
diff changeset
379
anatofuz
parents:
diff changeset
380
anatofuz
parents:
diff changeset
381 // -----
anatofuz
parents:
diff changeset
382
anatofuz
parents:
diff changeset
383 // Test no nested vector.
anatofuz
parents:
diff changeset
384 func @vectors(vector<1 x vector<1xi32>>, vector<2x4xf32>)
anatofuz
parents:
diff changeset
385 // expected-error@-1 {{vector elements must be int or float type}}
anatofuz
parents:
diff changeset
386
anatofuz
parents:
diff changeset
387 // -----
anatofuz
parents:
diff changeset
388
anatofuz
parents:
diff changeset
389 func @condbr_notbool() {
anatofuz
parents:
diff changeset
390 ^bb0:
anatofuz
parents:
diff changeset
391 %a = "foo"() : () -> i32 // expected-note {{prior use here}}
anatofuz
parents:
diff changeset
392 cond_br %a, ^bb0, ^bb0 // expected-error {{use of value '%a' expects different type than prior uses: 'i1' vs 'i32'}}
anatofuz
parents:
diff changeset
393 }
anatofuz
parents:
diff changeset
394
anatofuz
parents:
diff changeset
395 // -----
anatofuz
parents:
diff changeset
396
anatofuz
parents:
diff changeset
397 func @condbr_badtype() {
anatofuz
parents:
diff changeset
398 ^bb0:
anatofuz
parents:
diff changeset
399 %c = "foo"() : () -> i1
anatofuz
parents:
diff changeset
400 %a = "foo"() : () -> i32
anatofuz
parents:
diff changeset
401 cond_br %c, ^bb0(%a, %a : i32, ^bb0) // expected-error {{expected non-function type}}
anatofuz
parents:
diff changeset
402 }
anatofuz
parents:
diff changeset
403
anatofuz
parents:
diff changeset
404 // -----
anatofuz
parents:
diff changeset
405
anatofuz
parents:
diff changeset
406 func @condbr_a_bb_is_not_a_type() {
anatofuz
parents:
diff changeset
407 ^bb0:
anatofuz
parents:
diff changeset
408 %c = "foo"() : () -> i1
anatofuz
parents:
diff changeset
409 %a = "foo"() : () -> i32
anatofuz
parents:
diff changeset
410 cond_br %c, ^bb0(%a, %a : i32, i32), i32 // expected-error {{expected block name}}
anatofuz
parents:
diff changeset
411 }
anatofuz
parents:
diff changeset
412
anatofuz
parents:
diff changeset
413 // -----
anatofuz
parents:
diff changeset
414
anatofuz
parents:
diff changeset
415 func @successors_in_non_terminator(%a : i32, %b : i32) {
anatofuz
parents:
diff changeset
416 %c = "std.addi"(%a, %b)[^bb1] : () -> () // expected-error {{successors in non-terminator}}
anatofuz
parents:
diff changeset
417 ^bb1:
anatofuz
parents:
diff changeset
418 return
anatofuz
parents:
diff changeset
419 }
anatofuz
parents:
diff changeset
420
anatofuz
parents:
diff changeset
421 // -----
anatofuz
parents:
diff changeset
422
anatofuz
parents:
diff changeset
423 func @undef() {
anatofuz
parents:
diff changeset
424 ^bb0:
anatofuz
parents:
diff changeset
425 %x = "xxx"(%y) : (i32)->i32 // expected-error {{use of undeclared SSA value name}}
anatofuz
parents:
diff changeset
426 return
anatofuz
parents:
diff changeset
427 }
anatofuz
parents:
diff changeset
428
anatofuz
parents:
diff changeset
429 // -----
anatofuz
parents:
diff changeset
430
anatofuz
parents:
diff changeset
431 func @undef() {
anatofuz
parents:
diff changeset
432 %x = "xxx"(%y) : (i32)->i32 // expected-error {{use of undeclared SSA value name}}
anatofuz
parents:
diff changeset
433 return
anatofuz
parents:
diff changeset
434 }
anatofuz
parents:
diff changeset
435
anatofuz
parents:
diff changeset
436 // -----
anatofuz
parents:
diff changeset
437
anatofuz
parents:
diff changeset
438 func @duplicate_induction_var() {
anatofuz
parents:
diff changeset
439 affine.for %i = 1 to 10 { // expected-note {{previously referenced here}}
anatofuz
parents:
diff changeset
440 affine.for %i = 1 to 10 { // expected-error {{region entry argument '%i' is already in use}}
anatofuz
parents:
diff changeset
441 }
anatofuz
parents:
diff changeset
442 }
anatofuz
parents:
diff changeset
443 return
anatofuz
parents:
diff changeset
444 }
anatofuz
parents:
diff changeset
445
anatofuz
parents:
diff changeset
446 // -----
anatofuz
parents:
diff changeset
447
anatofuz
parents:
diff changeset
448 func @name_scope_failure() {
anatofuz
parents:
diff changeset
449 affine.for %i = 1 to 10 {
anatofuz
parents:
diff changeset
450 }
anatofuz
parents:
diff changeset
451 "xxx"(%i) : (index)->() // expected-error {{use of undeclared SSA value name}}
anatofuz
parents:
diff changeset
452 return
anatofuz
parents:
diff changeset
453 }
anatofuz
parents:
diff changeset
454
anatofuz
parents:
diff changeset
455 // -----
anatofuz
parents:
diff changeset
456
anatofuz
parents:
diff changeset
457 func @dominance_failure() {
anatofuz
parents:
diff changeset
458 ^bb0:
anatofuz
parents:
diff changeset
459 "foo"(%x) : (i32) -> () // expected-error {{operand #0 does not dominate this use}}
anatofuz
parents:
diff changeset
460 br ^bb1
anatofuz
parents:
diff changeset
461 ^bb1:
anatofuz
parents:
diff changeset
462 %x = "bar"() : () -> i32 // expected-note {{operand defined here}}
anatofuz
parents:
diff changeset
463 return
anatofuz
parents:
diff changeset
464 }
anatofuz
parents:
diff changeset
465
anatofuz
parents:
diff changeset
466 // -----
anatofuz
parents:
diff changeset
467
anatofuz
parents:
diff changeset
468 func @return_type_mismatch() -> i32 {
anatofuz
parents:
diff changeset
469 %0 = "foo"() : ()->f32
anatofuz
parents:
diff changeset
470 return %0 : f32 // expected-error {{type of return operand 0 ('f32') doesn't match function result type ('i32')}}
anatofuz
parents:
diff changeset
471 }
anatofuz
parents:
diff changeset
472
anatofuz
parents:
diff changeset
473 // -----
anatofuz
parents:
diff changeset
474
anatofuz
parents:
diff changeset
475 func @return_inside_loop() {
anatofuz
parents:
diff changeset
476 affine.for %i = 1 to 100 {
anatofuz
parents:
diff changeset
477 // expected-error@-1 {{op expects regions to end with 'affine.terminator', found 'std.return'}}
anatofuz
parents:
diff changeset
478 // expected-note@-2 {{in custom textual format, the absence of terminator implies}}
anatofuz
parents:
diff changeset
479 return
anatofuz
parents:
diff changeset
480 }
anatofuz
parents:
diff changeset
481 return
anatofuz
parents:
diff changeset
482 }
anatofuz
parents:
diff changeset
483
anatofuz
parents:
diff changeset
484 // -----
anatofuz
parents:
diff changeset
485
anatofuz
parents:
diff changeset
486 // expected-error@+1 {{expected three consecutive dots for an ellipsis}}
anatofuz
parents:
diff changeset
487 func @malformed_ellipsis_one(.)
anatofuz
parents:
diff changeset
488
anatofuz
parents:
diff changeset
489 // -----
anatofuz
parents:
diff changeset
490
anatofuz
parents:
diff changeset
491 // expected-error@+1 {{expected three consecutive dots for an ellipsis}}
anatofuz
parents:
diff changeset
492 func @malformed_ellipsis_two(..)
anatofuz
parents:
diff changeset
493
anatofuz
parents:
diff changeset
494 // -----
anatofuz
parents:
diff changeset
495
anatofuz
parents:
diff changeset
496 // expected-error@+1 {{expected non-function type}}
anatofuz
parents:
diff changeset
497 func @func_variadic(...)
anatofuz
parents:
diff changeset
498
anatofuz
parents:
diff changeset
499 // -----
anatofuz
parents:
diff changeset
500
anatofuz
parents:
diff changeset
501 func @redef() // expected-note {{see existing symbol definition here}}
anatofuz
parents:
diff changeset
502 func @redef() // expected-error {{redefinition of symbol named 'redef'}}
anatofuz
parents:
diff changeset
503
anatofuz
parents:
diff changeset
504 // -----
anatofuz
parents:
diff changeset
505
anatofuz
parents:
diff changeset
506 func @foo() {
anatofuz
parents:
diff changeset
507 ^bb0:
anatofuz
parents:
diff changeset
508 %x = constant @foo : (i32) -> () // expected-error {{reference to function with mismatched type}}
anatofuz
parents:
diff changeset
509 return
anatofuz
parents:
diff changeset
510 }
anatofuz
parents:
diff changeset
511
anatofuz
parents:
diff changeset
512 // -----
anatofuz
parents:
diff changeset
513
anatofuz
parents:
diff changeset
514 func @undefined_function() {
anatofuz
parents:
diff changeset
515 ^bb0:
anatofuz
parents:
diff changeset
516 %x = constant @bar : (i32) -> () // expected-error {{reference to undefined function 'bar'}}
anatofuz
parents:
diff changeset
517 return
anatofuz
parents:
diff changeset
518 }
anatofuz
parents:
diff changeset
519
anatofuz
parents:
diff changeset
520 // -----
anatofuz
parents:
diff changeset
521
anatofuz
parents:
diff changeset
522 #map1 = affine_map<(i)[j] -> (i+j)>
anatofuz
parents:
diff changeset
523
anatofuz
parents:
diff changeset
524 func @bound_symbol_mismatch(%N : index) {
anatofuz
parents:
diff changeset
525 affine.for %i = #map1(%N) to 100 {
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
526 // expected-error@-1 {{symbol operand count and affine map symbol count must match}}
150
anatofuz
parents:
diff changeset
527 }
anatofuz
parents:
diff changeset
528 return
anatofuz
parents:
diff changeset
529 }
anatofuz
parents:
diff changeset
530
anatofuz
parents:
diff changeset
531 // -----
anatofuz
parents:
diff changeset
532
anatofuz
parents:
diff changeset
533 #map1 = affine_map<(i)[j] -> (i+j)>
anatofuz
parents:
diff changeset
534
anatofuz
parents:
diff changeset
535 func @bound_dim_mismatch(%N : index) {
anatofuz
parents:
diff changeset
536 affine.for %i = #map1(%N, %N)[%N] to 100 {
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
537 // expected-error@-1 {{dim operand count and affine map dim count must match}}
150
anatofuz
parents:
diff changeset
538 }
anatofuz
parents:
diff changeset
539 return
anatofuz
parents:
diff changeset
540 }
anatofuz
parents:
diff changeset
541
anatofuz
parents:
diff changeset
542 // -----
anatofuz
parents:
diff changeset
543
anatofuz
parents:
diff changeset
544 func @large_bound() {
anatofuz
parents:
diff changeset
545 affine.for %i = 1 to 9223372036854775810 {
anatofuz
parents:
diff changeset
546 // expected-error@-1 {{integer constant out of range for attribute}}
anatofuz
parents:
diff changeset
547 }
anatofuz
parents:
diff changeset
548 return
anatofuz
parents:
diff changeset
549 }
anatofuz
parents:
diff changeset
550
anatofuz
parents:
diff changeset
551 // -----
anatofuz
parents:
diff changeset
552
anatofuz
parents:
diff changeset
553 func @max_in_upper_bound(%N : index) {
anatofuz
parents:
diff changeset
554 affine.for %i = 1 to max affine_map<(i)->(N, 100)> { //expected-error {{expected non-function type}}
anatofuz
parents:
diff changeset
555 }
anatofuz
parents:
diff changeset
556 return
anatofuz
parents:
diff changeset
557 }
anatofuz
parents:
diff changeset
558
anatofuz
parents:
diff changeset
559 // -----
anatofuz
parents:
diff changeset
560
anatofuz
parents:
diff changeset
561 func @step_typo() {
anatofuz
parents:
diff changeset
562 affine.for %i = 1 to 100 step -- 1 { //expected-error {{expected constant integer}}
anatofuz
parents:
diff changeset
563 }
anatofuz
parents:
diff changeset
564 return
anatofuz
parents:
diff changeset
565 }
anatofuz
parents:
diff changeset
566
anatofuz
parents:
diff changeset
567 // -----
anatofuz
parents:
diff changeset
568
anatofuz
parents:
diff changeset
569 func @invalid_bound_map(%N : i32) {
anatofuz
parents:
diff changeset
570 affine.for %i = 1 to affine_map<(i)->(j)>(%N) { //expected-error {{use of undeclared identifier}}
anatofuz
parents:
diff changeset
571 }
anatofuz
parents:
diff changeset
572 return
anatofuz
parents:
diff changeset
573 }
anatofuz
parents:
diff changeset
574
anatofuz
parents:
diff changeset
575 // -----
anatofuz
parents:
diff changeset
576
anatofuz
parents:
diff changeset
577 #set0 = affine_set<(i)[N, M] : )i >= 0)> // expected-error {{expected '(' at start of integer set constraint list}}
anatofuz
parents:
diff changeset
578
anatofuz
parents:
diff changeset
579 // -----
anatofuz
parents:
diff changeset
580 #set0 = affine_set<(i)[N] : (i >= 0, N - i >= 0)>
anatofuz
parents:
diff changeset
581
anatofuz
parents:
diff changeset
582 func @invalid_if_operands1(%N : index) {
anatofuz
parents:
diff changeset
583 affine.for %i = 1 to 10 {
anatofuz
parents:
diff changeset
584 affine.if #set0(%i) {
anatofuz
parents:
diff changeset
585 // expected-error@-1 {{symbol operand count and integer set symbol count must match}}
anatofuz
parents:
diff changeset
586
anatofuz
parents:
diff changeset
587 // -----
anatofuz
parents:
diff changeset
588 #set0 = affine_set<(i)[N] : (i >= 0, N - i >= 0)>
anatofuz
parents:
diff changeset
589
anatofuz
parents:
diff changeset
590 func @invalid_if_operands2(%N : index) {
anatofuz
parents:
diff changeset
591 affine.for %i = 1 to 10 {
anatofuz
parents:
diff changeset
592 affine.if #set0()[%N] {
anatofuz
parents:
diff changeset
593 // expected-error@-1 {{dim operand count and integer set dim count must match}}
anatofuz
parents:
diff changeset
594
anatofuz
parents:
diff changeset
595 // -----
anatofuz
parents:
diff changeset
596 #set0 = affine_set<(i)[N] : (i >= 0, N - i >= 0)>
anatofuz
parents:
diff changeset
597
anatofuz
parents:
diff changeset
598 func @invalid_if_operands3(%N : index) {
anatofuz
parents:
diff changeset
599 affine.for %i = 1 to 10 {
anatofuz
parents:
diff changeset
600 affine.if #set0(%i)[%i] {
anatofuz
parents:
diff changeset
601 // expected-error@-1 {{operand cannot be used as a symbol}}
anatofuz
parents:
diff changeset
602 }
anatofuz
parents:
diff changeset
603 }
anatofuz
parents:
diff changeset
604 return
anatofuz
parents:
diff changeset
605 }
anatofuz
parents:
diff changeset
606
anatofuz
parents:
diff changeset
607 // -----
anatofuz
parents:
diff changeset
608 // expected-error@+1 {{expected '"' in string literal}}
anatofuz
parents:
diff changeset
609 "J// -----
anatofuz
parents:
diff changeset
610 func @calls(%arg0: i32) {
anatofuz
parents:
diff changeset
611 // expected-error@+1 {{expected non-function type}}
anatofuz
parents:
diff changeset
612 %z = "casdasda"(%x) : (ppop32) -> i32
anatofuz
parents:
diff changeset
613 }
anatofuz
parents:
diff changeset
614 // -----
anatofuz
parents:
diff changeset
615 // expected-error@+2 {{expected SSA operand}}
anatofuz
parents:
diff changeset
616 func@n(){^b(
anatofuz
parents:
diff changeset
617 // -----
anatofuz
parents:
diff changeset
618
anatofuz
parents:
diff changeset
619 func @elementsattr_non_tensor_type() -> () {
anatofuz
parents:
diff changeset
620 ^bb0:
anatofuz
parents:
diff changeset
621 "foo"(){bar = dense<[4]> : i32} : () -> () // expected-error {{elements literal must be a ranked tensor or vector type}}
anatofuz
parents:
diff changeset
622 }
anatofuz
parents:
diff changeset
623
anatofuz
parents:
diff changeset
624 // -----
anatofuz
parents:
diff changeset
625
anatofuz
parents:
diff changeset
626 func @elementsattr_non_ranked() -> () {
anatofuz
parents:
diff changeset
627 ^bb0:
anatofuz
parents:
diff changeset
628 "foo"(){bar = dense<[4]> : tensor<?xi32>} : () -> () // expected-error {{elements literal type must have static shape}}
anatofuz
parents:
diff changeset
629 }
anatofuz
parents:
diff changeset
630
anatofuz
parents:
diff changeset
631 // -----
anatofuz
parents:
diff changeset
632
anatofuz
parents:
diff changeset
633 func @elementsattr_shape_mismatch() -> () {
anatofuz
parents:
diff changeset
634 ^bb0:
anatofuz
parents:
diff changeset
635 "foo"(){bar = dense<[4]> : tensor<5xi32>} : () -> () // expected-error {{inferred shape of elements literal ([1]) does not match type ([5])}}
anatofuz
parents:
diff changeset
636 }
anatofuz
parents:
diff changeset
637
anatofuz
parents:
diff changeset
638 // -----
anatofuz
parents:
diff changeset
639
anatofuz
parents:
diff changeset
640 func @elementsattr_invalid() -> () {
anatofuz
parents:
diff changeset
641 ^bb0:
anatofuz
parents:
diff changeset
642 "foo"(){bar = dense<[4, [5]]> : tensor<2xi32>} : () -> () // expected-error {{tensor literal is invalid; ranks are not consistent between elements}}
anatofuz
parents:
diff changeset
643 }
anatofuz
parents:
diff changeset
644
anatofuz
parents:
diff changeset
645 // -----
anatofuz
parents:
diff changeset
646
anatofuz
parents:
diff changeset
647 func @elementsattr_badtoken() -> () {
anatofuz
parents:
diff changeset
648 ^bb0:
anatofuz
parents:
diff changeset
649 "foo"(){bar = dense<[tf_opaque]> : tensor<1xi32>} : () -> () // expected-error {{expected element literal of primitive type}}
anatofuz
parents:
diff changeset
650 }
anatofuz
parents:
diff changeset
651
anatofuz
parents:
diff changeset
652 // -----
anatofuz
parents:
diff changeset
653
anatofuz
parents:
diff changeset
654 func @elementsattr_floattype1() -> () {
anatofuz
parents:
diff changeset
655 ^bb0:
anatofuz
parents:
diff changeset
656 // expected-error@+1 {{expected integer elements, but parsed floating-point}}
anatofuz
parents:
diff changeset
657 "foo"(){bar = dense<[4.0]> : tensor<1xi32>} : () -> ()
anatofuz
parents:
diff changeset
658 }
anatofuz
parents:
diff changeset
659
anatofuz
parents:
diff changeset
660 // -----
anatofuz
parents:
diff changeset
661
anatofuz
parents:
diff changeset
662 func @elementsattr_floattype1() -> () {
anatofuz
parents:
diff changeset
663 ^bb0:
anatofuz
parents:
diff changeset
664 // expected-error@+1 {{expected integer elements, but parsed floating-point}}
anatofuz
parents:
diff changeset
665 "foo"(){bar = dense<4.0> : tensor<i32>} : () -> ()
anatofuz
parents:
diff changeset
666 }
anatofuz
parents:
diff changeset
667
anatofuz
parents:
diff changeset
668 // -----
anatofuz
parents:
diff changeset
669
anatofuz
parents:
diff changeset
670 func @elementsattr_floattype2() -> () {
anatofuz
parents:
diff changeset
671 ^bb0:
anatofuz
parents:
diff changeset
672 // expected-error@+1 {{expected floating-point elements, but parsed integer}}
anatofuz
parents:
diff changeset
673 "foo"(){bar = dense<[4]> : tensor<1xf32>} : () -> ()
anatofuz
parents:
diff changeset
674 }
anatofuz
parents:
diff changeset
675
anatofuz
parents:
diff changeset
676 // -----
anatofuz
parents:
diff changeset
677
anatofuz
parents:
diff changeset
678 func @elementsattr_toolarge1() -> () {
anatofuz
parents:
diff changeset
679 ^bb0:
anatofuz
parents:
diff changeset
680 "foo"(){bar = dense<[777]> : tensor<1xi8>} : () -> () // expected-error {{integer constant out of range}}
anatofuz
parents:
diff changeset
681 }
anatofuz
parents:
diff changeset
682
anatofuz
parents:
diff changeset
683 // -----
anatofuz
parents:
diff changeset
684
anatofuz
parents:
diff changeset
685 func @elementsattr_toolarge2() -> () {
anatofuz
parents:
diff changeset
686 ^bb0:
anatofuz
parents:
diff changeset
687 "foo"(){bar = dense<[-777]> : tensor<1xi8>} : () -> () // expected-error {{integer constant out of range}}
anatofuz
parents:
diff changeset
688 }
anatofuz
parents:
diff changeset
689
anatofuz
parents:
diff changeset
690 // -----
anatofuz
parents:
diff changeset
691
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
692 "foo"(){bar = dense<[()]> : tensor<complex<i64>>} : () -> () // expected-error {{expected element literal of primitive type}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
693
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
694 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
695
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
696 "foo"(){bar = dense<[(10)]> : tensor<complex<i64>>} : () -> () // expected-error {{expected ',' between complex elements}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
697
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
698 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
699
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
700 "foo"(){bar = dense<[(10,)]> : tensor<complex<i64>>} : () -> () // expected-error {{expected element literal of primitive type}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
701
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
702 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
703
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
704 "foo"(){bar = dense<[(10,10]> : tensor<complex<i64>>} : () -> () // expected-error {{expected ')' after complex elements}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
705
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
706 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
707
150
anatofuz
parents:
diff changeset
708 func @elementsattr_malformed_opaque() -> () {
anatofuz
parents:
diff changeset
709 ^bb0:
anatofuz
parents:
diff changeset
710 "foo"(){bar = opaque<10, "0xQZz123"> : tensor<1xi8>} : () -> () // expected-error {{expected dialect namespace}}
anatofuz
parents:
diff changeset
711 }
anatofuz
parents:
diff changeset
712
anatofuz
parents:
diff changeset
713 // -----
anatofuz
parents:
diff changeset
714
anatofuz
parents:
diff changeset
715 func @elementsattr_malformed_opaque1() -> () {
anatofuz
parents:
diff changeset
716 ^bb0:
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
717 "foo"(){bar = opaque<"", "0xQZz123"> : tensor<1xi8>} : () -> () // expected-error {{elements hex string only contains hex digits}}
150
anatofuz
parents:
diff changeset
718 }
anatofuz
parents:
diff changeset
719
anatofuz
parents:
diff changeset
720 // -----
anatofuz
parents:
diff changeset
721
anatofuz
parents:
diff changeset
722 func @elementsattr_malformed_opaque2() -> () {
anatofuz
parents:
diff changeset
723 ^bb0:
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
724 "foo"(){bar = opaque<"", "00abc"> : tensor<1xi8>} : () -> () // expected-error {{elements hex string should start with '0x'}}
150
anatofuz
parents:
diff changeset
725 }
anatofuz
parents:
diff changeset
726
anatofuz
parents:
diff changeset
727 // -----
anatofuz
parents:
diff changeset
728
anatofuz
parents:
diff changeset
729 func @elementsattr_malformed_opaque3() -> () {
anatofuz
parents:
diff changeset
730 ^bb0:
anatofuz
parents:
diff changeset
731 "foo"(){bar = opaque<"t", "0xabc"> : tensor<1xi8>} : () -> () // expected-error {{no registered dialect with namespace 't'}}
anatofuz
parents:
diff changeset
732 }
anatofuz
parents:
diff changeset
733
anatofuz
parents:
diff changeset
734 // -----
anatofuz
parents:
diff changeset
735
anatofuz
parents:
diff changeset
736 func @redundant_signature(%a : i32) -> () {
anatofuz
parents:
diff changeset
737 ^bb0(%b : i32): // expected-error {{invalid block name in region with named arguments}}
anatofuz
parents:
diff changeset
738 return
anatofuz
parents:
diff changeset
739 }
anatofuz
parents:
diff changeset
740
anatofuz
parents:
diff changeset
741 // -----
anatofuz
parents:
diff changeset
742
anatofuz
parents:
diff changeset
743 func @mixed_named_arguments(%a : i32,
anatofuz
parents:
diff changeset
744 f32) -> () {
anatofuz
parents:
diff changeset
745 // expected-error @-1 {{expected SSA identifier}}
anatofuz
parents:
diff changeset
746 return
anatofuz
parents:
diff changeset
747 }
anatofuz
parents:
diff changeset
748
anatofuz
parents:
diff changeset
749 // -----
anatofuz
parents:
diff changeset
750
anatofuz
parents:
diff changeset
751 func @mixed_named_arguments(f32,
anatofuz
parents:
diff changeset
752 %a : i32) -> () { // expected-error {{expected type instead of SSA identifier}}
anatofuz
parents:
diff changeset
753 return
anatofuz
parents:
diff changeset
754 }
anatofuz
parents:
diff changeset
755
anatofuz
parents:
diff changeset
756 // -----
anatofuz
parents:
diff changeset
757
anatofuz
parents:
diff changeset
758 // This used to crash the parser, but should just error out by interpreting
anatofuz
parents:
diff changeset
759 // `tensor` as operator rather than as a type.
anatofuz
parents:
diff changeset
760 func @f(f32) {
anatofuz
parents:
diff changeset
761 ^bb0(%a : f32):
anatofuz
parents:
diff changeset
762 %18 = cmpi "slt", %idx, %idx : index
anatofuz
parents:
diff changeset
763 tensor<42 x index // expected-error {{custom op 'tensor' is unknown}}
anatofuz
parents:
diff changeset
764 return
anatofuz
parents:
diff changeset
765 }
anatofuz
parents:
diff changeset
766
anatofuz
parents:
diff changeset
767 // -----
anatofuz
parents:
diff changeset
768
anatofuz
parents:
diff changeset
769 func @f(%m : memref<?x?xf32>) {
anatofuz
parents:
diff changeset
770 affine.for %i0 = 0 to 42 {
anatofuz
parents:
diff changeset
771 // expected-note@+1 {{previously referenced here}}
anatofuz
parents:
diff changeset
772 %x = load %m[%i0, %i1] : memref<?x?xf32>
anatofuz
parents:
diff changeset
773 }
anatofuz
parents:
diff changeset
774 // expected-error@+1 {{region entry argument '%i1' is already in use}}
anatofuz
parents:
diff changeset
775 affine.for %i1 = 0 to 42 {
anatofuz
parents:
diff changeset
776 }
anatofuz
parents:
diff changeset
777 return
anatofuz
parents:
diff changeset
778 }
anatofuz
parents:
diff changeset
779
anatofuz
parents:
diff changeset
780 // -----
anatofuz
parents:
diff changeset
781
anatofuz
parents:
diff changeset
782 func @dialect_type_empty_namespace(!<"">) -> () { // expected-error {{invalid type identifier}}
anatofuz
parents:
diff changeset
783 return
anatofuz
parents:
diff changeset
784 }
anatofuz
parents:
diff changeset
785
anatofuz
parents:
diff changeset
786 // -----
anatofuz
parents:
diff changeset
787
anatofuz
parents:
diff changeset
788 func @dialect_type_no_string_type_data(!foo<>) -> () { // expected-error {{expected string literal data in dialect symbol}}
anatofuz
parents:
diff changeset
789 return
anatofuz
parents:
diff changeset
790 }
anatofuz
parents:
diff changeset
791
anatofuz
parents:
diff changeset
792 // -----
anatofuz
parents:
diff changeset
793
anatofuz
parents:
diff changeset
794 func @dialect_type_missing_greater(!foo<"") -> () { // expected-error {{expected '>' in dialect symbol}}
anatofuz
parents:
diff changeset
795 return
anatofuz
parents:
diff changeset
796 }
anatofuz
parents:
diff changeset
797
anatofuz
parents:
diff changeset
798 // -----
anatofuz
parents:
diff changeset
799
anatofuz
parents:
diff changeset
800 func @type_alias_unknown(!unknown_alias) -> () { // expected-error {{undefined symbol alias id 'unknown_alias'}}
anatofuz
parents:
diff changeset
801 return
anatofuz
parents:
diff changeset
802 }
anatofuz
parents:
diff changeset
803
anatofuz
parents:
diff changeset
804 // -----
anatofuz
parents:
diff changeset
805
anatofuz
parents:
diff changeset
806 // expected-error @+1 {{type names with a '.' are reserved for dialect-defined names}}
anatofuz
parents:
diff changeset
807 !foo.bar = i32
anatofuz
parents:
diff changeset
808
anatofuz
parents:
diff changeset
809 // -----
anatofuz
parents:
diff changeset
810
anatofuz
parents:
diff changeset
811 !missing_eq_alias type i32 // expected-error {{expected '=' in type alias definition}}
anatofuz
parents:
diff changeset
812
anatofuz
parents:
diff changeset
813 // -----
anatofuz
parents:
diff changeset
814
anatofuz
parents:
diff changeset
815 !missing_kw_type_alias = i32 // expected-error {{expected 'type' in type alias definition}}
anatofuz
parents:
diff changeset
816
anatofuz
parents:
diff changeset
817 // -----
anatofuz
parents:
diff changeset
818
anatofuz
parents:
diff changeset
819 !missing_type_alias = type // expected-error@+2 {{expected non-function type}}
anatofuz
parents:
diff changeset
820
anatofuz
parents:
diff changeset
821 // -----
anatofuz
parents:
diff changeset
822
anatofuz
parents:
diff changeset
823 !redef_alias = type i32
anatofuz
parents:
diff changeset
824 !redef_alias = type i32 // expected-error {{redefinition of type alias id 'redef_alias'}}
anatofuz
parents:
diff changeset
825
anatofuz
parents:
diff changeset
826 // -----
anatofuz
parents:
diff changeset
827
anatofuz
parents:
diff changeset
828 // Check ill-formed opaque tensor.
anatofuz
parents:
diff changeset
829 func @complex_loops() {
anatofuz
parents:
diff changeset
830 affine.for %i1 = 1 to 100 {
anatofuz
parents:
diff changeset
831 // expected-error @+1 {{expected '"' in string literal}}
anatofuz
parents:
diff changeset
832 "opaqueIntTensor"(){bar = opaque<"", "0x686]> : tensor<2x1x4xi32>} : () -> ()
anatofuz
parents:
diff changeset
833
anatofuz
parents:
diff changeset
834 // -----
anatofuz
parents:
diff changeset
835
anatofuz
parents:
diff changeset
836 func @mi() {
anatofuz
parents:
diff changeset
837 // expected-error @+1 {{expected element literal of primitive type}}
anatofuz
parents:
diff changeset
838 "fooi64"(){bar = sparse<vector<1xi64>,[,[,1]
anatofuz
parents:
diff changeset
839
anatofuz
parents:
diff changeset
840 // -----
anatofuz
parents:
diff changeset
841
anatofuz
parents:
diff changeset
842 func @invalid_tensor_literal() {
anatofuz
parents:
diff changeset
843 // expected-error @+1 {{expected 1-d tensor for values}}
anatofuz
parents:
diff changeset
844 "foof16"(){bar = sparse<[[0, 0, 0]], [[-2.0]]> : vector<1x1x1xf16>} : () -> ()
anatofuz
parents:
diff changeset
845
anatofuz
parents:
diff changeset
846 // -----
anatofuz
parents:
diff changeset
847
anatofuz
parents:
diff changeset
848 func @invalid_tensor_literal() {
anatofuz
parents:
diff changeset
849 // expected-error @+1 {{expected element literal of primitive type}}
anatofuz
parents:
diff changeset
850 "fooi16"(){bar = sparse<[[1, 1, 0], [0, 1, 0], [0,, [[0, 0, 0]], [-2.0]> : tensor<2x2x2xi16>} : () -> ()
anatofuz
parents:
diff changeset
851
anatofuz
parents:
diff changeset
852 // -----
anatofuz
parents:
diff changeset
853
anatofuz
parents:
diff changeset
854 func @invalid_affine_structure() {
anatofuz
parents:
diff changeset
855 %c0 = constant 0 : index
anatofuz
parents:
diff changeset
856 %idx = affine.apply affine_map<(d0, d1)> (%c0, %c0) // expected-error {{expected '->' or ':'}}
anatofuz
parents:
diff changeset
857 return
anatofuz
parents:
diff changeset
858 }
anatofuz
parents:
diff changeset
859
anatofuz
parents:
diff changeset
860 // -----
anatofuz
parents:
diff changeset
861
anatofuz
parents:
diff changeset
862 func @missing_for_max(%arg0: index, %arg1: index, %arg2: memref<100xf32>) {
anatofuz
parents:
diff changeset
863 // expected-error @+1 {{lower loop bound affine map with multiple results requires 'max' prefix}}
anatofuz
parents:
diff changeset
864 affine.for %i0 = affine_map<()[s]->(0,s-1)>()[%arg0] to %arg1 {
anatofuz
parents:
diff changeset
865 }
anatofuz
parents:
diff changeset
866 return
anatofuz
parents:
diff changeset
867 }
anatofuz
parents:
diff changeset
868
anatofuz
parents:
diff changeset
869 // -----
anatofuz
parents:
diff changeset
870
anatofuz
parents:
diff changeset
871 func @missing_for_min(%arg0: index, %arg1: index, %arg2: memref<100xf32>) {
anatofuz
parents:
diff changeset
872 // expected-error @+1 {{upper loop bound affine map with multiple results requires 'min' prefix}}
anatofuz
parents:
diff changeset
873 affine.for %i0 = %arg0 to affine_map<()[s]->(100,s+1)>()[%arg1] {
anatofuz
parents:
diff changeset
874 }
anatofuz
parents:
diff changeset
875 return
anatofuz
parents:
diff changeset
876 }
anatofuz
parents:
diff changeset
877
anatofuz
parents:
diff changeset
878 // -----
anatofuz
parents:
diff changeset
879
anatofuz
parents:
diff changeset
880 // expected-error @+1 {{vector types must have positive constant sizes}}
anatofuz
parents:
diff changeset
881 func @zero_vector_type() -> vector<0xi32>
anatofuz
parents:
diff changeset
882
anatofuz
parents:
diff changeset
883 // -----
anatofuz
parents:
diff changeset
884
anatofuz
parents:
diff changeset
885 // expected-error @+1 {{vector types must have positive constant sizes}}
anatofuz
parents:
diff changeset
886 func @zero_in_vector_type() -> vector<1x0xi32>
anatofuz
parents:
diff changeset
887
anatofuz
parents:
diff changeset
888 // -----
anatofuz
parents:
diff changeset
889
anatofuz
parents:
diff changeset
890 // expected-error @+1 {{expected dimension size in vector type}}
anatofuz
parents:
diff changeset
891 func @negative_vector_size() -> vector<-1xi32>
anatofuz
parents:
diff changeset
892
anatofuz
parents:
diff changeset
893 // -----
anatofuz
parents:
diff changeset
894
anatofuz
parents:
diff changeset
895 // expected-error @+1 {{expected non-function type}}
anatofuz
parents:
diff changeset
896 func @negative_in_vector_size() -> vector<1x-1xi32>
anatofuz
parents:
diff changeset
897
anatofuz
parents:
diff changeset
898 // -----
anatofuz
parents:
diff changeset
899
anatofuz
parents:
diff changeset
900 // expected-error @+1 {{expected non-function type}}
anatofuz
parents:
diff changeset
901 func @negative_memref_size() -> memref<-1xi32>
anatofuz
parents:
diff changeset
902
anatofuz
parents:
diff changeset
903 // -----
anatofuz
parents:
diff changeset
904
anatofuz
parents:
diff changeset
905 // expected-error @+1 {{expected non-function type}}
anatofuz
parents:
diff changeset
906 func @negative_in_memref_size() -> memref<1x-1xi32>
anatofuz
parents:
diff changeset
907
anatofuz
parents:
diff changeset
908 // -----
anatofuz
parents:
diff changeset
909
anatofuz
parents:
diff changeset
910 // expected-error @+1 {{expected non-function type}}
anatofuz
parents:
diff changeset
911 func @negative_tensor_size() -> tensor<-1xi32>
anatofuz
parents:
diff changeset
912
anatofuz
parents:
diff changeset
913 // -----
anatofuz
parents:
diff changeset
914
anatofuz
parents:
diff changeset
915 // expected-error @+1 {{expected non-function type}}
anatofuz
parents:
diff changeset
916 func @negative_in_tensor_size() -> tensor<1x-1xi32>
anatofuz
parents:
diff changeset
917
anatofuz
parents:
diff changeset
918 // -----
anatofuz
parents:
diff changeset
919
anatofuz
parents:
diff changeset
920 func @invalid_nested_dominance() {
anatofuz
parents:
diff changeset
921 "foo.region"() ({
anatofuz
parents:
diff changeset
922 // expected-error @+1 {{operand #0 does not dominate this use}}
anatofuz
parents:
diff changeset
923 "foo.use" (%1) : (i32) -> ()
anatofuz
parents:
diff changeset
924 br ^bb2
anatofuz
parents:
diff changeset
925
anatofuz
parents:
diff changeset
926 ^bb2:
anatofuz
parents:
diff changeset
927 // expected-note @+1 {{operand defined here}}
anatofuz
parents:
diff changeset
928 %1 = constant 0 : i32
anatofuz
parents:
diff changeset
929 "foo.yield" () : () -> ()
anatofuz
parents:
diff changeset
930 }) : () -> ()
anatofuz
parents:
diff changeset
931 return
anatofuz
parents:
diff changeset
932 }
anatofuz
parents:
diff changeset
933
anatofuz
parents:
diff changeset
934 // -----
anatofuz
parents:
diff changeset
935
anatofuz
parents:
diff changeset
936 // expected-error @+1 {{unbalanced ']' character in pretty dialect name}}
anatofuz
parents:
diff changeset
937 func @invalid_unknown_type_dialect_name() -> !invalid.dialect<!x@#]!@#>
anatofuz
parents:
diff changeset
938
anatofuz
parents:
diff changeset
939 // -----
anatofuz
parents:
diff changeset
940
anatofuz
parents:
diff changeset
941 // expected-error @+1 {{@ identifier expected to start with letter or '_'}}
anatofuz
parents:
diff changeset
942 func @$invalid_function_name()
anatofuz
parents:
diff changeset
943
anatofuz
parents:
diff changeset
944 // -----
anatofuz
parents:
diff changeset
945
anatofuz
parents:
diff changeset
946 // expected-error @+1 {{arguments may only have dialect attributes}}
anatofuz
parents:
diff changeset
947 func @invalid_func_arg_attr(i1 {non_dialect_attr = 10})
anatofuz
parents:
diff changeset
948
anatofuz
parents:
diff changeset
949 // -----
anatofuz
parents:
diff changeset
950
anatofuz
parents:
diff changeset
951 // expected-error @+1 {{results may only have dialect attributes}}
anatofuz
parents:
diff changeset
952 func @invalid_func_result_attr() -> (i1 {non_dialect_attr = 10})
anatofuz
parents:
diff changeset
953
anatofuz
parents:
diff changeset
954 // -----
anatofuz
parents:
diff changeset
955
anatofuz
parents:
diff changeset
956 // expected-error @+1 {{expected '<' in tuple type}}
anatofuz
parents:
diff changeset
957 func @invalid_tuple_missing_less(tuple i32>)
anatofuz
parents:
diff changeset
958
anatofuz
parents:
diff changeset
959 // -----
anatofuz
parents:
diff changeset
960
anatofuz
parents:
diff changeset
961 // expected-error @+1 {{expected '>' in tuple type}}
anatofuz
parents:
diff changeset
962 func @invalid_tuple_missing_greater(tuple<i32)
anatofuz
parents:
diff changeset
963
anatofuz
parents:
diff changeset
964 // -----
anatofuz
parents:
diff changeset
965
anatofuz
parents:
diff changeset
966 // Should not crash because of deletion order here.
anatofuz
parents:
diff changeset
967 func @invalid_region_dominance() {
anatofuz
parents:
diff changeset
968 "foo.use" (%1) : (i32) -> ()
anatofuz
parents:
diff changeset
969 "foo.region"() ({
anatofuz
parents:
diff changeset
970 %1 = constant 0 : i32 // This value is used outside of the region.
anatofuz
parents:
diff changeset
971 "foo.yield" () : () -> ()
anatofuz
parents:
diff changeset
972 }, {
anatofuz
parents:
diff changeset
973 // expected-error @+1 {{expected operation name in quotes}}
anatofuz
parents:
diff changeset
974 %2 = constant 1 i32 // Syntax error causes region deletion.
anatofuz
parents:
diff changeset
975 }) : () -> ()
anatofuz
parents:
diff changeset
976 return
anatofuz
parents:
diff changeset
977 }
anatofuz
parents:
diff changeset
978
anatofuz
parents:
diff changeset
979 // -----
anatofuz
parents:
diff changeset
980
anatofuz
parents:
diff changeset
981 // Should not crash because of deletion order here.
anatofuz
parents:
diff changeset
982 func @invalid_region_block() {
anatofuz
parents:
diff changeset
983 "foo.branch"()[^bb2] : () -> () // Attempt to jump into the region.
anatofuz
parents:
diff changeset
984
anatofuz
parents:
diff changeset
985 ^bb1:
anatofuz
parents:
diff changeset
986 "foo.region"() ({
anatofuz
parents:
diff changeset
987 ^bb2:
anatofuz
parents:
diff changeset
988 "foo.yield"() : () -> ()
anatofuz
parents:
diff changeset
989 }, {
anatofuz
parents:
diff changeset
990 // expected-error @+1 {{expected operation name in quotes}}
anatofuz
parents:
diff changeset
991 %2 = constant 1 i32 // Syntax error causes region deletion.
anatofuz
parents:
diff changeset
992 }) : () -> ()
anatofuz
parents:
diff changeset
993 }
anatofuz
parents:
diff changeset
994
anatofuz
parents:
diff changeset
995 // -----
anatofuz
parents:
diff changeset
996
anatofuz
parents:
diff changeset
997 // Should not crash because of deletion order here.
anatofuz
parents:
diff changeset
998 func @invalid_region_dominance() {
anatofuz
parents:
diff changeset
999 "foo.use" (%1) : (i32) -> ()
anatofuz
parents:
diff changeset
1000 "foo.region"() ({
anatofuz
parents:
diff changeset
1001 "foo.region"() ({
anatofuz
parents:
diff changeset
1002 %1 = constant 0 : i32 // This value is used outside of the region.
anatofuz
parents:
diff changeset
1003 "foo.yield" () : () -> ()
anatofuz
parents:
diff changeset
1004 }) : () -> ()
anatofuz
parents:
diff changeset
1005 }, {
anatofuz
parents:
diff changeset
1006 // expected-error @+1 {{expected operation name in quotes}}
anatofuz
parents:
diff changeset
1007 %2 = constant 1 i32 // Syntax error causes region deletion.
anatofuz
parents:
diff changeset
1008 }) : () -> ()
anatofuz
parents:
diff changeset
1009 return
anatofuz
parents:
diff changeset
1010 }
anatofuz
parents:
diff changeset
1011
anatofuz
parents:
diff changeset
1012 // -----
anatofuz
parents:
diff changeset
1013
anatofuz
parents:
diff changeset
1014 func @unfinished_region_list() {
anatofuz
parents:
diff changeset
1015 // expected-error@+1 {{expected ')' to end region list}}
anatofuz
parents:
diff changeset
1016 "region"() ({},{},{} : () -> ()
anatofuz
parents:
diff changeset
1017 }
anatofuz
parents:
diff changeset
1018
anatofuz
parents:
diff changeset
1019 // -----
anatofuz
parents:
diff changeset
1020
anatofuz
parents:
diff changeset
1021 func @multi_result_missing_count() {
anatofuz
parents:
diff changeset
1022 // expected-error@+1 {{expected integer number of results}}
anatofuz
parents:
diff changeset
1023 %0: = "foo" () : () -> (i32, i32)
anatofuz
parents:
diff changeset
1024 return
anatofuz
parents:
diff changeset
1025 }
anatofuz
parents:
diff changeset
1026
anatofuz
parents:
diff changeset
1027 // -----
anatofuz
parents:
diff changeset
1028
anatofuz
parents:
diff changeset
1029 func @multi_result_zero_count() {
anatofuz
parents:
diff changeset
1030 // expected-error@+1 {{expected named operation to have atleast 1 result}}
anatofuz
parents:
diff changeset
1031 %0:0 = "foo" () : () -> (i32, i32)
anatofuz
parents:
diff changeset
1032 return
anatofuz
parents:
diff changeset
1033 }
anatofuz
parents:
diff changeset
1034
anatofuz
parents:
diff changeset
1035 // -----
anatofuz
parents:
diff changeset
1036
anatofuz
parents:
diff changeset
1037 func @multi_result_invalid_identifier() {
anatofuz
parents:
diff changeset
1038 // expected-error@+1 {{expected valid ssa identifier}}
anatofuz
parents:
diff changeset
1039 %0, = "foo" () : () -> (i32, i32)
anatofuz
parents:
diff changeset
1040 return
anatofuz
parents:
diff changeset
1041 }
anatofuz
parents:
diff changeset
1042
anatofuz
parents:
diff changeset
1043 // -----
anatofuz
parents:
diff changeset
1044
anatofuz
parents:
diff changeset
1045 func @multi_result_mismatch_count() {
anatofuz
parents:
diff changeset
1046 // expected-error@+1 {{operation defines 2 results but was provided 1 to bind}}
anatofuz
parents:
diff changeset
1047 %0:1 = "foo" () : () -> (i32, i32)
anatofuz
parents:
diff changeset
1048 return
anatofuz
parents:
diff changeset
1049 }
anatofuz
parents:
diff changeset
1050
anatofuz
parents:
diff changeset
1051 // -----
anatofuz
parents:
diff changeset
1052
anatofuz
parents:
diff changeset
1053 func @multi_result_mismatch_count() {
anatofuz
parents:
diff changeset
1054 // expected-error@+1 {{operation defines 2 results but was provided 3 to bind}}
anatofuz
parents:
diff changeset
1055 %0, %1, %3 = "foo" () : () -> (i32, i32)
anatofuz
parents:
diff changeset
1056 return
anatofuz
parents:
diff changeset
1057 }
anatofuz
parents:
diff changeset
1058
anatofuz
parents:
diff changeset
1059 // -----
anatofuz
parents:
diff changeset
1060
anatofuz
parents:
diff changeset
1061 func @no_result_with_name() {
anatofuz
parents:
diff changeset
1062 // expected-error@+1 {{cannot name an operation with no results}}
anatofuz
parents:
diff changeset
1063 %0 = "foo" () : () -> ()
anatofuz
parents:
diff changeset
1064 return
anatofuz
parents:
diff changeset
1065 }
anatofuz
parents:
diff changeset
1066
anatofuz
parents:
diff changeset
1067 // -----
anatofuz
parents:
diff changeset
1068
anatofuz
parents:
diff changeset
1069 func @conflicting_names() {
anatofuz
parents:
diff changeset
1070 // expected-note@+1 {{previously defined here}}
anatofuz
parents:
diff changeset
1071 %foo, %bar = "foo" () : () -> (i32, i32)
anatofuz
parents:
diff changeset
1072
anatofuz
parents:
diff changeset
1073 // expected-error@+1 {{redefinition of SSA value '%bar'}}
anatofuz
parents:
diff changeset
1074 %bar, %baz = "foo" () : () -> (i32, i32)
anatofuz
parents:
diff changeset
1075 return
anatofuz
parents:
diff changeset
1076 }
anatofuz
parents:
diff changeset
1077
anatofuz
parents:
diff changeset
1078 // -----
anatofuz
parents:
diff changeset
1079
anatofuz
parents:
diff changeset
1080 func @ssa_name_missing_eq() {
anatofuz
parents:
diff changeset
1081 // expected-error@+1 {{expected '=' after SSA name}}
anatofuz
parents:
diff changeset
1082 %0:2 "foo" () : () -> (i32, i32)
anatofuz
parents:
diff changeset
1083 return
anatofuz
parents:
diff changeset
1084 }
anatofuz
parents:
diff changeset
1085
anatofuz
parents:
diff changeset
1086 // -----
anatofuz
parents:
diff changeset
1087
anatofuz
parents:
diff changeset
1088 // expected-error @+1 {{invalid element type for complex}}
anatofuz
parents:
diff changeset
1089 func @bad_complex(complex<memref<2x4xi8>>)
anatofuz
parents:
diff changeset
1090
anatofuz
parents:
diff changeset
1091 // -----
anatofuz
parents:
diff changeset
1092
anatofuz
parents:
diff changeset
1093 // expected-error @+1 {{expected '<' in complex type}}
anatofuz
parents:
diff changeset
1094 func @bad_complex(complex memref<2x4xi8>>)
anatofuz
parents:
diff changeset
1095
anatofuz
parents:
diff changeset
1096 // -----
anatofuz
parents:
diff changeset
1097
anatofuz
parents:
diff changeset
1098 // expected-error @+1 {{expected '>' in complex type}}
anatofuz
parents:
diff changeset
1099 func @bad_complex(complex<i32)
anatofuz
parents:
diff changeset
1100
anatofuz
parents:
diff changeset
1101 // -----
anatofuz
parents:
diff changeset
1102
anatofuz
parents:
diff changeset
1103 // expected-error @+1 {{attribute names with a '.' are reserved for dialect-defined names}}
anatofuz
parents:
diff changeset
1104 #foo.attr = i32
anatofuz
parents:
diff changeset
1105
anatofuz
parents:
diff changeset
1106 // -----
anatofuz
parents:
diff changeset
1107
anatofuz
parents:
diff changeset
1108 func @invalid_region_dominance() {
anatofuz
parents:
diff changeset
1109 "foo.region"() ({
anatofuz
parents:
diff changeset
1110 // expected-error @+1 {{operand #0 does not dominate this use}}
anatofuz
parents:
diff changeset
1111 "foo.use" (%def) : (i32) -> ()
anatofuz
parents:
diff changeset
1112 "foo.yield" () : () -> ()
anatofuz
parents:
diff changeset
1113 }, {
anatofuz
parents:
diff changeset
1114 // expected-note @+1 {{operand defined here}}
anatofuz
parents:
diff changeset
1115 %def = "foo.def" () : () -> i32
anatofuz
parents:
diff changeset
1116 }) : () -> ()
anatofuz
parents:
diff changeset
1117 return
anatofuz
parents:
diff changeset
1118 }
anatofuz
parents:
diff changeset
1119
anatofuz
parents:
diff changeset
1120 // -----
anatofuz
parents:
diff changeset
1121
anatofuz
parents:
diff changeset
1122 func @invalid_region_dominance() {
anatofuz
parents:
diff changeset
1123 // expected-note @+1 {{operand defined here}}
anatofuz
parents:
diff changeset
1124 %def = "foo.region_with_def"() ({
anatofuz
parents:
diff changeset
1125 // expected-error @+1 {{operand #0 does not dominate this use}}
anatofuz
parents:
diff changeset
1126 "foo.use" (%def) : (i32) -> ()
anatofuz
parents:
diff changeset
1127 "foo.yield" () : () -> ()
anatofuz
parents:
diff changeset
1128 }) : () -> (i32)
anatofuz
parents:
diff changeset
1129 return
anatofuz
parents:
diff changeset
1130 }
anatofuz
parents:
diff changeset
1131
anatofuz
parents:
diff changeset
1132 // -----
anatofuz
parents:
diff changeset
1133
anatofuz
parents:
diff changeset
1134 func @hexadecimal_float_leading_minus() {
anatofuz
parents:
diff changeset
1135 // expected-error @+1 {{hexadecimal float literal should not have a leading minus}}
anatofuz
parents:
diff changeset
1136 "foo"() {value = -0x7fff : f16} : () -> ()
anatofuz
parents:
diff changeset
1137 }
anatofuz
parents:
diff changeset
1138
anatofuz
parents:
diff changeset
1139 // -----
anatofuz
parents:
diff changeset
1140
anatofuz
parents:
diff changeset
1141 func @hexadecimal_float_literal_overflow() {
anatofuz
parents:
diff changeset
1142 // expected-error @+1 {{hexadecimal float constant out of range for type}}
anatofuz
parents:
diff changeset
1143 "foo"() {value = 0xffffffff : f16} : () -> ()
anatofuz
parents:
diff changeset
1144 }
anatofuz
parents:
diff changeset
1145
anatofuz
parents:
diff changeset
1146 // -----
anatofuz
parents:
diff changeset
1147
anatofuz
parents:
diff changeset
1148 func @decimal_float_literal() {
anatofuz
parents:
diff changeset
1149 // expected-error @+2 {{unexpected decimal integer literal for a float attribute}}
anatofuz
parents:
diff changeset
1150 // expected-note @+1 {{add a trailing dot to make the literal a float}}
anatofuz
parents:
diff changeset
1151 "foo"() {value = 42 : f32} : () -> ()
anatofuz
parents:
diff changeset
1152 }
anatofuz
parents:
diff changeset
1153
anatofuz
parents:
diff changeset
1154 // -----
anatofuz
parents:
diff changeset
1155
anatofuz
parents:
diff changeset
1156 func @float_in_int_tensor() {
anatofuz
parents:
diff changeset
1157 // expected-error @+1 {{expected integer elements, but parsed floating-point}}
anatofuz
parents:
diff changeset
1158 "foo"() {bar = dense<[42.0, 42]> : tensor<2xi32>} : () -> ()
anatofuz
parents:
diff changeset
1159 }
anatofuz
parents:
diff changeset
1160
anatofuz
parents:
diff changeset
1161 // -----
anatofuz
parents:
diff changeset
1162
anatofuz
parents:
diff changeset
1163 func @float_in_bool_tensor() {
anatofuz
parents:
diff changeset
1164 // expected-error @+1 {{expected integer elements, but parsed floating-point}}
anatofuz
parents:
diff changeset
1165 "foo"() {bar = dense<[true, 42.0]> : tensor<2xi1>} : () -> ()
anatofuz
parents:
diff changeset
1166 }
anatofuz
parents:
diff changeset
1167
anatofuz
parents:
diff changeset
1168 // -----
anatofuz
parents:
diff changeset
1169
anatofuz
parents:
diff changeset
1170 func @decimal_int_in_float_tensor() {
anatofuz
parents:
diff changeset
1171 // expected-error @+1 {{expected floating-point elements, but parsed integer}}
anatofuz
parents:
diff changeset
1172 "foo"() {bar = dense<[42, 42.0]> : tensor<2xf32>} : () -> ()
anatofuz
parents:
diff changeset
1173 }
anatofuz
parents:
diff changeset
1174
anatofuz
parents:
diff changeset
1175 // -----
anatofuz
parents:
diff changeset
1176
anatofuz
parents:
diff changeset
1177 func @bool_in_float_tensor() {
anatofuz
parents:
diff changeset
1178 // expected-error @+1 {{expected floating-point elements, but parsed integer}}
anatofuz
parents:
diff changeset
1179 "foo"() {bar = dense<[42.0, true]> : tensor<2xf32>} : () -> ()
anatofuz
parents:
diff changeset
1180 }
anatofuz
parents:
diff changeset
1181
anatofuz
parents:
diff changeset
1182 // -----
anatofuz
parents:
diff changeset
1183
anatofuz
parents:
diff changeset
1184 func @hexadecimal_float_leading_minus_in_tensor() {
anatofuz
parents:
diff changeset
1185 // expected-error @+1 {{hexadecimal float literal should not have a leading minus}}
anatofuz
parents:
diff changeset
1186 "foo"() {bar = dense<-0x7FFFFFFF> : tensor<2xf32>} : () -> ()
anatofuz
parents:
diff changeset
1187 }
anatofuz
parents:
diff changeset
1188
anatofuz
parents:
diff changeset
1189 // -----
anatofuz
parents:
diff changeset
1190
anatofuz
parents:
diff changeset
1191 // Check that we report an error when a value could be parsed, but does not fit
anatofuz
parents:
diff changeset
1192 // into the specified type.
anatofuz
parents:
diff changeset
1193 func @hexadecimal_float_too_wide_for_type_in_tensor() {
anatofuz
parents:
diff changeset
1194 // expected-error @+1 {{hexadecimal float constant out of range for type}}
anatofuz
parents:
diff changeset
1195 "foo"() {bar = dense<0x7FF0000000000000> : tensor<2xf32>} : () -> ()
anatofuz
parents:
diff changeset
1196 }
anatofuz
parents:
diff changeset
1197
anatofuz
parents:
diff changeset
1198 // -----
anatofuz
parents:
diff changeset
1199
anatofuz
parents:
diff changeset
1200 // Check that we report an error when a value is too wide to be parsed.
anatofuz
parents:
diff changeset
1201 func @hexadecimal_float_too_wide_in_tensor() {
anatofuz
parents:
diff changeset
1202 // expected-error @+1 {{hexadecimal float constant out of range for attribute}}
anatofuz
parents:
diff changeset
1203 "foo"() {bar = dense<0x7FFFFFF0000000000000> : tensor<2xf32>} : () -> ()
anatofuz
parents:
diff changeset
1204 }
anatofuz
parents:
diff changeset
1205
anatofuz
parents:
diff changeset
1206 // -----
anatofuz
parents:
diff changeset
1207
anatofuz
parents:
diff changeset
1208 func @integer_too_wide_in_tensor() {
anatofuz
parents:
diff changeset
1209 // expected-error @+1 {{integer constant out of range for type}}
anatofuz
parents:
diff changeset
1210 "foo"() {bar = dense<0xFFFFFFFFFFFFFF> : tensor<2xi16>} : () -> ()
anatofuz
parents:
diff changeset
1211 }
anatofuz
parents:
diff changeset
1212
anatofuz
parents:
diff changeset
1213 // -----
anatofuz
parents:
diff changeset
1214
anatofuz
parents:
diff changeset
1215 func @bool_literal_in_non_bool_tensor() {
anatofuz
parents:
diff changeset
1216 // expected-error @+1 {{expected i1 type for 'true' or 'false' values}}
anatofuz
parents:
diff changeset
1217 "foo"() {bar = dense<true> : tensor<2xi16>} : () -> ()
anatofuz
parents:
diff changeset
1218 }
anatofuz
parents:
diff changeset
1219
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1220 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1221
150
anatofuz
parents:
diff changeset
1222 // expected-error @+1 {{unbalanced ')' character in pretty dialect name}}
anatofuz
parents:
diff changeset
1223 func @bad_arrow(%arg : !unreg.ptr<(i32)->)
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1224
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1225 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1226
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1227 func @negative_value_in_unsigned_int_attr() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1228 // expected-error @+1 {{negative integer literal not valid for unsigned integer type}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1229 "foo"() {bar = -5 : ui32} : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1230 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1231
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1232 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1233
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1234 func @negative_value_in_unsigned_vector_attr() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1235 // expected-error @+1 {{expected unsigned integer elements, but parsed negative value}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1236 "foo"() {bar = dense<[5, -5]> : vector<2xui32>} : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1237 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1238
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1239 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1240
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1241 func @large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1242 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1243 // expected-error @+1 {{integer constant out of range for attribute}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1244 attr = -129 : i8
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1245 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1246 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1247 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1248
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1249 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1250
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1251 func @large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1252 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1253 // expected-error @+1 {{integer constant out of range for attribute}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1254 attr = 256 : i8
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1255 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1256 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1257 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1258
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1259 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1260
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1261 func @large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1262 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1263 // expected-error @+1 {{integer constant out of range for attribute}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1264 attr = -129 : si8
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1265 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1266 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1267 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1268
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1269 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1270
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1271 func @large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1272 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1273 // expected-error @+1 {{integer constant out of range for attribute}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1274 attr = 129 : si8
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1275 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1276 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1277 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1278
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1279 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1280
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1281 func @large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1282 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1283 // expected-error @+1 {{negative integer literal not valid for unsigned integer type}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1284 attr = -1 : ui8
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1285 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1286 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1287 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1288
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1289 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1290
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1291 func @large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1292 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1293 // expected-error @+1 {{integer constant out of range for attribute}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1294 attr = 256 : ui8
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1295 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1296 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1297 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1298
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1299 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1300
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1301 func @large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1302 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1303 // expected-error @+1 {{integer constant out of range for attribute}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1304 attr = -32769 : i16
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1305 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1306 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1307 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1308
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1309 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1310
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1311 func @large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1312 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1313 // expected-error @+1 {{integer constant out of range for attribute}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1314 attr = 65536 : i16
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1315 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1316 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1317 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1318
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1319 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1320
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1321 func @large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1322 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1323 // expected-error @+1 {{integer constant out of range for attribute}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1324 attr = -32769 : si16
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1325 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1326 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1327 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1328
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1329 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1330
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1331 func @large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1332 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1333 // expected-error @+1 {{integer constant out of range for attribute}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1334 attr = 32768 : si16
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1335 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1336 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1337 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1338
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1339 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1340
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1341 func @large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1342 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1343 // expected-error @+1 {{negative integer literal not valid for unsigned integer type}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1344 attr = -1 : ui16
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1345 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1346 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1347 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1348
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1349 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1350
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1351 func @large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1352 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1353 // expected-error @+1 {{integer constant out of range for attribute}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1354 attr = 65536: ui16
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1355 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1356 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1357 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1358
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1359 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1360
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1361 func @large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1362 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1363 // expected-error @+1 {{integer constant out of range for attribute}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1364 attr = -2147483649 : i32
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1365 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1366 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1367 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1368
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1369 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1370
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1371 func @large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1372 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1373 // expected-error @+1 {{integer constant out of range for attribute}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1374 attr = 4294967296 : i32
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1375 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1376 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1377 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1378
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1379 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1380
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1381 func @large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1382 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1383 // expected-error @+1 {{integer constant out of range for attribute}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1384 attr = -2147483649 : si32
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1385 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1386 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1387 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1388
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1389 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1390
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1391 func @large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1392 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1393 // expected-error @+1 {{integer constant out of range for attribute}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1394 attr = 2147483648 : si32
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1395 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1396 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1397 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1398
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1399 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1400
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1401 func @large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1402 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1403 // expected-error @+1 {{negative integer literal not valid for unsigned integer type}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1404 attr = -1 : ui32
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1405 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1406 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1407 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1408
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1409 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1410
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1411 func @large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1412 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1413 // expected-error @+1 {{integer constant out of range for attribute}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1414 attr = 4294967296 : ui32
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1415 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1416 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1417 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1418
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1419 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1420
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1421 func @large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1422 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1423 // expected-error @+1 {{integer constant out of range for attribute}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1424 attr = -9223372036854775809 : i64
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1425 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1426 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1427 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1428
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1429 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1430
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1431 func @large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1432 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1433 // expected-error @+1 {{integer constant out of range for attribute}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1434 attr = 18446744073709551616 : i64
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1435 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1436 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1437 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1438
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1439 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1440
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1441 func @large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1442 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1443 // expected-error @+1 {{integer constant out of range for attribute}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1444 attr = -9223372036854775809 : si64
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1445 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1446 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1447 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1448
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1449 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1450
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1451 func @large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1452 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1453 // expected-error @+1 {{integer constant out of range for attribute}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1454 attr = 9223372036854775808 : si64
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1455 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1456 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1457 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1458
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1459 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1460
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1461 func @large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1462 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1463 // expected-error @+1 {{negative integer literal not valid for unsigned integer type}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1464 attr = -1 : ui64
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1465 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1466 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1467 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1468
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1469 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1470
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1471 func @large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1472 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1473 // expected-error @+1 {{integer constant out of range for attribute}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1474 attr = 18446744073709551616 : ui64
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1475 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1476 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1477 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1478
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1479 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1480
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1481 func @really_large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1482 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1483 // expected-error @+1 {{integer constant out of range for attribute}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1484 attr = 79228162514264337593543950336 : ui96
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1485 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1486 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1487 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1488
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1489 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1490
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1491 func @really_large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1492 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1493 // expected-error @+1 {{integer constant out of range for attribute}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1494 attr = 79228162514264337593543950336 : i96
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1495 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1496 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1497 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1498
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1499 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1500
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1501 func @really_large_bound() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1502 "test.out_of_range_attribute"() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1503 // expected-error @+1 {{integer constant out of range for attribute}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1504 attr = 39614081257132168796771975168 : si96
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1505 } : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1506 return
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1507 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1508
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1509 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1510
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1511 func @duplicate_dictionary_attr_key() {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1512 // expected-error @+1 {{duplicate key in dictionary attribute}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1513 "foo.op"() {a, a} : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1514 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1515
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1516 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1517
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1518 func @forward_reference_type_check() -> (i8) {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1519 br ^bb2
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1520
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1521 ^bb1:
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1522 // expected-note @+1 {{previously used here with type 'i8'}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1523 return %1 : i8
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1524
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1525 ^bb2:
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1526 // expected-error @+1 {{definition of SSA value '%1#0' has type 'f32'}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1527 %1 = "bar"() : () -> (f32)
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1528 br ^bb1
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1529 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1530
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1531 // -----
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1532
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1533 func @dominance_error_in_unreachable_op() -> i1 {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1534 %c = constant 0 : i1
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1535 return %c : i1
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1536 ^bb0:
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1537 "dummy" () ({ // unreachable
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1538 ^bb1:
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1539 // expected-error @+1 {{operand #0 does not dominate this use}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1540 %2:3 = "bar"(%1) : (i64) -> (i1,i1,i1)
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1541 br ^bb4
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1542 ^bb2:
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1543 br ^bb2
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1544 ^bb4:
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1545 %1 = "foo"() : ()->i64 // expected-note {{operand defined here}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1546 }) : () -> ()
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1547 return %c : i1
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1548 }