@@ -3607,9 +3607,9 @@ define void @s_shuffle_v4f32_v2f32__3_3_3_0() {
36073607; GFX90A-NEXT: ;;#ASMSTART
36083608; GFX90A-NEXT: ; def s[4:5]
36093609; GFX90A-NEXT: ;;#ASMEND
3610+ ; GFX90A-NEXT: s_mov_b32 s8, s9
36103611; GFX90A-NEXT: s_mov_b32 s10, s9
36113612; GFX90A-NEXT: s_mov_b32 s11, s4
3612- ; GFX90A-NEXT: s_mov_b32 s8, s9
36133613; GFX90A-NEXT: ;;#ASMSTART
36143614; GFX90A-NEXT: ; use s[8:11]
36153615; GFX90A-NEXT: ;;#ASMEND
@@ -3624,9 +3624,9 @@ define void @s_shuffle_v4f32_v2f32__3_3_3_0() {
36243624; GFX940-NEXT: ;;#ASMSTART
36253625; GFX940-NEXT: ; def s[0:1]
36263626; GFX940-NEXT: ;;#ASMEND
3627+ ; GFX940-NEXT: s_mov_b32 s8, s9
36273628; GFX940-NEXT: s_mov_b32 s10, s9
36283629; GFX940-NEXT: s_mov_b32 s11, s0
3629- ; GFX940-NEXT: s_mov_b32 s8, s9
36303630; GFX940-NEXT: ;;#ASMSTART
36313631; GFX940-NEXT: ; use s[8:11]
36323632; GFX940-NEXT: ;;#ASMEND
@@ -3677,19 +3677,35 @@ define void @s_shuffle_v4f32_v2f32__3_3_3_2() {
36773677; GFX900-NEXT: ;;#ASMEND
36783678; GFX900-NEXT: s_setpc_b64 s[30:31]
36793679;
3680- ; GFX90APLUS-LABEL: s_shuffle_v4f32_v2f32__3_3_3_2:
3681- ; GFX90APLUS: ; %bb.0:
3682- ; GFX90APLUS-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3683- ; GFX90APLUS-NEXT: ;;#ASMSTART
3684- ; GFX90APLUS-NEXT: ; def s[8:9]
3685- ; GFX90APLUS-NEXT: ;;#ASMEND
3686- ; GFX90APLUS-NEXT: s_mov_b32 s10, s9
3687- ; GFX90APLUS-NEXT: s_mov_b32 s11, s8
3688- ; GFX90APLUS-NEXT: s_mov_b32 s8, s9
3689- ; GFX90APLUS-NEXT: ;;#ASMSTART
3690- ; GFX90APLUS-NEXT: ; use s[8:11]
3691- ; GFX90APLUS-NEXT: ;;#ASMEND
3692- ; GFX90APLUS-NEXT: s_setpc_b64 s[30:31]
3680+ ; GFX90A-LABEL: s_shuffle_v4f32_v2f32__3_3_3_2:
3681+ ; GFX90A: ; %bb.0:
3682+ ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3683+ ; GFX90A-NEXT: ;;#ASMSTART
3684+ ; GFX90A-NEXT: ; def s[4:5]
3685+ ; GFX90A-NEXT: ;;#ASMEND
3686+ ; GFX90A-NEXT: s_mov_b32 s8, s5
3687+ ; GFX90A-NEXT: s_mov_b32 s9, s5
3688+ ; GFX90A-NEXT: s_mov_b32 s10, s5
3689+ ; GFX90A-NEXT: s_mov_b32 s11, s4
3690+ ; GFX90A-NEXT: ;;#ASMSTART
3691+ ; GFX90A-NEXT: ; use s[8:11]
3692+ ; GFX90A-NEXT: ;;#ASMEND
3693+ ; GFX90A-NEXT: s_setpc_b64 s[30:31]
3694+ ;
3695+ ; GFX940-LABEL: s_shuffle_v4f32_v2f32__3_3_3_2:
3696+ ; GFX940: ; %bb.0:
3697+ ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3698+ ; GFX940-NEXT: ;;#ASMSTART
3699+ ; GFX940-NEXT: ; def s[0:1]
3700+ ; GFX940-NEXT: ;;#ASMEND
3701+ ; GFX940-NEXT: s_mov_b32 s8, s1
3702+ ; GFX940-NEXT: s_mov_b32 s9, s1
3703+ ; GFX940-NEXT: s_mov_b32 s10, s1
3704+ ; GFX940-NEXT: s_mov_b32 s11, s0
3705+ ; GFX940-NEXT: ;;#ASMSTART
3706+ ; GFX940-NEXT: ; use s[8:11]
3707+ ; GFX940-NEXT: ;;#ASMEND
3708+ ; GFX940-NEXT: s_setpc_b64 s[30:31]
36933709 %vec0 = call <2 x float > asm "; def $0" , "=s" ()
36943710 %vec1 = call <2 x float > asm "; def $0" , "=s" ()
36953711 %shuf = shufflevector <2 x float > %vec0 , <2 x float > %vec1 , <4 x i32 > <i32 3 , i32 3 , i32 3 , i32 2 >
@@ -4130,9 +4146,9 @@ define void @s_shuffle_v4f32_v2f32__3_3_1_0() {
41304146; GFX90A-NEXT: ;;#ASMSTART
41314147; GFX90A-NEXT: ; def s[4:5]
41324148; GFX90A-NEXT: ;;#ASMEND
4149+ ; GFX90A-NEXT: s_mov_b32 s8, s9
41334150; GFX90A-NEXT: s_mov_b32 s10, s5
41344151; GFX90A-NEXT: s_mov_b32 s11, s4
4135- ; GFX90A-NEXT: s_mov_b32 s8, s9
41364152; GFX90A-NEXT: ;;#ASMSTART
41374153; GFX90A-NEXT: ; use s[8:11]
41384154; GFX90A-NEXT: ;;#ASMEND
@@ -4147,9 +4163,9 @@ define void @s_shuffle_v4f32_v2f32__3_3_1_0() {
41474163; GFX940-NEXT: ;;#ASMSTART
41484164; GFX940-NEXT: ; def s[0:1]
41494165; GFX940-NEXT: ;;#ASMEND
4166+ ; GFX940-NEXT: s_mov_b32 s8, s9
41504167; GFX940-NEXT: s_mov_b32 s10, s1
41514168; GFX940-NEXT: s_mov_b32 s11, s0
4152- ; GFX940-NEXT: s_mov_b32 s8, s9
41534169; GFX940-NEXT: ;;#ASMSTART
41544170; GFX940-NEXT: ; use s[8:11]
41554171; GFX940-NEXT: ;;#ASMEND
@@ -5033,14 +5049,15 @@ define void @s_shuffle_v4f32_v2f32__3_3_1_2() {
50335049; GFX90A: ; %bb.0:
50345050; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
50355051; GFX90A-NEXT: ;;#ASMSTART
5036- ; GFX90A-NEXT: ; def s[8:9 ]
5052+ ; GFX90A-NEXT: ; def s[4:5 ]
50375053; GFX90A-NEXT: ;;#ASMEND
50385054; GFX90A-NEXT: ;;#ASMSTART
5039- ; GFX90A-NEXT: ; def s[4:5 ]
5055+ ; GFX90A-NEXT: ; def s[6:7 ]
50405056; GFX90A-NEXT: ;;#ASMEND
5057+ ; GFX90A-NEXT: s_mov_b32 s8, s7
5058+ ; GFX90A-NEXT: s_mov_b32 s9, s7
50415059; GFX90A-NEXT: s_mov_b32 s10, s5
5042- ; GFX90A-NEXT: s_mov_b32 s11, s8
5043- ; GFX90A-NEXT: s_mov_b32 s8, s9
5060+ ; GFX90A-NEXT: s_mov_b32 s11, s6
50445061; GFX90A-NEXT: ;;#ASMSTART
50455062; GFX90A-NEXT: ; use s[8:11]
50465063; GFX90A-NEXT: ;;#ASMEND
@@ -5050,14 +5067,15 @@ define void @s_shuffle_v4f32_v2f32__3_3_1_2() {
50505067; GFX940: ; %bb.0:
50515068; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
50525069; GFX940-NEXT: ;;#ASMSTART
5053- ; GFX940-NEXT: ; def s[8:9 ]
5070+ ; GFX940-NEXT: ; def s[0:1 ]
50545071; GFX940-NEXT: ;;#ASMEND
50555072; GFX940-NEXT: ;;#ASMSTART
5056- ; GFX940-NEXT: ; def s[0:1 ]
5073+ ; GFX940-NEXT: ; def s[2:3 ]
50575074; GFX940-NEXT: ;;#ASMEND
5075+ ; GFX940-NEXT: s_mov_b32 s8, s3
5076+ ; GFX940-NEXT: s_mov_b32 s9, s3
50585077; GFX940-NEXT: s_mov_b32 s10, s1
5059- ; GFX940-NEXT: s_mov_b32 s11, s8
5060- ; GFX940-NEXT: s_mov_b32 s8, s9
5078+ ; GFX940-NEXT: s_mov_b32 s11, s2
50615079; GFX940-NEXT: ;;#ASMSTART
50625080; GFX940-NEXT: ; use s[8:11]
50635081; GFX940-NEXT: ;;#ASMEND
@@ -5432,3 +5450,5 @@ define void @s_shuffle_v4f32_v2f32__3_3_2_3() {
54325450 call void asm sideeffect "; use $0" , "{s[8:11]}" (<4 x float > %shuf )
54335451 ret void
54345452}
5453+ ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
5454+ ; GFX90APLUS: {{.*}}
0 commit comments