brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · 8b19d98 Raw
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