; RUN: mlir-translate -import-llvm -split-input-file %s | FileCheck %s @g = private global ptr blockaddress(@fn, %bb1) define void @fn() { br label %bb1 bb1: ret void } ; CHECK: llvm.mlir.global private @g() ; CHECK: %[[ADDR:.*]] = llvm.blockaddress > : !llvm.ptr ; CHECK: llvm.return %[[ADDR]] : !llvm.ptr ; CHECK: llvm.func @fn() { ; CHECK: llvm.br ^[[RET_BB:.*]] ; CHECK: ^[[RET_BB]]: ; CHECK: llvm.blocktag ; CHECK: llvm.return ; CHECK: } ; // ----- ; CHECK-LABEL: blockaddr0 define ptr @blockaddr0() { br label %bb1 ; CHECK: %[[BLOCKADDR:.*]] = llvm.blockaddress > : !llvm.ptr ; CHECK: llvm.br ^[[BB1:.*]] bb1: ; CHECK: ^[[BB1]]: ; CHECK: llvm.blocktag ; CHECK-NEXT: llvm.return %[[BLOCKADDR]] : !llvm.ptr ret ptr blockaddress(@blockaddr0, %bb1) }