Changeset View
Changeset View
Standalone View
Standalone View
mlir/test/Dialect/LLVMIR/func.mlir
Show First 20 Lines • Show All 83 Lines • ▼ Show 20 Lines | module { | ||||
// CHECK: llvm.func @roundtrip12(%{{.*}}: !llvm.ptr<i32> {llvm.noalias}) | // CHECK: llvm.func @roundtrip12(%{{.*}}: !llvm.ptr<i32> {llvm.noalias}) | ||||
// CHECK: attributes {foo = 42 : i32} | // CHECK: attributes {foo = 42 : i32} | ||||
llvm.func @roundtrip12(%arg0: !llvm.ptr<i32> {llvm.noalias}) | llvm.func @roundtrip12(%arg0: !llvm.ptr<i32> {llvm.noalias}) | ||||
attributes {foo = 42 : i32} { | attributes {foo = 42 : i32} { | ||||
llvm.return | llvm.return | ||||
} | } | ||||
// CHECK: llvm.func @byvalattr(%{{.*}}: !llvm.ptr<i32> {llvm.byval}) | // CHECK: llvm.func @byvalattr(%{{.*}}: !llvm.ptr<i32> {llvm.byval = i32}) | ||||
llvm.func @byvalattr(%arg0: !llvm.ptr<i32> {llvm.byval}) { | llvm.func @byvalattr(%arg0: !llvm.ptr<i32> {llvm.byval = i32}) { | ||||
llvm.return | llvm.return | ||||
} | } | ||||
// CHECK: llvm.func @sretattr(%{{.*}}: !llvm.ptr<i32> {llvm.sret = i32}) | // CHECK: llvm.func @sretattr(%{{.*}}: !llvm.ptr<i32> {llvm.sret = i32}) | ||||
// LOCINFO: llvm.func @sretattr(%{{.*}}: !llvm.ptr<i32> {llvm.sret = i32} loc("some_source_loc")) | // LOCINFO: llvm.func @sretattr(%{{.*}}: !llvm.ptr<i32> {llvm.sret = i32} loc("some_source_loc")) | ||||
llvm.func @sretattr(%arg0: !llvm.ptr<i32> {llvm.sret = i32} loc("some_source_loc")) { | llvm.func @sretattr(%arg0: !llvm.ptr<i32> {llvm.sret = i32} loc("some_source_loc")) { | ||||
llvm.return | llvm.return | ||||
} | } | ||||
▲ Show 20 Lines • Show All 161 Lines • ▼ Show 20 Lines | |||||
module { | module { | ||||
// expected-error@+1 {{failed to construct function type: expected zero or one function result}} | // expected-error@+1 {{failed to construct function type: expected zero or one function result}} | ||||
llvm.func @foo() -> (i64, i64) | llvm.func @foo() -> (i64, i64) | ||||
} | } | ||||
// ----- | // ----- | ||||
module { | module { | ||||
// expected-error@+1 {{cannot attach result attributes to functions with a void return}} | |||||
llvm.func @variadic_def() -> (!llvm.void {llvm.noundef}) | |||||
} | |||||
// ----- | |||||
// expected-error @below{{expected llvm.align result attribute to be an integer attribute}} | |||||
llvm.func @alignattr_ret() -> (!llvm.ptr {llvm.align = 1.0 : f32}) | |||||
// ----- | |||||
// expected-error @below{{llvm.align attribute attached to non-pointer result}} | |||||
llvm.func @alignattr_ret() -> (i32 {llvm.align = 4}) | |||||
// ----- | |||||
// expected-error @below{{expected llvm.noalias result attribute to be a unit attribute}} | |||||
llvm.func @noaliasattr_ret() -> (!llvm.ptr {llvm.noalias = 1}) | |||||
// ----- | |||||
// expected-error @below{{llvm.noalias attribute attached to non-pointer result}} | |||||
llvm.func @noaliasattr_ret() -> (i32 {llvm.noalias}) | |||||
// ----- | |||||
// expected-error @below{{expected llvm.noundef result attribute to be a unit attribute}} | |||||
llvm.func @noundefattr_ret() -> (!llvm.ptr {llvm.noundef = 1}) | |||||
// ----- | |||||
// expected-error @below{{expected llvm.signext result attribute to be a unit attribute}} | |||||
llvm.func @signextattr_ret() -> (i32 {llvm.signext = 1}) | |||||
// ----- | |||||
// expected-error @below{{llvm.signext attribute attached to non-integer result}} | |||||
llvm.func @signextattr_ret() -> (f32 {llvm.signext}) | |||||
// ----- | |||||
// expected-error @below{{expected llvm.zeroext result attribute to be a unit attribute}} | |||||
llvm.func @zeroextattr_ret() -> (i32 {llvm.zeroext = 1}) | |||||
// ----- | |||||
// expected-error @below{{llvm.zeroext attribute attached to non-integer result}} | |||||
llvm.func @zeroextattr_ret() -> (f32 {llvm.zeroext}) | |||||
// ----- | |||||
module { | |||||
// expected-error@+1 {{variadic arguments must be in the end of the argument list}} | // expected-error@+1 {{variadic arguments must be in the end of the argument list}} | ||||
llvm.func @variadic_inside(%arg0: i32, ..., %arg1: i32) | llvm.func @variadic_inside(%arg0: i32, ..., %arg1: i32) | ||||
} | } | ||||
// ----- | // ----- | ||||
module { | module { | ||||
// expected-error@+1 {{external functions must have 'external' or 'extern_weak' linkage}} | // expected-error@+1 {{external functions must have 'external' or 'extern_weak' linkage}} | ||||
Show All 25 Lines |