brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 1e30ee8 Raw
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