2024-01-22 20:01:45 +00:00
|
|
|
// UNSUPPORTED: target=aarch64{{.*}}, target=arm64{{.*}}
|
2025-01-24 14:08:38 +01:00
|
|
|
// RUN: mlir-runner %s -e entry -entry-point-result=void \
|
2024-01-15 12:10:14 -05:00
|
|
|
// RUN: -shared-libs=%mlir_c_runner_utils | \
|
|
|
|
// RUN: FileCheck %s
|
|
|
|
|
|
|
|
// Test that the `ctor` executes before `entry` and that `dtor` executes last.
|
|
|
|
module {
|
|
|
|
llvm.func @printNewline()
|
|
|
|
llvm.func @printI64(i64)
|
2025-03-27 14:11:05 -07:00
|
|
|
llvm.mlir.global_ctors ctors = [@ctor], priorities = [0 : i32], data = [#llvm.zero]
|
|
|
|
llvm.mlir.global_dtors dtors = [@dtor], priorities = [0 : i32], data = [#llvm.zero]
|
2024-01-15 12:10:14 -05:00
|
|
|
llvm.func @ctor() {
|
|
|
|
%0 = llvm.mlir.constant(1 : i64) : i64
|
|
|
|
llvm.call @printI64(%0) : (i64) -> ()
|
|
|
|
llvm.call @printNewline() : () -> ()
|
|
|
|
// CHECK: 1
|
|
|
|
llvm.return
|
|
|
|
}
|
|
|
|
llvm.func @entry() {
|
|
|
|
%0 = llvm.mlir.constant(2 : i64) : i64
|
|
|
|
llvm.call @printI64(%0) : (i64) -> ()
|
|
|
|
llvm.call @printNewline() : () -> ()
|
|
|
|
// CHECK: 2
|
|
|
|
llvm.return
|
|
|
|
}
|
|
|
|
llvm.func @dtor() {
|
|
|
|
%0 = llvm.mlir.constant(3 : i64) : i64
|
|
|
|
llvm.call @printI64(%0) : (i64) -> ()
|
|
|
|
llvm.call @printNewline() : () -> ()
|
|
|
|
// CHECK: 3
|
|
|
|
llvm.return
|
|
|
|
}
|
|
|
|
}
|