@@ -283,21 +283,21 @@ define i128 @v_sdiv_i128_vv(i128 %lhs, i128 %rhs) {
283283; GFX9-O0-NEXT: ; kill: def $vgpr15 killed $vgpr15 def $vgpr15_vgpr16 killed $exec
284284; GFX9-O0-NEXT: v_mov_b32_e32 v16, v1
285285; GFX9-O0-NEXT: v_mov_b32_e32 v9, v15
286- ; GFX9-O0-NEXT: v_mov_b32_e32 v1 , v16
286+ ; GFX9-O0-NEXT: v_mov_b32_e32 v5 , v16
287287; GFX9-O0-NEXT: v_mov_b32_e32 v10, v13
288- ; GFX9-O0-NEXT: v_mov_b32_e32 v5 , v14
288+ ; GFX9-O0-NEXT: v_mov_b32_e32 v1 , v14
289289; GFX9-O0-NEXT: v_sub_co_u32_e32 v9, vcc, v9, v4
290- ; GFX9-O0-NEXT: v_subb_co_u32_e32 v1, vcc, v1, v6, vcc
291- ; GFX9-O0-NEXT: v_subb_co_u32_e32 v13, vcc, v10, v4, vcc
292290; GFX9-O0-NEXT: v_subb_co_u32_e32 v5, vcc, v5, v6, vcc
291+ ; GFX9-O0-NEXT: v_subb_co_u32_e32 v13, vcc, v10, v4, vcc
292+ ; GFX9-O0-NEXT: v_subb_co_u32_e32 v1, vcc, v1, v6, vcc
293293; GFX9-O0-NEXT: ; implicit-def: $sgpr4
294294; GFX9-O0-NEXT: ; implicit-def: $sgpr4
295- ; GFX9-O0-NEXT: ; kill: def $vgpr13 killed $vgpr13 def $vgpr13_vgpr14 killed $exec
296- ; GFX9-O0-NEXT: v_mov_b32_e32 v14 , v5
295+ ; GFX9-O0-NEXT: ; kill: def $vgpr9 killed $vgpr9 def $vgpr9_vgpr10 killed $exec
296+ ; GFX9-O0-NEXT: v_mov_b32_e32 v10 , v5
297297; GFX9-O0-NEXT: ; implicit-def: $sgpr4
298298; GFX9-O0-NEXT: ; implicit-def: $sgpr4
299- ; GFX9-O0-NEXT: ; kill: def $vgpr9 killed $vgpr9 def $vgpr9_vgpr10 killed $exec
300- ; GFX9-O0-NEXT: v_mov_b32_e32 v10 , v1
299+ ; GFX9-O0-NEXT: ; kill: def $vgpr13 killed $vgpr13 def $vgpr13_vgpr14 killed $exec
300+ ; GFX9-O0-NEXT: v_mov_b32_e32 v14 , v1
301301; GFX9-O0-NEXT: v_mov_b32_e32 v1, v3
302302; GFX9-O0-NEXT: v_mov_b32_e32 v5, v12
303303; GFX9-O0-NEXT: v_xor_b32_e64 v1, v5, v1
@@ -313,21 +313,21 @@ define i128 @v_sdiv_i128_vv(i128 %lhs, i128 %rhs) {
313313; GFX9-O0-NEXT: ; kill: def $vgpr7 killed $vgpr7 def $vgpr7_vgpr8 killed $exec
314314; GFX9-O0-NEXT: v_mov_b32_e32 v8, v1
315315; GFX9-O0-NEXT: v_mov_b32_e32 v1, v7
316- ; GFX9-O0-NEXT: v_mov_b32_e32 v7, v8
317- ; GFX9-O0-NEXT: v_mov_b32_e32 v8 , v11
316+ ; GFX9-O0-NEXT: ; kill: def $vgpr8 killed $vgpr8 killed $vgpr7_vgpr8 killed $exec
317+ ; GFX9-O0-NEXT: v_mov_b32_e32 v7 , v11
318318; GFX9-O0-NEXT: v_mov_b32_e32 v2, v12
319319; GFX9-O0-NEXT: v_sub_co_u32_e32 v1, vcc, v1, v3
320- ; GFX9-O0-NEXT: v_subb_co_u32_e32 v7 , vcc, v7 , v5, vcc
321- ; GFX9-O0-NEXT: v_subb_co_u32_e32 v11, vcc, v8 , v3, vcc
322- ; GFX9-O0-NEXT: v_subb_co_u32_e32 v2 , vcc, v2, v5, vcc
320+ ; GFX9-O0-NEXT: v_subb_co_u32_e32 v8 , vcc, v8 , v5, vcc
321+ ; GFX9-O0-NEXT: v_subb_co_u32_e32 v11, vcc, v7 , v3, vcc
322+ ; GFX9-O0-NEXT: v_subb_co_u32_e32 v7 , vcc, v2, v5, vcc
323323; GFX9-O0-NEXT: ; implicit-def: $sgpr4
324324; GFX9-O0-NEXT: ; implicit-def: $sgpr4
325- ; GFX9-O0-NEXT: ; kill: def $vgpr11 killed $vgpr11 def $vgpr11_vgpr12 killed $exec
326- ; GFX9-O0-NEXT: v_mov_b32_e32 v12, v2
325+ ; GFX9-O0-NEXT: ; kill: def $vgpr1 killed $vgpr1 def $vgpr1_vgpr2 killed $exec
326+ ; GFX9-O0-NEXT: v_mov_b32_e32 v2, v8
327327; GFX9-O0-NEXT: ; implicit-def: $sgpr4
328328; GFX9-O0-NEXT: ; implicit-def: $sgpr4
329- ; GFX9-O0-NEXT: ; kill: def $vgpr1 killed $vgpr1 def $vgpr1_vgpr2 killed $exec
330- ; GFX9-O0-NEXT: v_mov_b32_e32 v2 , v7
329+ ; GFX9-O0-NEXT: ; kill: def $vgpr11 killed $vgpr11 def $vgpr11_vgpr12 killed $exec
330+ ; GFX9-O0-NEXT: v_mov_b32_e32 v12 , v7
331331; GFX9-O0-NEXT: v_xor_b32_e64 v5, v5, v6
332332; GFX9-O0-NEXT: v_xor_b32_e64 v3, v3, v4
333333; GFX9-O0-NEXT: ; kill: def $vgpr3 killed $vgpr3 def $vgpr3_vgpr4 killed $exec
@@ -340,18 +340,26 @@ define i128 @v_sdiv_i128_vv(i128 %lhs, i128 %rhs) {
340340; GFX9-O0-NEXT: buffer_store_dword v3, off, s[0:3], s32 offset:68 ; 4-byte Folded Spill
341341; GFX9-O0-NEXT: s_waitcnt vmcnt(0)
342342; GFX9-O0-NEXT: buffer_store_dword v4, off, s[0:3], s32 offset:72 ; 4-byte Folded Spill
343- ; GFX9-O0-NEXT: buffer_store_dword v1, off, s[0:3], s32 offset:60 ; 4-byte Folded Spill
343+ ; GFX9-O0-NEXT: v_mov_b32_e32 v3, v11
344+ ; GFX9-O0-NEXT: v_mov_b32_e32 v4, v12
345+ ; GFX9-O0-NEXT: buffer_store_dword v3, off, s[0:3], s32 offset:60 ; 4-byte Folded Spill
344346; GFX9-O0-NEXT: s_waitcnt vmcnt(0)
345- ; GFX9-O0-NEXT: buffer_store_dword v2, off, s[0:3], s32 offset:64 ; 4-byte Folded Spill
346- ; GFX9-O0-NEXT: buffer_store_dword v11, off, s[0:3], s32 offset:52 ; 4-byte Folded Spill
347+ ; GFX9-O0-NEXT: buffer_store_dword v4, off, s[0:3], s32 offset:64 ; 4-byte Folded Spill
348+ ; GFX9-O0-NEXT: v_mov_b32_e32 v4, v2
349+ ; GFX9-O0-NEXT: v_mov_b32_e32 v3, v1
350+ ; GFX9-O0-NEXT: buffer_store_dword v3, off, s[0:3], s32 offset:52 ; 4-byte Folded Spill
347351; GFX9-O0-NEXT: s_waitcnt vmcnt(0)
348- ; GFX9-O0-NEXT: buffer_store_dword v12, off, s[0:3], s32 offset:56 ; 4-byte Folded Spill
349- ; GFX9-O0-NEXT: buffer_store_dword v9, off, s[0:3], s32 offset:44 ; 4-byte Folded Spill
352+ ; GFX9-O0-NEXT: buffer_store_dword v4, off, s[0:3], s32 offset:56 ; 4-byte Folded Spill
353+ ; GFX9-O0-NEXT: v_mov_b32_e32 v3, v13
354+ ; GFX9-O0-NEXT: v_mov_b32_e32 v4, v14
355+ ; GFX9-O0-NEXT: buffer_store_dword v3, off, s[0:3], s32 offset:44 ; 4-byte Folded Spill
350356; GFX9-O0-NEXT: s_waitcnt vmcnt(0)
351- ; GFX9-O0-NEXT: buffer_store_dword v10, off, s[0:3], s32 offset:48 ; 4-byte Folded Spill
352- ; GFX9-O0-NEXT: buffer_store_dword v13, off, s[0:3], s32 offset:36 ; 4-byte Folded Spill
357+ ; GFX9-O0-NEXT: buffer_store_dword v4, off, s[0:3], s32 offset:48 ; 4-byte Folded Spill
358+ ; GFX9-O0-NEXT: v_mov_b32_e32 v3, v9
359+ ; GFX9-O0-NEXT: v_mov_b32_e32 v4, v10
360+ ; GFX9-O0-NEXT: buffer_store_dword v3, off, s[0:3], s32 offset:36 ; 4-byte Folded Spill
353361; GFX9-O0-NEXT: s_waitcnt vmcnt(0)
354- ; GFX9-O0-NEXT: buffer_store_dword v14 , off, s[0:3], s32 offset:40 ; 4-byte Folded Spill
362+ ; GFX9-O0-NEXT: buffer_store_dword v4 , off, s[0:3], s32 offset:40 ; 4-byte Folded Spill
355363; GFX9-O0-NEXT: v_mov_b32_e32 v7, v12
356364; GFX9-O0-NEXT: v_mov_b32_e32 v8, v2
357365; GFX9-O0-NEXT: v_or_b32_e64 v3, v8, v7
@@ -404,7 +412,8 @@ define i128 @v_sdiv_i128_vv(i128 %lhs, i128 %rhs) {
404412; GFX9-O0-NEXT: ; kill: def $vgpr8 killed $vgpr8 def $vgpr8_vgpr9 killed $exec
405413; GFX9-O0-NEXT: v_mov_b32_e32 v9, v5
406414; GFX9-O0-NEXT: v_mov_b32_e32 v5, v9
407- ; GFX9-O0-NEXT: v_cmp_ne_u64_e64 s[12:13], v[11:12], s[6:7]
415+ ; GFX9-O0-NEXT: s_mov_b64 s[12:13], s[6:7]
416+ ; GFX9-O0-NEXT: v_cmp_ne_u64_e64 s[12:13], v[11:12], s[12:13]
408417; GFX9-O0-NEXT: v_cndmask_b32_e64 v5, v5, v10, s[12:13]
409418; GFX9-O0-NEXT: v_mov_b32_e32 v7, v6
410419; GFX9-O0-NEXT: v_mov_b32_e32 v6, v8
@@ -440,7 +449,8 @@ define i128 @v_sdiv_i128_vv(i128 %lhs, i128 %rhs) {
440449; GFX9-O0-NEXT: ; kill: def $vgpr11 killed $vgpr11 def $vgpr11_vgpr12 killed $exec
441450; GFX9-O0-NEXT: v_mov_b32_e32 v12, v5
442451; GFX9-O0-NEXT: v_mov_b32_e32 v5, v12
443- ; GFX9-O0-NEXT: v_cmp_ne_u64_e64 s[8:9], v[13:14], s[6:7]
452+ ; GFX9-O0-NEXT: s_mov_b64 s[8:9], s[6:7]
453+ ; GFX9-O0-NEXT: v_cmp_ne_u64_e64 s[8:9], v[13:14], s[8:9]
444454; GFX9-O0-NEXT: v_cndmask_b32_e64 v5, v5, v8, s[8:9]
445455; GFX9-O0-NEXT: v_mov_b32_e32 v7, v6
446456; GFX9-O0-NEXT: v_mov_b32_e32 v6, v11
@@ -691,10 +701,10 @@ define i128 @v_sdiv_i128_vv(i128 %lhs, i128 %rhs) {
691701; GFX9-O0-NEXT: buffer_load_dword v28, off, s[0:3], s32 offset:260 ; 4-byte Folded Reload
692702; GFX9-O0-NEXT: buffer_load_dword v25, off, s[0:3], s32 offset:264 ; 4-byte Folded Reload
693703; GFX9-O0-NEXT: buffer_load_dword v26, off, s[0:3], s32 offset:268 ; 4-byte Folded Reload
694- ; GFX9-O0-NEXT: buffer_load_dword v19, off, s[0:3], s32 offset:60 ; 4-byte Folded Reload
695- ; GFX9-O0-NEXT: buffer_load_dword v20, off, s[0:3], s32 offset:64 ; 4-byte Folded Reload
696- ; GFX9-O0-NEXT: buffer_load_dword v21, off, s[0:3], s32 offset:52 ; 4-byte Folded Reload
697- ; GFX9-O0-NEXT: buffer_load_dword v22, off, s[0:3], s32 offset:56 ; 4-byte Folded Reload
704+ ; GFX9-O0-NEXT: buffer_load_dword v19, off, s[0:3], s32 offset:52 ; 4-byte Folded Reload
705+ ; GFX9-O0-NEXT: buffer_load_dword v20, off, s[0:3], s32 offset:56 ; 4-byte Folded Reload
706+ ; GFX9-O0-NEXT: buffer_load_dword v21, off, s[0:3], s32 offset:60 ; 4-byte Folded Reload
707+ ; GFX9-O0-NEXT: buffer_load_dword v22, off, s[0:3], s32 offset:64 ; 4-byte Folded Reload
698708; GFX9-O0-NEXT: buffer_load_dword v14, off, s[0:3], s32 offset:272 ; 4-byte Folded Reload
699709; GFX9-O0-NEXT: buffer_load_dword v15, off, s[0:3], s32 offset:276 ; 4-byte Folded Reload
700710; GFX9-O0-NEXT: buffer_load_dword v11, off, s[0:3], s32 offset:280 ; 4-byte Folded Reload
@@ -904,14 +914,14 @@ define i128 @v_sdiv_i128_vv(i128 %lhs, i128 %rhs) {
904914; GFX9-O0-NEXT: s_or_saveexec_b64 s[18:19], -1
905915; GFX9-O0-NEXT: buffer_load_dword v16, off, s[0:3], s32 ; 4-byte Folded Reload
906916; GFX9-O0-NEXT: s_mov_b64 exec, s[18:19]
907- ; GFX9-O0-NEXT: buffer_load_dword v17, off, s[0:3], s32 offset:52 ; 4-byte Folded Reload
908- ; GFX9-O0-NEXT: buffer_load_dword v18, off, s[0:3], s32 offset:56 ; 4-byte Folded Reload
909- ; GFX9-O0-NEXT: buffer_load_dword v13, off, s[0:3], s32 offset:60 ; 4-byte Folded Reload
910- ; GFX9-O0-NEXT: buffer_load_dword v14, off, s[0:3], s32 offset:64 ; 4-byte Folded Reload
911- ; GFX9-O0-NEXT: buffer_load_dword v19, off, s[0:3], s32 offset:36 ; 4-byte Folded Reload
912- ; GFX9-O0-NEXT: buffer_load_dword v20, off, s[0:3], s32 offset:40 ; 4-byte Folded Reload
913- ; GFX9-O0-NEXT: buffer_load_dword v21, off, s[0:3], s32 offset:44 ; 4-byte Folded Reload
914- ; GFX9-O0-NEXT: buffer_load_dword v22, off, s[0:3], s32 offset:48 ; 4-byte Folded Reload
917+ ; GFX9-O0-NEXT: buffer_load_dword v17, off, s[0:3], s32 offset:60 ; 4-byte Folded Reload
918+ ; GFX9-O0-NEXT: buffer_load_dword v18, off, s[0:3], s32 offset:64 ; 4-byte Folded Reload
919+ ; GFX9-O0-NEXT: buffer_load_dword v13, off, s[0:3], s32 offset:52 ; 4-byte Folded Reload
920+ ; GFX9-O0-NEXT: buffer_load_dword v14, off, s[0:3], s32 offset:56 ; 4-byte Folded Reload
921+ ; GFX9-O0-NEXT: buffer_load_dword v19, off, s[0:3], s32 offset:44 ; 4-byte Folded Reload
922+ ; GFX9-O0-NEXT: buffer_load_dword v20, off, s[0:3], s32 offset:48 ; 4-byte Folded Reload
923+ ; GFX9-O0-NEXT: buffer_load_dword v21, off, s[0:3], s32 offset:36 ; 4-byte Folded Reload
924+ ; GFX9-O0-NEXT: buffer_load_dword v22, off, s[0:3], s32 offset:40 ; 4-byte Folded Reload
915925; GFX9-O0-NEXT: s_waitcnt vmcnt(9)
916926; GFX9-O0-NEXT: v_mov_b32_e32 v4, v10
917927; GFX9-O0-NEXT: s_waitcnt vmcnt(0)
@@ -1029,10 +1039,10 @@ define i128 @v_sdiv_i128_vv(i128 %lhs, i128 %rhs) {
10291039; GFX9-O0-NEXT: s_or_saveexec_b64 s[18:19], -1
10301040; GFX9-O0-NEXT: buffer_load_dword v0, off, s[0:3], s32 ; 4-byte Folded Reload
10311041; GFX9-O0-NEXT: s_mov_b64 exec, s[18:19]
1032- ; GFX9-O0-NEXT: buffer_load_dword v7, off, s[0:3], s32 offset:44 ; 4-byte Folded Reload
1033- ; GFX9-O0-NEXT: buffer_load_dword v8, off, s[0:3], s32 offset:48 ; 4-byte Folded Reload
1034- ; GFX9-O0-NEXT: buffer_load_dword v11, off, s[0:3], s32 offset:36 ; 4-byte Folded Reload
1035- ; GFX9-O0-NEXT: buffer_load_dword v12, off, s[0:3], s32 offset:40 ; 4-byte Folded Reload
1042+ ; GFX9-O0-NEXT: buffer_load_dword v7, off, s[0:3], s32 offset:36 ; 4-byte Folded Reload
1043+ ; GFX9-O0-NEXT: buffer_load_dword v8, off, s[0:3], s32 offset:40 ; 4-byte Folded Reload
1044+ ; GFX9-O0-NEXT: buffer_load_dword v11, off, s[0:3], s32 offset:44 ; 4-byte Folded Reload
1045+ ; GFX9-O0-NEXT: buffer_load_dword v12, off, s[0:3], s32 offset:48 ; 4-byte Folded Reload
10361046; GFX9-O0-NEXT: buffer_load_dword v5, off, s[0:3], s32 offset:28 ; 4-byte Folded Reload
10371047; GFX9-O0-NEXT: buffer_load_dword v6, off, s[0:3], s32 offset:32 ; 4-byte Folded Reload
10381048; GFX9-O0-NEXT: buffer_load_dword v1, off, s[0:3], s32 offset:20 ; 4-byte Folded Reload
0 commit comments