Mercurial > hg > CbC > CbC_llvm
diff 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 |
line wrap: on
line diff
--- a/mlir/test/IR/invalid.mlir Mon May 25 11:50:15 2020 +0900 +++ b/mlir/test/IR/invalid.mlir Mon May 25 11:55:54 2020 +0900 @@ -1,4 +1,4 @@ -// RUN: mlir-opt %s -split-input-file -verify-diagnostics +// RUN: mlir-opt -allow-unregistered-dialect %s -split-input-file -verify-diagnostics // Check different error cases. // ----- @@ -24,10 +24,6 @@ func @indexmemref(memref<? x index>) -> () // expected-error {{invalid memref element type}} // ----- - -func @indextensor(tensor<4 x index>) -> () // expected-error {{invalid tensor element type}} - -// ----- // Test no map in memref type. func @memrefs(memref<2x4xi8, >) // expected-error {{expected list element}} @@ -153,7 +149,7 @@ func @block_arg_no_close_paren() { ^bb42: - br ^bb2( // expected-error@+1 {{expected ')' to close argument list}} + br ^bb2( // expected-error@+1 {{expected ':'}} return } @@ -394,7 +390,6 @@ ^bb0: %a = "foo"() : () -> i32 // expected-note {{prior use here}} cond_br %a, ^bb0, ^bb0 // expected-error {{use of value '%a' expects different type than prior uses: 'i1' vs 'i32'}} -// expected-error@-1 {{expected condition type was boolean (i1)}} } // ----- @@ -528,7 +523,7 @@ func @bound_symbol_mismatch(%N : index) { affine.for %i = #map1(%N) to 100 { - // expected-error@-1 {{symbol operand count and integer set symbol count must match}} + // expected-error@-1 {{symbol operand count and affine map symbol count must match}} } return } @@ -539,7 +534,7 @@ func @bound_dim_mismatch(%N : index) { affine.for %i = #map1(%N, %N)[%N] to 100 { - // expected-error@-1 {{dim operand count and integer set dim count must match}} + // expected-error@-1 {{dim operand count and affine map dim count must match}} } return } @@ -694,6 +689,22 @@ // ----- +"foo"(){bar = dense<[()]> : tensor<complex<i64>>} : () -> () // expected-error {{expected element literal of primitive type}} + +// ----- + +"foo"(){bar = dense<[(10)]> : tensor<complex<i64>>} : () -> () // expected-error {{expected ',' between complex elements}} + +// ----- + +"foo"(){bar = dense<[(10,)]> : tensor<complex<i64>>} : () -> () // expected-error {{expected element literal of primitive type}} + +// ----- + +"foo"(){bar = dense<[(10,10]> : tensor<complex<i64>>} : () -> () // expected-error {{expected ')' after complex elements}} + +// ----- + func @elementsattr_malformed_opaque() -> () { ^bb0: "foo"(){bar = opaque<10, "0xQZz123"> : tensor<1xi8>} : () -> () // expected-error {{expected dialect namespace}} @@ -703,14 +714,14 @@ func @elementsattr_malformed_opaque1() -> () { ^bb0: - "foo"(){bar = opaque<"", "0xQZz123"> : tensor<1xi8>} : () -> () // expected-error {{opaque string only contains hex digits}} + "foo"(){bar = opaque<"", "0xQZz123"> : tensor<1xi8>} : () -> () // expected-error {{elements hex string only contains hex digits}} } // ----- func @elementsattr_malformed_opaque2() -> () { ^bb0: - "foo"(){bar = opaque<"", "00abc"> : tensor<1xi8>} : () -> () // expected-error {{opaque string should start with '0x'}} + "foo"(){bar = opaque<"", "00abc"> : tensor<1xi8>} : () -> () // expected-error {{elements hex string should start with '0x'}} } // ----- @@ -1206,5 +1217,332 @@ "foo"() {bar = dense<true> : tensor<2xi16>} : () -> () } +// ----- + // expected-error @+1 {{unbalanced ')' character in pretty dialect name}} func @bad_arrow(%arg : !unreg.ptr<(i32)->) + +// ----- + +func @negative_value_in_unsigned_int_attr() { + // expected-error @+1 {{negative integer literal not valid for unsigned integer type}} + "foo"() {bar = -5 : ui32} : () -> () +} + +// ----- + +func @negative_value_in_unsigned_vector_attr() { + // expected-error @+1 {{expected unsigned integer elements, but parsed negative value}} + "foo"() {bar = dense<[5, -5]> : vector<2xui32>} : () -> () +} + +// ----- + +func @large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{integer constant out of range for attribute}} + attr = -129 : i8 + } : () -> () + return +} + +// ----- + +func @large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{integer constant out of range for attribute}} + attr = 256 : i8 + } : () -> () + return +} + +// ----- + +func @large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{integer constant out of range for attribute}} + attr = -129 : si8 + } : () -> () + return +} + +// ----- + +func @large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{integer constant out of range for attribute}} + attr = 129 : si8 + } : () -> () + return +} + +// ----- + +func @large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{negative integer literal not valid for unsigned integer type}} + attr = -1 : ui8 + } : () -> () + return +} + +// ----- + +func @large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{integer constant out of range for attribute}} + attr = 256 : ui8 + } : () -> () + return +} + +// ----- + +func @large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{integer constant out of range for attribute}} + attr = -32769 : i16 + } : () -> () + return +} + +// ----- + +func @large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{integer constant out of range for attribute}} + attr = 65536 : i16 + } : () -> () + return +} + +// ----- + +func @large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{integer constant out of range for attribute}} + attr = -32769 : si16 + } : () -> () + return +} + +// ----- + +func @large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{integer constant out of range for attribute}} + attr = 32768 : si16 + } : () -> () + return +} + +// ----- + +func @large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{negative integer literal not valid for unsigned integer type}} + attr = -1 : ui16 + } : () -> () + return +} + +// ----- + +func @large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{integer constant out of range for attribute}} + attr = 65536: ui16 + } : () -> () + return +} + +// ----- + +func @large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{integer constant out of range for attribute}} + attr = -2147483649 : i32 + } : () -> () + return +} + +// ----- + +func @large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{integer constant out of range for attribute}} + attr = 4294967296 : i32 + } : () -> () + return +} + +// ----- + +func @large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{integer constant out of range for attribute}} + attr = -2147483649 : si32 + } : () -> () + return +} + +// ----- + +func @large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{integer constant out of range for attribute}} + attr = 2147483648 : si32 + } : () -> () + return +} + +// ----- + +func @large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{negative integer literal not valid for unsigned integer type}} + attr = -1 : ui32 + } : () -> () + return +} + +// ----- + +func @large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{integer constant out of range for attribute}} + attr = 4294967296 : ui32 + } : () -> () + return +} + +// ----- + +func @large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{integer constant out of range for attribute}} + attr = -9223372036854775809 : i64 + } : () -> () + return +} + +// ----- + +func @large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{integer constant out of range for attribute}} + attr = 18446744073709551616 : i64 + } : () -> () + return +} + +// ----- + +func @large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{integer constant out of range for attribute}} + attr = -9223372036854775809 : si64 + } : () -> () + return +} + +// ----- + +func @large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{integer constant out of range for attribute}} + attr = 9223372036854775808 : si64 + } : () -> () + return +} + +// ----- + +func @large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{negative integer literal not valid for unsigned integer type}} + attr = -1 : ui64 + } : () -> () + return +} + +// ----- + +func @large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{integer constant out of range for attribute}} + attr = 18446744073709551616 : ui64 + } : () -> () + return +} + +// ----- + +func @really_large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{integer constant out of range for attribute}} + attr = 79228162514264337593543950336 : ui96 + } : () -> () + return +} + +// ----- + +func @really_large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{integer constant out of range for attribute}} + attr = 79228162514264337593543950336 : i96 + } : () -> () + return +} + +// ----- + +func @really_large_bound() { + "test.out_of_range_attribute"() { + // expected-error @+1 {{integer constant out of range for attribute}} + attr = 39614081257132168796771975168 : si96 + } : () -> () + return +} + +// ----- + +func @duplicate_dictionary_attr_key() { + // expected-error @+1 {{duplicate key in dictionary attribute}} + "foo.op"() {a, a} : () -> () +} + +// ----- + +func @forward_reference_type_check() -> (i8) { + br ^bb2 + +^bb1: + // expected-note @+1 {{previously used here with type 'i8'}} + return %1 : i8 + +^bb2: + // expected-error @+1 {{definition of SSA value '%1#0' has type 'f32'}} + %1 = "bar"() : () -> (f32) + br ^bb1 +} + +// ----- + +func @dominance_error_in_unreachable_op() -> i1 { + %c = constant 0 : i1 + return %c : i1 +^bb0: + "dummy" () ({ // unreachable + ^bb1: +// expected-error @+1 {{operand #0 does not dominate this use}} + %2:3 = "bar"(%1) : (i64) -> (i1,i1,i1) + br ^bb4 + ^bb2: + br ^bb2 + ^bb4: + %1 = "foo"() : ()->i64 // expected-note {{operand defined here}} + }) : () -> () + return %c : i1 +}