Skip to content

Commit fbc9974

Browse files
committed
Add test with array in struct
1 parent bbc9f77 commit fbc9974

File tree

1 file changed

+243
-68
lines changed

1 file changed

+243
-68
lines changed

llvm/test/CodeGen/AMDGPU/llvm.amdgcn.dead.ll

Lines changed: 243 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ if.end:
341341
ret [32 x i32] %res
342342
}
343343

344-
%non_trivial_types = type { i8, i16, half, bfloat, <2 x i16>, <2 x half>, <2 x bfloat>, <5 x i32>, i128, <7 x i16>}
344+
%non_trivial_types = type { i8, i16, half, bfloat, <2 x i16>, <2 x half>, <2 x bfloat>, <5 x i32>, i128, [32 x i32] }
345345

346346
define %non_trivial_types @dead_non_trivial(i1 %cond, %non_trivial_types %x, ptr addrspace(1) %ptr1, i32 %v) #0 {
347347
; ASM-DAG-LABEL: dead_non_trivial:
@@ -351,39 +351,127 @@ define %non_trivial_types @dead_non_trivial(i1 %cond, %non_trivial_types %x, ptr
351351
; ASM-DAG-NEXT: s_wait_samplecnt 0x0
352352
; ASM-DAG-NEXT: s_wait_bvhcnt 0x0
353353
; ASM-DAG-NEXT: s_wait_kmcnt 0x0
354-
; ASM-DAG-NEXT: v_mov_b32_e32 v24, v0
355-
; ASM-DAG-NEXT: v_mov_b32_e32 v0, v1
354+
; ASM-DAG-NEXT: s_clause 0x15
355+
; ASM-DAG-NEXT: scratch_load_b32 v32, off, s32 offset:80
356+
; ASM-DAG-NEXT: scratch_load_b32 v31, off, s32 offset:76
357+
; ASM-DAG-NEXT: scratch_load_b32 v33, off, s32 offset:72
358+
; ASM-DAG-NEXT: scratch_load_b32 v34, off, s32 offset:68
359+
; ASM-DAG-NEXT: scratch_load_b32 v35, off, s32 offset:64
360+
; ASM-DAG-NEXT: scratch_load_b32 v36, off, s32 offset:60
361+
; ASM-DAG-NEXT: scratch_load_b32 v37, off, s32 offset:56
362+
; ASM-DAG-NEXT: scratch_load_b32 v38, off, s32 offset:52
363+
; ASM-DAG-NEXT: scratch_load_b32 v39, off, s32 offset:48
364+
; ASM-DAG-NEXT: scratch_load_b32 v48, off, s32 offset:44
365+
; ASM-DAG-NEXT: scratch_load_b32 v49, off, s32 offset:40
366+
; ASM-DAG-NEXT: scratch_load_b32 v50, off, s32 offset:36
367+
; ASM-DAG-NEXT: scratch_load_b32 v51, off, s32 offset:32
368+
; ASM-DAG-NEXT: scratch_load_b32 v52, off, s32 offset:28
369+
; ASM-DAG-NEXT: scratch_load_b32 v53, off, s32 offset:24
370+
; ASM-DAG-NEXT: scratch_load_b32 v54, off, s32 offset:20
371+
; ASM-DAG-NEXT: scratch_load_b32 v55, off, s32 offset:16
372+
; ASM-DAG-NEXT: scratch_load_b32 v64, off, s32 offset:12
373+
; ASM-DAG-NEXT: scratch_load_b32 v65, off, s32 offset:8
374+
; ASM-DAG-NEXT: scratch_load_b32 v66, off, s32 offset:4
375+
; ASM-DAG-NEXT: scratch_load_b32 v67, off, s32
376+
; ASM-DAG-NEXT: scratch_load_b32 v68, off, s32 offset:84
377+
; ASM-DAG-NEXT: v_and_b32_e32 v1, 1, v1
356378
; ASM-DAG-NEXT: s_mov_b32 s0, exec_lo
357-
; ASM-DAG-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)
358-
; ASM-DAG-NEXT: v_and_b32_e32 v1, 1, v24
379+
; ASM-DAG-NEXT: s_delay_alu instid0(VALU_DEP_1)
359380
; ASM-DAG-NEXT: v_cmpx_eq_u32_e32 1, v1
360381
; ASM-DAG-NEXT: s_cbranch_execz .LBB3_2
361382
; ASM-DAG-NEXT: ; %bb.1: ; %if.then
362-
; ASM-DAG-NEXT: v_dual_mov_b32 v7, 0 :: v_dual_add_nc_u32 v0, 15, v23
363-
; ASM-DAG-NEXT: v_mov_b32_e32 v3, 0x3e00
383+
; ASM-DAG-NEXT: s_wait_loadcnt 0x0
384+
; ASM-DAG-NEXT: v_dual_mov_b32 v8, 0 :: v_dual_add_nc_u32 v1, 15, v68
385+
; ASM-DAG-NEXT: v_mov_b32_e32 v4, 0x3e00
364386
; ASM-DAG-NEXT: ; implicit-def: $vgpr2
365-
; ASM-DAG-NEXT: ; implicit-def: $vgpr4
387+
; ASM-DAG-NEXT: ; implicit-def: $vgpr3
366388
; ASM-DAG-NEXT: ; implicit-def: $vgpr5
367389
; ASM-DAG-NEXT: ; implicit-def: $vgpr6
368-
; ASM-DAG-NEXT: ; implicit-def: $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12
369-
; ASM-DAG-NEXT: ; implicit-def: $vgpr13_vgpr14
370-
; ASM-DAG-NEXT: ; implicit-def: $vgpr15_vgpr16
371-
; ASM-DAG-NEXT: ; implicit-def: $vgpr17_vgpr18_vgpr19_vgpr20
372-
; ASM-DAG-NEXT: global_store_b32 v[21:22], v0, off
373-
; ASM-DAG-NEXT: ; implicit-def: $vgpr0
390+
; ASM-DAG-NEXT: ; implicit-def: $vgpr7
391+
; ASM-DAG-NEXT: ; implicit-def: $vgpr9_vgpr10_vgpr11_vgpr12_vgpr13
392+
; ASM-DAG-NEXT: ; implicit-def: $vgpr14_vgpr15
393+
; ASM-DAG-NEXT: ; implicit-def: $vgpr18
394+
; ASM-DAG-NEXT: ; implicit-def: $vgpr19
395+
; ASM-DAG-NEXT: ; implicit-def: $vgpr20
396+
; ASM-DAG-NEXT: ; implicit-def: $vgpr21
397+
; ASM-DAG-NEXT: ; implicit-def: $vgpr22
398+
; ASM-DAG-NEXT: ; implicit-def: $vgpr23
399+
; ASM-DAG-NEXT: ; implicit-def: $vgpr24
400+
; ASM-DAG-NEXT: ; implicit-def: $vgpr25
401+
; ASM-DAG-NEXT: ; implicit-def: $vgpr26
402+
; ASM-DAG-NEXT: ; implicit-def: $vgpr27
403+
; ASM-DAG-NEXT: ; implicit-def: $vgpr28
404+
; ASM-DAG-NEXT: ; implicit-def: $vgpr29
405+
; ASM-DAG-NEXT: ; implicit-def: $vgpr30
406+
; ASM-DAG-NEXT: ; implicit-def: $vgpr67
407+
; ASM-DAG-NEXT: ; implicit-def: $vgpr66
408+
; ASM-DAG-NEXT: ; implicit-def: $vgpr65
409+
; ASM-DAG-NEXT: ; implicit-def: $vgpr64
410+
; ASM-DAG-NEXT: ; implicit-def: $vgpr55
411+
; ASM-DAG-NEXT: ; implicit-def: $vgpr54
412+
; ASM-DAG-NEXT: ; implicit-def: $vgpr53
413+
; ASM-DAG-NEXT: ; implicit-def: $vgpr52
414+
; ASM-DAG-NEXT: ; implicit-def: $vgpr51
415+
; ASM-DAG-NEXT: ; implicit-def: $vgpr50
416+
; ASM-DAG-NEXT: ; implicit-def: $vgpr49
417+
; ASM-DAG-NEXT: ; implicit-def: $vgpr48
418+
; ASM-DAG-NEXT: ; implicit-def: $vgpr39
419+
; ASM-DAG-NEXT: ; implicit-def: $vgpr38
420+
; ASM-DAG-NEXT: ; implicit-def: $vgpr37
421+
; ASM-DAG-NEXT: ; implicit-def: $vgpr36
422+
; ASM-DAG-NEXT: ; implicit-def: $vgpr35
423+
; ASM-DAG-NEXT: ; implicit-def: $vgpr34
424+
; ASM-DAG-NEXT: ; implicit-def: $vgpr33
425+
; ASM-DAG-NEXT: global_store_b32 v[31:32], v1, off
374426
; ASM-DAG-NEXT: .LBB3_2: ; %if.end
375427
; ASM-DAG-NEXT: s_wait_alu 0xfffe
376428
; ASM-DAG-NEXT: s_or_b32 exec_lo, exec_lo, s0
377-
; ASM-DAG-NEXT: v_dual_mov_b32 v1, v2 :: v_dual_mov_b32 v2, v3
378-
; ASM-DAG-NEXT: v_dual_mov_b32 v3, v4 :: v_dual_mov_b32 v4, v5
379-
; ASM-DAG-NEXT: v_dual_mov_b32 v5, v6 :: v_dual_mov_b32 v6, v7
380-
; ASM-DAG-NEXT: v_dual_mov_b32 v7, v8 :: v_dual_mov_b32 v8, v9
381-
; ASM-DAG-NEXT: v_dual_mov_b32 v9, v10 :: v_dual_mov_b32 v10, v11
382-
; ASM-DAG-NEXT: v_dual_mov_b32 v11, v12 :: v_dual_mov_b32 v12, v13
383-
; ASM-DAG-NEXT: v_dual_mov_b32 v13, v14 :: v_dual_mov_b32 v14, v15
384-
; ASM-DAG-NEXT: v_dual_mov_b32 v15, v16 :: v_dual_mov_b32 v16, v17
385-
; ASM-DAG-NEXT: v_dual_mov_b32 v17, v18 :: v_dual_mov_b32 v18, v19
386-
; ASM-DAG-NEXT: v_mov_b32_e32 v19, v20
429+
; ASM-DAG-NEXT: s_clause 0x16
430+
; ASM-DAG-NEXT: scratch_store_b16 v0, v3, off offset:2
431+
; ASM-DAG-NEXT: scratch_store_b8 v0, v2, off
432+
; ASM-DAG-NEXT: scratch_store_b16 v0, v4, off offset:4
433+
; ASM-DAG-NEXT: scratch_store_b16 v0, v5, off offset:6
434+
; ASM-DAG-NEXT: scratch_store_b32 v0, v6, off offset:8
435+
; ASM-DAG-NEXT: scratch_store_b32 v0, v7, off offset:12
436+
; ASM-DAG-NEXT: scratch_store_b32 v0, v8, off offset:16
437+
; ASM-DAG-NEXT: scratch_store_b32 v0, v13, off offset:48
438+
; ASM-DAG-NEXT: scratch_store_b128 v0, v[9:12], off offset:32
439+
; ASM-DAG-NEXT: scratch_store_b128 v0, v[14:17], off offset:64
440+
; ASM-DAG-NEXT: scratch_store_b32 v0, v18, off offset:80
441+
; ASM-DAG-NEXT: scratch_store_b32 v0, v19, off offset:84
442+
; ASM-DAG-NEXT: scratch_store_b32 v0, v20, off offset:88
443+
; ASM-DAG-NEXT: scratch_store_b32 v0, v21, off offset:92
444+
; ASM-DAG-NEXT: scratch_store_b32 v0, v22, off offset:96
445+
; ASM-DAG-NEXT: scratch_store_b32 v0, v23, off offset:100
446+
; ASM-DAG-NEXT: scratch_store_b32 v0, v24, off offset:104
447+
; ASM-DAG-NEXT: scratch_store_b32 v0, v25, off offset:108
448+
; ASM-DAG-NEXT: scratch_store_b32 v0, v26, off offset:112
449+
; ASM-DAG-NEXT: scratch_store_b32 v0, v27, off offset:116
450+
; ASM-DAG-NEXT: scratch_store_b32 v0, v28, off offset:120
451+
; ASM-DAG-NEXT: scratch_store_b32 v0, v29, off offset:124
452+
; ASM-DAG-NEXT: scratch_store_b32 v0, v30, off offset:128
453+
; ASM-DAG-NEXT: s_wait_loadcnt 0x1
454+
; ASM-DAG-NEXT: s_clause 0x12
455+
; ASM-DAG-NEXT: scratch_store_b32 v0, v67, off offset:132
456+
; ASM-DAG-NEXT: scratch_store_b32 v0, v66, off offset:136
457+
; ASM-DAG-NEXT: scratch_store_b32 v0, v65, off offset:140
458+
; ASM-DAG-NEXT: scratch_store_b32 v0, v64, off offset:144
459+
; ASM-DAG-NEXT: scratch_store_b32 v0, v55, off offset:148
460+
; ASM-DAG-NEXT: scratch_store_b32 v0, v54, off offset:152
461+
; ASM-DAG-NEXT: scratch_store_b32 v0, v53, off offset:156
462+
; ASM-DAG-NEXT: scratch_store_b32 v0, v52, off offset:160
463+
; ASM-DAG-NEXT: scratch_store_b32 v0, v51, off offset:164
464+
; ASM-DAG-NEXT: scratch_store_b32 v0, v50, off offset:168
465+
; ASM-DAG-NEXT: scratch_store_b32 v0, v49, off offset:172
466+
; ASM-DAG-NEXT: scratch_store_b32 v0, v48, off offset:176
467+
; ASM-DAG-NEXT: scratch_store_b32 v0, v39, off offset:180
468+
; ASM-DAG-NEXT: scratch_store_b32 v0, v38, off offset:184
469+
; ASM-DAG-NEXT: scratch_store_b32 v0, v37, off offset:188
470+
; ASM-DAG-NEXT: scratch_store_b32 v0, v36, off offset:192
471+
; ASM-DAG-NEXT: scratch_store_b32 v0, v35, off offset:196
472+
; ASM-DAG-NEXT: scratch_store_b32 v0, v34, off offset:200
473+
; ASM-DAG-NEXT: scratch_store_b32 v0, v33, off offset:204
474+
; ASM-DAG-NEXT: s_wait_loadcnt 0x0
387475
; ASM-DAG-NEXT: s_setpc_b64 s[30:31]
388476
;
389477
; ASM-GISEL-LABEL: dead_non_trivial:
@@ -393,60 +481,147 @@ define %non_trivial_types @dead_non_trivial(i1 %cond, %non_trivial_types %x, ptr
393481
; ASM-GISEL-NEXT: s_wait_samplecnt 0x0
394482
; ASM-GISEL-NEXT: s_wait_bvhcnt 0x0
395483
; ASM-GISEL-NEXT: s_wait_kmcnt 0x0
396-
; ASM-GISEL-NEXT: v_mov_b32_e32 v24, v0
397-
; ASM-GISEL-NEXT: v_dual_mov_b32 v0, v1 :: v_dual_mov_b32 v1, v2
398-
; ASM-GISEL-NEXT: v_dual_mov_b32 v2, v3 :: v_dual_mov_b32 v3, v4
399-
; ASM-GISEL-NEXT: v_dual_mov_b32 v4, v5 :: v_dual_mov_b32 v5, v6
400-
; ASM-GISEL-NEXT: v_dual_mov_b32 v6, v7 :: v_dual_mov_b32 v7, v19
401-
; ASM-GISEL-NEXT: v_dual_mov_b32 v19, v20 :: v_dual_and_b32 v20, 1, v24
402-
; ASM-GISEL-NEXT: v_lshrrev_b32_e32 v24, 16, v18
403-
; ASM-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)
404-
; ASM-GISEL-NEXT: v_lshrrev_b32_e32 v25, 16, v7
405-
; ASM-GISEL-NEXT: v_cmp_ne_u32_e32 vcc_lo, 0, v20
406-
; ASM-GISEL-NEXT: v_lshrrev_b32_e32 v20, 16, v17
407-
; ASM-GISEL-NEXT: s_and_saveexec_b32 s0, vcc_lo
484+
; ASM-GISEL-NEXT: s_clause 0x15
485+
; ASM-GISEL-NEXT: scratch_load_b32 v33, off, s32
486+
; ASM-GISEL-NEXT: scratch_load_b32 v34, off, s32 offset:4
487+
; ASM-GISEL-NEXT: scratch_load_b32 v35, off, s32 offset:8
488+
; ASM-GISEL-NEXT: scratch_load_b32 v36, off, s32 offset:12
489+
; ASM-GISEL-NEXT: scratch_load_b32 v37, off, s32 offset:16
490+
; ASM-GISEL-NEXT: scratch_load_b32 v38, off, s32 offset:20
491+
; ASM-GISEL-NEXT: scratch_load_b32 v39, off, s32 offset:24
492+
; ASM-GISEL-NEXT: scratch_load_b32 v48, off, s32 offset:28
493+
; ASM-GISEL-NEXT: scratch_load_b32 v49, off, s32 offset:32
494+
; ASM-GISEL-NEXT: scratch_load_b32 v50, off, s32 offset:36
495+
; ASM-GISEL-NEXT: scratch_load_b32 v51, off, s32 offset:40
496+
; ASM-GISEL-NEXT: scratch_load_b32 v52, off, s32 offset:44
497+
; ASM-GISEL-NEXT: scratch_load_b32 v53, off, s32 offset:48
498+
; ASM-GISEL-NEXT: scratch_load_b32 v54, off, s32 offset:52
499+
; ASM-GISEL-NEXT: scratch_load_b32 v55, off, s32 offset:56
500+
; ASM-GISEL-NEXT: scratch_load_b32 v64, off, s32 offset:60
501+
; ASM-GISEL-NEXT: scratch_load_b32 v65, off, s32 offset:64
502+
; ASM-GISEL-NEXT: scratch_load_b32 v66, off, s32 offset:68
503+
; ASM-GISEL-NEXT: scratch_load_b32 v67, off, s32 offset:72
504+
; ASM-GISEL-NEXT: scratch_load_b32 v31, off, s32 offset:76
505+
; ASM-GISEL-NEXT: scratch_load_b32 v32, off, s32 offset:80
506+
; ASM-GISEL-NEXT: scratch_load_b32 v68, off, s32 offset:84
507+
; ASM-GISEL-NEXT: v_and_b32_e32 v1, 1, v1
508+
; ASM-GISEL-NEXT: s_mov_b32 s0, exec_lo
509+
; ASM-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)
510+
; ASM-GISEL-NEXT: v_cmpx_ne_u32_e32 0, v1
408511
; ASM-GISEL-NEXT: s_cbranch_execz .LBB3_2
409512
; ASM-GISEL-NEXT: ; %bb.1: ; %if.then
410-
; ASM-GISEL-NEXT: s_movk_i32 s1, 0x3e00
411-
; ASM-GISEL-NEXT: s_mov_b32 s2, 0
412-
; ASM-GISEL-NEXT: s_wait_alu 0xfffe
413-
; ASM-GISEL-NEXT: s_lshr_b32 s3, s0, 16
414-
; ASM-GISEL-NEXT: s_lshr_b32 s4, s0, 16
415-
; ASM-GISEL-NEXT: s_lshr_b32 s5, s0, 16
513+
; ASM-GISEL-NEXT: s_mov_b32 s1, 0
514+
; ASM-GISEL-NEXT: s_movk_i32 s2, 0x3e00
515+
; ASM-GISEL-NEXT: s_wait_loadcnt 0x0
416516
; ASM-GISEL-NEXT: s_wait_alu 0xfffe
417-
; ASM-GISEL-NEXT: v_dual_mov_b32 v25, s5 :: v_dual_add_nc_u32 v0, 15, v23
418-
; ASM-GISEL-NEXT: v_mov_b32_e32 v2, s1
419-
; ASM-GISEL-NEXT: v_mov_b32_e32 v6, s2
420-
; ASM-GISEL-NEXT: v_mov_b32_e32 v20, s3
421-
; ASM-GISEL-NEXT: v_mov_b32_e32 v24, s4
422-
; ASM-GISEL-NEXT: global_store_b32 v[21:22], v0, off
423-
; ASM-GISEL-NEXT: ; implicit-def: $vgpr0
424-
; ASM-GISEL-NEXT: ; implicit-def: $vgpr1
517+
; ASM-GISEL-NEXT: v_dual_mov_b32 v4, s2 :: v_dual_add_nc_u32 v1, 15, v68
518+
; ASM-GISEL-NEXT: v_mov_b32_e32 v8, s1
519+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr2
425520
; ASM-GISEL-NEXT: ; implicit-def: $vgpr3
426-
; ASM-GISEL-NEXT: ; implicit-def: $vgpr4
427521
; ASM-GISEL-NEXT: ; implicit-def: $vgpr5
428-
; ASM-GISEL-NEXT: ; implicit-def: $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12
429-
; ASM-GISEL-NEXT: ; implicit-def: $vgpr13_vgpr14_vgpr15_vgpr16
430-
; ASM-GISEL-NEXT: ; implicit-def: $vgpr17
431-
; ASM-GISEL-NEXT: ; implicit-def: $vgpr18
522+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr6
432523
; ASM-GISEL-NEXT: ; implicit-def: $vgpr7
524+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr9_vgpr10_vgpr11_vgpr12_vgpr13
525+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr14_vgpr15_vgpr16_vgpr17
526+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr18
433527
; ASM-GISEL-NEXT: ; implicit-def: $vgpr19
528+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr20
529+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr21
530+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr22
531+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr23
532+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr24
533+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr25
534+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr26
535+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr27
536+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr28
537+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr29
538+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr30
539+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr33
540+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr34
541+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr35
542+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr36
543+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr37
544+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr38
545+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr39
546+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr48
547+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr49
548+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr50
549+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr51
550+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr52
551+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr53
552+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr54
553+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr55
554+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr64
555+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr65
556+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr66
557+
; ASM-GISEL-NEXT: ; implicit-def: $vgpr67
558+
; ASM-GISEL-NEXT: global_store_b32 v[31:32], v1, off
434559
; ASM-GISEL-NEXT: .LBB3_2: ; %if.end
435560
; ASM-GISEL-NEXT: s_wait_alu 0xfffe
436561
; ASM-GISEL-NEXT: s_or_b32 exec_lo, exec_lo, s0
437-
; ASM-GISEL-NEXT: v_and_b32_e32 v17, 0xffff, v17
438-
; ASM-GISEL-NEXT: v_and_b32_e32 v18, 0xffff, v18
439-
; ASM-GISEL-NEXT: v_and_b32_e32 v7, 0xffff, v7
440-
; ASM-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)
441-
; ASM-GISEL-NEXT: v_lshl_or_b32 v20, v20, 16, v17
442-
; ASM-GISEL-NEXT: v_lshl_or_b32 v17, v24, 16, v18
443-
; ASM-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_3)
444-
; ASM-GISEL-NEXT: v_lshl_or_b32 v18, v25, 16, v7
445-
; ASM-GISEL-NEXT: v_dual_mov_b32 v7, v8 :: v_dual_mov_b32 v8, v9
446-
; ASM-GISEL-NEXT: v_dual_mov_b32 v9, v10 :: v_dual_mov_b32 v10, v11
447-
; ASM-GISEL-NEXT: v_dual_mov_b32 v11, v12 :: v_dual_mov_b32 v12, v13
448-
; ASM-GISEL-NEXT: v_dual_mov_b32 v13, v14 :: v_dual_mov_b32 v14, v15
449-
; ASM-GISEL-NEXT: v_dual_mov_b32 v15, v16 :: v_dual_mov_b32 v16, v20
562+
; ASM-GISEL-NEXT: s_clause 0x16
563+
; ASM-GISEL-NEXT: scratch_store_b8 v0, v2, off
564+
; ASM-GISEL-NEXT: scratch_store_b16 v0, v3, off offset:2
565+
; ASM-GISEL-NEXT: scratch_store_b16 v0, v4, off offset:4
566+
; ASM-GISEL-NEXT: scratch_store_b16 v0, v5, off offset:6
567+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v6, off offset:8
568+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v7, off offset:12
569+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v8, off offset:16
570+
; ASM-GISEL-NEXT: scratch_store_b128 v0, v[9:12], off offset:32
571+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v13, off offset:48
572+
; ASM-GISEL-NEXT: scratch_store_b128 v0, v[14:17], off offset:64
573+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v18, off offset:80
574+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v19, off offset:84
575+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v20, off offset:88
576+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v21, off offset:92
577+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v22, off offset:96
578+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v23, off offset:100
579+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v24, off offset:104
580+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v25, off offset:108
581+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v26, off offset:112
582+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v27, off offset:116
583+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v28, off offset:120
584+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v29, off offset:124
585+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v30, off offset:128
586+
; ASM-GISEL-NEXT: s_wait_loadcnt 0x15
587+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v33, off offset:132
588+
; ASM-GISEL-NEXT: s_wait_loadcnt 0x14
589+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v34, off offset:136
590+
; ASM-GISEL-NEXT: s_wait_loadcnt 0x13
591+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v35, off offset:140
592+
; ASM-GISEL-NEXT: s_wait_loadcnt 0x12
593+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v36, off offset:144
594+
; ASM-GISEL-NEXT: s_wait_loadcnt 0x11
595+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v37, off offset:148
596+
; ASM-GISEL-NEXT: s_wait_loadcnt 0x10
597+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v38, off offset:152
598+
; ASM-GISEL-NEXT: s_wait_loadcnt 0xf
599+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v39, off offset:156
600+
; ASM-GISEL-NEXT: s_wait_loadcnt 0xe
601+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v48, off offset:160
602+
; ASM-GISEL-NEXT: s_wait_loadcnt 0xd
603+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v49, off offset:164
604+
; ASM-GISEL-NEXT: s_wait_loadcnt 0xc
605+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v50, off offset:168
606+
; ASM-GISEL-NEXT: s_wait_loadcnt 0xb
607+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v51, off offset:172
608+
; ASM-GISEL-NEXT: s_wait_loadcnt 0xa
609+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v52, off offset:176
610+
; ASM-GISEL-NEXT: s_wait_loadcnt 0x9
611+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v53, off offset:180
612+
; ASM-GISEL-NEXT: s_wait_loadcnt 0x8
613+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v54, off offset:184
614+
; ASM-GISEL-NEXT: s_wait_loadcnt 0x7
615+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v55, off offset:188
616+
; ASM-GISEL-NEXT: s_wait_loadcnt 0x6
617+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v64, off offset:192
618+
; ASM-GISEL-NEXT: s_wait_loadcnt 0x5
619+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v65, off offset:196
620+
; ASM-GISEL-NEXT: s_wait_loadcnt 0x4
621+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v66, off offset:200
622+
; ASM-GISEL-NEXT: s_wait_loadcnt 0x3
623+
; ASM-GISEL-NEXT: scratch_store_b32 v0, v67, off offset:204
624+
; ASM-GISEL-NEXT: s_wait_loadcnt 0x0
450625
; ASM-GISEL-NEXT: s_setpc_b64 s[30:31]
451626
entry:
452627
br i1 %cond, label %if.then, label %if.end

0 commit comments

Comments
 (0)