49 lines · plain
1// RUN: mlir-opt %s -pass-pipeline='builtin.module(llvm.func(canonicalize{region-simplify=aggressive}))' -verify-diagnostics -split-input-file | FileCheck %s2 3llvm.mlir.global private @x() {addr_space = 0 : i32, dso_local} : !llvm.ptr {4 %0 = llvm.blockaddress <function = @ba, tag = <id = 2>> : !llvm.ptr5 llvm.return %0 : !llvm.ptr6}7 8// CHECK-LABEL: llvm.func @ba()9llvm.func @ba() -> !llvm.ptr {10 %0 = llvm.blockaddress <function = @ba, tag = <id = 1>> : !llvm.ptr11 llvm.br ^bb112^bb1:13 // CHECK: llvm.blocktag <id = 1>14 llvm.blocktag <id = 1>15 llvm.br ^bb216^bb2:17 // CHECK: llvm.blocktag <id = 2>18 llvm.blocktag <id = 2>19 llvm.return %0 : !llvm.ptr20}21 22// -----23 24 25llvm.mlir.global private @g() {addr_space = 0 : i32, dso_local} : !llvm.ptr {26 %0 = llvm.blockaddress <function = @fn, tag = <id = 0>> : !llvm.ptr27 llvm.return %0 : !llvm.ptr28}29 30llvm.mlir.global private @h() {addr_space = 0 : i32, dso_local} : !llvm.ptr {31 %0 = llvm.blockaddress <function = @fn, tag = <id = 1>> : !llvm.ptr32 llvm.return %0 : !llvm.ptr33}34 35// CHECK-LABEL: llvm.func @fn36llvm.func @fn(%cond : i1, %arg0 : i32, %arg1 : i32) -> i32 {37 llvm.cond_br %cond, ^bb1, ^bb238^bb1:39 // CHECK: llvm.blocktag <id = 0>40 // CHECK: llvm.return41 llvm.blocktag <id = 0>42 llvm.return %arg0 : i3243^bb2:44 // CHECK: llvm.blocktag <id = 1>45 // CHECK: llvm.return46 llvm.blocktag <id = 1>47 llvm.return %arg1 : i3248}49