brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · 0828b96 Raw
66 lines · plain
1! RUN: bbc %s -o - | FileCheck %s2 3! CHECK-LABEL: func @_QPformatassign4subroutine formatAssign(flag1, flag2, flag3)5    real :: pi6    integer :: label7    logical :: flag1, flag2, flag38 9    ! CHECK-DAG: %[[ONE:.*]] = arith.constant 100 : i3210    ! CHECK-DAG: %[[TWO:.*]] = arith.constant 200 : i3211    if (flag1) then12       assign 100 to label13    else14       assign 200 to label15    end if16 17    ! CHECK: cond_br %{{.*}}, ^bb[[BLK1:.*]], ^bb[[BLK2:.*]]18    ! CHECK: ^bb[[BLK1]]:19    ! CHECK: fir.store %[[ONE]]20    ! CHECK: br ^bb[[END_BLOCK:.*]]21    ! CHECK: ^bb[[BLK2]]:22    ! CHECK: fir.store %[[TWO]]23    ! CHECK: br ^bb[[END_BLOCK]]24    ! CHECK: ^bb[[END_BLOCK]]25    ! CHECK: fir.call @{{.*}}ReportFatalUserError26    ! CHECK: fir.unreachable27    ! CHECK: fir.call @{{.*}}BeginExternalFormattedOutput28    ! CHECK: fir.call @{{.*}}OutputAscii29    ! CHECK: fir.call @{{.*}}OutputReal3230    ! CHECK: fir.call @{{.*}}EndIoStatement31    pi = 3.14159265358932    write(*, label) " PI=", pi33    ! CHECK: fir.call @{{.*}}ReportFatalUserError34    ! CHECK: fir.unreachable35    ! CHECK: fir.call @{{.*}}BeginExternalFormattedOutput36    ! CHECK: fir.call @{{.*}}OutputAscii37    ! CHECK: fir.call @{{.*}}OutputReal3238    ! CHECK: fir.call @{{.*}}EndIoStatement39    if (flag2) write(*, label) "2PI=", 2*pi40    if (flag1 .and. flag2 .and. flag3) then41       assign 100 to label42    else43       assign 200 to label44    end if45    if (flag3) then46      ! CHECK: fir.call @{{.*}}ReportFatalUserError47      ! CHECK: fir.unreachable48      ! CHECK: fir.call @{{.*}}BeginExternalFormattedOutput49      ! CHECK: fir.call @{{.*}}OutputAscii50      ! CHECK: fir.call @{{.*}}OutputReal3251      ! CHECK: fir.call @{{.*}}EndIoStatement52      write(*, label) "3PI=", 3*pi53    endif54 55100 format (A, F10.3)56200 format (A,E8.1)57300 format (A, E4.2)58 59end subroutine60 61! CHECK-LABEL: func @_QQmain62  call formatAssign(.true., .true., .true.)63  print*64  call formatAssign(.true., .false., .true.)65end66