[AMDGPU] Test codegen'ing True16 additions.
[llvm-project.git] / flang / test / Lower / OpenACC / acc-routine.f90
blobf9fc9b1a0b4b75ac000657870817c251b0ec7a38
1 ! This test checks lowering of OpenACC routine directive.
3 ! RUN: bbc -fopenacc -emit-fir %s -o - | FileCheck %s
4 ! RUN: bbc -fopenacc -emit-hlfir %s -o - | FileCheck %s
6 ! CHECK: acc.routine @acc_routine_9 func(@_QPacc_routine10) seq
7 ! CHECK: acc.routine @acc_routine_8 func(@_QPacc_routine9) bind("_QPacc_routine9a")
8 ! CHECK: acc.routine @acc_routine_7 func(@_QPacc_routine8) bind("routine8_")
9 ! CHECK: acc.routine @acc_routine_6 func(@_QPacc_routine7) gang(dim = 1 : i32)
10 ! CHECK: acc.routine @acc_routine_5 func(@_QPacc_routine6) nohost
11 ! CHECK: acc.routine @acc_routine_4 func(@_QPacc_routine5) worker
12 ! CHECK: acc.routine @acc_routine_3 func(@_QPacc_routine4) vector
13 ! CHECK: acc.routine @acc_routine_2 func(@_QPacc_routine3) gang
14 ! CHECK: acc.routine @acc_routine_1 func(@_QPacc_routine2) seq
15 ! CHECK: acc.routine @acc_routine_0 func(@_QPacc_routine1)
17 subroutine acc_routine1()
18 !$acc routine
19 end subroutine
21 ! CHECK-LABEL: func.func @_QPacc_routine1() attributes {acc.routine_info = #acc.routine_info<[@acc_routine_0]>}
23 subroutine acc_routine2()
24 !$acc routine seq
25 end subroutine
27 ! CHECK-LABEL: func.func @_QPacc_routine2() attributes {acc.routine_info = #acc.routine_info<[@acc_routine_1]>}
29 subroutine acc_routine3()
30 !$acc routine gang
31 end subroutine
33 ! CHECK-LABEL: func.func @_QPacc_routine3() attributes {acc.routine_info = #acc.routine_info<[@acc_routine_2]>}
35 subroutine acc_routine4()
36 !$acc routine vector
37 end subroutine
39 ! CHECK-LABEL: func.func @_QPacc_routine4() attributes {acc.routine_info = #acc.routine_info<[@acc_routine_3]>}
41 subroutine acc_routine5()
42 !$acc routine worker
43 end subroutine
45 ! CHECK-LABEL: func.func @_QPacc_routine5() attributes {acc.routine_info = #acc.routine_info<[@acc_routine_4]>}
47 subroutine acc_routine6()
48 !$acc routine nohost
49 end subroutine
51 ! CHECK-LABEL: func.func @_QPacc_routine6() attributes {acc.routine_info = #acc.routine_info<[@acc_routine_5]>}
53 subroutine acc_routine7()
54 !$acc routine gang(dim:1)
55 end subroutine
57 ! CHECK-LABEL: func.func @_QPacc_routine7() attributes {acc.routine_info = #acc.routine_info<[@acc_routine_6]>}
59 subroutine acc_routine8()
60 !$acc routine bind("routine8_")
61 end subroutine
63 ! CHECK-LABEL: func.func @_QPacc_routine8() attributes {acc.routine_info = #acc.routine_info<[@acc_routine_7]>}
65 subroutine acc_routine9a()
66 end subroutine
68 subroutine acc_routine9()
69 !$acc routine bind(acc_routine9a)
70 end subroutine
72 ! CHECK-LABEL: func.func @_QPacc_routine9() attributes {acc.routine_info = #acc.routine_info<[@acc_routine_8]>}
74 function acc_routine10()
75 !$acc routine(acc_routine10) seq
76 end function
78 ! CHECK-LABEL: func.func @_QPacc_routine10() -> f32 attributes {acc.routine_info = #acc.routine_info<[@acc_routine_9]>}