34 lines · plain
1// UNSUPPORTED: target=aarch64{{.*}}, target=arm64{{.*}}2// RUN: mlir-runner %s -e entry -entry-point-result=void \3// RUN: -shared-libs=%mlir_c_runner_utils | \4// RUN: FileCheck %s5 6// Test that the `ctor` executes before `entry` and that `dtor` executes last.7module {8 llvm.func @printNewline()9 llvm.func @printI64(i64)10 llvm.mlir.global_ctors ctors = [@ctor], priorities = [0 : i32], data = [#llvm.zero]11 llvm.mlir.global_dtors dtors = [@dtor], priorities = [0 : i32], data = [#llvm.zero]12 llvm.func @ctor() {13 %0 = llvm.mlir.constant(1 : i64) : i6414 llvm.call @printI64(%0) : (i64) -> ()15 llvm.call @printNewline() : () -> ()16 // CHECK: 117 llvm.return18 }19 llvm.func @entry() {20 %0 = llvm.mlir.constant(2 : i64) : i6421 llvm.call @printI64(%0) : (i64) -> ()22 llvm.call @printNewline() : () -> ()23 // CHECK: 224 llvm.return25 }26 llvm.func @dtor() {27 %0 = llvm.mlir.constant(3 : i64) : i6428 llvm.call @printI64(%0) : (i64) -> ()29 llvm.call @printNewline() : () -> ()30 // CHECK: 331 llvm.return32 }33}34