[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / tuple-allocation-failure.ll
blob05de0bc5f282aded6ca9d4a5ca2876dc1ad1ab58
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -greedy-regclass-priority-trumps-globalness=1 -o - %s | FileCheck -check-prefixes=GFX90A,GLOBALNESS1 %s
3 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -greedy-regclass-priority-trumps-globalness=0 -o - %s | FileCheck -check-prefixes=GFX90A,GLOBALNESS0 %s
5 declare void @wobble()
7 define internal fastcc void @widget() {
8 ; GFX90A-LABEL: widget:
9 ; GFX90A:       ; %bb.0: ; %bb
10 ; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11 ; GFX90A-NEXT:    s_mov_b32 s16, s33
12 ; GFX90A-NEXT:    s_mov_b32 s33, s32
13 ; GFX90A-NEXT:    s_or_saveexec_b64 s[18:19], -1
14 ; GFX90A-NEXT:    buffer_store_dword v40, off, s[0:3], s33 ; 4-byte Folded Spill
15 ; GFX90A-NEXT:    s_mov_b64 exec, s[18:19]
16 ; GFX90A-NEXT:    s_addk_i32 s32, 0x400
17 ; GFX90A-NEXT:    v_writelane_b32 v40, s16, 2
18 ; GFX90A-NEXT:    s_getpc_b64 s[16:17]
19 ; GFX90A-NEXT:    s_add_u32 s16, s16, wobble@gotpcrel32@lo+4
20 ; GFX90A-NEXT:    s_addc_u32 s17, s17, wobble@gotpcrel32@hi+12
21 ; GFX90A-NEXT:    s_load_dwordx2 s[16:17], s[16:17], 0x0
22 ; GFX90A-NEXT:    v_writelane_b32 v40, s30, 0
23 ; GFX90A-NEXT:    v_writelane_b32 v40, s31, 1
24 ; GFX90A-NEXT:    s_waitcnt lgkmcnt(0)
25 ; GFX90A-NEXT:    s_swappc_b64 s[30:31], s[16:17]
26 bb:
27   tail call void @wobble()
28   unreachable
31 define amdgpu_kernel void @kernel(ptr addrspace(1) %arg1.global, i1 %tmp3.i.i, i32 %tmp5.i.i, i32 %tmp427.i, i1 %tmp438.i, double %tmp27.i, i1 %tmp48.i) {
32 ; GLOBALNESS1-LABEL: kernel:
33 ; GLOBALNESS1:       ; %bb.0: ; %bb
34 ; GLOBALNESS1-NEXT:    s_mov_b64 s[36:37], s[6:7]
35 ; GLOBALNESS1-NEXT:    s_load_dwordx4 s[76:79], s[8:9], 0x0
36 ; GLOBALNESS1-NEXT:    s_load_dword s6, s[8:9], 0x14
37 ; GLOBALNESS1-NEXT:    v_mov_b32_e32 v41, v0
38 ; GLOBALNESS1-NEXT:    v_mov_b32_e32 v42, 0
39 ; GLOBALNESS1-NEXT:    v_pk_mov_b32 v[0:1], 0, 0
40 ; GLOBALNESS1-NEXT:    global_store_dword v[0:1], v42, off
41 ; GLOBALNESS1-NEXT:    s_waitcnt lgkmcnt(0)
42 ; GLOBALNESS1-NEXT:    global_load_dword v2, v42, s[76:77]
43 ; GLOBALNESS1-NEXT:    s_mov_b64 s[40:41], s[4:5]
44 ; GLOBALNESS1-NEXT:    s_load_dwordx2 s[4:5], s[8:9], 0x18
45 ; GLOBALNESS1-NEXT:    s_load_dword s7, s[8:9], 0x20
46 ; GLOBALNESS1-NEXT:    s_add_u32 flat_scratch_lo, s12, s17
47 ; GLOBALNESS1-NEXT:    s_addc_u32 flat_scratch_hi, s13, 0
48 ; GLOBALNESS1-NEXT:    s_add_u32 s0, s0, s17
49 ; GLOBALNESS1-NEXT:    v_mov_b32_e32 v0, 0
50 ; GLOBALNESS1-NEXT:    s_addc_u32 s1, s1, 0
51 ; GLOBALNESS1-NEXT:    v_mov_b32_e32 v1, 0x40994400
52 ; GLOBALNESS1-NEXT:    s_bitcmp1_b32 s78, 0
53 ; GLOBALNESS1-NEXT:    s_waitcnt lgkmcnt(0)
54 ; GLOBALNESS1-NEXT:    v_cmp_ngt_f64_e32 vcc, s[4:5], v[0:1]
55 ; GLOBALNESS1-NEXT:    v_cmp_ngt_f64_e64 s[4:5], s[4:5], 0
56 ; GLOBALNESS1-NEXT:    v_cndmask_b32_e64 v1, 0, 1, s[4:5]
57 ; GLOBALNESS1-NEXT:    s_cselect_b64 s[4:5], -1, 0
58 ; GLOBALNESS1-NEXT:    v_cndmask_b32_e64 v3, 0, 1, s[4:5]
59 ; GLOBALNESS1-NEXT:    s_xor_b64 s[4:5], s[4:5], -1
60 ; GLOBALNESS1-NEXT:    v_cndmask_b32_e64 v0, 0, 1, vcc
61 ; GLOBALNESS1-NEXT:    s_bitcmp1_b32 s6, 0
62 ; GLOBALNESS1-NEXT:    v_cmp_ne_u32_e64 s[42:43], 1, v0
63 ; GLOBALNESS1-NEXT:    v_cndmask_b32_e64 v0, 0, 1, s[4:5]
64 ; GLOBALNESS1-NEXT:    s_cselect_b64 s[4:5], -1, 0
65 ; GLOBALNESS1-NEXT:    s_xor_b64 s[4:5], s[4:5], -1
66 ; GLOBALNESS1-NEXT:    s_bitcmp1_b32 s7, 0
67 ; GLOBALNESS1-NEXT:    v_cmp_ne_u32_e64 s[48:49], 1, v0
68 ; GLOBALNESS1-NEXT:    v_cndmask_b32_e64 v0, 0, 1, s[4:5]
69 ; GLOBALNESS1-NEXT:    s_cselect_b64 s[4:5], -1, 0
70 ; GLOBALNESS1-NEXT:    s_getpc_b64 s[6:7]
71 ; GLOBALNESS1-NEXT:    s_add_u32 s6, s6, wobble@gotpcrel32@lo+4
72 ; GLOBALNESS1-NEXT:    s_addc_u32 s7, s7, wobble@gotpcrel32@hi+12
73 ; GLOBALNESS1-NEXT:    s_xor_b64 s[4:5], s[4:5], -1
74 ; GLOBALNESS1-NEXT:    v_cmp_ne_u32_e64 s[50:51], 1, v0
75 ; GLOBALNESS1-NEXT:    v_cndmask_b32_e64 v0, 0, 1, s[4:5]
76 ; GLOBALNESS1-NEXT:    s_load_dwordx2 s[74:75], s[6:7], 0x0
77 ; GLOBALNESS1-NEXT:    v_cmp_ne_u32_e64 s[52:53], 1, v0
78 ; GLOBALNESS1-NEXT:    v_cmp_ne_u32_e64 s[44:45], 1, v1
79 ; GLOBALNESS1-NEXT:    v_cmp_ne_u32_e64 s[46:47], 1, v3
80 ; GLOBALNESS1-NEXT:    s_mov_b32 s70, s16
81 ; GLOBALNESS1-NEXT:    s_mov_b64 s[38:39], s[8:9]
82 ; GLOBALNESS1-NEXT:    s_mov_b32 s71, s15
83 ; GLOBALNESS1-NEXT:    s_mov_b32 s72, s14
84 ; GLOBALNESS1-NEXT:    s_mov_b64 s[34:35], s[10:11]
85 ; GLOBALNESS1-NEXT:    s_mov_b32 s32, 0
86 ; GLOBALNESS1-NEXT:    ; implicit-def: $vgpr44_vgpr45
87 ; GLOBALNESS1-NEXT:    s_waitcnt vmcnt(0)
88 ; GLOBALNESS1-NEXT:    v_cmp_gt_i32_e32 vcc, 0, v2
89 ; GLOBALNESS1-NEXT:    v_cndmask_b32_e64 v0, 0, 1, vcc
90 ; GLOBALNESS1-NEXT:    v_cmp_gt_i32_e32 vcc, 1, v2
91 ; GLOBALNESS1-NEXT:    v_cndmask_b32_e64 v1, 0, 1, vcc
92 ; GLOBALNESS1-NEXT:    v_cmp_eq_u32_e32 vcc, 1, v2
93 ; GLOBALNESS1-NEXT:    v_cndmask_b32_e64 v3, 0, 1, vcc
94 ; GLOBALNESS1-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v2
95 ; GLOBALNESS1-NEXT:    v_cndmask_b32_e64 v2, 0, 1, vcc
96 ; GLOBALNESS1-NEXT:    v_cmp_ne_u32_e64 s[54:55], 1, v0
97 ; GLOBALNESS1-NEXT:    v_cmp_ne_u32_e64 s[56:57], 1, v1
98 ; GLOBALNESS1-NEXT:    v_cmp_ne_u32_e64 s[58:59], 1, v3
99 ; GLOBALNESS1-NEXT:    v_cmp_ne_u32_e64 s[60:61], 1, v2
100 ; GLOBALNESS1-NEXT:    s_branch .LBB1_4
101 ; GLOBALNESS1-NEXT:  .LBB1_1: ; %bb70.i
102 ; GLOBALNESS1-NEXT:    ; in Loop: Header=BB1_4 Depth=1
103 ; GLOBALNESS1-NEXT:    s_and_b64 vcc, exec, s[60:61]
104 ; GLOBALNESS1-NEXT:    s_cbranch_vccz .LBB1_29
105 ; GLOBALNESS1-NEXT:  .LBB1_2: ; %Flow15
106 ; GLOBALNESS1-NEXT:    ; in Loop: Header=BB1_4 Depth=1
107 ; GLOBALNESS1-NEXT:    s_or_b64 exec, exec, s[4:5]
108 ; GLOBALNESS1-NEXT:    s_mov_b64 s[6:7], 0
109 ; GLOBALNESS1-NEXT:    ; implicit-def: $sgpr4_sgpr5
110 ; GLOBALNESS1-NEXT:  .LBB1_3: ; %Flow28
111 ; GLOBALNESS1-NEXT:    ; in Loop: Header=BB1_4 Depth=1
112 ; GLOBALNESS1-NEXT:    s_and_b64 vcc, exec, s[6:7]
113 ; GLOBALNESS1-NEXT:    v_pk_mov_b32 v[44:45], v[0:1], v[0:1] op_sel:[0,1]
114 ; GLOBALNESS1-NEXT:    s_cbranch_vccnz .LBB1_30
115 ; GLOBALNESS1-NEXT:  .LBB1_4: ; %bb5
116 ; GLOBALNESS1-NEXT:    ; =>This Loop Header: Depth=1
117 ; GLOBALNESS1-NEXT:    ; Child Loop BB1_16 Depth 2
118 ; GLOBALNESS1-NEXT:    v_mov_b32_e32 v0, 0x80
119 ; GLOBALNESS1-NEXT:    v_mov_b32_e32 v1, 0
120 ; GLOBALNESS1-NEXT:    flat_load_dword v40, v[0:1]
121 ; GLOBALNESS1-NEXT:    s_add_u32 s8, s38, 40
122 ; GLOBALNESS1-NEXT:    buffer_store_dword v42, off, s[0:3], 0
123 ; GLOBALNESS1-NEXT:    flat_load_dword v46, v[0:1]
124 ; GLOBALNESS1-NEXT:    s_addc_u32 s9, s39, 0
125 ; GLOBALNESS1-NEXT:    s_mov_b64 s[4:5], s[40:41]
126 ; GLOBALNESS1-NEXT:    s_mov_b64 s[6:7], s[36:37]
127 ; GLOBALNESS1-NEXT:    s_mov_b64 s[10:11], s[34:35]
128 ; GLOBALNESS1-NEXT:    s_mov_b32 s12, s72
129 ; GLOBALNESS1-NEXT:    s_mov_b32 s13, s71
130 ; GLOBALNESS1-NEXT:    s_mov_b32 s14, s70
131 ; GLOBALNESS1-NEXT:    v_mov_b32_e32 v31, v41
132 ; GLOBALNESS1-NEXT:    s_waitcnt lgkmcnt(0)
133 ; GLOBALNESS1-NEXT:    s_swappc_b64 s[30:31], s[74:75]
134 ; GLOBALNESS1-NEXT:    s_and_b64 vcc, exec, s[46:47]
135 ; GLOBALNESS1-NEXT:    s_mov_b64 s[6:7], -1
136 ; GLOBALNESS1-NEXT:    ; implicit-def: $sgpr4_sgpr5
137 ; GLOBALNESS1-NEXT:    s_cbranch_vccnz .LBB1_9
138 ; GLOBALNESS1-NEXT:  ; %bb.5: ; %NodeBlock
139 ; GLOBALNESS1-NEXT:    ; in Loop: Header=BB1_4 Depth=1
140 ; GLOBALNESS1-NEXT:    s_cmp_lt_i32 s79, 1
141 ; GLOBALNESS1-NEXT:    s_cbranch_scc1 .LBB1_7
142 ; GLOBALNESS1-NEXT:  ; %bb.6: ; %LeafBlock12
143 ; GLOBALNESS1-NEXT:    ; in Loop: Header=BB1_4 Depth=1
144 ; GLOBALNESS1-NEXT:    s_cmp_lg_u32 s79, 1
145 ; GLOBALNESS1-NEXT:    s_mov_b64 s[4:5], -1
146 ; GLOBALNESS1-NEXT:    s_cselect_b64 s[6:7], -1, 0
147 ; GLOBALNESS1-NEXT:    s_cbranch_execz .LBB1_8
148 ; GLOBALNESS1-NEXT:    s_branch .LBB1_9
149 ; GLOBALNESS1-NEXT:  .LBB1_7: ; in Loop: Header=BB1_4 Depth=1
150 ; GLOBALNESS1-NEXT:    s_mov_b64 s[6:7], 0
151 ; GLOBALNESS1-NEXT:    ; implicit-def: $sgpr4_sgpr5
152 ; GLOBALNESS1-NEXT:  .LBB1_8: ; %LeafBlock
153 ; GLOBALNESS1-NEXT:    ; in Loop: Header=BB1_4 Depth=1
154 ; GLOBALNESS1-NEXT:    s_cmp_lg_u32 s79, 0
155 ; GLOBALNESS1-NEXT:    s_mov_b64 s[4:5], 0
156 ; GLOBALNESS1-NEXT:    s_cselect_b64 s[6:7], -1, 0
157 ; GLOBALNESS1-NEXT:  .LBB1_9: ; %Flow25
158 ; GLOBALNESS1-NEXT:    ; in Loop: Header=BB1_4 Depth=1
159 ; GLOBALNESS1-NEXT:    s_and_b64 vcc, exec, s[6:7]
160 ; GLOBALNESS1-NEXT:    s_cbranch_vccz .LBB1_24
161 ; GLOBALNESS1-NEXT:  ; %bb.10: ; %baz.exit.i
162 ; GLOBALNESS1-NEXT:    ; in Loop: Header=BB1_4 Depth=1
163 ; GLOBALNESS1-NEXT:    v_pk_mov_b32 v[2:3], 0, 0
164 ; GLOBALNESS1-NEXT:    flat_load_dword v0, v[2:3]
165 ; GLOBALNESS1-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)
166 ; GLOBALNESS1-NEXT:    v_cmp_gt_i32_e64 s[62:63], 0, v0
167 ; GLOBALNESS1-NEXT:    v_mov_b32_e32 v0, 0
168 ; GLOBALNESS1-NEXT:    v_mov_b32_e32 v1, 0x3ff00000
169 ; GLOBALNESS1-NEXT:    s_and_saveexec_b64 s[76:77], s[62:63]
170 ; GLOBALNESS1-NEXT:    s_cbranch_execz .LBB1_26
171 ; GLOBALNESS1-NEXT:  ; %bb.11: ; %bb33.i
172 ; GLOBALNESS1-NEXT:    ; in Loop: Header=BB1_4 Depth=1
173 ; GLOBALNESS1-NEXT:    global_load_dwordx2 v[0:1], v[2:3], off
174 ; GLOBALNESS1-NEXT:    s_and_b64 vcc, exec, s[54:55]
175 ; GLOBALNESS1-NEXT:    s_cbranch_vccnz .LBB1_13
176 ; GLOBALNESS1-NEXT:  ; %bb.12: ; %bb39.i
177 ; GLOBALNESS1-NEXT:    ; in Loop: Header=BB1_4 Depth=1
178 ; GLOBALNESS1-NEXT:    v_mov_b32_e32 v43, v42
179 ; GLOBALNESS1-NEXT:    v_pk_mov_b32 v[2:3], 0, 0
180 ; GLOBALNESS1-NEXT:    global_store_dwordx2 v[2:3], v[42:43], off
181 ; GLOBALNESS1-NEXT:  .LBB1_13: ; %bb44.lr.ph.i
182 ; GLOBALNESS1-NEXT:    ; in Loop: Header=BB1_4 Depth=1
183 ; GLOBALNESS1-NEXT:    v_cmp_ne_u32_e32 vcc, 0, v46
184 ; GLOBALNESS1-NEXT:    v_cndmask_b32_e32 v2, 0, v40, vcc
185 ; GLOBALNESS1-NEXT:    s_waitcnt vmcnt(0)
186 ; GLOBALNESS1-NEXT:    v_cmp_nlt_f64_e32 vcc, 0, v[0:1]
187 ; GLOBALNESS1-NEXT:    v_cndmask_b32_e64 v0, 0, 1, vcc
188 ; GLOBALNESS1-NEXT:    v_cmp_eq_u32_e64 s[64:65], 0, v2
189 ; GLOBALNESS1-NEXT:    v_cmp_ne_u32_e64 s[66:67], 1, v0
190 ; GLOBALNESS1-NEXT:    s_branch .LBB1_16
191 ; GLOBALNESS1-NEXT:  .LBB1_14: ; %Flow16
192 ; GLOBALNESS1-NEXT:    ; in Loop: Header=BB1_16 Depth=2
193 ; GLOBALNESS1-NEXT:    s_or_b64 exec, exec, s[4:5]
194 ; GLOBALNESS1-NEXT:  .LBB1_15: ; %bb63.i
195 ; GLOBALNESS1-NEXT:    ; in Loop: Header=BB1_16 Depth=2
196 ; GLOBALNESS1-NEXT:    s_and_b64 vcc, exec, s[52:53]
197 ; GLOBALNESS1-NEXT:    s_cbranch_vccz .LBB1_25
198 ; GLOBALNESS1-NEXT:  .LBB1_16: ; %bb44.i
199 ; GLOBALNESS1-NEXT:    ; Parent Loop BB1_4 Depth=1
200 ; GLOBALNESS1-NEXT:    ; => This Inner Loop Header: Depth=2
201 ; GLOBALNESS1-NEXT:    s_and_b64 vcc, exec, s[48:49]
202 ; GLOBALNESS1-NEXT:    s_cbranch_vccnz .LBB1_15
203 ; GLOBALNESS1-NEXT:  ; %bb.17: ; %bb46.i
204 ; GLOBALNESS1-NEXT:    ; in Loop: Header=BB1_16 Depth=2
205 ; GLOBALNESS1-NEXT:    s_and_b64 vcc, exec, s[50:51]
206 ; GLOBALNESS1-NEXT:    s_cbranch_vccnz .LBB1_15
207 ; GLOBALNESS1-NEXT:  ; %bb.18: ; %bb50.i
208 ; GLOBALNESS1-NEXT:    ; in Loop: Header=BB1_16 Depth=2
209 ; GLOBALNESS1-NEXT:    s_and_b64 vcc, exec, s[42:43]
210 ; GLOBALNESS1-NEXT:    s_cbranch_vccnz .LBB1_21
211 ; GLOBALNESS1-NEXT:  ; %bb.19: ; %bb3.i.i
212 ; GLOBALNESS1-NEXT:    ; in Loop: Header=BB1_16 Depth=2
213 ; GLOBALNESS1-NEXT:    s_and_b64 vcc, exec, s[44:45]
214 ; GLOBALNESS1-NEXT:    s_cbranch_vccnz .LBB1_21
215 ; GLOBALNESS1-NEXT:  ; %bb.20: ; %bb6.i.i
216 ; GLOBALNESS1-NEXT:    ; in Loop: Header=BB1_16 Depth=2
217 ; GLOBALNESS1-NEXT:    s_and_b64 vcc, exec, s[66:67]
218 ; GLOBALNESS1-NEXT:  .LBB1_21: ; %spam.exit.i
219 ; GLOBALNESS1-NEXT:    ; in Loop: Header=BB1_16 Depth=2
220 ; GLOBALNESS1-NEXT:    s_and_b64 vcc, exec, s[56:57]
221 ; GLOBALNESS1-NEXT:    s_cbranch_vccnz .LBB1_15
222 ; GLOBALNESS1-NEXT:  ; %bb.22: ; %bb55.i
223 ; GLOBALNESS1-NEXT:    ; in Loop: Header=BB1_16 Depth=2
224 ; GLOBALNESS1-NEXT:    s_add_u32 s68, s38, 40
225 ; GLOBALNESS1-NEXT:    s_addc_u32 s69, s39, 0
226 ; GLOBALNESS1-NEXT:    s_mov_b64 s[4:5], s[40:41]
227 ; GLOBALNESS1-NEXT:    s_mov_b64 s[6:7], s[36:37]
228 ; GLOBALNESS1-NEXT:    s_mov_b64 s[8:9], s[68:69]
229 ; GLOBALNESS1-NEXT:    s_mov_b64 s[10:11], s[34:35]
230 ; GLOBALNESS1-NEXT:    s_mov_b32 s12, s72
231 ; GLOBALNESS1-NEXT:    s_mov_b32 s13, s71
232 ; GLOBALNESS1-NEXT:    s_mov_b32 s14, s70
233 ; GLOBALNESS1-NEXT:    v_mov_b32_e32 v31, v41
234 ; GLOBALNESS1-NEXT:    s_swappc_b64 s[30:31], s[74:75]
235 ; GLOBALNESS1-NEXT:    v_pk_mov_b32 v[46:47], 0, 0
236 ; GLOBALNESS1-NEXT:    s_mov_b64 s[4:5], s[40:41]
237 ; GLOBALNESS1-NEXT:    s_mov_b64 s[6:7], s[36:37]
238 ; GLOBALNESS1-NEXT:    s_mov_b64 s[8:9], s[68:69]
239 ; GLOBALNESS1-NEXT:    s_mov_b64 s[10:11], s[34:35]
240 ; GLOBALNESS1-NEXT:    s_mov_b32 s12, s72
241 ; GLOBALNESS1-NEXT:    s_mov_b32 s13, s71
242 ; GLOBALNESS1-NEXT:    s_mov_b32 s14, s70
243 ; GLOBALNESS1-NEXT:    v_mov_b32_e32 v31, v41
244 ; GLOBALNESS1-NEXT:    global_store_dwordx2 v[46:47], v[44:45], off
245 ; GLOBALNESS1-NEXT:    s_swappc_b64 s[30:31], s[74:75]
246 ; GLOBALNESS1-NEXT:    s_and_saveexec_b64 s[4:5], s[64:65]
247 ; GLOBALNESS1-NEXT:    s_cbranch_execz .LBB1_14
248 ; GLOBALNESS1-NEXT:  ; %bb.23: ; %bb62.i
249 ; GLOBALNESS1-NEXT:    ; in Loop: Header=BB1_16 Depth=2
250 ; GLOBALNESS1-NEXT:    v_mov_b32_e32 v43, v42
251 ; GLOBALNESS1-NEXT:    global_store_dwordx2 v[46:47], v[42:43], off
252 ; GLOBALNESS1-NEXT:    s_branch .LBB1_14
253 ; GLOBALNESS1-NEXT:  .LBB1_24: ; in Loop: Header=BB1_4 Depth=1
254 ; GLOBALNESS1-NEXT:    s_mov_b64 s[6:7], -1
255 ; GLOBALNESS1-NEXT:    ; implicit-def: $vgpr0_vgpr1
256 ; GLOBALNESS1-NEXT:    s_branch .LBB1_3
257 ; GLOBALNESS1-NEXT:  .LBB1_25: ; %Flow23
258 ; GLOBALNESS1-NEXT:    ; in Loop: Header=BB1_4 Depth=1
259 ; GLOBALNESS1-NEXT:    v_pk_mov_b32 v[0:1], 0, 0
260 ; GLOBALNESS1-NEXT:  .LBB1_26: ; %Flow24
261 ; GLOBALNESS1-NEXT:    ; in Loop: Header=BB1_4 Depth=1
262 ; GLOBALNESS1-NEXT:    s_or_b64 exec, exec, s[76:77]
263 ; GLOBALNESS1-NEXT:    s_and_saveexec_b64 s[4:5], s[62:63]
264 ; GLOBALNESS1-NEXT:    s_cbranch_execz .LBB1_2
265 ; GLOBALNESS1-NEXT:  ; %bb.27: ; %bb67.i
266 ; GLOBALNESS1-NEXT:    ; in Loop: Header=BB1_4 Depth=1
267 ; GLOBALNESS1-NEXT:    s_and_b64 vcc, exec, s[58:59]
268 ; GLOBALNESS1-NEXT:    s_cbranch_vccnz .LBB1_1
269 ; GLOBALNESS1-NEXT:  ; %bb.28: ; %bb69.i
270 ; GLOBALNESS1-NEXT:    ; in Loop: Header=BB1_4 Depth=1
271 ; GLOBALNESS1-NEXT:    v_mov_b32_e32 v43, v42
272 ; GLOBALNESS1-NEXT:    v_pk_mov_b32 v[2:3], 0, 0
273 ; GLOBALNESS1-NEXT:    global_store_dwordx2 v[2:3], v[42:43], off
274 ; GLOBALNESS1-NEXT:    s_branch .LBB1_1
275 ; GLOBALNESS1-NEXT:  .LBB1_29: ; %bb73.i
276 ; GLOBALNESS1-NEXT:    ; in Loop: Header=BB1_4 Depth=1
277 ; GLOBALNESS1-NEXT:    v_mov_b32_e32 v43, v42
278 ; GLOBALNESS1-NEXT:    v_pk_mov_b32 v[2:3], 0, 0
279 ; GLOBALNESS1-NEXT:    global_store_dwordx2 v[2:3], v[42:43], off
280 ; GLOBALNESS1-NEXT:    s_branch .LBB1_2
281 ; GLOBALNESS1-NEXT:  .LBB1_30: ; %loop.exit.guard
282 ; GLOBALNESS1-NEXT:    s_andn2_b64 vcc, exec, s[4:5]
283 ; GLOBALNESS1-NEXT:    s_mov_b64 s[4:5], -1
284 ; GLOBALNESS1-NEXT:    s_cbranch_vccz .LBB1_32
285 ; GLOBALNESS1-NEXT:  ; %bb.31: ; %bb7.i.i
286 ; GLOBALNESS1-NEXT:    s_add_u32 s8, s38, 40
287 ; GLOBALNESS1-NEXT:    s_addc_u32 s9, s39, 0
288 ; GLOBALNESS1-NEXT:    s_mov_b64 s[4:5], s[40:41]
289 ; GLOBALNESS1-NEXT:    s_mov_b64 s[6:7], s[36:37]
290 ; GLOBALNESS1-NEXT:    s_mov_b64 s[10:11], s[34:35]
291 ; GLOBALNESS1-NEXT:    s_mov_b32 s12, s72
292 ; GLOBALNESS1-NEXT:    s_mov_b32 s13, s71
293 ; GLOBALNESS1-NEXT:    s_mov_b32 s14, s70
294 ; GLOBALNESS1-NEXT:    v_mov_b32_e32 v31, v41
295 ; GLOBALNESS1-NEXT:    s_getpc_b64 s[16:17]
296 ; GLOBALNESS1-NEXT:    s_add_u32 s16, s16, widget@rel32@lo+4
297 ; GLOBALNESS1-NEXT:    s_addc_u32 s17, s17, widget@rel32@hi+12
298 ; GLOBALNESS1-NEXT:    s_swappc_b64 s[30:31], s[16:17]
299 ; GLOBALNESS1-NEXT:    s_mov_b64 s[4:5], 0
300 ; GLOBALNESS1-NEXT:  .LBB1_32: ; %Flow
301 ; GLOBALNESS1-NEXT:    s_andn2_b64 vcc, exec, s[4:5]
302 ; GLOBALNESS1-NEXT:    s_cbranch_vccnz .LBB1_34
303 ; GLOBALNESS1-NEXT:  ; %bb.33: ; %bb11.i.i
304 ; GLOBALNESS1-NEXT:    s_add_u32 s8, s38, 40
305 ; GLOBALNESS1-NEXT:    s_addc_u32 s9, s39, 0
306 ; GLOBALNESS1-NEXT:    s_mov_b64 s[4:5], s[40:41]
307 ; GLOBALNESS1-NEXT:    s_mov_b64 s[6:7], s[36:37]
308 ; GLOBALNESS1-NEXT:    s_mov_b64 s[10:11], s[34:35]
309 ; GLOBALNESS1-NEXT:    s_mov_b32 s12, s72
310 ; GLOBALNESS1-NEXT:    s_mov_b32 s13, s71
311 ; GLOBALNESS1-NEXT:    s_mov_b32 s14, s70
312 ; GLOBALNESS1-NEXT:    v_mov_b32_e32 v31, v41
313 ; GLOBALNESS1-NEXT:    s_getpc_b64 s[16:17]
314 ; GLOBALNESS1-NEXT:    s_add_u32 s16, s16, widget@rel32@lo+4
315 ; GLOBALNESS1-NEXT:    s_addc_u32 s17, s17, widget@rel32@hi+12
316 ; GLOBALNESS1-NEXT:    s_swappc_b64 s[30:31], s[16:17]
317 ; GLOBALNESS1-NEXT:  .LBB1_34: ; %UnifiedUnreachableBlock
319 ; GLOBALNESS0-LABEL: kernel:
320 ; GLOBALNESS0:       ; %bb.0: ; %bb
321 ; GLOBALNESS0-NEXT:    s_mov_b64 s[36:37], s[6:7]
322 ; GLOBALNESS0-NEXT:    s_load_dwordx4 s[72:75], s[8:9], 0x0
323 ; GLOBALNESS0-NEXT:    s_load_dword s6, s[8:9], 0x14
324 ; GLOBALNESS0-NEXT:    v_mov_b32_e32 v41, v0
325 ; GLOBALNESS0-NEXT:    v_mov_b32_e32 v42, 0
326 ; GLOBALNESS0-NEXT:    v_pk_mov_b32 v[0:1], 0, 0
327 ; GLOBALNESS0-NEXT:    global_store_dword v[0:1], v42, off
328 ; GLOBALNESS0-NEXT:    s_waitcnt lgkmcnt(0)
329 ; GLOBALNESS0-NEXT:    global_load_dword v2, v42, s[72:73]
330 ; GLOBALNESS0-NEXT:    s_mov_b64 s[40:41], s[4:5]
331 ; GLOBALNESS0-NEXT:    s_load_dwordx2 s[4:5], s[8:9], 0x18
332 ; GLOBALNESS0-NEXT:    s_load_dword s7, s[8:9], 0x20
333 ; GLOBALNESS0-NEXT:    s_add_u32 flat_scratch_lo, s12, s17
334 ; GLOBALNESS0-NEXT:    s_addc_u32 flat_scratch_hi, s13, 0
335 ; GLOBALNESS0-NEXT:    s_add_u32 s0, s0, s17
336 ; GLOBALNESS0-NEXT:    v_mov_b32_e32 v0, 0
337 ; GLOBALNESS0-NEXT:    s_addc_u32 s1, s1, 0
338 ; GLOBALNESS0-NEXT:    v_mov_b32_e32 v1, 0x40994400
339 ; GLOBALNESS0-NEXT:    s_bitcmp1_b32 s74, 0
340 ; GLOBALNESS0-NEXT:    s_waitcnt lgkmcnt(0)
341 ; GLOBALNESS0-NEXT:    v_cmp_ngt_f64_e32 vcc, s[4:5], v[0:1]
342 ; GLOBALNESS0-NEXT:    v_cmp_ngt_f64_e64 s[4:5], s[4:5], 0
343 ; GLOBALNESS0-NEXT:    v_cndmask_b32_e64 v1, 0, 1, s[4:5]
344 ; GLOBALNESS0-NEXT:    s_cselect_b64 s[4:5], -1, 0
345 ; GLOBALNESS0-NEXT:    v_cndmask_b32_e64 v3, 0, 1, s[4:5]
346 ; GLOBALNESS0-NEXT:    s_xor_b64 s[4:5], s[4:5], -1
347 ; GLOBALNESS0-NEXT:    v_cndmask_b32_e64 v0, 0, 1, vcc
348 ; GLOBALNESS0-NEXT:    s_bitcmp1_b32 s6, 0
349 ; GLOBALNESS0-NEXT:    v_cmp_ne_u32_e64 s[42:43], 1, v0
350 ; GLOBALNESS0-NEXT:    v_cndmask_b32_e64 v0, 0, 1, s[4:5]
351 ; GLOBALNESS0-NEXT:    s_cselect_b64 s[4:5], -1, 0
352 ; GLOBALNESS0-NEXT:    s_xor_b64 s[4:5], s[4:5], -1
353 ; GLOBALNESS0-NEXT:    s_bitcmp1_b32 s7, 0
354 ; GLOBALNESS0-NEXT:    v_cmp_ne_u32_e64 s[48:49], 1, v0
355 ; GLOBALNESS0-NEXT:    v_cndmask_b32_e64 v0, 0, 1, s[4:5]
356 ; GLOBALNESS0-NEXT:    s_cselect_b64 s[4:5], -1, 0
357 ; GLOBALNESS0-NEXT:    s_getpc_b64 s[6:7]
358 ; GLOBALNESS0-NEXT:    s_add_u32 s6, s6, wobble@gotpcrel32@lo+4
359 ; GLOBALNESS0-NEXT:    s_addc_u32 s7, s7, wobble@gotpcrel32@hi+12
360 ; GLOBALNESS0-NEXT:    s_xor_b64 s[4:5], s[4:5], -1
361 ; GLOBALNESS0-NEXT:    v_cmp_ne_u32_e64 s[50:51], 1, v0
362 ; GLOBALNESS0-NEXT:    v_cndmask_b32_e64 v0, 0, 1, s[4:5]
363 ; GLOBALNESS0-NEXT:    s_load_dwordx2 s[76:77], s[6:7], 0x0
364 ; GLOBALNESS0-NEXT:    v_cmp_ne_u32_e64 s[52:53], 1, v0
365 ; GLOBALNESS0-NEXT:    v_cmp_ne_u32_e64 s[44:45], 1, v1
366 ; GLOBALNESS0-NEXT:    v_cmp_ne_u32_e64 s[46:47], 1, v3
367 ; GLOBALNESS0-NEXT:    s_mov_b32 s68, s16
368 ; GLOBALNESS0-NEXT:    s_mov_b64 s[38:39], s[8:9]
369 ; GLOBALNESS0-NEXT:    s_mov_b32 s69, s15
370 ; GLOBALNESS0-NEXT:    s_mov_b32 s70, s14
371 ; GLOBALNESS0-NEXT:    s_mov_b64 s[34:35], s[10:11]
372 ; GLOBALNESS0-NEXT:    s_mov_b32 s32, 0
373 ; GLOBALNESS0-NEXT:    ; implicit-def: $vgpr44_vgpr45
374 ; GLOBALNESS0-NEXT:    s_waitcnt vmcnt(0)
375 ; GLOBALNESS0-NEXT:    v_cmp_gt_i32_e32 vcc, 0, v2
376 ; GLOBALNESS0-NEXT:    v_cndmask_b32_e64 v0, 0, 1, vcc
377 ; GLOBALNESS0-NEXT:    v_cmp_gt_i32_e32 vcc, 1, v2
378 ; GLOBALNESS0-NEXT:    v_cndmask_b32_e64 v1, 0, 1, vcc
379 ; GLOBALNESS0-NEXT:    v_cmp_eq_u32_e32 vcc, 1, v2
380 ; GLOBALNESS0-NEXT:    v_cndmask_b32_e64 v3, 0, 1, vcc
381 ; GLOBALNESS0-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v2
382 ; GLOBALNESS0-NEXT:    v_cndmask_b32_e64 v2, 0, 1, vcc
383 ; GLOBALNESS0-NEXT:    v_cmp_ne_u32_e64 s[54:55], 1, v0
384 ; GLOBALNESS0-NEXT:    v_cmp_ne_u32_e64 s[56:57], 1, v1
385 ; GLOBALNESS0-NEXT:    v_cmp_ne_u32_e64 s[58:59], 1, v3
386 ; GLOBALNESS0-NEXT:    v_cmp_ne_u32_e64 s[60:61], 1, v2
387 ; GLOBALNESS0-NEXT:    s_branch .LBB1_4
388 ; GLOBALNESS0-NEXT:  .LBB1_1: ; %bb70.i
389 ; GLOBALNESS0-NEXT:    ; in Loop: Header=BB1_4 Depth=1
390 ; GLOBALNESS0-NEXT:    s_and_b64 vcc, exec, s[60:61]
391 ; GLOBALNESS0-NEXT:    s_cbranch_vccz .LBB1_29
392 ; GLOBALNESS0-NEXT:  .LBB1_2: ; %Flow15
393 ; GLOBALNESS0-NEXT:    ; in Loop: Header=BB1_4 Depth=1
394 ; GLOBALNESS0-NEXT:    s_or_b64 exec, exec, s[4:5]
395 ; GLOBALNESS0-NEXT:    s_mov_b64 s[6:7], 0
396 ; GLOBALNESS0-NEXT:    ; implicit-def: $sgpr4_sgpr5
397 ; GLOBALNESS0-NEXT:  .LBB1_3: ; %Flow28
398 ; GLOBALNESS0-NEXT:    ; in Loop: Header=BB1_4 Depth=1
399 ; GLOBALNESS0-NEXT:    s_and_b64 vcc, exec, s[6:7]
400 ; GLOBALNESS0-NEXT:    v_pk_mov_b32 v[44:45], v[0:1], v[0:1] op_sel:[0,1]
401 ; GLOBALNESS0-NEXT:    s_cbranch_vccnz .LBB1_30
402 ; GLOBALNESS0-NEXT:  .LBB1_4: ; %bb5
403 ; GLOBALNESS0-NEXT:    ; =>This Loop Header: Depth=1
404 ; GLOBALNESS0-NEXT:    ; Child Loop BB1_16 Depth 2
405 ; GLOBALNESS0-NEXT:    v_mov_b32_e32 v0, 0x80
406 ; GLOBALNESS0-NEXT:    v_mov_b32_e32 v1, 0
407 ; GLOBALNESS0-NEXT:    flat_load_dword v40, v[0:1]
408 ; GLOBALNESS0-NEXT:    s_add_u32 s8, s38, 40
409 ; GLOBALNESS0-NEXT:    buffer_store_dword v42, off, s[0:3], 0
410 ; GLOBALNESS0-NEXT:    flat_load_dword v46, v[0:1]
411 ; GLOBALNESS0-NEXT:    s_addc_u32 s9, s39, 0
412 ; GLOBALNESS0-NEXT:    s_mov_b64 s[4:5], s[40:41]
413 ; GLOBALNESS0-NEXT:    s_mov_b64 s[6:7], s[36:37]
414 ; GLOBALNESS0-NEXT:    s_mov_b64 s[10:11], s[34:35]
415 ; GLOBALNESS0-NEXT:    s_mov_b32 s12, s70
416 ; GLOBALNESS0-NEXT:    s_mov_b32 s13, s69
417 ; GLOBALNESS0-NEXT:    s_mov_b32 s14, s68
418 ; GLOBALNESS0-NEXT:    v_mov_b32_e32 v31, v41
419 ; GLOBALNESS0-NEXT:    s_waitcnt lgkmcnt(0)
420 ; GLOBALNESS0-NEXT:    s_swappc_b64 s[30:31], s[76:77]
421 ; GLOBALNESS0-NEXT:    s_and_b64 vcc, exec, s[46:47]
422 ; GLOBALNESS0-NEXT:    s_mov_b64 s[6:7], -1
423 ; GLOBALNESS0-NEXT:    ; implicit-def: $sgpr4_sgpr5
424 ; GLOBALNESS0-NEXT:    s_cbranch_vccnz .LBB1_9
425 ; GLOBALNESS0-NEXT:  ; %bb.5: ; %NodeBlock
426 ; GLOBALNESS0-NEXT:    ; in Loop: Header=BB1_4 Depth=1
427 ; GLOBALNESS0-NEXT:    s_cmp_lt_i32 s75, 1
428 ; GLOBALNESS0-NEXT:    s_cbranch_scc1 .LBB1_7
429 ; GLOBALNESS0-NEXT:  ; %bb.6: ; %LeafBlock12
430 ; GLOBALNESS0-NEXT:    ; in Loop: Header=BB1_4 Depth=1
431 ; GLOBALNESS0-NEXT:    s_cmp_lg_u32 s75, 1
432 ; GLOBALNESS0-NEXT:    s_mov_b64 s[4:5], -1
433 ; GLOBALNESS0-NEXT:    s_cselect_b64 s[6:7], -1, 0
434 ; GLOBALNESS0-NEXT:    s_cbranch_execz .LBB1_8
435 ; GLOBALNESS0-NEXT:    s_branch .LBB1_9
436 ; GLOBALNESS0-NEXT:  .LBB1_7: ; in Loop: Header=BB1_4 Depth=1
437 ; GLOBALNESS0-NEXT:    s_mov_b64 s[6:7], 0
438 ; GLOBALNESS0-NEXT:    ; implicit-def: $sgpr4_sgpr5
439 ; GLOBALNESS0-NEXT:  .LBB1_8: ; %LeafBlock
440 ; GLOBALNESS0-NEXT:    ; in Loop: Header=BB1_4 Depth=1
441 ; GLOBALNESS0-NEXT:    s_cmp_lg_u32 s75, 0
442 ; GLOBALNESS0-NEXT:    s_mov_b64 s[4:5], 0
443 ; GLOBALNESS0-NEXT:    s_cselect_b64 s[6:7], -1, 0
444 ; GLOBALNESS0-NEXT:  .LBB1_9: ; %Flow25
445 ; GLOBALNESS0-NEXT:    ; in Loop: Header=BB1_4 Depth=1
446 ; GLOBALNESS0-NEXT:    s_and_b64 vcc, exec, s[6:7]
447 ; GLOBALNESS0-NEXT:    s_cbranch_vccz .LBB1_24
448 ; GLOBALNESS0-NEXT:  ; %bb.10: ; %baz.exit.i
449 ; GLOBALNESS0-NEXT:    ; in Loop: Header=BB1_4 Depth=1
450 ; GLOBALNESS0-NEXT:    v_pk_mov_b32 v[2:3], 0, 0
451 ; GLOBALNESS0-NEXT:    flat_load_dword v0, v[2:3]
452 ; GLOBALNESS0-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)
453 ; GLOBALNESS0-NEXT:    v_cmp_gt_i32_e64 s[62:63], 0, v0
454 ; GLOBALNESS0-NEXT:    v_mov_b32_e32 v0, 0
455 ; GLOBALNESS0-NEXT:    v_mov_b32_e32 v1, 0x3ff00000
456 ; GLOBALNESS0-NEXT:    s_and_saveexec_b64 s[78:79], s[62:63]
457 ; GLOBALNESS0-NEXT:    s_cbranch_execz .LBB1_26
458 ; GLOBALNESS0-NEXT:  ; %bb.11: ; %bb33.i
459 ; GLOBALNESS0-NEXT:    ; in Loop: Header=BB1_4 Depth=1
460 ; GLOBALNESS0-NEXT:    global_load_dwordx2 v[0:1], v[2:3], off
461 ; GLOBALNESS0-NEXT:    s_and_b64 vcc, exec, s[54:55]
462 ; GLOBALNESS0-NEXT:    s_cbranch_vccnz .LBB1_13
463 ; GLOBALNESS0-NEXT:  ; %bb.12: ; %bb39.i
464 ; GLOBALNESS0-NEXT:    ; in Loop: Header=BB1_4 Depth=1
465 ; GLOBALNESS0-NEXT:    v_mov_b32_e32 v43, v42
466 ; GLOBALNESS0-NEXT:    v_pk_mov_b32 v[2:3], 0, 0
467 ; GLOBALNESS0-NEXT:    global_store_dwordx2 v[2:3], v[42:43], off
468 ; GLOBALNESS0-NEXT:  .LBB1_13: ; %bb44.lr.ph.i
469 ; GLOBALNESS0-NEXT:    ; in Loop: Header=BB1_4 Depth=1
470 ; GLOBALNESS0-NEXT:    v_cmp_ne_u32_e32 vcc, 0, v46
471 ; GLOBALNESS0-NEXT:    v_cndmask_b32_e32 v2, 0, v40, vcc
472 ; GLOBALNESS0-NEXT:    s_waitcnt vmcnt(0)
473 ; GLOBALNESS0-NEXT:    v_cmp_nlt_f64_e32 vcc, 0, v[0:1]
474 ; GLOBALNESS0-NEXT:    v_cndmask_b32_e64 v0, 0, 1, vcc
475 ; GLOBALNESS0-NEXT:    v_cmp_eq_u32_e64 s[64:65], 0, v2
476 ; GLOBALNESS0-NEXT:    v_cmp_ne_u32_e64 s[66:67], 1, v0
477 ; GLOBALNESS0-NEXT:    s_branch .LBB1_16
478 ; GLOBALNESS0-NEXT:  .LBB1_14: ; %Flow16
479 ; GLOBALNESS0-NEXT:    ; in Loop: Header=BB1_16 Depth=2
480 ; GLOBALNESS0-NEXT:    s_or_b64 exec, exec, s[4:5]
481 ; GLOBALNESS0-NEXT:  .LBB1_15: ; %bb63.i
482 ; GLOBALNESS0-NEXT:    ; in Loop: Header=BB1_16 Depth=2
483 ; GLOBALNESS0-NEXT:    s_and_b64 vcc, exec, s[52:53]
484 ; GLOBALNESS0-NEXT:    s_cbranch_vccz .LBB1_25
485 ; GLOBALNESS0-NEXT:  .LBB1_16: ; %bb44.i
486 ; GLOBALNESS0-NEXT:    ; Parent Loop BB1_4 Depth=1
487 ; GLOBALNESS0-NEXT:    ; => This Inner Loop Header: Depth=2
488 ; GLOBALNESS0-NEXT:    s_and_b64 vcc, exec, s[48:49]
489 ; GLOBALNESS0-NEXT:    s_cbranch_vccnz .LBB1_15
490 ; GLOBALNESS0-NEXT:  ; %bb.17: ; %bb46.i
491 ; GLOBALNESS0-NEXT:    ; in Loop: Header=BB1_16 Depth=2
492 ; GLOBALNESS0-NEXT:    s_and_b64 vcc, exec, s[50:51]
493 ; GLOBALNESS0-NEXT:    s_cbranch_vccnz .LBB1_15
494 ; GLOBALNESS0-NEXT:  ; %bb.18: ; %bb50.i
495 ; GLOBALNESS0-NEXT:    ; in Loop: Header=BB1_16 Depth=2
496 ; GLOBALNESS0-NEXT:    s_and_b64 vcc, exec, s[42:43]
497 ; GLOBALNESS0-NEXT:    s_cbranch_vccnz .LBB1_21
498 ; GLOBALNESS0-NEXT:  ; %bb.19: ; %bb3.i.i
499 ; GLOBALNESS0-NEXT:    ; in Loop: Header=BB1_16 Depth=2
500 ; GLOBALNESS0-NEXT:    s_and_b64 vcc, exec, s[44:45]
501 ; GLOBALNESS0-NEXT:    s_cbranch_vccnz .LBB1_21
502 ; GLOBALNESS0-NEXT:  ; %bb.20: ; %bb6.i.i
503 ; GLOBALNESS0-NEXT:    ; in Loop: Header=BB1_16 Depth=2
504 ; GLOBALNESS0-NEXT:    s_and_b64 vcc, exec, s[66:67]
505 ; GLOBALNESS0-NEXT:  .LBB1_21: ; %spam.exit.i
506 ; GLOBALNESS0-NEXT:    ; in Loop: Header=BB1_16 Depth=2
507 ; GLOBALNESS0-NEXT:    s_and_b64 vcc, exec, s[56:57]
508 ; GLOBALNESS0-NEXT:    s_cbranch_vccnz .LBB1_15
509 ; GLOBALNESS0-NEXT:  ; %bb.22: ; %bb55.i
510 ; GLOBALNESS0-NEXT:    ; in Loop: Header=BB1_16 Depth=2
511 ; GLOBALNESS0-NEXT:    s_add_u32 s72, s38, 40
512 ; GLOBALNESS0-NEXT:    s_addc_u32 s73, s39, 0
513 ; GLOBALNESS0-NEXT:    s_mov_b64 s[4:5], s[40:41]
514 ; GLOBALNESS0-NEXT:    s_mov_b64 s[6:7], s[36:37]
515 ; GLOBALNESS0-NEXT:    s_mov_b64 s[8:9], s[72:73]
516 ; GLOBALNESS0-NEXT:    s_mov_b64 s[10:11], s[34:35]
517 ; GLOBALNESS0-NEXT:    s_mov_b32 s12, s70
518 ; GLOBALNESS0-NEXT:    s_mov_b32 s13, s69
519 ; GLOBALNESS0-NEXT:    s_mov_b32 s14, s68
520 ; GLOBALNESS0-NEXT:    v_mov_b32_e32 v31, v41
521 ; GLOBALNESS0-NEXT:    s_swappc_b64 s[30:31], s[76:77]
522 ; GLOBALNESS0-NEXT:    v_pk_mov_b32 v[46:47], 0, 0
523 ; GLOBALNESS0-NEXT:    s_mov_b64 s[4:5], s[40:41]
524 ; GLOBALNESS0-NEXT:    s_mov_b64 s[6:7], s[36:37]
525 ; GLOBALNESS0-NEXT:    s_mov_b64 s[8:9], s[72:73]
526 ; GLOBALNESS0-NEXT:    s_mov_b64 s[10:11], s[34:35]
527 ; GLOBALNESS0-NEXT:    s_mov_b32 s12, s70
528 ; GLOBALNESS0-NEXT:    s_mov_b32 s13, s69
529 ; GLOBALNESS0-NEXT:    s_mov_b32 s14, s68
530 ; GLOBALNESS0-NEXT:    v_mov_b32_e32 v31, v41
531 ; GLOBALNESS0-NEXT:    global_store_dwordx2 v[46:47], v[44:45], off
532 ; GLOBALNESS0-NEXT:    s_swappc_b64 s[30:31], s[76:77]
533 ; GLOBALNESS0-NEXT:    s_and_saveexec_b64 s[4:5], s[64:65]
534 ; GLOBALNESS0-NEXT:    s_cbranch_execz .LBB1_14
535 ; GLOBALNESS0-NEXT:  ; %bb.23: ; %bb62.i
536 ; GLOBALNESS0-NEXT:    ; in Loop: Header=BB1_16 Depth=2
537 ; GLOBALNESS0-NEXT:    v_mov_b32_e32 v43, v42
538 ; GLOBALNESS0-NEXT:    global_store_dwordx2 v[46:47], v[42:43], off
539 ; GLOBALNESS0-NEXT:    s_branch .LBB1_14
540 ; GLOBALNESS0-NEXT:  .LBB1_24: ; in Loop: Header=BB1_4 Depth=1
541 ; GLOBALNESS0-NEXT:    s_mov_b64 s[6:7], -1
542 ; GLOBALNESS0-NEXT:    ; implicit-def: $vgpr0_vgpr1
543 ; GLOBALNESS0-NEXT:    s_branch .LBB1_3
544 ; GLOBALNESS0-NEXT:  .LBB1_25: ; %Flow23
545 ; GLOBALNESS0-NEXT:    ; in Loop: Header=BB1_4 Depth=1
546 ; GLOBALNESS0-NEXT:    v_pk_mov_b32 v[0:1], 0, 0
547 ; GLOBALNESS0-NEXT:  .LBB1_26: ; %Flow24
548 ; GLOBALNESS0-NEXT:    ; in Loop: Header=BB1_4 Depth=1
549 ; GLOBALNESS0-NEXT:    s_or_b64 exec, exec, s[78:79]
550 ; GLOBALNESS0-NEXT:    s_and_saveexec_b64 s[4:5], s[62:63]
551 ; GLOBALNESS0-NEXT:    s_cbranch_execz .LBB1_2
552 ; GLOBALNESS0-NEXT:  ; %bb.27: ; %bb67.i
553 ; GLOBALNESS0-NEXT:    ; in Loop: Header=BB1_4 Depth=1
554 ; GLOBALNESS0-NEXT:    s_and_b64 vcc, exec, s[58:59]
555 ; GLOBALNESS0-NEXT:    s_cbranch_vccnz .LBB1_1
556 ; GLOBALNESS0-NEXT:  ; %bb.28: ; %bb69.i
557 ; GLOBALNESS0-NEXT:    ; in Loop: Header=BB1_4 Depth=1
558 ; GLOBALNESS0-NEXT:    v_mov_b32_e32 v43, v42
559 ; GLOBALNESS0-NEXT:    v_pk_mov_b32 v[2:3], 0, 0
560 ; GLOBALNESS0-NEXT:    global_store_dwordx2 v[2:3], v[42:43], off
561 ; GLOBALNESS0-NEXT:    s_branch .LBB1_1
562 ; GLOBALNESS0-NEXT:  .LBB1_29: ; %bb73.i
563 ; GLOBALNESS0-NEXT:    ; in Loop: Header=BB1_4 Depth=1
564 ; GLOBALNESS0-NEXT:    v_mov_b32_e32 v43, v42
565 ; GLOBALNESS0-NEXT:    v_pk_mov_b32 v[2:3], 0, 0
566 ; GLOBALNESS0-NEXT:    global_store_dwordx2 v[2:3], v[42:43], off
567 ; GLOBALNESS0-NEXT:    s_branch .LBB1_2
568 ; GLOBALNESS0-NEXT:  .LBB1_30: ; %loop.exit.guard
569 ; GLOBALNESS0-NEXT:    s_andn2_b64 vcc, exec, s[4:5]
570 ; GLOBALNESS0-NEXT:    s_mov_b64 s[4:5], -1
571 ; GLOBALNESS0-NEXT:    s_cbranch_vccz .LBB1_32
572 ; GLOBALNESS0-NEXT:  ; %bb.31: ; %bb7.i.i
573 ; GLOBALNESS0-NEXT:    s_add_u32 s8, s38, 40
574 ; GLOBALNESS0-NEXT:    s_addc_u32 s9, s39, 0
575 ; GLOBALNESS0-NEXT:    s_mov_b64 s[4:5], s[40:41]
576 ; GLOBALNESS0-NEXT:    s_mov_b64 s[6:7], s[36:37]
577 ; GLOBALNESS0-NEXT:    s_mov_b64 s[10:11], s[34:35]
578 ; GLOBALNESS0-NEXT:    s_mov_b32 s12, s70
579 ; GLOBALNESS0-NEXT:    s_mov_b32 s13, s69
580 ; GLOBALNESS0-NEXT:    s_mov_b32 s14, s68
581 ; GLOBALNESS0-NEXT:    v_mov_b32_e32 v31, v41
582 ; GLOBALNESS0-NEXT:    s_getpc_b64 s[16:17]
583 ; GLOBALNESS0-NEXT:    s_add_u32 s16, s16, widget@rel32@lo+4
584 ; GLOBALNESS0-NEXT:    s_addc_u32 s17, s17, widget@rel32@hi+12
585 ; GLOBALNESS0-NEXT:    s_swappc_b64 s[30:31], s[16:17]
586 ; GLOBALNESS0-NEXT:    s_mov_b64 s[4:5], 0
587 ; GLOBALNESS0-NEXT:  .LBB1_32: ; %Flow
588 ; GLOBALNESS0-NEXT:    s_andn2_b64 vcc, exec, s[4:5]
589 ; GLOBALNESS0-NEXT:    s_cbranch_vccnz .LBB1_34
590 ; GLOBALNESS0-NEXT:  ; %bb.33: ; %bb11.i.i
591 ; GLOBALNESS0-NEXT:    s_add_u32 s8, s38, 40
592 ; GLOBALNESS0-NEXT:    s_addc_u32 s9, s39, 0
593 ; GLOBALNESS0-NEXT:    s_mov_b64 s[4:5], s[40:41]
594 ; GLOBALNESS0-NEXT:    s_mov_b64 s[6:7], s[36:37]
595 ; GLOBALNESS0-NEXT:    s_mov_b64 s[10:11], s[34:35]
596 ; GLOBALNESS0-NEXT:    s_mov_b32 s12, s70
597 ; GLOBALNESS0-NEXT:    s_mov_b32 s13, s69
598 ; GLOBALNESS0-NEXT:    s_mov_b32 s14, s68
599 ; GLOBALNESS0-NEXT:    v_mov_b32_e32 v31, v41
600 ; GLOBALNESS0-NEXT:    s_getpc_b64 s[16:17]
601 ; GLOBALNESS0-NEXT:    s_add_u32 s16, s16, widget@rel32@lo+4
602 ; GLOBALNESS0-NEXT:    s_addc_u32 s17, s17, widget@rel32@hi+12
603 ; GLOBALNESS0-NEXT:    s_swappc_b64 s[30:31], s[16:17]
604 ; GLOBALNESS0-NEXT:  .LBB1_34: ; %UnifiedUnreachableBlock
606   store i32 0, ptr addrspace(1) null, align 4
607   %tmp4 = load i32, ptr addrspace(1) %arg1.global, align 4
608   br label %bb5
610 bb5:                                              ; preds = %bb5.backedge, %bb
611   %tmp4.i.sroa.0.0 = phi <9 x double> [ undef, %bb ], [ %tmp4.i.sroa.0.1, %bb5.backedge ]
612   %tmp14.1.i = load i32, ptr inttoptr (i64 128 to ptr), align 128
613   store i32 0, ptr addrspace(5) null, align 4
614   %tmp14.2.i = load i32, ptr inttoptr (i64 128 to ptr), align 128
615   %tmp15.2.i = icmp eq i32 %tmp14.2.i, 0
616   %spec.select.2.i = select i1 %tmp15.2.i, i32 0, i32 %tmp14.1.i
617   tail call void @wobble()
618   br i1 %tmp3.i.i, label %bb4.i.i, label %baz.exit.i
620 bb4.i.i:                                          ; preds = %bb5
621   switch i32 %tmp5.i.i, label %baz.exit.i [
622     i32 0, label %bb7.i.i
623     i32 1, label %bb11.i.i
624   ]
626 bb7.i.i:                                          ; preds = %bb4.i.i
627   tail call fastcc void @widget()
628   unreachable
630 bb11.i.i:                                         ; preds = %bb4.i.i
631   tail call fastcc void @widget()
632   unreachable
634 baz.exit.i:                                       ; preds = %bb4.i.i, %bb5
635   %tmp26.i = load i32, ptr null, align 4
636   %tmp27.i4 = load double, ptr addrspace(1) null, align 8
637   %tmp31.i = icmp slt i32 %tmp26.i, 0
638   br i1 %tmp31.i, label %bb33.i, label %bb64.i
640 bb33.i:                                           ; preds = %baz.exit.i
641   %tmp38.i = icmp slt i32 %tmp4, 0
642   br i1 %tmp38.i, label %bb39.i, label %bb44.lr.ph.i
644 bb39.i:                                           ; preds = %bb33.i
645   store double 0.000000e+00, ptr addrspace(1) null, align 8
646   br label %bb44.lr.ph.i
648 bb44.lr.ph.i:                                     ; preds = %bb39.i, %bb33.i
649   br label %bb44.i
651 bb44.i:                                           ; preds = %bb63.i, %bb44.lr.ph.i
652   br i1 %tmp3.i.i, label %bb63.i, label %bb46.i
654 bb46.i:                                           ; preds = %bb44.i
655   br i1 %tmp438.i, label %bb63.i, label %bb50.i
657 bb50.i:                                           ; preds = %bb46.i
658   switch i32 0, label %spam.exit.i [
659     i32 0, label %bb1.i.i
660   ]
662 bb1.i.i:                                          ; preds = %bb50.i
663   %tmp2.i.i = fcmp ogt double %tmp27.i, 1.617000e+03
664   br i1 %tmp2.i.i, label %spam.exit.i, label %bb3.i.i
666 bb3.i.i:                                          ; preds = %bb1.i.i
667   %tmp4.i.i = fcmp ogt double %tmp27.i, 0.000000e+00
668   br i1 %tmp4.i.i, label %spam.exit.i, label %bb6.i.i
670 bb6.i.i:                                          ; preds = %bb3.i.i
671   %tmp7.i.i = fcmp ogt double %tmp27.i4, 0.000000e+00
672   br i1 %tmp7.i.i, label %spam.exit.i, label %bb8.i.i
674 bb8.i.i:                                          ; preds = %bb6.i.i
675   tail call void null()
676   br label %spam.exit.i
678 spam.exit.i:                                      ; preds = %bb8.i.i, %bb6.i.i, %bb3.i.i, %bb1.i.i, %bb50.i
679   %tmp22.i = icmp sgt i32 %tmp4, 0
680   br i1 %tmp22.i, label %bb63.i, label %bb55.i
682 bb55.i:                                           ; preds = %spam.exit.i
683   tail call void @wobble()
684   %tmp0 = extractelement <9 x double> %tmp4.i.sroa.0.0, i32 0
685   store double %tmp0, ptr addrspace(1) null, align 8
686   tail call void @wobble()
687   %tmp61.i = icmp eq i32 %spec.select.2.i, 0
688   br i1 %tmp61.i, label %bb62.i, label %bb63.i
690 bb62.i:                                           ; preds = %bb55.i
691   store double 0.000000e+00, ptr addrspace(1) null, align 8
692   br label %bb63.i
694 bb63.i:                                           ; preds = %bb62.i, %bb55.i, %spam.exit.i, %bb46.i, %bb44.i
695   br i1 %tmp48.i, label %bb44.i, label %bb64.i
697 bb64.i:                                           ; preds = %bb63.i, %baz.exit.i
698   %tmp4.i.sroa.0.1 = phi <9 x double> [ <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00>, %baz.exit.i ], [ zeroinitializer, %bb63.i ]
699   br i1 %tmp31.i, label %bb67.i, label %bb5.backedge
701 bb5.backedge:                                     ; preds = %bb73.i, %bb70.i, %bb64.i
702   br label %bb5
704 bb67.i:                                           ; preds = %bb64.i
705   %tmp68.i = icmp eq i32 %tmp4, 1
706   br i1 %tmp68.i, label %bb69.i, label %bb70.i
708 bb69.i:                                           ; preds = %bb67.i
709   store double 0.000000e+00, ptr addrspace(1) null, align 8
710   br label %bb70.i
712 bb70.i:                                           ; preds = %bb69.i, %bb67.i
713   %tmp3.i.i2 = icmp eq i32 %tmp4, 0
714   br i1 %tmp3.i.i2, label %bb73.i, label %bb5.backedge
716 bb73.i:                                           ; preds = %bb70.i
717   store double 0.000000e+00, ptr addrspace(1) null, align 8
718   br label %bb5.backedge