brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 4473f91 Raw
66 lines · plain
1// RUN: mlir-translate -mlir-to-llvmir %s -split-input-file | FileCheck %s2 3llvm.mlir.global private @g() {addr_space = 0 : i32, dso_local} : !llvm.ptr {4  %0 = llvm.blockaddress <function = @fn, tag = <id = 0>> : !llvm.ptr5  llvm.return %0 : !llvm.ptr6}7 8llvm.func @fn() {9  llvm.br ^bb110^bb1:11  llvm.blocktag <id = 0>12  llvm.return13}14 15// CHECK: @g = private global ptr blockaddress(@fn, %1)16// CHECK: define void @fn() {17// CHECK:   br label %[[RET:.*]]18// CHECK: [[RET]]:19// CHECK:   ret void20// CHECK: }21 22// -----23 24llvm.func @blockaddr0() -> !llvm.ptr {25  %0 = llvm.blockaddress <function = @blockaddr0, tag = <id = 1>> : !llvm.ptr26  llvm.br ^bb127^bb1:28  llvm.blocktag <id = 1>29  llvm.return %0 : !llvm.ptr30}31 32// CHECK: define ptr @blockaddr0() {33// CHECK:   br label %[[RET:.*]]34// CHECK: [[RET]]:35// CHECK:   ret ptr blockaddress(@blockaddr0, %1)36// CHECK: }37 38// -----39 40llvm.mlir.global private @h() {addr_space = 0 : i32, dso_local} : !llvm.ptr {41  %0 = llvm.blockaddress <function = @h3, tag = <id = 0>> : !llvm.ptr42  llvm.return %0 : !llvm.ptr43}44 45// CHECK: @h = private global ptr blockaddress(@h3, %[[BB_ADDR:.*]])46 47// CHECK: define void @h3() {48// CHECK:   br label %[[BB_ADDR]]49 50// CHECK: [[BB_ADDR]]:51// CHECK:   ret void52// CHECK: }53 54// CHECK: define void @h0()55 56llvm.func @h3() {57  llvm.br ^bb158^bb1:59  llvm.blocktag <id = 0>60  llvm.return61}62 63llvm.func @h0() {64  llvm.return65}66