1 ! RUN: bbc -emit-fir -o - %s | FileCheck %s
3 ! CHECK-LABEL: func @_QPkagi
5 ! CHECK: %[[V_0:[0-9]+]] = fir.alloca i32 {bindc_name = "kagi"
6 ! CHECK: %[[V_1:[0-9]+]] = fir.load %arg0 : !fir.ref<i32>
7 ! CHECK: %[[V_2:[0-9]+]] = arith.cmpi slt, %[[V_1]], %c0{{.*}} : i32
8 ! CHECK: cf.cond_br %[[V_2]], ^bb2, ^bb1
9 ! CHECK: ^bb1: // pred: ^bb0
10 ! CHECK: %[[V_3:[0-9]+]] = arith.cmpi sgt, %[[V_1]], %c0{{.*}} : i32
11 ! CHECK: cf.cond_br %[[V_3]], ^bb4, ^bb3
12 ! CHECK: ^bb2: // pred: ^bb0
13 ! CHECK: fir.store %c1{{.*}} to %[[V_0]] : !fir.ref<i32>
15 ! CHECK: ^bb3: // pred: ^bb1
16 ! CHECK: fir.store %c2{{.*}} to %[[V_0]] : !fir.ref<i32>
18 ! CHECK: ^bb4: // pred: ^bb1
19 ! CHECK: fir.store %c3{{.*}} to %[[V_0]] : !fir.ref<i32>
21 ! CHECK: ^bb5: // 3 preds: ^bb2, ^bb3, ^bb4
22 ! CHECK: %[[V_4:[0-9]+]] = fir.load %[[V_0]] : !fir.ref<i32>
23 ! CHECK: return %[[V_4]] : i32
31 ! CHECK-LABEL: func @_QPkagf
33 ! CHECK: %[[V_0:[0-9]+]] = fir.alloca i32 {bindc_name = "kagf"
34 ! CHECK: %[[V_1:[0-9]+]] = fir.load %arg0 : !fir.ref<f32>
35 ! CHECK: %[[V_2:[0-9]+]] = fir.load %arg0 : !fir.ref<f32>
36 ! CHECK: %[[V_3:[0-9]+]] = arith.addf %[[V_1]], %[[V_2]] {{.*}} : f32
37 ! CHECK: %[[V_4:[0-9]+]] = arith.addf %[[V_3]], %[[V_3]] {{.*}} : f32
38 ! CHECK: %cst = arith.constant 0.000000e+00 : f32
39 ! CHECK: %[[V_5:[0-9]+]] = arith.cmpf olt, %[[V_4]], %cst : f32
40 ! CHECK: cf.cond_br %[[V_5]], ^bb2, ^bb1
41 ! CHECK: ^bb1: // pred: ^bb0
42 ! CHECK: %[[V_6:[0-9]+]] = arith.cmpf ogt, %[[V_4]], %cst : f32
43 ! CHECK: cf.cond_br %[[V_6]], ^bb4, ^bb3
44 ! CHECK: ^bb2: // pred: ^bb0
45 ! CHECK: fir.store %c1{{.*}} to %[[V_0]] : !fir.ref<i32>
47 ! CHECK: ^bb3: // pred: ^bb1
48 ! CHECK: fir.store %c2{{.*}} to %[[V_0]] : !fir.ref<i32>
50 ! CHECK: ^bb4: // pred: ^bb1
51 ! CHECK: fir.store %c3{{.*}} to %[[V_0]] : !fir.ref<i32>
53 ! CHECK: ^bb5: // 3 preds: ^bb2, ^bb3, ^bb4
54 ! CHECK: %[[V_7:[0-9]+]] = fir.load %[[V_0]] : !fir.ref<i32>
55 ! CHECK: return %[[V_7]] : i32
56 if (findex
+findex
) 7, 8, 9
63 ! CHECK-LABEL: func @_QQmain