brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 241a2ea Raw
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