CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
208 lines
4.7 KiB
Plaintext
208 lines
4.7 KiB
Plaintext
// RUN: cir-opt %s --verify-roundtrip | FileCheck %s
|
|
|
|
!s32i = !cir.int<s, 32>
|
|
!s64i = !cir.int<s, 64>
|
|
!u32i = !cir.int<u, 32>
|
|
!u64i = !cir.int<u, 64>
|
|
|
|
module {
|
|
// void empty() { }
|
|
cir.func @empty() {
|
|
cir.return
|
|
}
|
|
// CHECK: cir.func{{.*}} @empty() {
|
|
// CHECK: cir.return
|
|
// CHECK: }
|
|
|
|
// void empty() { }
|
|
cir.func no_proto @noProto() {
|
|
cir.return
|
|
}
|
|
// CHECK: cir.func no_proto @noProto() {
|
|
// CHECK: cir.return
|
|
// CHECK: }
|
|
|
|
// void voidret() { return; }
|
|
cir.func @voidret() {
|
|
cir.return
|
|
}
|
|
// CHECK: cir.func{{.*}} @voidret() {
|
|
// CHECK: cir.return
|
|
// CHECK: }
|
|
|
|
// int intfunc() { return 42; }
|
|
cir.func @intfunc() -> !s32i {
|
|
%0 = cir.const #cir.int<42> : !s32i
|
|
cir.return %0 : !s32i
|
|
}
|
|
// CHECK: cir.func{{.*}} @intfunc() -> !s32i {
|
|
// CHECK: %[[VAL:.*]] = cir.const #cir.int<42> : !s32i
|
|
// CHECK: cir.return %[[VAL]] : !s32i
|
|
// CHECK: }
|
|
|
|
// Should print/parse function aliases.
|
|
cir.func @a_empty() alias(@empty)
|
|
// CHECK: cir.func @a_empty() alias(@empty)
|
|
|
|
// Should print/parse function personality.
|
|
cir.func @personality_func() personality(@__gxx_personality_v0) {
|
|
cir.return
|
|
}
|
|
// CHECK: cir.func @personality_func() personality(@__gxx_personality_v0) {
|
|
// CHECK: cir.return
|
|
// CHECK: }
|
|
|
|
// int scopes() {
|
|
// {
|
|
// {
|
|
// return 99;
|
|
// }
|
|
// }
|
|
//}
|
|
cir.func @scopes() -> !s32i {
|
|
cir.scope {
|
|
cir.scope {
|
|
%0 = cir.const #cir.int<99> : !s32i
|
|
cir.return %0 : !s32i
|
|
}
|
|
}
|
|
cir.trap
|
|
}
|
|
// CHECK: cir.func{{.*}} @scopes() -> !s32i {
|
|
// CHECK: cir.scope {
|
|
// CHECK: cir.scope {
|
|
// CHECK: %[[VAL:.*]] = cir.const #cir.int<99> : !s32i
|
|
// CHECK: cir.return %[[VAL]] : !s32i
|
|
// CHECK: }
|
|
// CHECK: }
|
|
// CHECK: cir.trap
|
|
// CHECK: }
|
|
|
|
// long longfunc() { return 42l; }
|
|
cir.func @longfunc() -> !s64i {
|
|
%0 = cir.const #cir.int<42> : !s64i
|
|
cir.return %0 : !s64i
|
|
}
|
|
// CHECK: cir.func{{.*}} @longfunc() -> !s64i
|
|
// CHECK: %0 = cir.const #cir.int<42> : !s64i
|
|
// CHECK: cir.return %0 : !s64i
|
|
// CHECK: }
|
|
|
|
// unsigned unsignedfunc() { return 42u; }
|
|
cir.func @unsignedfunc() -> !u32i {
|
|
%0 = cir.const #cir.int<42> : !u32i
|
|
cir.return %0 : !u32i
|
|
}
|
|
// CHECK: cir.func{{.*}} @unsignedfunc() -> !u32i
|
|
// CHECK: %[[VAL:.*]] = cir.const #cir.int<42> : !u32i
|
|
// CHECK: cir.return %[[VAL]] : !u32i
|
|
// CHECK: }
|
|
|
|
// unsigned long long ullfunc() { return 42ull; }
|
|
cir.func @ullfunc() -> !u64i {
|
|
%0 = cir.const #cir.int<42> : !u64i
|
|
cir.return %0 : !u64i
|
|
}
|
|
// CHECK: cir.func{{.*}} @ullfunc() -> !u64i
|
|
// CHECK: %[[VAL:.*]] = cir.const #cir.int<42> : !u64i
|
|
// CHECK: cir.return %[[VAL:.*]] : !u64i
|
|
// CHECK: }
|
|
|
|
cir.func coroutine @coro() {
|
|
cir.coro.body {
|
|
cir.await(init, ready : {
|
|
%0 = cir.alloca !cir.bool, !cir.ptr<!cir.bool>, [""] {alignment = 1 : i64}
|
|
%1 = cir.load align(1) %0 : !cir.ptr<!cir.bool>, !cir.bool
|
|
cir.condition(%1)
|
|
}, suspend : {
|
|
cir.yield
|
|
}, resume : {
|
|
cir.yield
|
|
},)
|
|
cir.yield
|
|
}
|
|
cir.return
|
|
}
|
|
// CHECK: cir.func{{.*}} coroutine @coro()
|
|
|
|
cir.func builtin @builtin() {
|
|
cir.return
|
|
}
|
|
// CHECK: cir.func{{.*}} builtin @builtin()
|
|
|
|
cir.func @global_ctor_func() global_ctor {
|
|
cir.return
|
|
}
|
|
|
|
// CHECK: cir.func @global_ctor_func() global_ctor {
|
|
// CHECK: cir.return
|
|
// CHECK: }
|
|
|
|
cir.func @global_ctor_with_priority() global_ctor(200) {
|
|
cir.return
|
|
}
|
|
|
|
// CHECK: cir.func @global_ctor_with_priority() global_ctor(200) {
|
|
// CHECK: cir.return
|
|
// CHECK: }
|
|
|
|
cir.func @global_dtor_func() global_dtor {
|
|
cir.return
|
|
}
|
|
|
|
// CHECK: cir.func @global_dtor_func() global_dtor {
|
|
// CHECK: cir.return
|
|
// CHECK: }
|
|
|
|
cir.func @global_dtor_with_priority() global_dtor(201) {
|
|
cir.return
|
|
}
|
|
|
|
// CHECK: cir.func @global_dtor_with_priority() global_dtor(201) {
|
|
// CHECK: cir.return
|
|
// CHECK: }
|
|
|
|
}
|
|
|
|
!rec_Foo = !cir.struct<"Foo" {!s32i}>
|
|
|
|
cir.func @Foo_default() special_member<#cir.cxx_ctor<!rec_Foo, default>> {
|
|
cir.return
|
|
}
|
|
|
|
// CHECK: cir.func @Foo_default() special_member<#cir.cxx_ctor<!rec_Foo, default>> {
|
|
// CHECK: cir.return
|
|
// CHECK: }
|
|
|
|
cir.func @Foo_trivial_copy() special_member<#cir.cxx_ctor<!rec_Foo, copy, trivial true>> {
|
|
cir.return
|
|
}
|
|
|
|
// CHECK: cir.func @Foo_trivial_copy() special_member<#cir.cxx_ctor<!rec_Foo, copy, trivial true>> {
|
|
// CHECK: cir.return
|
|
// CHECK: }
|
|
|
|
cir.func @Foo_destructor() special_member<#cir.cxx_dtor<!rec_Foo>> {
|
|
cir.return
|
|
}
|
|
|
|
// CHECK: cir.func @Foo_destructor() special_member<#cir.cxx_dtor<!rec_Foo>> {
|
|
// CHECK: cir.return
|
|
// CHECK: }
|
|
|
|
cir.func @Foo_move_assign() special_member<#cir.cxx_assign<!rec_Foo, move>> {
|
|
cir.return
|
|
}
|
|
|
|
// CHECK: cir.func @Foo_move_assign() special_member<#cir.cxx_assign<!rec_Foo, move>> {
|
|
// CHECK: cir.return
|
|
// CHECK: }
|
|
|
|
cir.func @has_attrs() attributes {foo, baz = 5, floof = "flop"} {
|
|
cir.return
|
|
}
|
|
|
|
// CHECK: cir.func @has_attrs() attributes {baz = 5 : i64{{.*}}, floof = "flop", foo} {
|
|
// CHECK: cir.return
|
|
// CHECK: }
|