@@ -1585,9 +1585,7 @@ define void @scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs_gep_i
15851585; GFX7-NEXT: v_lshr_b32_e64 v1, s32, 6
15861586; GFX7-NEXT: v_writelane_b32 v22, vcc_lo, 0
15871587; GFX7-NEXT: v_writelane_b32 v22, vcc_hi, 1
1588- ; GFX7-NEXT: s_movk_i32 vcc_lo, 0x4040
1589- ; GFX7-NEXT: v_add_i32_e32 v1, vcc, vcc_lo, v1
1590- ; GFX7-NEXT: v_add_i32_e32 v0, vcc, 0x200, v1
1588+ ; GFX7-NEXT: v_add_i32_e32 v0, vcc, 0x4240, v1
15911589; GFX7-NEXT: v_writelane_b32 v23, s59, 27
15921590; GFX7-NEXT: v_readfirstlane_b32 s59, v0
15931591; GFX7-NEXT: s_and_b64 vcc, 0, exec
@@ -1726,9 +1724,7 @@ define void @scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs_gep_i
17261724; GFX8-NEXT: v_lshrrev_b32_e64 v1, 6, s32
17271725; GFX8-NEXT: v_writelane_b32 v22, vcc_lo, 0
17281726; GFX8-NEXT: v_writelane_b32 v22, vcc_hi, 1
1729- ; GFX8-NEXT: s_movk_i32 vcc_lo, 0x4040
1730- ; GFX8-NEXT: v_add_u32_e32 v1, vcc, vcc_lo, v1
1731- ; GFX8-NEXT: v_add_u32_e32 v0, vcc, 0x200, v1
1727+ ; GFX8-NEXT: v_add_u32_e32 v0, vcc, 0x4240, v1
17321728; GFX8-NEXT: v_writelane_b32 v23, s59, 27
17331729; GFX8-NEXT: v_readfirstlane_b32 s59, v0
17341730; GFX8-NEXT: s_and_b64 vcc, 0, exec
@@ -1987,13 +1983,12 @@ define void @scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs_gep_i
19871983; GFX10_1-NEXT: v_lshrrev_b32_e64 v0, 5, s32
19881984; GFX10_1-NEXT: s_and_b32 s4, 0, exec_lo
19891985; GFX10_1-NEXT: v_writelane_b32 v23, s31, 1
1990- ; GFX10_1-NEXT: v_add_nc_u32_e32 v1, 0x4040 , v1
1986+ ; GFX10_1-NEXT: v_add_nc_u32_e32 v22, 0x4240 , v1
19911987; GFX10_1-NEXT: v_add_nc_u32_e32 v0, 64, v0
19921988; GFX10_1-NEXT: ;;#ASMSTART
19931989; GFX10_1-NEXT: ; use alloca0 v0
19941990; GFX10_1-NEXT: ;;#ASMEND
19951991; GFX10_1-NEXT: v_writelane_b32 v23, s33, 2
1996- ; GFX10_1-NEXT: v_add_nc_u32_e32 v22, 0x200, v1
19971992; GFX10_1-NEXT: v_writelane_b32 v23, s34, 3
19981993; GFX10_1-NEXT: v_writelane_b32 v23, s35, 4
19991994; GFX10_1-NEXT: v_writelane_b32 v23, s36, 5
@@ -2074,13 +2069,12 @@ define void @scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs_gep_i
20742069; GFX10_3-NEXT: v_lshrrev_b32_e64 v0, 5, s32
20752070; GFX10_3-NEXT: s_and_b32 s4, 0, exec_lo
20762071; GFX10_3-NEXT: v_writelane_b32 v23, s31, 1
2077- ; GFX10_3-NEXT: v_add_nc_u32_e32 v1, 0x4040 , v1
2072+ ; GFX10_3-NEXT: v_add_nc_u32_e32 v22, 0x4240 , v1
20782073; GFX10_3-NEXT: v_add_nc_u32_e32 v0, 64, v0
20792074; GFX10_3-NEXT: ;;#ASMSTART
20802075; GFX10_3-NEXT: ; use alloca0 v0
20812076; GFX10_3-NEXT: ;;#ASMEND
20822077; GFX10_3-NEXT: v_writelane_b32 v23, s33, 2
2083- ; GFX10_3-NEXT: v_add_nc_u32_e32 v22, 0x200, v1
20842078; GFX10_3-NEXT: v_writelane_b32 v23, s34, 3
20852079; GFX10_3-NEXT: v_writelane_b32 v23, s35, 4
20862080; GFX10_3-NEXT: v_writelane_b32 v23, s36, 5
@@ -2157,15 +2151,14 @@ define void @scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs_gep_i
21572151; GFX11-NEXT: s_mov_b32 exec_lo, s0
21582152; GFX11-NEXT: v_writelane_b32 v23, s30, 0
21592153; GFX11-NEXT: s_add_i32 s0, s32, 64
2160- ; GFX11-NEXT: s_delay_alu instid0(SALU_CYCLE_1)
2161- ; GFX11-NEXT: v_mov_b32_e32 v0, s0
2162- ; GFX11-NEXT: s_add_i32 s0, s32, 0x4040
2163- ; GFX11-NEXT: v_writelane_b32 v23, s31, 1
2164- ; GFX11-NEXT: v_add_nc_u32_e64 v22, 0x200, s0
2154+ ; GFX11-NEXT: s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_3) | instid1(VALU_DEP_2)
2155+ ; GFX11-NEXT: v_dual_mov_b32 v1, s32 :: v_dual_mov_b32 v0, s0
21652156; GFX11-NEXT: s_and_b32 s0, 0, exec_lo
2157+ ; GFX11-NEXT: v_writelane_b32 v23, s31, 1
21662158; GFX11-NEXT: ;;#ASMSTART
21672159; GFX11-NEXT: ; use alloca0 v0
21682160; GFX11-NEXT: ;;#ASMEND
2161+ ; GFX11-NEXT: v_add_nc_u32_e32 v22, 0x4240, v1
21692162; GFX11-NEXT: v_writelane_b32 v23, s33, 2
21702163; GFX11-NEXT: v_writelane_b32 v23, s34, 3
21712164; GFX11-NEXT: v_writelane_b32 v23, s35, 4
@@ -2247,15 +2240,14 @@ define void @scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs_gep_i
22472240; GFX12-NEXT: s_wait_alu 0xfffe
22482241; GFX12-NEXT: s_mov_b32 exec_lo, s0
22492242; GFX12-NEXT: v_writelane_b32 v23, s30, 0
2250- ; GFX12-NEXT: s_add_co_i32 s0, s32, 0x4000
2251- ; GFX12-NEXT: v_mov_b32_e32 v0, s32
2252- ; GFX12-NEXT: s_wait_alu 0xfffe
2253- ; GFX12-NEXT: v_add_nc_u32_e64 v22, 0x200, s0
2243+ ; GFX12-NEXT: v_dual_mov_b32 v0, s32 :: v_dual_mov_b32 v1, s32
22542244; GFX12-NEXT: s_and_b32 s0, 0, exec_lo
2255- ; GFX12-NEXT: v_writelane_b32 v23, s31, 1
22562245; GFX12-NEXT: ;;#ASMSTART
22572246; GFX12-NEXT: ; use alloca0 v0
22582247; GFX12-NEXT: ;;#ASMEND
2248+ ; GFX12-NEXT: v_writelane_b32 v23, s31, 1
2249+ ; GFX12-NEXT: s_delay_alu instid0(VALU_DEP_2)
2250+ ; GFX12-NEXT: v_add_nc_u32_e32 v22, 0x4200, v1
22592251; GFX12-NEXT: v_writelane_b32 v23, s33, 2
22602252; GFX12-NEXT: v_writelane_b32 v23, s34, 3
22612253; GFX12-NEXT: v_writelane_b32 v23, s35, 4
0 commit comments