@@ -3607,9 +3607,9 @@ define void @s_shuffle_v4f32_v2f32__3_3_3_0() {
3607
3607
; GFX90A-NEXT: ;;#ASMSTART
3608
3608
; GFX90A-NEXT: ; def s[4:5]
3609
3609
; GFX90A-NEXT: ;;#ASMEND
3610
+ ; GFX90A-NEXT: s_mov_b32 s8, s9
3610
3611
; GFX90A-NEXT: s_mov_b32 s10, s9
3611
3612
; GFX90A-NEXT: s_mov_b32 s11, s4
3612
- ; GFX90A-NEXT: s_mov_b32 s8, s9
3613
3613
; GFX90A-NEXT: ;;#ASMSTART
3614
3614
; GFX90A-NEXT: ; use s[8:11]
3615
3615
; GFX90A-NEXT: ;;#ASMEND
@@ -3624,9 +3624,9 @@ define void @s_shuffle_v4f32_v2f32__3_3_3_0() {
3624
3624
; GFX940-NEXT: ;;#ASMSTART
3625
3625
; GFX940-NEXT: ; def s[0:1]
3626
3626
; GFX940-NEXT: ;;#ASMEND
3627
+ ; GFX940-NEXT: s_mov_b32 s8, s9
3627
3628
; GFX940-NEXT: s_mov_b32 s10, s9
3628
3629
; GFX940-NEXT: s_mov_b32 s11, s0
3629
- ; GFX940-NEXT: s_mov_b32 s8, s9
3630
3630
; GFX940-NEXT: ;;#ASMSTART
3631
3631
; GFX940-NEXT: ; use s[8:11]
3632
3632
; GFX940-NEXT: ;;#ASMEND
@@ -3677,19 +3677,35 @@ define void @s_shuffle_v4f32_v2f32__3_3_3_2() {
3677
3677
; GFX900-NEXT: ;;#ASMEND
3678
3678
; GFX900-NEXT: s_setpc_b64 s[30:31]
3679
3679
;
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]
3693
3709
%vec0 = call <2 x float > asm "; def $0" , "=s" ()
3694
3710
%vec1 = call <2 x float > asm "; def $0" , "=s" ()
3695
3711
%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() {
4130
4146
; GFX90A-NEXT: ;;#ASMSTART
4131
4147
; GFX90A-NEXT: ; def s[4:5]
4132
4148
; GFX90A-NEXT: ;;#ASMEND
4149
+ ; GFX90A-NEXT: s_mov_b32 s8, s9
4133
4150
; GFX90A-NEXT: s_mov_b32 s10, s5
4134
4151
; GFX90A-NEXT: s_mov_b32 s11, s4
4135
- ; GFX90A-NEXT: s_mov_b32 s8, s9
4136
4152
; GFX90A-NEXT: ;;#ASMSTART
4137
4153
; GFX90A-NEXT: ; use s[8:11]
4138
4154
; GFX90A-NEXT: ;;#ASMEND
@@ -4147,9 +4163,9 @@ define void @s_shuffle_v4f32_v2f32__3_3_1_0() {
4147
4163
; GFX940-NEXT: ;;#ASMSTART
4148
4164
; GFX940-NEXT: ; def s[0:1]
4149
4165
; GFX940-NEXT: ;;#ASMEND
4166
+ ; GFX940-NEXT: s_mov_b32 s8, s9
4150
4167
; GFX940-NEXT: s_mov_b32 s10, s1
4151
4168
; GFX940-NEXT: s_mov_b32 s11, s0
4152
- ; GFX940-NEXT: s_mov_b32 s8, s9
4153
4169
; GFX940-NEXT: ;;#ASMSTART
4154
4170
; GFX940-NEXT: ; use s[8:11]
4155
4171
; GFX940-NEXT: ;;#ASMEND
@@ -5033,14 +5049,15 @@ define void @s_shuffle_v4f32_v2f32__3_3_1_2() {
5033
5049
; GFX90A: ; %bb.0:
5034
5050
; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5035
5051
; GFX90A-NEXT: ;;#ASMSTART
5036
- ; GFX90A-NEXT: ; def s[8:9 ]
5052
+ ; GFX90A-NEXT: ; def s[4:5 ]
5037
5053
; GFX90A-NEXT: ;;#ASMEND
5038
5054
; GFX90A-NEXT: ;;#ASMSTART
5039
- ; GFX90A-NEXT: ; def s[4:5 ]
5055
+ ; GFX90A-NEXT: ; def s[6:7 ]
5040
5056
; GFX90A-NEXT: ;;#ASMEND
5057
+ ; GFX90A-NEXT: s_mov_b32 s8, s7
5058
+ ; GFX90A-NEXT: s_mov_b32 s9, s7
5041
5059
; 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
5044
5061
; GFX90A-NEXT: ;;#ASMSTART
5045
5062
; GFX90A-NEXT: ; use s[8:11]
5046
5063
; GFX90A-NEXT: ;;#ASMEND
@@ -5050,14 +5067,15 @@ define void @s_shuffle_v4f32_v2f32__3_3_1_2() {
5050
5067
; GFX940: ; %bb.0:
5051
5068
; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5052
5069
; GFX940-NEXT: ;;#ASMSTART
5053
- ; GFX940-NEXT: ; def s[8:9 ]
5070
+ ; GFX940-NEXT: ; def s[0:1 ]
5054
5071
; GFX940-NEXT: ;;#ASMEND
5055
5072
; GFX940-NEXT: ;;#ASMSTART
5056
- ; GFX940-NEXT: ; def s[0:1 ]
5073
+ ; GFX940-NEXT: ; def s[2:3 ]
5057
5074
; GFX940-NEXT: ;;#ASMEND
5075
+ ; GFX940-NEXT: s_mov_b32 s8, s3
5076
+ ; GFX940-NEXT: s_mov_b32 s9, s3
5058
5077
; 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
5061
5079
; GFX940-NEXT: ;;#ASMSTART
5062
5080
; GFX940-NEXT: ; use s[8:11]
5063
5081
; GFX940-NEXT: ;;#ASMEND
@@ -5432,3 +5450,5 @@ define void @s_shuffle_v4f32_v2f32__3_3_2_3() {
5432
5450
call void asm sideeffect "; use $0" , "{s[8:11]}" (<4 x float > %shuf )
5433
5451
ret void
5434
5452
}
5453
+ ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
5454
+ ; GFX90APLUS: {{.*}}
0 commit comments