[Clang] Make OpenMP offloading consistently use the bound architecture (#125135)
[llvm-project.git] / flang / test / Lower / format-statement.f90
blob0828b965009ce17482bbfddb736722370e3165ac
1 ! RUN: bbc %s -o - | FileCheck %s
3 ! CHECK-LABEL: func @_QPformatassign
4 subroutine formatAssign(flag1, flag2, flag3)
5 real :: pi
6 integer :: label
7 logical :: flag1, flag2, flag3
9 ! CHECK-DAG: %[[ONE:.*]] = arith.constant 100 : i32
10 ! CHECK-DAG: %[[TWO:.*]] = arith.constant 200 : i32
11 if (flag1) then
12 assign 100 to label
13 else
14 assign 200 to label
15 end if
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 @{{.*}}ReportFatalUserError
26 ! CHECK: fir.unreachable
27 ! CHECK: fir.call @{{.*}}BeginExternalFormattedOutput
28 ! CHECK: fir.call @{{.*}}OutputAscii
29 ! CHECK: fir.call @{{.*}}OutputReal32
30 ! CHECK: fir.call @{{.*}}EndIoStatement
31 pi = 3.141592653589
32 write(*, label) " PI=", pi
33 ! CHECK: fir.call @{{.*}}ReportFatalUserError
34 ! CHECK: fir.unreachable
35 ! CHECK: fir.call @{{.*}}BeginExternalFormattedOutput
36 ! CHECK: fir.call @{{.*}}OutputAscii
37 ! CHECK: fir.call @{{.*}}OutputReal32
38 ! CHECK: fir.call @{{.*}}EndIoStatement
39 if (flag2) write(*, label) "2PI=", 2*pi
40 if (flag1 .and. flag2 .and. flag3) then
41 assign 100 to label
42 else
43 assign 200 to label
44 end if
45 if (flag3) then
46 ! CHECK: fir.call @{{.*}}ReportFatalUserError
47 ! CHECK: fir.unreachable
48 ! CHECK: fir.call @{{.*}}BeginExternalFormattedOutput
49 ! CHECK: fir.call @{{.*}}OutputAscii
50 ! CHECK: fir.call @{{.*}}OutputReal32
51 ! CHECK: fir.call @{{.*}}EndIoStatement
52 write(*, label) "3PI=", 3*pi
53 endif
55 100 format (A, F10.3)
56 200 format (A,E8.1)
57 300 format (A, E4.2)
59 end subroutine
61 ! CHECK-LABEL: func @_QQmain
62 call formatAssign(.true., .true., .true.)
63 print*
64 call formatAssign(.true., .false., .true.)
65 end