xref: /llvm-project/flang/test/Lower/if-loc.f90 (revision cda8270981b666c492933a9df1d984d0d0f8433f)
1*cda82709Svdonaldson! RUN: bbc -emit-hlfir -mlir-print-debuginfo -o - %s | FileCheck %s
2*cda82709Svdonaldson
3*cda82709Svdonaldson  integer :: n = 0, x = 1
4*cda82709Svdonaldson  if (x .ne. 1) goto 9
5*cda82709Svdonaldson  n = n + 1
6*cda82709Svdonaldson  if (x .gt. 1) goto 9
7*cda82709Svdonaldson  n = n + 1
8*cda82709Svdonaldson9 print *, 'n =', n
9*cda82709Svdonaldsonend
10*cda82709Svdonaldson
11*cda82709Svdonaldson! CHECK-LABEL: c.func @_QQmain
12*cda82709Svdonaldson  ! CHECK:  %[[V_0:[0-9]+]] = fir.address_of(@_QFEn) : !fir.ref<i32> loc("{{.*}}if-loc.f90":3:
13*cda82709Svdonaldson  ! CHECK:  %[[V_1:[0-9]+]]:2 = hlfir.declare %[[V_0]] {uniq_name = "_QFEn"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) loc("{{.*}}if-loc.f90":3:
14*cda82709Svdonaldson  ! CHECK:  %[[V_2:[0-9]+]] = fir.address_of(@_QFEx) : !fir.ref<i32> loc("{{.*}}if-loc.f90":3:
15*cda82709Svdonaldson  ! CHECK:  %[[V_3:[0-9]+]]:2 = hlfir.declare %[[V_2]] {uniq_name = "_QFEx"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) loc("{{.*}}if-loc.f90":3:
16*cda82709Svdonaldson  ! CHECK:  %[[V_4:[0-9]+]] = fir.load %[[V_3]]#0 : !fir.ref<i32> loc("{{.*}}if-loc.f90":4:
17*cda82709Svdonaldson  ! CHECK:  %[[V_5:[0-9]+]] = arith.cmpi ne, %[[V_4]], %c1{{.*}} : i32 loc("{{.*}}if-loc.f90":4:
18*cda82709Svdonaldson  ! CHECK:  %[[V_6:[0-9]+]] = arith.xori %[[V_5]], %true{{[_0-9]*}} : i1 loc("{{.*}}if-loc.f90":4:
19*cda82709Svdonaldson  ! CHECK:  fir.if %[[V_6]] {
20*cda82709Svdonaldson  ! CHECK:    %[[V_18:[0-9]+]] = fir.load %[[V_1]]#0 : !fir.ref<i32> loc("{{.*}}if-loc.f90":5:
21*cda82709Svdonaldson  ! CHECK:    %[[V_19:[0-9]+]] = arith.addi %[[V_18]], %c1{{.*}} : i32 loc("{{.*}}if-loc.f90":5:
22*cda82709Svdonaldson  ! CHECK:    hlfir.assign %[[V_19]] to %[[V_1]]#0 : i32, !fir.ref<i32> loc("{{.*}}if-loc.f90":5:
23*cda82709Svdonaldson  ! CHECK:    %[[V_20:[0-9]+]] = fir.load %[[V_3]]#0 : !fir.ref<i32> loc("{{.*}}if-loc.f90":6:
24*cda82709Svdonaldson  ! CHECK:    %[[V_21:[0-9]+]] = arith.cmpi sgt, %[[V_20]], %c1{{.*}} : i32 loc("{{.*}}if-loc.f90":6:
25*cda82709Svdonaldson  ! CHECK:    %[[V_22:[0-9]+]] = arith.xori %[[V_21]], %true{{[_0-9]*}} : i1 loc("{{.*}}if-loc.f90":6:
26*cda82709Svdonaldson  ! CHECK:    fir.if %[[V_22]] {
27*cda82709Svdonaldson  ! CHECK:      %[[V_23:[0-9]+]] = fir.load %[[V_1]]#0 : !fir.ref<i32> loc("{{.*}}if-loc.f90":7:
28*cda82709Svdonaldson  ! CHECK:      %[[V_24:[0-9]+]] = arith.addi %[[V_23]], %c1{{.*}} : i32 loc("{{.*}}if-loc.f90":7:
29*cda82709Svdonaldson  ! CHECK:      hlfir.assign %[[V_24]] to %[[V_1]]#0 : i32, !fir.ref<i32> loc("{{.*}}if-loc.f90":7:
30*cda82709Svdonaldson  ! CHECK:    }
31*cda82709Svdonaldson  ! CHECK:  }
32*cda82709Svdonaldson  ! CHECK:  %[[V_9:[0-9]+]] = fir.call @_FortranAioBeginExternalListOutput{{.*}} loc("{{.*}}if-loc.f90":8:
33*cda82709Svdonaldson  ! CHECK:  return loc("{{.*}}if-loc.f90":9:
34*cda82709Svdonaldson  ! CHECK:}
35