brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · 7b5288f Raw
76 lines · plain
1! RUN: bbc -emit-fir -hlfir=false -o - %s | FileCheck %s2 3! CHECK-LABEL: func @_QPkagi4function kagi(index)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{{.*}} : i328  ! CHECK:   cf.cond_br %[[V_2]], ^bb2, ^bb19  ! CHECK: ^bb1:  // pred: ^bb010  ! CHECK:   %[[V_3:[0-9]+]] = arith.cmpi sgt, %[[V_1]], %c0{{.*}} : i3211  ! CHECK:   cf.cond_br %[[V_3]], ^bb4, ^bb312  ! CHECK: ^bb2:  // pred: ^bb013  ! CHECK:   fir.store %c1{{.*}} to %[[V_0]] : !fir.ref<i32>14  ! CHECK:   cf.br ^bb515  ! CHECK: ^bb3:  // pred: ^bb116  ! CHECK:   fir.store %c2{{.*}} to %[[V_0]] : !fir.ref<i32>17  ! CHECK:   cf.br ^bb518  ! CHECK: ^bb4:  // pred: ^bb119  ! CHECK:   fir.store %c3{{.*}} to %[[V_0]] : !fir.ref<i32>20  ! CHECK:   cf.br ^bb521  ! CHECK: ^bb5:  // 3 preds: ^bb2, ^bb3, ^bb422  ! CHECK:   %[[V_4:[0-9]+]] = fir.load %[[V_0]] : !fir.ref<i32>23  ! CHECK:   return %[[V_4]] : i3224  if (index) 7, 8, 925  kagi = 0; return267 kagi = 1; return278 kagi = 2; return289 kagi = 3; return29end30 31! CHECK-LABEL: func @_QPkagf32function kagf(findex)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]] {{.*}} : f3237  ! CHECK:   %[[V_4:[0-9]+]] = arith.addf %[[V_3]], %[[V_3]] {{.*}} : f3238  ! CHECK:   %cst = arith.constant 0.000000e+00 : f3239  ! CHECK:   %[[V_5:[0-9]+]] = arith.cmpf olt, %[[V_4]], %cst {{.*}} : f3240  ! CHECK:   cf.cond_br %[[V_5]], ^bb2, ^bb141  ! CHECK: ^bb1:  // pred: ^bb042  ! CHECK:   %[[V_6:[0-9]+]] = arith.cmpf ogt, %[[V_4]], %cst {{.*}} : f3243  ! CHECK:   cf.cond_br %[[V_6]], ^bb4, ^bb344  ! CHECK: ^bb2:  // pred: ^bb045  ! CHECK:   fir.store %c1{{.*}} to %[[V_0]] : !fir.ref<i32>46  ! CHECK:   cf.br ^bb547  ! CHECK: ^bb3:  // pred: ^bb148  ! CHECK:   fir.store %c2{{.*}} to %[[V_0]] : !fir.ref<i32>49  ! CHECK:   cf.br ^bb550  ! CHECK: ^bb4:  // pred: ^bb151  ! CHECK:   fir.store %c3{{.*}} to %[[V_0]] : !fir.ref<i32>52  ! CHECK:   cf.br ^bb553  ! CHECK: ^bb5:  // 3 preds: ^bb2, ^bb3, ^bb454  ! CHECK:   %[[V_7:[0-9]+]] = fir.load %[[V_0]] : !fir.ref<i32>55  ! CHECK:   return %[[V_7]] : i3256  if (findex+findex) 7, 8, 957  kagf = 0; return587 kagf = 1; return598 kagf = 2; return609 kagf = 3; return61end62 63! CHECK-LABEL: func @_QQmain64  do i = -2, 265    print*, kagi(i)66  enddo67 68  print*, kagf(-2.0)69  print*, kagf(-1.0)70  print*, kagf(-0.0)71  print*, kagf( 0.0)72  print*, kagf(+0.0)73  print*, kagf(+1.0)74  print*, kagf(+2.0)75end76