brintos

brintos / llvm-project-archived public Read only

0
0
Text · 929 B · 2d56491 Raw
34 lines · plain
1; RUN: mlir-translate -import-llvm -split-input-file %s | FileCheck %s2 3@g = private global ptr blockaddress(@fn, %bb1)4define void @fn() {5  br label %bb16bb1:7  ret void8}9 10; CHECK:  llvm.mlir.global private @g()11; CHECK:     %[[ADDR:.*]] = llvm.blockaddress <function = @fn, tag = <id = [[ID:.*]]>> : !llvm.ptr12; CHECK:     llvm.return %[[ADDR]] : !llvm.ptr13 14; CHECK:   llvm.func @fn() {15; CHECK:     llvm.br ^[[RET_BB:.*]]16; CHECK:   ^[[RET_BB]]:17; CHECK:     llvm.blocktag <id = [[ID]]>18; CHECK:     llvm.return19; CHECK:   }20 21; // -----22 23; CHECK-LABEL: blockaddr024define ptr @blockaddr0() {25  br label %bb126  ; CHECK: %[[BLOCKADDR:.*]] = llvm.blockaddress <function = @blockaddr0, tag = <id = [[BLOCK_ID:.*]]>> : !llvm.ptr27  ; CHECK: llvm.br ^[[BB1:.*]]28bb1:29  ; CHECK: ^[[BB1]]:30  ; CHECK: llvm.blocktag <id = [[BLOCK_ID]]>31  ; CHECK-NEXT: llvm.return %[[BLOCKADDR]] : !llvm.ptr32  ret ptr blockaddress(@blockaddr0, %bb1)33}34