@@ -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
346346define %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]
451626entry:
452627 br i1 %cond , label %if.then , label %if.end
0 commit comments