47 lines · plain
1// RUN: fir-opt --split-input-file --cfg-conversion %s | FileCheck %s2 3func.func private @callee() -> none4 5// CHECK-LABEL: func.func @if_then(6// CHECK-SAME: %[[ARG0:.*]]: i1) {7// CHECK: cf.cond_br %[[ARG0]] weights([10, 90]), ^bb1, ^bb28// CHECK: ^bb1:9// CHECK: %[[VAL_0:.*]] = fir.call @callee() : () -> none10// CHECK: cf.br ^bb211// CHECK: ^bb2:12// CHECK: return13// CHECK: }14func.func @if_then(%cond: i1) {15 fir.if %cond weights([10, 90]) {16 fir.call @callee() : () -> none17 }18 return19}20 21// -----22 23// CHECK-LABEL: func.func @if_then_else(24// CHECK-SAME: %[[ARG0:.*]]: i1) -> i32 {25// CHECK: %[[VAL_0:.*]] = arith.constant 0 : i3226// CHECK: %[[VAL_1:.*]] = arith.constant 1 : i3227// CHECK: cf.cond_br %[[ARG0]] weights([90, 10]), ^bb1, ^bb228// CHECK: ^bb1:29// CHECK: cf.br ^bb3(%[[VAL_0]] : i32)30// CHECK: ^bb2:31// CHECK: cf.br ^bb3(%[[VAL_1]] : i32)32// CHECK: ^bb3(%[[VAL_2:.*]]: i32):33// CHECK: cf.br ^bb434// CHECK: ^bb4:35// CHECK: return %[[VAL_2]] : i3236// CHECK: }37func.func @if_then_else(%cond: i1) -> i32 {38 %c0 = arith.constant 0 : i3239 %c1 = arith.constant 1 : i3240 %result = fir.if %cond weights([90, 10]) -> i32 {41 fir.result %c0 : i3242 } else {43 fir.result %c1 : i3244 }45 return %result : i3246}47