Lines Matching refs:SI

2 ; RUN: llc -march=amdgcn -mcpu=tahiti < %s | FileCheck -check-prefix=SI %s
6 ; SI-LABEL: round_f64:
7 ; SI: ; %bb.0:
8 ; SI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x9
9 ; SI-NEXT: s_mov_b32 s10, -1
10 ; SI-NEXT: s_mov_b32 s1, 0xfffff
11 ; SI-NEXT: v_mov_b32_e32 v4, 0x3ff00000
12 ; SI-NEXT: s_mov_b32 s11, 0xf000
13 ; SI-NEXT: s_waitcnt lgkmcnt(0)
14 ; SI-NEXT: s_bfe_u32 s0, s7, 0xb0014
15 ; SI-NEXT: s_mov_b32 s8, s4
16 ; SI-NEXT: s_add_i32 s4, s0, 0xfffffc01
17 ; SI-NEXT: s_mov_b32 s0, s10
18 ; SI-NEXT: s_lshr_b64 s[0:1], s[0:1], s4
19 ; SI-NEXT: s_andn2_b64 s[2:3], s[6:7], s[0:1]
20 ; SI-NEXT: s_and_b32 s0, s7, 0x80000000
21 ; SI-NEXT: s_cmp_lt_i32 s4, 0
22 ; SI-NEXT: v_mov_b32_e32 v0, s3
23 ; SI-NEXT: v_mov_b32_e32 v1, s0
24 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
25 ; SI-NEXT: s_cmp_gt_i32 s4, 51
26 ; SI-NEXT: v_cndmask_b32_e32 v0, v0, v1, vcc
27 ; SI-NEXT: v_mov_b32_e32 v1, s7
28 ; SI-NEXT: s_cselect_b64 s[0:1], -1, 0
29 ; SI-NEXT: v_cndmask_b32_e64 v1, v0, v1, s[0:1]
30 ; SI-NEXT: v_mov_b32_e32 v0, s2
31 ; SI-NEXT: v_cndmask_b32_e64 v0, v0, 0, vcc
32 ; SI-NEXT: v_mov_b32_e32 v2, s6
33 ; SI-NEXT: v_cndmask_b32_e64 v0, v0, v2, s[0:1]
34 ; SI-NEXT: v_add_f64 v[2:3], s[6:7], -v[0:1]
35 ; SI-NEXT: s_brev_b32 s0, -2
36 ; SI-NEXT: v_mov_b32_e32 v5, s7
37 ; SI-NEXT: v_cmp_ge_f64_e64 vcc, |v[2:3]|, 0.5
38 ; SI-NEXT: v_bfi_b32 v4, s0, v4, v5
39 ; SI-NEXT: v_cndmask_b32_e32 v3, 0, v4, vcc
40 ; SI-NEXT: v_mov_b32_e32 v2, 0
41 ; SI-NEXT: v_add_f64 v[0:1], v[0:1], v[2:3]
42 ; SI-NEXT: s_mov_b32 s9, s5
43 ; SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[8:11], 0
44 ; SI-NEXT: s_endpgm
72 ; SI-LABEL: v_round_f64:
73 ; SI: ; %bb.0:
74 ; SI-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x9
75 ; SI-NEXT: s_mov_b32 s7, 0xf000
76 ; SI-NEXT: s_mov_b32 s6, 0
77 ; SI-NEXT: v_lshlrev_b32_e32 v0, 3, v0
78 ; SI-NEXT: v_mov_b32_e32 v1, 0
79 ; SI-NEXT: s_waitcnt lgkmcnt(0)
80 ; SI-NEXT: s_mov_b64 s[4:5], s[2:3]
81 ; SI-NEXT: buffer_load_dwordx2 v[2:3], v[0:1], s[4:7], 0 addr64
82 ; SI-NEXT: s_movk_i32 s4, 0xfc01
83 ; SI-NEXT: s_mov_b32 s2, -1
84 ; SI-NEXT: s_mov_b32 s3, 0xfffff
85 ; SI-NEXT: s_brev_b32 s5, -2
86 ; SI-NEXT: v_mov_b32_e32 v8, 0x3ff00000
87 ; SI-NEXT: s_waitcnt vmcnt(0)
88 ; SI-NEXT: v_bfe_u32 v4, v3, 20, 11
89 ; SI-NEXT: v_add_i32_e32 v6, vcc, s4, v4
90 ; SI-NEXT: v_lshr_b64 v[4:5], s[2:3], v6
91 ; SI-NEXT: v_and_b32_e32 v7, 0x80000000, v3
92 ; SI-NEXT: v_not_b32_e32 v5, v5
93 ; SI-NEXT: v_not_b32_e32 v4, v4
94 ; SI-NEXT: v_and_b32_e32 v5, v3, v5
95 ; SI-NEXT: v_and_b32_e32 v4, v2, v4
96 ; SI-NEXT: v_cmp_gt_i32_e32 vcc, 0, v6
97 ; SI-NEXT: v_cndmask_b32_e32 v5, v5, v7, vcc
98 ; SI-NEXT: v_cndmask_b32_e64 v4, v4, 0, vcc
99 ; SI-NEXT: v_cmp_lt_i32_e32 vcc, 51, v6
100 ; SI-NEXT: v_cndmask_b32_e32 v5, v5, v3, vcc
101 ; SI-NEXT: v_cndmask_b32_e32 v4, v4, v2, vcc
102 ; SI-NEXT: v_add_f64 v[6:7], v[2:3], -v[4:5]
103 ; SI-NEXT: v_bfi_b32 v2, s5, v8, v3
104 ; SI-NEXT: v_cmp_ge_f64_e64 vcc, |v[6:7]|, 0.5
105 ; SI-NEXT: s_mov_b64 s[2:3], s[6:7]
106 ; SI-NEXT: v_cndmask_b32_e32 v3, 0, v2, vcc
107 ; SI-NEXT: v_mov_b32_e32 v2, 0
108 ; SI-NEXT: v_add_f64 v[2:3], v[4:5], v[2:3]
109 ; SI-NEXT: buffer_store_dwordx2 v[2:3], v[0:1], s[0:3], 0 addr64
110 ; SI-NEXT: s_endpgm
145 ; SI-LABEL: round_v2f64:
146 ; SI: ; %bb.0:
147 ; SI-NEXT: s_load_dwordx4 s[8:11], s[0:1], 0xd
148 ; SI-NEXT: s_load_dwordx2 s[4:5], s[0:1], 0x9
149 ; SI-NEXT: s_mov_b32 s6, -1
150 ; SI-NEXT: s_mov_b32 s3, 0xfffff
151 ; SI-NEXT: s_mov_b32 s2, s6
152 ; SI-NEXT: s_waitcnt lgkmcnt(0)
153 ; SI-NEXT: s_bfe_u32 s0, s11, 0xb0014
154 ; SI-NEXT: s_add_i32 s7, s0, 0xfffffc01
155 ; SI-NEXT: s_lshr_b64 s[0:1], s[2:3], s7
156 ; SI-NEXT: s_andn2_b64 s[12:13], s[10:11], s[0:1]
157 ; SI-NEXT: s_and_b32 s0, s11, 0x80000000
158 ; SI-NEXT: s_cmp_lt_i32 s7, 0
159 ; SI-NEXT: v_mov_b32_e32 v0, s13
160 ; SI-NEXT: v_mov_b32_e32 v1, s0
161 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
162 ; SI-NEXT: s_cmp_gt_i32 s7, 51
163 ; SI-NEXT: v_cndmask_b32_e32 v0, v0, v1, vcc
164 ; SI-NEXT: v_mov_b32_e32 v1, s11
165 ; SI-NEXT: s_cselect_b64 s[0:1], -1, 0
166 ; SI-NEXT: v_cndmask_b32_e64 v1, v0, v1, s[0:1]
167 ; SI-NEXT: v_mov_b32_e32 v0, s12
168 ; SI-NEXT: v_cndmask_b32_e64 v0, v0, 0, vcc
169 ; SI-NEXT: v_mov_b32_e32 v2, s10
170 ; SI-NEXT: v_cndmask_b32_e64 v0, v0, v2, s[0:1]
171 ; SI-NEXT: v_add_f64 v[2:3], s[10:11], -v[0:1]
172 ; SI-NEXT: s_bfe_u32 s0, s9, 0xb0014
173 ; SI-NEXT: s_add_i32 s10, s0, 0xfffffc01
174 ; SI-NEXT: s_brev_b32 s7, -2
175 ; SI-NEXT: v_mov_b32_e32 v6, 0x3ff00000
176 ; SI-NEXT: v_mov_b32_e32 v4, s11
177 ; SI-NEXT: v_cmp_ge_f64_e64 vcc, |v[2:3]|, 0.5
178 ; SI-NEXT: s_lshr_b64 s[0:1], s[2:3], s10
179 ; SI-NEXT: v_bfi_b32 v4, s7, v6, v4
180 ; SI-NEXT: s_andn2_b64 s[2:3], s[8:9], s[0:1]
181 ; SI-NEXT: s_and_b32 s0, s9, 0x80000000
182 ; SI-NEXT: v_cndmask_b32_e32 v3, 0, v4, vcc
183 ; SI-NEXT: v_mov_b32_e32 v2, 0
184 ; SI-NEXT: s_cmp_lt_i32 s10, 0
185 ; SI-NEXT: v_add_f64 v[2:3], v[0:1], v[2:3]
186 ; SI-NEXT: v_mov_b32_e32 v0, s3
187 ; SI-NEXT: v_mov_b32_e32 v1, s0
188 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
189 ; SI-NEXT: s_cmp_gt_i32 s10, 51
190 ; SI-NEXT: v_cndmask_b32_e32 v0, v0, v1, vcc
191 ; SI-NEXT: v_mov_b32_e32 v1, s9
192 ; SI-NEXT: s_cselect_b64 s[0:1], -1, 0
193 ; SI-NEXT: v_cndmask_b32_e64 v1, v0, v1, s[0:1]
194 ; SI-NEXT: v_mov_b32_e32 v0, s2
195 ; SI-NEXT: v_cndmask_b32_e64 v0, v0, 0, vcc
196 ; SI-NEXT: v_mov_b32_e32 v4, s8
197 ; SI-NEXT: v_cndmask_b32_e64 v0, v0, v4, s[0:1]
198 ; SI-NEXT: v_add_f64 v[4:5], s[8:9], -v[0:1]
199 ; SI-NEXT: v_mov_b32_e32 v7, s9
200 ; SI-NEXT: v_cmp_ge_f64_e64 vcc, |v[4:5]|, 0.5
201 ; SI-NEXT: v_bfi_b32 v6, s7, v6, v7
202 ; SI-NEXT: v_cndmask_b32_e32 v5, 0, v6, vcc
203 ; SI-NEXT: v_mov_b32_e32 v4, 0
204 ; SI-NEXT: v_add_f64 v[0:1], v[0:1], v[4:5]
205 ; SI-NEXT: s_mov_b32 s7, 0xf000
206 ; SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0
207 ; SI-NEXT: s_endpgm
242 ; SI-LABEL: round_v4f64:
243 ; SI: ; %bb.0:
244 ; SI-NEXT: s_load_dwordx8 s[4:11], s[0:1], 0x11
245 ; SI-NEXT: s_mov_b32 s14, -1
246 ; SI-NEXT: s_load_dwordx2 s[12:13], s[0:1], 0x9
247 ; SI-NEXT: s_mov_b32 s3, 0xfffff
248 ; SI-NEXT: s_mov_b32 s2, s14
249 ; SI-NEXT: s_waitcnt lgkmcnt(0)
250 ; SI-NEXT: s_bfe_u32 s0, s7, 0xb0014
251 ; SI-NEXT: s_add_i32 s18, s0, 0xfffffc01
252 ; SI-NEXT: s_lshr_b64 s[0:1], s[2:3], s18
253 ; SI-NEXT: s_andn2_b64 s[16:17], s[6:7], s[0:1]
254 ; SI-NEXT: s_and_b32 s0, s7, 0x80000000
255 ; SI-NEXT: s_cmp_lt_i32 s18, 0
256 ; SI-NEXT: v_mov_b32_e32 v0, s17
257 ; SI-NEXT: v_mov_b32_e32 v1, s0
258 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
259 ; SI-NEXT: s_cmp_gt_i32 s18, 51
260 ; SI-NEXT: v_cndmask_b32_e32 v0, v0, v1, vcc
261 ; SI-NEXT: v_mov_b32_e32 v1, s7
262 ; SI-NEXT: s_cselect_b64 s[0:1], -1, 0
263 ; SI-NEXT: v_cndmask_b32_e64 v1, v0, v1, s[0:1]
264 ; SI-NEXT: v_mov_b32_e32 v0, s16
265 ; SI-NEXT: v_cndmask_b32_e64 v0, v0, 0, vcc
266 ; SI-NEXT: v_mov_b32_e32 v2, s6
267 ; SI-NEXT: v_cndmask_b32_e64 v0, v0, v2, s[0:1]
268 ; SI-NEXT: v_add_f64 v[2:3], s[6:7], -v[0:1]
269 ; SI-NEXT: s_bfe_u32 s0, s5, 0xb0014
270 ; SI-NEXT: s_add_i32 s17, s0, 0xfffffc01
271 ; SI-NEXT: s_brev_b32 s16, -2
272 ; SI-NEXT: v_mov_b32_e32 v12, 0x3ff00000
273 ; SI-NEXT: v_mov_b32_e32 v4, s7
274 ; SI-NEXT: v_cmp_ge_f64_e64 vcc, |v[2:3]|, 0.5
275 ; SI-NEXT: s_lshr_b64 s[0:1], s[2:3], s17
276 ; SI-NEXT: v_bfi_b32 v4, s16, v12, v4
277 ; SI-NEXT: s_andn2_b64 s[6:7], s[4:5], s[0:1]
278 ; SI-NEXT: s_and_b32 s0, s5, 0x80000000
279 ; SI-NEXT: v_cndmask_b32_e32 v3, 0, v4, vcc
280 ; SI-NEXT: v_mov_b32_e32 v2, 0
281 ; SI-NEXT: s_cmp_lt_i32 s17, 0
282 ; SI-NEXT: v_add_f64 v[2:3], v[0:1], v[2:3]
283 ; SI-NEXT: v_mov_b32_e32 v0, s7
284 ; SI-NEXT: v_mov_b32_e32 v1, s0
285 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
286 ; SI-NEXT: s_cmp_gt_i32 s17, 51
287 ; SI-NEXT: v_cndmask_b32_e32 v0, v0, v1, vcc
288 ; SI-NEXT: v_mov_b32_e32 v1, s5
289 ; SI-NEXT: s_cselect_b64 s[0:1], -1, 0
290 ; SI-NEXT: v_cndmask_b32_e64 v1, v0, v1, s[0:1]
291 ; SI-NEXT: v_mov_b32_e32 v0, s6
292 ; SI-NEXT: v_cndmask_b32_e64 v0, v0, 0, vcc
293 ; SI-NEXT: v_mov_b32_e32 v4, s4
294 ; SI-NEXT: v_cndmask_b32_e64 v0, v0, v4, s[0:1]
295 ; SI-NEXT: s_bfe_u32 s0, s11, 0xb0014
296 ; SI-NEXT: v_add_f64 v[4:5], s[4:5], -v[0:1]
297 ; SI-NEXT: s_add_i32 s6, s0, 0xfffffc01
298 ; SI-NEXT: s_lshr_b64 s[0:1], s[2:3], s6
299 ; SI-NEXT: v_mov_b32_e32 v6, s5
300 ; SI-NEXT: v_cmp_ge_f64_e64 vcc, |v[4:5]|, 0.5
301 ; SI-NEXT: s_andn2_b64 s[4:5], s[10:11], s[0:1]
302 ; SI-NEXT: s_and_b32 s0, s11, 0x80000000
303 ; SI-NEXT: v_bfi_b32 v6, s16, v12, v6
304 ; SI-NEXT: s_cmp_lt_i32 s6, 0
305 ; SI-NEXT: v_cndmask_b32_e32 v9, 0, v6, vcc
306 ; SI-NEXT: v_mov_b32_e32 v4, s5
307 ; SI-NEXT: v_mov_b32_e32 v5, s0
308 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
309 ; SI-NEXT: s_cmp_gt_i32 s6, 51
310 ; SI-NEXT: v_cndmask_b32_e32 v4, v4, v5, vcc
311 ; SI-NEXT: v_mov_b32_e32 v5, s11
312 ; SI-NEXT: s_cselect_b64 s[0:1], -1, 0
313 ; SI-NEXT: v_cndmask_b32_e64 v5, v4, v5, s[0:1]
314 ; SI-NEXT: v_mov_b32_e32 v4, s4
315 ; SI-NEXT: v_cndmask_b32_e64 v4, v4, 0, vcc
316 ; SI-NEXT: v_mov_b32_e32 v6, s10
317 ; SI-NEXT: v_cndmask_b32_e64 v4, v4, v6, s[0:1]
318 ; SI-NEXT: v_add_f64 v[6:7], s[10:11], -v[4:5]
319 ; SI-NEXT: s_bfe_u32 s0, s9, 0xb0014
320 ; SI-NEXT: s_add_i32 s4, s0, 0xfffffc01
321 ; SI-NEXT: v_mov_b32_e32 v10, s11
322 ; SI-NEXT: v_cmp_ge_f64_e64 vcc, |v[6:7]|, 0.5
323 ; SI-NEXT: s_lshr_b64 s[0:1], s[2:3], s4
324 ; SI-NEXT: v_bfi_b32 v10, s16, v12, v10
325 ; SI-NEXT: s_andn2_b64 s[2:3], s[8:9], s[0:1]
326 ; SI-NEXT: s_and_b32 s0, s9, 0x80000000
327 ; SI-NEXT: v_cndmask_b32_e32 v7, 0, v10, vcc
328 ; SI-NEXT: v_mov_b32_e32 v6, 0
329 ; SI-NEXT: s_cmp_lt_i32 s4, 0
330 ; SI-NEXT: v_add_f64 v[6:7], v[4:5], v[6:7]
331 ; SI-NEXT: v_mov_b32_e32 v4, s3
332 ; SI-NEXT: v_mov_b32_e32 v5, s0
333 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
334 ; SI-NEXT: s_cmp_gt_i32 s4, 51
335 ; SI-NEXT: v_cndmask_b32_e32 v4, v4, v5, vcc
336 ; SI-NEXT: v_mov_b32_e32 v5, s9
337 ; SI-NEXT: s_cselect_b64 s[0:1], -1, 0
338 ; SI-NEXT: v_cndmask_b32_e64 v5, v4, v5, s[0:1]
339 ; SI-NEXT: v_mov_b32_e32 v4, s2
340 ; SI-NEXT: v_cndmask_b32_e64 v4, v4, 0, vcc
341 ; SI-NEXT: v_mov_b32_e32 v10, s8
342 ; SI-NEXT: v_cndmask_b32_e64 v4, v4, v10, s[0:1]
343 ; SI-NEXT: v_add_f64 v[10:11], s[8:9], -v[4:5]
344 ; SI-NEXT: v_mov_b32_e32 v13, s9
345 ; SI-NEXT: v_cmp_ge_f64_e64 vcc, |v[10:11]|, 0.5
346 ; SI-NEXT: v_bfi_b32 v12, s16, v12, v13
347 ; SI-NEXT: v_cndmask_b32_e32 v11, 0, v12, vcc
348 ; SI-NEXT: v_mov_b32_e32 v10, 0
349 ; SI-NEXT: v_mov_b32_e32 v8, 0
350 ; SI-NEXT: v_add_f64 v[4:5], v[4:5], v[10:11]
351 ; SI-NEXT: s_mov_b32 s15, 0xf000
352 ; SI-NEXT: v_add_f64 v[0:1], v[0:1], v[8:9]
353 ; SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[12:15], 0 offset:16
354 ; SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[12:15], 0
355 ; SI-NEXT: s_endpgm
407 ; SI-LABEL: round_v8f64:
408 ; SI: ; %bb.0:
409 ; SI-NEXT: s_load_dwordx16 s[4:19], s[0:1], 0x19
410 ; SI-NEXT: s_mov_b32 s22, -1
411 ; SI-NEXT: s_mov_b32 s21, 0xfffff
412 ; SI-NEXT: s_mov_b32 s20, s22
413 ; SI-NEXT: v_mov_b32_e32 v8, 0x3ff00000
414 ; SI-NEXT: s_waitcnt lgkmcnt(0)
415 ; SI-NEXT: s_bfe_u32 s2, s7, 0xb0014
416 ; SI-NEXT: s_add_i32 s26, s2, 0xfffffc01
417 ; SI-NEXT: s_lshr_b64 s[2:3], s[20:21], s26
418 ; SI-NEXT: s_and_b32 s23, s7, 0x80000000
419 ; SI-NEXT: s_andn2_b64 s[24:25], s[6:7], s[2:3]
420 ; SI-NEXT: s_cmp_lt_i32 s26, 0
421 ; SI-NEXT: v_mov_b32_e32 v0, s25
422 ; SI-NEXT: v_mov_b32_e32 v1, s23
423 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
424 ; SI-NEXT: s_cmp_gt_i32 s26, 51
425 ; SI-NEXT: v_cndmask_b32_e32 v0, v0, v1, vcc
426 ; SI-NEXT: v_mov_b32_e32 v1, s7
427 ; SI-NEXT: s_cselect_b64 s[2:3], -1, 0
428 ; SI-NEXT: v_cndmask_b32_e64 v1, v0, v1, s[2:3]
429 ; SI-NEXT: v_mov_b32_e32 v0, s24
430 ; SI-NEXT: v_cndmask_b32_e64 v0, v0, 0, vcc
431 ; SI-NEXT: v_mov_b32_e32 v2, s6
432 ; SI-NEXT: v_cndmask_b32_e64 v0, v0, v2, s[2:3]
433 ; SI-NEXT: v_add_f64 v[2:3], s[6:7], -v[0:1]
434 ; SI-NEXT: s_bfe_u32 s2, s5, 0xb0014
435 ; SI-NEXT: s_add_i32 s24, s2, 0xfffffc01
436 ; SI-NEXT: s_brev_b32 s23, -2
437 ; SI-NEXT: v_mov_b32_e32 v4, s7
438 ; SI-NEXT: v_cmp_ge_f64_e64 vcc, |v[2:3]|, 0.5
439 ; SI-NEXT: s_lshr_b64 s[2:3], s[20:21], s24
440 ; SI-NEXT: v_bfi_b32 v4, s23, v8, v4
441 ; SI-NEXT: s_andn2_b64 s[6:7], s[4:5], s[2:3]
442 ; SI-NEXT: s_and_b32 s2, s5, 0x80000000
443 ; SI-NEXT: v_cndmask_b32_e32 v3, 0, v4, vcc
444 ; SI-NEXT: v_mov_b32_e32 v2, 0
445 ; SI-NEXT: s_cmp_lt_i32 s24, 0
446 ; SI-NEXT: v_add_f64 v[2:3], v[0:1], v[2:3]
447 ; SI-NEXT: v_mov_b32_e32 v0, s7
448 ; SI-NEXT: v_mov_b32_e32 v1, s2
449 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
450 ; SI-NEXT: s_cmp_gt_i32 s24, 51
451 ; SI-NEXT: v_cndmask_b32_e32 v0, v0, v1, vcc
452 ; SI-NEXT: v_mov_b32_e32 v1, s5
453 ; SI-NEXT: s_cselect_b64 s[2:3], -1, 0
454 ; SI-NEXT: v_cndmask_b32_e64 v1, v0, v1, s[2:3]
455 ; SI-NEXT: v_mov_b32_e32 v0, s6
456 ; SI-NEXT: v_cndmask_b32_e64 v0, v0, 0, vcc
457 ; SI-NEXT: v_mov_b32_e32 v4, s4
458 ; SI-NEXT: v_cndmask_b32_e64 v0, v0, v4, s[2:3]
459 ; SI-NEXT: v_add_f64 v[4:5], s[4:5], -v[0:1]
460 ; SI-NEXT: s_bfe_u32 s2, s11, 0xb0014
461 ; SI-NEXT: s_add_i32 s6, s2, 0xfffffc01
462 ; SI-NEXT: v_mov_b32_e32 v6, s5
463 ; SI-NEXT: v_cmp_ge_f64_e64 vcc, |v[4:5]|, 0.5
464 ; SI-NEXT: s_lshr_b64 s[2:3], s[20:21], s6
465 ; SI-NEXT: v_bfi_b32 v6, s23, v8, v6
466 ; SI-NEXT: s_andn2_b64 s[4:5], s[10:11], s[2:3]
467 ; SI-NEXT: s_and_b32 s2, s11, 0x80000000
468 ; SI-NEXT: v_cndmask_b32_e32 v5, 0, v6, vcc
469 ; SI-NEXT: v_mov_b32_e32 v4, 0
470 ; SI-NEXT: s_cmp_lt_i32 s6, 0
471 ; SI-NEXT: v_add_f64 v[0:1], v[0:1], v[4:5]
472 ; SI-NEXT: v_mov_b32_e32 v4, s5
473 ; SI-NEXT: v_mov_b32_e32 v5, s2
474 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
475 ; SI-NEXT: s_cmp_gt_i32 s6, 51
476 ; SI-NEXT: v_cndmask_b32_e32 v4, v4, v5, vcc
477 ; SI-NEXT: v_mov_b32_e32 v5, s11
478 ; SI-NEXT: s_cselect_b64 s[2:3], -1, 0
479 ; SI-NEXT: v_cndmask_b32_e64 v5, v4, v5, s[2:3]
480 ; SI-NEXT: v_mov_b32_e32 v4, s4
481 ; SI-NEXT: v_cndmask_b32_e64 v4, v4, 0, vcc
482 ; SI-NEXT: v_mov_b32_e32 v6, s10
483 ; SI-NEXT: v_cndmask_b32_e64 v4, v4, v6, s[2:3]
484 ; SI-NEXT: v_add_f64 v[6:7], s[10:11], -v[4:5]
485 ; SI-NEXT: s_bfe_u32 s2, s9, 0xb0014
486 ; SI-NEXT: s_add_i32 s6, s2, 0xfffffc01
487 ; SI-NEXT: v_mov_b32_e32 v9, s11
488 ; SI-NEXT: v_cmp_ge_f64_e64 vcc, |v[6:7]|, 0.5
489 ; SI-NEXT: s_lshr_b64 s[2:3], s[20:21], s6
490 ; SI-NEXT: v_bfi_b32 v9, s23, v8, v9
491 ; SI-NEXT: s_andn2_b64 s[4:5], s[8:9], s[2:3]
492 ; SI-NEXT: s_and_b32 s2, s9, 0x80000000
493 ; SI-NEXT: v_cndmask_b32_e32 v7, 0, v9, vcc
494 ; SI-NEXT: v_mov_b32_e32 v6, 0
495 ; SI-NEXT: s_cmp_lt_i32 s6, 0
496 ; SI-NEXT: v_add_f64 v[6:7], v[4:5], v[6:7]
497 ; SI-NEXT: v_mov_b32_e32 v4, s5
498 ; SI-NEXT: v_mov_b32_e32 v5, s2
499 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
500 ; SI-NEXT: s_cmp_gt_i32 s6, 51
501 ; SI-NEXT: v_cndmask_b32_e32 v4, v4, v5, vcc
502 ; SI-NEXT: v_mov_b32_e32 v5, s9
503 ; SI-NEXT: s_cselect_b64 s[2:3], -1, 0
504 ; SI-NEXT: v_cndmask_b32_e64 v5, v4, v5, s[2:3]
505 ; SI-NEXT: v_mov_b32_e32 v4, s4
506 ; SI-NEXT: v_cndmask_b32_e64 v4, v4, 0, vcc
507 ; SI-NEXT: v_mov_b32_e32 v9, s8
508 ; SI-NEXT: v_cndmask_b32_e64 v4, v4, v9, s[2:3]
509 ; SI-NEXT: s_bfe_u32 s2, s15, 0xb0014
510 ; SI-NEXT: v_add_f64 v[9:10], s[8:9], -v[4:5]
511 ; SI-NEXT: s_add_i32 s4, s2, 0xfffffc01
512 ; SI-NEXT: s_lshr_b64 s[2:3], s[20:21], s4
513 ; SI-NEXT: v_mov_b32_e32 v11, s9
514 ; SI-NEXT: v_cmp_ge_f64_e64 vcc, |v[9:10]|, 0.5
515 ; SI-NEXT: s_andn2_b64 s[24:25], s[14:15], s[2:3]
516 ; SI-NEXT: s_and_b32 s2, s15, 0x80000000
517 ; SI-NEXT: v_bfi_b32 v11, s23, v8, v11
518 ; SI-NEXT: s_cmp_lt_i32 s4, 0
519 ; SI-NEXT: v_cndmask_b32_e32 v10, 0, v11, vcc
520 ; SI-NEXT: v_mov_b32_e32 v9, 0
521 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
522 ; SI-NEXT: s_cmp_gt_i32 s4, 51
523 ; SI-NEXT: v_add_f64 v[4:5], v[4:5], v[9:10]
524 ; SI-NEXT: v_mov_b32_e32 v10, s2
525 ; SI-NEXT: s_cselect_b64 s[2:3], -1, 0
526 ; SI-NEXT: s_bfe_u32 s4, s13, 0xb0014
527 ; SI-NEXT: s_add_i32 s6, s4, 0xfffffc01
528 ; SI-NEXT: s_lshr_b64 s[4:5], s[20:21], s6
529 ; SI-NEXT: s_andn2_b64 s[26:27], s[12:13], s[4:5]
530 ; SI-NEXT: s_and_b32 s4, s13, 0x80000000
531 ; SI-NEXT: v_mov_b32_e32 v9, s25
532 ; SI-NEXT: s_cmp_lt_i32 s6, 0
533 ; SI-NEXT: v_cndmask_b32_e32 v15, v9, v10, vcc
534 ; SI-NEXT: v_mov_b32_e32 v10, s4
535 ; SI-NEXT: s_cselect_b64 s[4:5], -1, 0
536 ; SI-NEXT: s_cmp_gt_i32 s6, 51
537 ; SI-NEXT: s_cselect_b64 s[6:7], -1, 0
538 ; SI-NEXT: s_bfe_u32 s8, s19, 0xb0014
539 ; SI-NEXT: s_add_i32 s10, s8, 0xfffffc01
540 ; SI-NEXT: s_lshr_b64 s[8:9], s[20:21], s10
541 ; SI-NEXT: s_andn2_b64 s[28:29], s[18:19], s[8:9]
542 ; SI-NEXT: s_and_b32 s8, s19, 0x80000000
543 ; SI-NEXT: v_mov_b32_e32 v9, s27
544 ; SI-NEXT: s_cmp_lt_i32 s10, 0
545 ; SI-NEXT: v_cndmask_b32_e64 v17, v9, v10, s[4:5]
546 ; SI-NEXT: v_mov_b32_e32 v9, s29
547 ; SI-NEXT: v_mov_b32_e32 v10, s8
548 ; SI-NEXT: s_cselect_b64 s[8:9], -1, 0
549 ; SI-NEXT: s_cmp_gt_i32 s10, 51
550 ; SI-NEXT: v_cndmask_b32_e64 v9, v9, v10, s[8:9]
551 ; SI-NEXT: v_mov_b32_e32 v10, s19
552 ; SI-NEXT: s_cselect_b64 s[10:11], -1, 0
553 ; SI-NEXT: v_cndmask_b32_e64 v10, v9, v10, s[10:11]
554 ; SI-NEXT: v_mov_b32_e32 v9, s28
555 ; SI-NEXT: v_cndmask_b32_e64 v9, v9, 0, s[8:9]
556 ; SI-NEXT: v_mov_b32_e32 v11, s18
557 ; SI-NEXT: s_bfe_u32 s8, s17, 0xb0014
558 ; SI-NEXT: v_cndmask_b32_e64 v9, v9, v11, s[10:11]
559 ; SI-NEXT: s_add_i32 s10, s8, 0xfffffc01
560 ; SI-NEXT: s_lshr_b64 s[8:9], s[20:21], s10
561 ; SI-NEXT: s_andn2_b64 s[20:21], s[16:17], s[8:9]
562 ; SI-NEXT: s_and_b32 s8, s17, 0x80000000
563 ; SI-NEXT: s_cmp_lt_i32 s10, 0
564 ; SI-NEXT: v_mov_b32_e32 v11, s21
565 ; SI-NEXT: v_mov_b32_e32 v12, s8
566 ; SI-NEXT: s_cselect_b64 s[8:9], -1, 0
567 ; SI-NEXT: s_cmp_gt_i32 s10, 51
568 ; SI-NEXT: v_cndmask_b32_e64 v11, v11, v12, s[8:9]
569 ; SI-NEXT: v_mov_b32_e32 v12, s17
570 ; SI-NEXT: s_cselect_b64 s[10:11], -1, 0
571 ; SI-NEXT: v_cndmask_b32_e64 v14, v11, v12, s[10:11]
572 ; SI-NEXT: v_mov_b32_e32 v11, s20
573 ; SI-NEXT: v_cndmask_b32_e64 v11, v11, 0, s[8:9]
574 ; SI-NEXT: v_mov_b32_e32 v12, s16
575 ; SI-NEXT: v_cndmask_b32_e64 v13, v11, v12, s[10:11]
576 ; SI-NEXT: v_add_f64 v[11:12], s[16:17], -v[13:14]
577 ; SI-NEXT: v_mov_b32_e32 v19, s17
578 ; SI-NEXT: v_cmp_ge_f64_e64 s[8:9], |v[11:12]|, 0.5
579 ; SI-NEXT: v_mov_b32_e32 v11, s19
580 ; SI-NEXT: v_bfi_b32 v20, s23, v8, v11
581 ; SI-NEXT: v_add_f64 v[11:12], s[18:19], -v[9:10]
582 ; SI-NEXT: v_bfi_b32 v19, s23, v8, v19
583 ; SI-NEXT: v_cmp_ge_f64_e64 s[10:11], |v[11:12]|, 0.5
584 ; SI-NEXT: v_mov_b32_e32 v11, 0
585 ; SI-NEXT: v_cndmask_b32_e64 v12, 0, v20, s[10:11]
586 ; SI-NEXT: v_add_f64 v[11:12], v[9:10], v[11:12]
587 ; SI-NEXT: v_cndmask_b32_e64 v10, 0, v19, s[8:9]
588 ; SI-NEXT: v_mov_b32_e32 v9, 0
589 ; SI-NEXT: v_mov_b32_e32 v16, s15
590 ; SI-NEXT: v_add_f64 v[9:10], v[13:14], v[9:10]
591 ; SI-NEXT: v_mov_b32_e32 v13, s24
592 ; SI-NEXT: v_cndmask_b32_e64 v14, v15, v16, s[2:3]
593 ; SI-NEXT: v_cndmask_b32_e64 v13, v13, 0, vcc
594 ; SI-NEXT: v_mov_b32_e32 v15, s14
595 ; SI-NEXT: v_cndmask_b32_e64 v13, v13, v15, s[2:3]
596 ; SI-NEXT: v_mov_b32_e32 v15, s15
597 ; SI-NEXT: v_bfi_b32 v19, s23, v8, v15
598 ; SI-NEXT: v_mov_b32_e32 v15, s26
599 ; SI-NEXT: v_mov_b32_e32 v18, s13
600 ; SI-NEXT: v_cndmask_b32_e64 v15, v15, 0, s[4:5]
601 ; SI-NEXT: v_mov_b32_e32 v16, s12
602 ; SI-NEXT: v_cndmask_b32_e64 v18, v17, v18, s[6:7]
603 ; SI-NEXT: v_cndmask_b32_e64 v17, v15, v16, s[6:7]
604 ; SI-NEXT: v_mov_b32_e32 v15, s13
605 ; SI-NEXT: v_bfi_b32 v8, s23, v8, v15
606 ; SI-NEXT: v_add_f64 v[15:16], s[12:13], -v[17:18]
607 ; SI-NEXT: s_load_dwordx2 s[20:21], s[0:1], 0x9
608 ; SI-NEXT: v_cmp_ge_f64_e64 vcc, |v[15:16]|, 0.5
609 ; SI-NEXT: v_add_f64 v[15:16], s[14:15], -v[13:14]
610 ; SI-NEXT: s_mov_b32 s23, 0xf000
611 ; SI-NEXT: v_cmp_ge_f64_e64 s[0:1], |v[15:16]|, 0.5
612 ; SI-NEXT: v_mov_b32_e32 v15, 0
613 ; SI-NEXT: v_cndmask_b32_e64 v16, 0, v19, s[0:1]
614 ; SI-NEXT: v_add_f64 v[15:16], v[13:14], v[15:16]
615 ; SI-NEXT: v_cndmask_b32_e32 v14, 0, v8, vcc
616 ; SI-NEXT: v_mov_b32_e32 v13, 0
617 ; SI-NEXT: v_add_f64 v[13:14], v[17:18], v[13:14]
618 ; SI-NEXT: s_waitcnt lgkmcnt(0)
619 ; SI-NEXT: buffer_store_dwordx4 v[9:12], off, s[20:23], 0 offset:48
620 ; SI-NEXT: buffer_store_dwordx4 v[13:16], off, s[20:23], 0 offset:32
621 ; SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[20:23], 0 offset:16
622 ; SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[20:23], 0
623 ; SI-NEXT: s_endpgm