Skip to content

Commit 5c70421

Browse files
committed
Revert "Revert "[codegen,amdgpu] Enhance MIR DIE and re-arrange it for AMDGPU.""
This reverts commit 0e6fea3. Change-Id: I83f44e76a6aedceab7d723a2f6414e25057929e7
1 parent 7f46ac1 commit 5c70421

20 files changed

+878
-894
lines changed

llvm/lib/CodeGen/DeadMachineInstructionElim.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,15 @@ bool DeadMachineInstructionElim::isDead(const MachineInstr *MI) const {
8282
if (LivePhysRegs.test(Reg) || MRI->isReserved(Reg))
8383
return false;
8484
} else {
85+
if (MO.isDead()) {
86+
#ifndef NDEBUG
87+
// Sanity check on uses of this dead register. All of them should be
88+
// 'undef'.
89+
for (auto &U : MRI->use_nodbg_operands(Reg))
90+
assert(U.isUndef() && "'Undef' use on a 'dead' register is found!");
91+
#endif
92+
continue;
93+
}
8594
for (const MachineInstr &Use : MRI->use_nodbg_instructions(Reg)) {
8695
if (&Use != MI)
8796
// This def has a non-debug use. Don't delete the instruction!

llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1002,7 +1002,7 @@ void GCNPassConfig::addOptimizedRegAlloc() {
10021002
insertPass(&RegisterCoalescerID, &SIPreAllocateWWMRegsID, false);
10031003

10041004
if (EnableDCEInRA)
1005-
insertPass(&RenameIndependentSubregsID, &DeadMachineInstructionElimID);
1005+
insertPass(&DetectDeadLanesID, &DeadMachineInstructionElimID);
10061006

10071007
TargetPassConfig::addOptimizedRegAlloc();
10081008
}

llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.ll

Lines changed: 118 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -726,8 +726,10 @@ define void @dyn_insertelement_v8f64_const_s_v_v(double %val, i32 %idx) {
726726
; GPRIDX: ; %bb.0: ; %entry
727727
; GPRIDX-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
728728
; GPRIDX-NEXT: s_mov_b32 s18, 0
729-
; GPRIDX-NEXT: s_mov_b64 s[4:5], 1.0
730729
; GPRIDX-NEXT: s_mov_b32 s19, 0x40200000
730+
; GPRIDX-NEXT: buffer_store_dword v32, off, s[0:3], s32 offset:8 ; 4-byte Folded Spill
731+
; GPRIDX-NEXT: buffer_store_dword v33, off, s[0:3], s32 offset:4 ; 4-byte Folded Spill
732+
; GPRIDX-NEXT: buffer_store_dword v34, off, s[0:3], s32 ; 4-byte Folded Spill
731733
; GPRIDX-NEXT: s_mov_b32 s17, 0x401c0000
732734
; GPRIDX-NEXT: s_mov_b32 s16, s18
733735
; GPRIDX-NEXT: s_mov_b32 s15, 0x40180000
@@ -738,61 +740,59 @@ define void @dyn_insertelement_v8f64_const_s_v_v(double %val, i32 %idx) {
738740
; GPRIDX-NEXT: s_mov_b32 s9, 0x40080000
739741
; GPRIDX-NEXT: s_mov_b32 s8, s18
740742
; GPRIDX-NEXT: s_mov_b64 s[6:7], 2.0
741-
; GPRIDX-NEXT: v_mov_b32_e32 v3, s4
742-
; GPRIDX-NEXT: v_mov_b32_e32 v4, s5
743-
; GPRIDX-NEXT: v_mov_b32_e32 v5, s6
744-
; GPRIDX-NEXT: v_mov_b32_e32 v6, s7
745-
; GPRIDX-NEXT: v_mov_b32_e32 v7, s8
746-
; GPRIDX-NEXT: v_mov_b32_e32 v8, s9
747-
; GPRIDX-NEXT: v_mov_b32_e32 v9, s10
748-
; GPRIDX-NEXT: v_mov_b32_e32 v10, s11
749-
; GPRIDX-NEXT: v_mov_b32_e32 v11, s12
750-
; GPRIDX-NEXT: v_mov_b32_e32 v12, s13
751-
; GPRIDX-NEXT: v_mov_b32_e32 v13, s14
752-
; GPRIDX-NEXT: v_mov_b32_e32 v14, s15
753-
; GPRIDX-NEXT: v_mov_b32_e32 v15, s16
754-
; GPRIDX-NEXT: v_mov_b32_e32 v16, s17
755-
; GPRIDX-NEXT: v_mov_b32_e32 v17, s18
756-
; GPRIDX-NEXT: v_mov_b32_e32 v18, s19
743+
; GPRIDX-NEXT: s_mov_b64 s[4:5], 1.0
744+
; GPRIDX-NEXT: v_mov_b32_e32 v34, s19
745+
; GPRIDX-NEXT: v_mov_b32_e32 v33, s18
746+
; GPRIDX-NEXT: v_mov_b32_e32 v32, s17
747+
; GPRIDX-NEXT: v_mov_b32_e32 v31, s16
748+
; GPRIDX-NEXT: v_mov_b32_e32 v30, s15
749+
; GPRIDX-NEXT: v_mov_b32_e32 v29, s14
750+
; GPRIDX-NEXT: v_mov_b32_e32 v28, s13
751+
; GPRIDX-NEXT: v_mov_b32_e32 v27, s12
752+
; GPRIDX-NEXT: v_mov_b32_e32 v26, s11
753+
; GPRIDX-NEXT: v_mov_b32_e32 v25, s10
754+
; GPRIDX-NEXT: v_mov_b32_e32 v24, s9
755+
; GPRIDX-NEXT: v_mov_b32_e32 v23, s8
756+
; GPRIDX-NEXT: v_mov_b32_e32 v22, s7
757+
; GPRIDX-NEXT: v_mov_b32_e32 v21, s6
758+
; GPRIDX-NEXT: v_mov_b32_e32 v20, s5
759+
; GPRIDX-NEXT: v_mov_b32_e32 v19, s4
757760
; GPRIDX-NEXT: s_mov_b64 s[4:5], exec
758-
; GPRIDX-NEXT: buffer_store_dword v32, off, s[0:3], s32 offset:8 ; 4-byte Folded Spill
759-
; GPRIDX-NEXT: buffer_store_dword v33, off, s[0:3], s32 offset:4 ; 4-byte Folded Spill
760-
; GPRIDX-NEXT: buffer_store_dword v34, off, s[0:3], s32 ; 4-byte Folded Spill
761761
; GPRIDX-NEXT: BB13_1: ; =>This Inner Loop Header: Depth=1
762762
; GPRIDX-NEXT: v_readfirstlane_b32 s6, v2
763763
; GPRIDX-NEXT: s_lshl_b32 s7, s6, 1
764764
; GPRIDX-NEXT: v_cmp_eq_u32_e32 vcc, s6, v2
765765
; GPRIDX-NEXT: s_set_gpr_idx_on s7, gpr_idx(DST)
766-
; GPRIDX-NEXT: v_mov_b32_e32 v34, v18
767-
; GPRIDX-NEXT: v_mov_b32_e32 v33, v17
768-
; GPRIDX-NEXT: v_mov_b32_e32 v32, v16
769-
; GPRIDX-NEXT: v_mov_b32_e32 v31, v15
770-
; GPRIDX-NEXT: v_mov_b32_e32 v30, v14
771-
; GPRIDX-NEXT: v_mov_b32_e32 v29, v13
772-
; GPRIDX-NEXT: v_mov_b32_e32 v28, v12
773-
; GPRIDX-NEXT: v_mov_b32_e32 v27, v11
774-
; GPRIDX-NEXT: v_mov_b32_e32 v26, v10
775-
; GPRIDX-NEXT: v_mov_b32_e32 v25, v9
776-
; GPRIDX-NEXT: v_mov_b32_e32 v24, v8
777-
; GPRIDX-NEXT: v_mov_b32_e32 v23, v7
778-
; GPRIDX-NEXT: v_mov_b32_e32 v22, v6
779-
; GPRIDX-NEXT: v_mov_b32_e32 v21, v5
780-
; GPRIDX-NEXT: v_mov_b32_e32 v20, v4
781-
; GPRIDX-NEXT: v_mov_b32_e32 v19, v3
782-
; GPRIDX-NEXT: v_mov_b32_e32 v19, v0
766+
; GPRIDX-NEXT: v_mov_b32_e32 v3, v19
767+
; GPRIDX-NEXT: v_mov_b32_e32 v4, v20
768+
; GPRIDX-NEXT: v_mov_b32_e32 v5, v21
769+
; GPRIDX-NEXT: v_mov_b32_e32 v6, v22
770+
; GPRIDX-NEXT: v_mov_b32_e32 v7, v23
771+
; GPRIDX-NEXT: v_mov_b32_e32 v8, v24
772+
; GPRIDX-NEXT: v_mov_b32_e32 v9, v25
773+
; GPRIDX-NEXT: v_mov_b32_e32 v10, v26
774+
; GPRIDX-NEXT: v_mov_b32_e32 v11, v27
775+
; GPRIDX-NEXT: v_mov_b32_e32 v12, v28
776+
; GPRIDX-NEXT: v_mov_b32_e32 v13, v29
777+
; GPRIDX-NEXT: v_mov_b32_e32 v14, v30
778+
; GPRIDX-NEXT: v_mov_b32_e32 v15, v31
779+
; GPRIDX-NEXT: v_mov_b32_e32 v16, v32
780+
; GPRIDX-NEXT: v_mov_b32_e32 v17, v33
781+
; GPRIDX-NEXT: v_mov_b32_e32 v18, v34
782+
; GPRIDX-NEXT: v_mov_b32_e32 v3, v0
783783
; GPRIDX-NEXT: s_set_gpr_idx_off
784784
; GPRIDX-NEXT: s_set_gpr_idx_on s7, gpr_idx(DST)
785-
; GPRIDX-NEXT: v_mov_b32_e32 v20, v1
785+
; GPRIDX-NEXT: v_mov_b32_e32 v4, v1
786786
; GPRIDX-NEXT: s_set_gpr_idx_off
787787
; GPRIDX-NEXT: s_and_saveexec_b64 vcc, vcc
788788
; GPRIDX-NEXT: s_xor_b64 exec, exec, vcc
789789
; GPRIDX-NEXT: s_cbranch_execnz BB13_1
790790
; GPRIDX-NEXT: ; %bb.2:
791791
; GPRIDX-NEXT: s_mov_b64 exec, s[4:5]
792-
; GPRIDX-NEXT: global_store_dwordx4 v[0:1], v[19:22], off
793-
; GPRIDX-NEXT: global_store_dwordx4 v[0:1], v[23:26], off
794-
; GPRIDX-NEXT: global_store_dwordx4 v[0:1], v[27:30], off
795-
; GPRIDX-NEXT: global_store_dwordx4 v[0:1], v[31:34], off
792+
; GPRIDX-NEXT: global_store_dwordx4 v[0:1], v[3:6], off
793+
; GPRIDX-NEXT: global_store_dwordx4 v[0:1], v[7:10], off
794+
; GPRIDX-NEXT: global_store_dwordx4 v[0:1], v[11:14], off
795+
; GPRIDX-NEXT: global_store_dwordx4 v[0:1], v[15:18], off
796796
; GPRIDX-NEXT: buffer_load_dword v34, off, s[0:3], s32 ; 4-byte Folded Reload
797797
; GPRIDX-NEXT: buffer_load_dword v33, off, s[0:3], s32 offset:4 ; 4-byte Folded Reload
798798
; GPRIDX-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:8 ; 4-byte Folded Reload
@@ -906,58 +906,58 @@ define amdgpu_ps void @dyn_insertelement_v8f64_s_s_v(<8 x double> inreg %vec, do
906906
; GPRIDX-NEXT: s_mov_b32 s10, s12
907907
; GPRIDX-NEXT: s_mov_b32 s12, s14
908908
; GPRIDX-NEXT: s_mov_b32 s14, s16
909-
; GPRIDX-NEXT: v_mov_b32_e32 v16, s15
910-
; GPRIDX-NEXT: v_mov_b32_e32 v15, s14
911-
; GPRIDX-NEXT: v_mov_b32_e32 v14, s13
912-
; GPRIDX-NEXT: v_mov_b32_e32 v13, s12
913-
; GPRIDX-NEXT: v_mov_b32_e32 v12, s11
914-
; GPRIDX-NEXT: v_mov_b32_e32 v11, s10
915-
; GPRIDX-NEXT: v_mov_b32_e32 v10, s9
916-
; GPRIDX-NEXT: v_mov_b32_e32 v9, s8
917-
; GPRIDX-NEXT: v_mov_b32_e32 v8, s7
918-
; GPRIDX-NEXT: v_mov_b32_e32 v7, s6
919-
; GPRIDX-NEXT: v_mov_b32_e32 v6, s5
920-
; GPRIDX-NEXT: v_mov_b32_e32 v5, s4
921-
; GPRIDX-NEXT: v_mov_b32_e32 v4, s3
922-
; GPRIDX-NEXT: v_mov_b32_e32 v3, s2
923-
; GPRIDX-NEXT: v_mov_b32_e32 v2, s1
924-
; GPRIDX-NEXT: v_mov_b32_e32 v1, s0
909+
; GPRIDX-NEXT: v_mov_b32_e32 v32, s15
910+
; GPRIDX-NEXT: v_mov_b32_e32 v31, s14
911+
; GPRIDX-NEXT: v_mov_b32_e32 v30, s13
912+
; GPRIDX-NEXT: v_mov_b32_e32 v29, s12
913+
; GPRIDX-NEXT: v_mov_b32_e32 v28, s11
914+
; GPRIDX-NEXT: v_mov_b32_e32 v27, s10
915+
; GPRIDX-NEXT: v_mov_b32_e32 v26, s9
916+
; GPRIDX-NEXT: v_mov_b32_e32 v25, s8
917+
; GPRIDX-NEXT: v_mov_b32_e32 v24, s7
918+
; GPRIDX-NEXT: v_mov_b32_e32 v23, s6
919+
; GPRIDX-NEXT: v_mov_b32_e32 v22, s5
920+
; GPRIDX-NEXT: v_mov_b32_e32 v21, s4
921+
; GPRIDX-NEXT: v_mov_b32_e32 v20, s3
922+
; GPRIDX-NEXT: v_mov_b32_e32 v19, s2
923+
; GPRIDX-NEXT: v_mov_b32_e32 v18, s1
924+
; GPRIDX-NEXT: v_mov_b32_e32 v17, s0
925925
; GPRIDX-NEXT: s_mov_b64 s[0:1], exec
926926
; GPRIDX-NEXT: BB14_1: ; =>This Inner Loop Header: Depth=1
927927
; GPRIDX-NEXT: v_readfirstlane_b32 s2, v0
928928
; GPRIDX-NEXT: s_lshl_b32 s3, s2, 1
929929
; GPRIDX-NEXT: v_cmp_eq_u32_e32 vcc, s2, v0
930930
; GPRIDX-NEXT: s_set_gpr_idx_on s3, gpr_idx(DST)
931-
; GPRIDX-NEXT: v_mov_b32_e32 v32, v16
932-
; GPRIDX-NEXT: v_mov_b32_e32 v31, v15
933-
; GPRIDX-NEXT: v_mov_b32_e32 v30, v14
934-
; GPRIDX-NEXT: v_mov_b32_e32 v29, v13
935-
; GPRIDX-NEXT: v_mov_b32_e32 v28, v12
936-
; GPRIDX-NEXT: v_mov_b32_e32 v27, v11
937-
; GPRIDX-NEXT: v_mov_b32_e32 v26, v10
938-
; GPRIDX-NEXT: v_mov_b32_e32 v25, v9
939-
; GPRIDX-NEXT: v_mov_b32_e32 v24, v8
940-
; GPRIDX-NEXT: v_mov_b32_e32 v23, v7
941-
; GPRIDX-NEXT: v_mov_b32_e32 v22, v6
942-
; GPRIDX-NEXT: v_mov_b32_e32 v21, v5
943-
; GPRIDX-NEXT: v_mov_b32_e32 v20, v4
944-
; GPRIDX-NEXT: v_mov_b32_e32 v19, v3
945-
; GPRIDX-NEXT: v_mov_b32_e32 v18, v2
946-
; GPRIDX-NEXT: v_mov_b32_e32 v17, v1
947-
; GPRIDX-NEXT: v_mov_b32_e32 v17, s18
931+
; GPRIDX-NEXT: v_mov_b32_e32 v1, v17
932+
; GPRIDX-NEXT: v_mov_b32_e32 v2, v18
933+
; GPRIDX-NEXT: v_mov_b32_e32 v3, v19
934+
; GPRIDX-NEXT: v_mov_b32_e32 v4, v20
935+
; GPRIDX-NEXT: v_mov_b32_e32 v5, v21
936+
; GPRIDX-NEXT: v_mov_b32_e32 v6, v22
937+
; GPRIDX-NEXT: v_mov_b32_e32 v7, v23
938+
; GPRIDX-NEXT: v_mov_b32_e32 v8, v24
939+
; GPRIDX-NEXT: v_mov_b32_e32 v9, v25
940+
; GPRIDX-NEXT: v_mov_b32_e32 v10, v26
941+
; GPRIDX-NEXT: v_mov_b32_e32 v11, v27
942+
; GPRIDX-NEXT: v_mov_b32_e32 v12, v28
943+
; GPRIDX-NEXT: v_mov_b32_e32 v13, v29
944+
; GPRIDX-NEXT: v_mov_b32_e32 v14, v30
945+
; GPRIDX-NEXT: v_mov_b32_e32 v15, v31
946+
; GPRIDX-NEXT: v_mov_b32_e32 v16, v32
947+
; GPRIDX-NEXT: v_mov_b32_e32 v1, s18
948948
; GPRIDX-NEXT: s_set_gpr_idx_off
949949
; GPRIDX-NEXT: s_set_gpr_idx_on s3, gpr_idx(DST)
950-
; GPRIDX-NEXT: v_mov_b32_e32 v18, s19
950+
; GPRIDX-NEXT: v_mov_b32_e32 v2, s19
951951
; GPRIDX-NEXT: s_set_gpr_idx_off
952952
; GPRIDX-NEXT: s_and_saveexec_b64 vcc, vcc
953953
; GPRIDX-NEXT: s_xor_b64 exec, exec, vcc
954954
; GPRIDX-NEXT: s_cbranch_execnz BB14_1
955955
; GPRIDX-NEXT: ; %bb.2:
956956
; GPRIDX-NEXT: s_mov_b64 exec, s[0:1]
957-
; GPRIDX-NEXT: global_store_dwordx4 v[0:1], v[17:20], off
958-
; GPRIDX-NEXT: global_store_dwordx4 v[0:1], v[21:24], off
959-
; GPRIDX-NEXT: global_store_dwordx4 v[0:1], v[25:28], off
960-
; GPRIDX-NEXT: global_store_dwordx4 v[0:1], v[29:32], off
957+
; GPRIDX-NEXT: global_store_dwordx4 v[0:1], v[1:4], off
958+
; GPRIDX-NEXT: global_store_dwordx4 v[0:1], v[5:8], off
959+
; GPRIDX-NEXT: global_store_dwordx4 v[0:1], v[9:12], off
960+
; GPRIDX-NEXT: global_store_dwordx4 v[0:1], v[13:16], off
961961
; GPRIDX-NEXT: s_endpgm
962962
;
963963
; MOVREL-LABEL: dyn_insertelement_v8f64_s_s_v:
@@ -1204,58 +1204,58 @@ define amdgpu_ps void @dyn_insertelement_v8f64_s_v_v(<8 x double> inreg %vec, do
12041204
; GPRIDX-NEXT: s_mov_b32 s10, s12
12051205
; GPRIDX-NEXT: s_mov_b32 s12, s14
12061206
; GPRIDX-NEXT: s_mov_b32 s14, s16
1207-
; GPRIDX-NEXT: v_mov_b32_e32 v18, s15
1208-
; GPRIDX-NEXT: v_mov_b32_e32 v17, s14
1209-
; GPRIDX-NEXT: v_mov_b32_e32 v16, s13
1210-
; GPRIDX-NEXT: v_mov_b32_e32 v15, s12
1211-
; GPRIDX-NEXT: v_mov_b32_e32 v14, s11
1212-
; GPRIDX-NEXT: v_mov_b32_e32 v13, s10
1213-
; GPRIDX-NEXT: v_mov_b32_e32 v12, s9
1214-
; GPRIDX-NEXT: v_mov_b32_e32 v11, s8
1215-
; GPRIDX-NEXT: v_mov_b32_e32 v10, s7
1216-
; GPRIDX-NEXT: v_mov_b32_e32 v9, s6
1217-
; GPRIDX-NEXT: v_mov_b32_e32 v8, s5
1218-
; GPRIDX-NEXT: v_mov_b32_e32 v7, s4
1219-
; GPRIDX-NEXT: v_mov_b32_e32 v6, s3
1220-
; GPRIDX-NEXT: v_mov_b32_e32 v5, s2
1221-
; GPRIDX-NEXT: v_mov_b32_e32 v4, s1
1222-
; GPRIDX-NEXT: v_mov_b32_e32 v3, s0
1207+
; GPRIDX-NEXT: v_mov_b32_e32 v34, s15
1208+
; GPRIDX-NEXT: v_mov_b32_e32 v33, s14
1209+
; GPRIDX-NEXT: v_mov_b32_e32 v32, s13
1210+
; GPRIDX-NEXT: v_mov_b32_e32 v31, s12
1211+
; GPRIDX-NEXT: v_mov_b32_e32 v30, s11
1212+
; GPRIDX-NEXT: v_mov_b32_e32 v29, s10
1213+
; GPRIDX-NEXT: v_mov_b32_e32 v28, s9
1214+
; GPRIDX-NEXT: v_mov_b32_e32 v27, s8
1215+
; GPRIDX-NEXT: v_mov_b32_e32 v26, s7
1216+
; GPRIDX-NEXT: v_mov_b32_e32 v25, s6
1217+
; GPRIDX-NEXT: v_mov_b32_e32 v24, s5
1218+
; GPRIDX-NEXT: v_mov_b32_e32 v23, s4
1219+
; GPRIDX-NEXT: v_mov_b32_e32 v22, s3
1220+
; GPRIDX-NEXT: v_mov_b32_e32 v21, s2
1221+
; GPRIDX-NEXT: v_mov_b32_e32 v20, s1
1222+
; GPRIDX-NEXT: v_mov_b32_e32 v19, s0
12231223
; GPRIDX-NEXT: s_mov_b64 s[0:1], exec
12241224
; GPRIDX-NEXT: BB17_1: ; =>This Inner Loop Header: Depth=1
12251225
; GPRIDX-NEXT: v_readfirstlane_b32 s2, v2
12261226
; GPRIDX-NEXT: s_lshl_b32 s3, s2, 1
12271227
; GPRIDX-NEXT: v_cmp_eq_u32_e32 vcc, s2, v2
12281228
; GPRIDX-NEXT: s_set_gpr_idx_on s3, gpr_idx(DST)
1229-
; GPRIDX-NEXT: v_mov_b32_e32 v34, v18
1230-
; GPRIDX-NEXT: v_mov_b32_e32 v33, v17
1231-
; GPRIDX-NEXT: v_mov_b32_e32 v32, v16
1232-
; GPRIDX-NEXT: v_mov_b32_e32 v31, v15
1233-
; GPRIDX-NEXT: v_mov_b32_e32 v30, v14
1234-
; GPRIDX-NEXT: v_mov_b32_e32 v29, v13
1235-
; GPRIDX-NEXT: v_mov_b32_e32 v28, v12
1236-
; GPRIDX-NEXT: v_mov_b32_e32 v27, v11
1237-
; GPRIDX-NEXT: v_mov_b32_e32 v26, v10
1238-
; GPRIDX-NEXT: v_mov_b32_e32 v25, v9
1239-
; GPRIDX-NEXT: v_mov_b32_e32 v24, v8
1240-
; GPRIDX-NEXT: v_mov_b32_e32 v23, v7
1241-
; GPRIDX-NEXT: v_mov_b32_e32 v22, v6
1242-
; GPRIDX-NEXT: v_mov_b32_e32 v21, v5
1243-
; GPRIDX-NEXT: v_mov_b32_e32 v20, v4
1244-
; GPRIDX-NEXT: v_mov_b32_e32 v19, v3
1245-
; GPRIDX-NEXT: v_mov_b32_e32 v19, v0
1229+
; GPRIDX-NEXT: v_mov_b32_e32 v3, v19
1230+
; GPRIDX-NEXT: v_mov_b32_e32 v4, v20
1231+
; GPRIDX-NEXT: v_mov_b32_e32 v5, v21
1232+
; GPRIDX-NEXT: v_mov_b32_e32 v6, v22
1233+
; GPRIDX-NEXT: v_mov_b32_e32 v7, v23
1234+
; GPRIDX-NEXT: v_mov_b32_e32 v8, v24
1235+
; GPRIDX-NEXT: v_mov_b32_e32 v9, v25
1236+
; GPRIDX-NEXT: v_mov_b32_e32 v10, v26
1237+
; GPRIDX-NEXT: v_mov_b32_e32 v11, v27
1238+
; GPRIDX-NEXT: v_mov_b32_e32 v12, v28
1239+
; GPRIDX-NEXT: v_mov_b32_e32 v13, v29
1240+
; GPRIDX-NEXT: v_mov_b32_e32 v14, v30
1241+
; GPRIDX-NEXT: v_mov_b32_e32 v15, v31
1242+
; GPRIDX-NEXT: v_mov_b32_e32 v16, v32
1243+
; GPRIDX-NEXT: v_mov_b32_e32 v17, v33
1244+
; GPRIDX-NEXT: v_mov_b32_e32 v18, v34
1245+
; GPRIDX-NEXT: v_mov_b32_e32 v3, v0
12461246
; GPRIDX-NEXT: s_set_gpr_idx_off
12471247
; GPRIDX-NEXT: s_set_gpr_idx_on s3, gpr_idx(DST)
1248-
; GPRIDX-NEXT: v_mov_b32_e32 v20, v1
1248+
; GPRIDX-NEXT: v_mov_b32_e32 v4, v1
12491249
; GPRIDX-NEXT: s_set_gpr_idx_off
12501250
; GPRIDX-NEXT: s_and_saveexec_b64 vcc, vcc
12511251
; GPRIDX-NEXT: s_xor_b64 exec, exec, vcc
12521252
; GPRIDX-NEXT: s_cbranch_execnz BB17_1
12531253
; GPRIDX-NEXT: ; %bb.2:
12541254
; GPRIDX-NEXT: s_mov_b64 exec, s[0:1]
1255-
; GPRIDX-NEXT: global_store_dwordx4 v[0:1], v[19:22], off
1256-
; GPRIDX-NEXT: global_store_dwordx4 v[0:1], v[23:26], off
1257-
; GPRIDX-NEXT: global_store_dwordx4 v[0:1], v[27:30], off
1258-
; GPRIDX-NEXT: global_store_dwordx4 v[0:1], v[31:34], off
1255+
; GPRIDX-NEXT: global_store_dwordx4 v[0:1], v[3:6], off
1256+
; GPRIDX-NEXT: global_store_dwordx4 v[0:1], v[7:10], off
1257+
; GPRIDX-NEXT: global_store_dwordx4 v[0:1], v[11:14], off
1258+
; GPRIDX-NEXT: global_store_dwordx4 v[0:1], v[15:18], off
12591259
; GPRIDX-NEXT: s_endpgm
12601260
;
12611261
; MOVREL-LABEL: dyn_insertelement_v8f64_s_v_v:

0 commit comments

Comments
 (0)