[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / gfx-call-non-gfx-func.ll
blob9ab8be0485eddbe1ce0bc0df6d77025c11878790
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=amdgcn--amdpal -mcpu=gfx900 -verify-machineinstrs < %s | FileCheck -check-prefix=SDAG -enable-var-scope %s
3 ; RUN: llc -global-isel -mtriple=amdgcn--amdpal -mcpu=gfx900 -verify-machineinstrs < %s | FileCheck -check-prefix=GISEL -enable-var-scope %s
5 declare void @extern_c_func()
7 define amdgpu_gfx void @gfx_func() {
8 ; SDAG-LABEL: gfx_func:
9 ; SDAG:       ; %bb.0:
10 ; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11 ; SDAG-NEXT:    s_mov_b32 s36, s33
12 ; SDAG-NEXT:    s_mov_b32 s33, s32
13 ; SDAG-NEXT:    s_or_saveexec_b64 s[34:35], -1
14 ; SDAG-NEXT:    buffer_store_dword v40, off, s[0:3], s33 ; 4-byte Folded Spill
15 ; SDAG-NEXT:    s_mov_b64 exec, s[34:35]
16 ; SDAG-NEXT:    v_writelane_b32 v40, s4, 0
17 ; SDAG-NEXT:    v_writelane_b32 v40, s5, 1
18 ; SDAG-NEXT:    v_writelane_b32 v40, s6, 2
19 ; SDAG-NEXT:    v_writelane_b32 v40, s7, 3
20 ; SDAG-NEXT:    v_writelane_b32 v40, s8, 4
21 ; SDAG-NEXT:    v_writelane_b32 v40, s9, 5
22 ; SDAG-NEXT:    v_writelane_b32 v40, s10, 6
23 ; SDAG-NEXT:    v_writelane_b32 v40, s11, 7
24 ; SDAG-NEXT:    v_writelane_b32 v40, s12, 8
25 ; SDAG-NEXT:    v_writelane_b32 v40, s13, 9
26 ; SDAG-NEXT:    v_writelane_b32 v40, s14, 10
27 ; SDAG-NEXT:    v_writelane_b32 v40, s15, 11
28 ; SDAG-NEXT:    v_writelane_b32 v40, s16, 12
29 ; SDAG-NEXT:    v_writelane_b32 v40, s17, 13
30 ; SDAG-NEXT:    v_writelane_b32 v40, s18, 14
31 ; SDAG-NEXT:    v_writelane_b32 v40, s19, 15
32 ; SDAG-NEXT:    v_writelane_b32 v40, s20, 16
33 ; SDAG-NEXT:    v_writelane_b32 v40, s21, 17
34 ; SDAG-NEXT:    v_writelane_b32 v40, s22, 18
35 ; SDAG-NEXT:    v_writelane_b32 v40, s23, 19
36 ; SDAG-NEXT:    v_writelane_b32 v40, s24, 20
37 ; SDAG-NEXT:    v_writelane_b32 v40, s25, 21
38 ; SDAG-NEXT:    v_writelane_b32 v40, s26, 22
39 ; SDAG-NEXT:    v_writelane_b32 v40, s27, 23
40 ; SDAG-NEXT:    v_writelane_b32 v40, s28, 24
41 ; SDAG-NEXT:    v_writelane_b32 v40, s29, 25
42 ; SDAG-NEXT:    v_writelane_b32 v40, s30, 26
43 ; SDAG-NEXT:    s_mov_b32 s35, extern_c_func@abs32@hi
44 ; SDAG-NEXT:    s_mov_b32 s34, extern_c_func@abs32@lo
45 ; SDAG-NEXT:    s_mov_b64 s[8:9], 0
46 ; SDAG-NEXT:    s_addk_i32 s32, 0x400
47 ; SDAG-NEXT:    v_writelane_b32 v40, s31, 27
48 ; SDAG-NEXT:    s_swappc_b64 s[30:31], s[34:35]
49 ; SDAG-NEXT:    v_readlane_b32 s31, v40, 27
50 ; SDAG-NEXT:    v_readlane_b32 s30, v40, 26
51 ; SDAG-NEXT:    v_readlane_b32 s29, v40, 25
52 ; SDAG-NEXT:    v_readlane_b32 s28, v40, 24
53 ; SDAG-NEXT:    v_readlane_b32 s27, v40, 23
54 ; SDAG-NEXT:    v_readlane_b32 s26, v40, 22
55 ; SDAG-NEXT:    v_readlane_b32 s25, v40, 21
56 ; SDAG-NEXT:    v_readlane_b32 s24, v40, 20
57 ; SDAG-NEXT:    v_readlane_b32 s23, v40, 19
58 ; SDAG-NEXT:    v_readlane_b32 s22, v40, 18
59 ; SDAG-NEXT:    v_readlane_b32 s21, v40, 17
60 ; SDAG-NEXT:    v_readlane_b32 s20, v40, 16
61 ; SDAG-NEXT:    v_readlane_b32 s19, v40, 15
62 ; SDAG-NEXT:    v_readlane_b32 s18, v40, 14
63 ; SDAG-NEXT:    v_readlane_b32 s17, v40, 13
64 ; SDAG-NEXT:    v_readlane_b32 s16, v40, 12
65 ; SDAG-NEXT:    v_readlane_b32 s15, v40, 11
66 ; SDAG-NEXT:    v_readlane_b32 s14, v40, 10
67 ; SDAG-NEXT:    v_readlane_b32 s13, v40, 9
68 ; SDAG-NEXT:    v_readlane_b32 s12, v40, 8
69 ; SDAG-NEXT:    v_readlane_b32 s11, v40, 7
70 ; SDAG-NEXT:    v_readlane_b32 s10, v40, 6
71 ; SDAG-NEXT:    v_readlane_b32 s9, v40, 5
72 ; SDAG-NEXT:    v_readlane_b32 s8, v40, 4
73 ; SDAG-NEXT:    v_readlane_b32 s7, v40, 3
74 ; SDAG-NEXT:    v_readlane_b32 s6, v40, 2
75 ; SDAG-NEXT:    v_readlane_b32 s5, v40, 1
76 ; SDAG-NEXT:    v_readlane_b32 s4, v40, 0
77 ; SDAG-NEXT:    s_or_saveexec_b64 s[34:35], -1
78 ; SDAG-NEXT:    buffer_load_dword v40, off, s[0:3], s33 ; 4-byte Folded Reload
79 ; SDAG-NEXT:    s_mov_b64 exec, s[34:35]
80 ; SDAG-NEXT:    s_addk_i32 s32, 0xfc00
81 ; SDAG-NEXT:    s_mov_b32 s33, s36
82 ; SDAG-NEXT:    s_waitcnt vmcnt(0)
83 ; SDAG-NEXT:    s_setpc_b64 s[30:31]
85 ; GISEL-LABEL: gfx_func:
86 ; GISEL:       ; %bb.0:
87 ; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
88 ; GISEL-NEXT:    s_mov_b32 s36, s33
89 ; GISEL-NEXT:    s_mov_b32 s33, s32
90 ; GISEL-NEXT:    s_or_saveexec_b64 s[34:35], -1
91 ; GISEL-NEXT:    buffer_store_dword v40, off, s[0:3], s33 ; 4-byte Folded Spill
92 ; GISEL-NEXT:    s_mov_b64 exec, s[34:35]
93 ; GISEL-NEXT:    v_writelane_b32 v40, s4, 0
94 ; GISEL-NEXT:    v_writelane_b32 v40, s5, 1
95 ; GISEL-NEXT:    v_writelane_b32 v40, s6, 2
96 ; GISEL-NEXT:    v_writelane_b32 v40, s7, 3
97 ; GISEL-NEXT:    v_writelane_b32 v40, s8, 4
98 ; GISEL-NEXT:    v_writelane_b32 v40, s9, 5
99 ; GISEL-NEXT:    v_writelane_b32 v40, s10, 6
100 ; GISEL-NEXT:    v_writelane_b32 v40, s11, 7
101 ; GISEL-NEXT:    v_writelane_b32 v40, s12, 8
102 ; GISEL-NEXT:    v_writelane_b32 v40, s13, 9
103 ; GISEL-NEXT:    v_writelane_b32 v40, s14, 10
104 ; GISEL-NEXT:    v_writelane_b32 v40, s15, 11
105 ; GISEL-NEXT:    v_writelane_b32 v40, s16, 12
106 ; GISEL-NEXT:    v_writelane_b32 v40, s17, 13
107 ; GISEL-NEXT:    v_writelane_b32 v40, s18, 14
108 ; GISEL-NEXT:    v_writelane_b32 v40, s19, 15
109 ; GISEL-NEXT:    v_writelane_b32 v40, s20, 16
110 ; GISEL-NEXT:    v_writelane_b32 v40, s21, 17
111 ; GISEL-NEXT:    v_writelane_b32 v40, s22, 18
112 ; GISEL-NEXT:    v_writelane_b32 v40, s23, 19
113 ; GISEL-NEXT:    v_writelane_b32 v40, s24, 20
114 ; GISEL-NEXT:    v_writelane_b32 v40, s25, 21
115 ; GISEL-NEXT:    v_writelane_b32 v40, s26, 22
116 ; GISEL-NEXT:    v_writelane_b32 v40, s27, 23
117 ; GISEL-NEXT:    v_writelane_b32 v40, s28, 24
118 ; GISEL-NEXT:    v_writelane_b32 v40, s29, 25
119 ; GISEL-NEXT:    v_writelane_b32 v40, s30, 26
120 ; GISEL-NEXT:    s_mov_b32 s34, extern_c_func@abs32@lo
121 ; GISEL-NEXT:    s_mov_b32 s35, extern_c_func@abs32@hi
122 ; GISEL-NEXT:    s_mov_b64 s[8:9], s[4:5]
123 ; GISEL-NEXT:    s_addk_i32 s32, 0x400
124 ; GISEL-NEXT:    v_writelane_b32 v40, s31, 27
125 ; GISEL-NEXT:    s_swappc_b64 s[30:31], s[34:35]
126 ; GISEL-NEXT:    v_readlane_b32 s31, v40, 27
127 ; GISEL-NEXT:    v_readlane_b32 s30, v40, 26
128 ; GISEL-NEXT:    v_readlane_b32 s29, v40, 25
129 ; GISEL-NEXT:    v_readlane_b32 s28, v40, 24
130 ; GISEL-NEXT:    v_readlane_b32 s27, v40, 23
131 ; GISEL-NEXT:    v_readlane_b32 s26, v40, 22
132 ; GISEL-NEXT:    v_readlane_b32 s25, v40, 21
133 ; GISEL-NEXT:    v_readlane_b32 s24, v40, 20
134 ; GISEL-NEXT:    v_readlane_b32 s23, v40, 19
135 ; GISEL-NEXT:    v_readlane_b32 s22, v40, 18
136 ; GISEL-NEXT:    v_readlane_b32 s21, v40, 17
137 ; GISEL-NEXT:    v_readlane_b32 s20, v40, 16
138 ; GISEL-NEXT:    v_readlane_b32 s19, v40, 15
139 ; GISEL-NEXT:    v_readlane_b32 s18, v40, 14
140 ; GISEL-NEXT:    v_readlane_b32 s17, v40, 13
141 ; GISEL-NEXT:    v_readlane_b32 s16, v40, 12
142 ; GISEL-NEXT:    v_readlane_b32 s15, v40, 11
143 ; GISEL-NEXT:    v_readlane_b32 s14, v40, 10
144 ; GISEL-NEXT:    v_readlane_b32 s13, v40, 9
145 ; GISEL-NEXT:    v_readlane_b32 s12, v40, 8
146 ; GISEL-NEXT:    v_readlane_b32 s11, v40, 7
147 ; GISEL-NEXT:    v_readlane_b32 s10, v40, 6
148 ; GISEL-NEXT:    v_readlane_b32 s9, v40, 5
149 ; GISEL-NEXT:    v_readlane_b32 s8, v40, 4
150 ; GISEL-NEXT:    v_readlane_b32 s7, v40, 3
151 ; GISEL-NEXT:    v_readlane_b32 s6, v40, 2
152 ; GISEL-NEXT:    v_readlane_b32 s5, v40, 1
153 ; GISEL-NEXT:    v_readlane_b32 s4, v40, 0
154 ; GISEL-NEXT:    s_or_saveexec_b64 s[34:35], -1
155 ; GISEL-NEXT:    buffer_load_dword v40, off, s[0:3], s33 ; 4-byte Folded Reload
156 ; GISEL-NEXT:    s_mov_b64 exec, s[34:35]
157 ; GISEL-NEXT:    s_addk_i32 s32, 0xfc00
158 ; GISEL-NEXT:    s_mov_b32 s33, s36
159 ; GISEL-NEXT:    s_waitcnt vmcnt(0)
160 ; GISEL-NEXT:    s_setpc_b64 s[30:31]
161   call void @extern_c_func()
162   ret void