@@ -31,8 +31,7 @@ define float @v_fmaximum3_f32(float %a, float %b, float %c) {
3131; GFX950-LABEL: v_fmaximum3_f32:
3232; GFX950: ; %bb.0:
3333; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
34- ; GFX950-NEXT: v_maximum3_f32 v0, v0, v1, v1
35- ; GFX950-NEXT: v_maximum3_f32 v0, v0, v2, v2
34+ ; GFX950-NEXT: v_maximum3_f32 v0, v0, v1, v2
3635; GFX950-NEXT: s_setpc_b64 s[30:31]
3736 %max0 = call float @llvm.maximum.f32 (float %a , float %b )
3837 %max1 = call float @llvm.maximum.f32 (float %max0 , float %c )
@@ -67,8 +66,7 @@ define float @v_fmaximum3_f32_commute(float %a, float %b, float %c) {
6766; GFX950-LABEL: v_fmaximum3_f32_commute:
6867; GFX950: ; %bb.0:
6968; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
70- ; GFX950-NEXT: v_maximum3_f32 v0, v0, v1, v1
71- ; GFX950-NEXT: v_maximum3_f32 v0, v2, v0, v0
69+ ; GFX950-NEXT: v_maximum3_f32 v0, v2, v0, v1
7270; GFX950-NEXT: s_setpc_b64 s[30:31]
7371 %max0 = call float @llvm.maximum.f32 (float %a , float %b )
7472 %max1 = call float @llvm.maximum.f32 (float %c , float %max0 )
@@ -102,9 +100,9 @@ define amdgpu_ps i32 @s_fmaximum3_f32(float inreg %a, float inreg %b, float inre
102100;
103101; GFX950-LABEL: s_fmaximum3_f32:
104102; GFX950: ; %bb.0:
105- ; GFX950-NEXT: v_mov_b32_e32 v0, s0
106- ; GFX950-NEXT: v_maximum3_f32 v0, v0, s1, s1
107- ; GFX950-NEXT: v_maximum3_f32 v0, v0, s2, s2
103+ ; GFX950-NEXT: v_mov_b32_e32 v0, s1
104+ ; GFX950-NEXT: v_mov_b32_e32 v1, s2
105+ ; GFX950-NEXT: v_maximum3_f32 v0, s0, v0, v1
108106; GFX950-NEXT: s_nop 0
109107; GFX950-NEXT: v_readfirstlane_b32 s0, v0
110108; GFX950-NEXT: ; return to shader part epilog
@@ -143,8 +141,7 @@ define float @v_fmaximum3_f32_fabs0(float %a, float %b, float %c) {
143141; GFX950-LABEL: v_fmaximum3_f32_fabs0:
144142; GFX950: ; %bb.0:
145143; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
146- ; GFX950-NEXT: v_maximum3_f32 v0, |v0|, v1, v1
147- ; GFX950-NEXT: v_maximum3_f32 v0, v0, v2, v2
144+ ; GFX950-NEXT: v_maximum3_f32 v0, |v0|, v1, v2
148145; GFX950-NEXT: s_setpc_b64 s[30:31]
149146 %a.fabs = call float @llvm.fabs.f32 (float %a )
150147 %max0 = call float @llvm.maximum.f32 (float %a.fabs , float %b )
@@ -180,8 +177,7 @@ define float @v_fmaximum3_f32_fabs1(float %a, float %b, float %c) {
180177; GFX950-LABEL: v_fmaximum3_f32_fabs1:
181178; GFX950: ; %bb.0:
182179; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
183- ; GFX950-NEXT: v_maximum3_f32 v0, v0, |v1|, |v1|
184- ; GFX950-NEXT: v_maximum3_f32 v0, v0, v2, v2
180+ ; GFX950-NEXT: v_maximum3_f32 v0, v0, |v1|, v2
185181; GFX950-NEXT: s_setpc_b64 s[30:31]
186182 %b.fabs = call float @llvm.fabs.f32 (float %b )
187183 %max0 = call float @llvm.maximum.f32 (float %a , float %b.fabs )
@@ -217,8 +213,7 @@ define float @v_fmaximum3_f32_fabs2(float %a, float %b, float %c) {
217213; GFX950-LABEL: v_fmaximum3_f32_fabs2:
218214; GFX950: ; %bb.0:
219215; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
220- ; GFX950-NEXT: v_maximum3_f32 v0, v0, v1, v1
221- ; GFX950-NEXT: v_maximum3_f32 v0, v0, |v2|, |v2|
216+ ; GFX950-NEXT: v_maximum3_f32 v0, v0, v1, |v2|
222217; GFX950-NEXT: s_setpc_b64 s[30:31]
223218 %c.fabs = call float @llvm.fabs.f32 (float %c )
224219 %max0 = call float @llvm.maximum.f32 (float %a , float %b )
@@ -254,8 +249,7 @@ define float @v_fmaximum3_f32_fabs_all(float %a, float %b, float %c) {
254249; GFX950-LABEL: v_fmaximum3_f32_fabs_all:
255250; GFX950: ; %bb.0:
256251; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
257- ; GFX950-NEXT: v_maximum3_f32 v0, |v0|, |v1|, |v1|
258- ; GFX950-NEXT: v_maximum3_f32 v0, v0, |v2|, |v2|
252+ ; GFX950-NEXT: v_maximum3_f32 v0, |v0|, |v1|, |v2|
259253; GFX950-NEXT: s_setpc_b64 s[30:31]
260254 %a.fabs = call float @llvm.fabs.f32 (float %a )
261255 %b.fabs = call float @llvm.fabs.f32 (float %b )
@@ -293,8 +287,7 @@ define float @v_fmaximum3_f32_fneg_all(float %a, float %b, float %c) {
293287; GFX950-LABEL: v_fmaximum3_f32_fneg_all:
294288; GFX950: ; %bb.0:
295289; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
296- ; GFX950-NEXT: v_maximum3_f32 v0, -v0, -v1, -v1
297- ; GFX950-NEXT: v_maximum3_f32 v0, v0, -v2, -v2
290+ ; GFX950-NEXT: v_maximum3_f32 v0, -v0, -v1, -v2
298291; GFX950-NEXT: s_setpc_b64 s[30:31]
299292 %a.fneg = fneg float %a
300293 %b.fneg = fneg float %b
@@ -332,8 +325,7 @@ define float @v_fmaximum3_f32_fneg_fabs_all(float %a, float %b, float %c) {
332325; GFX950-LABEL: v_fmaximum3_f32_fneg_fabs_all:
333326; GFX950: ; %bb.0:
334327; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
335- ; GFX950-NEXT: v_maximum3_f32 v0, -|v0|, -|v1|, -|v1|
336- ; GFX950-NEXT: v_maximum3_f32 v0, v0, -|v2|, -|v2|
328+ ; GFX950-NEXT: v_maximum3_f32 v0, -|v0|, -|v1|, -|v2|
337329; GFX950-NEXT: s_setpc_b64 s[30:31]
338330 %a.fabs = call float @llvm.fabs.f32 (float %a )
339331 %b.fabs = call float @llvm.fabs.f32 (float %b )
@@ -374,8 +366,7 @@ define float @v_fmaximum3_f32_fneg0(float %a, float %b, float %c) {
374366; GFX950-LABEL: v_fmaximum3_f32_fneg0:
375367; GFX950: ; %bb.0:
376368; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
377- ; GFX950-NEXT: v_maximum3_f32 v0, -v0, v1, v1
378- ; GFX950-NEXT: v_maximum3_f32 v0, v0, v2, v2
369+ ; GFX950-NEXT: v_maximum3_f32 v0, -v0, v1, v2
379370; GFX950-NEXT: s_setpc_b64 s[30:31]
380371 %a.fneg = fneg float %a
381372 %max0 = call float @llvm.maximum.f32 (float %a.fneg , float %b )
@@ -411,8 +402,7 @@ define float @v_fmaximum3_f32_fneg1(float %a, float %b, float %c) {
411402; GFX950-LABEL: v_fmaximum3_f32_fneg1:
412403; GFX950: ; %bb.0:
413404; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
414- ; GFX950-NEXT: v_maximum3_f32 v0, v0, -v1, -v1
415- ; GFX950-NEXT: v_maximum3_f32 v0, v0, v2, v2
405+ ; GFX950-NEXT: v_maximum3_f32 v0, v0, -v1, v2
416406; GFX950-NEXT: s_setpc_b64 s[30:31]
417407 %b.fneg = fneg float %b
418408 %max0 = call float @llvm.maximum.f32 (float %a , float %b.fneg )
@@ -448,8 +438,7 @@ define float @v_fmaximum3_f32_fneg2(float %a, float %b, float %c) {
448438; GFX950-LABEL: v_fmaximum3_f32_fneg2:
449439; GFX950: ; %bb.0:
450440; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
451- ; GFX950-NEXT: v_maximum3_f32 v0, v0, v1, v1
452- ; GFX950-NEXT: v_maximum3_f32 v0, v0, -v2, -v2
441+ ; GFX950-NEXT: v_maximum3_f32 v0, v0, v1, -v2
453442; GFX950-NEXT: s_setpc_b64 s[30:31]
454443 %c.fneg = fneg float %c
455444 %max0 = call float @llvm.maximum.f32 (float %a , float %b )
@@ -486,8 +475,7 @@ define float @v_fmaximum3_f32_const0(float %b, float %c) {
486475; GFX950: ; %bb.0:
487476; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
488477; GFX950-NEXT: s_mov_b32 s0, 0x41000000
489- ; GFX950-NEXT: v_maximum3_f32 v0, v0, s0, s0
490- ; GFX950-NEXT: v_maximum3_f32 v0, v0, v1, v1
478+ ; GFX950-NEXT: v_maximum3_f32 v0, v0, s0, v1
491479; GFX950-NEXT: s_setpc_b64 s[30:31]
492480 %max0 = call float @llvm.maximum.f32 (float 8 .0 , float %b )
493481 %max1 = call float @llvm.maximum.f32 (float %max0 , float %c )
@@ -522,9 +510,8 @@ define float @v_fmaximum3_f32__const2(float %a, float %b) {
522510; GFX950-LABEL: v_fmaximum3_f32__const2:
523511; GFX950: ; %bb.0:
524512; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
525- ; GFX950-NEXT: v_maximum3_f32 v0, v0, v1, v1
526513; GFX950-NEXT: s_mov_b32 s0, 0x41000000
527- ; GFX950-NEXT: v_maximum3_f32 v0, v0, s0 , s0
514+ ; GFX950-NEXT: v_maximum3_f32 v0, v0, v1 , s0
528515; GFX950-NEXT: s_setpc_b64 s[30:31]
529516 %max0 = call float @llvm.maximum.f32 (float %a , float %b )
530517 %max1 = call float @llvm.maximum.f32 (float %max0 , float 8 .0 )
@@ -559,8 +546,7 @@ define float @v_fmaximum3_f32_inlineimm0(float %b, float %c) {
559546; GFX950-LABEL: v_fmaximum3_f32_inlineimm0:
560547; GFX950: ; %bb.0:
561548; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
562- ; GFX950-NEXT: v_maximum3_f32 v0, v0, 4.0, 4.0
563- ; GFX950-NEXT: v_maximum3_f32 v0, v0, v1, v1
549+ ; GFX950-NEXT: v_maximum3_f32 v0, v0, 4.0, v1
564550; GFX950-NEXT: s_setpc_b64 s[30:31]
565551 %max0 = call float @llvm.maximum.f32 (float 4 .0 , float %b )
566552 %max1 = call float @llvm.maximum.f32 (float %max0 , float %c )
@@ -595,8 +581,7 @@ define float @v_fmaximum3_f32__inlineimm(float %a, float %b) {
595581; GFX950-LABEL: v_fmaximum3_f32__inlineimm:
596582; GFX950: ; %bb.0:
597583; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
598- ; GFX950-NEXT: v_maximum3_f32 v0, v0, v1, v1
599- ; GFX950-NEXT: v_maximum3_f32 v0, v0, 4.0, 4.0
584+ ; GFX950-NEXT: v_maximum3_f32 v0, v0, v1, 4.0
600585; GFX950-NEXT: s_setpc_b64 s[30:31]
601586 %max0 = call float @llvm.maximum.f32 (float %a , float %b )
602587 %max1 = call float @llvm.maximum.f32 (float %max0 , float 4 .0 )
@@ -634,9 +619,8 @@ define float @v_fmaximum3_f32_const1_const2(float %a) {
634619; GFX950: ; %bb.0:
635620; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
636621; GFX950-NEXT: s_mov_b32 s0, 0x41000000
637- ; GFX950-NEXT: v_maximum3_f32 v0, v0, s0, s0
638- ; GFX950-NEXT: s_mov_b32 s0, 0x41800000
639- ; GFX950-NEXT: v_maximum3_f32 v0, v0, s0, s0
622+ ; GFX950-NEXT: v_mov_b32_e32 v1, 0x41800000
623+ ; GFX950-NEXT: v_maximum3_f32 v0, v0, s0, v1
640624; GFX950-NEXT: s_setpc_b64 s[30:31]
641625 %max0 = call float @llvm.maximum.f32 (float %a , float 8 .0 )
642626 %max1 = call float @llvm.maximum.f32 (float %max0 , float 16 .0 )
@@ -680,10 +664,8 @@ define <2 x float> @v_fmaximum3_v2f32(<2 x float> %a, <2 x float> %b, <2 x float
680664; GFX950-LABEL: v_fmaximum3_v2f32:
681665; GFX950: ; %bb.0:
682666; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
683- ; GFX950-NEXT: v_maximum3_f32 v1, v1, v3, v3
684- ; GFX950-NEXT: v_maximum3_f32 v0, v0, v2, v2
685- ; GFX950-NEXT: v_maximum3_f32 v0, v4, v0, v0
686- ; GFX950-NEXT: v_maximum3_f32 v1, v5, v1, v1
667+ ; GFX950-NEXT: v_maximum3_f32 v0, v4, v0, v2
668+ ; GFX950-NEXT: v_maximum3_f32 v1, v5, v1, v3
687669; GFX950-NEXT: s_setpc_b64 s[30:31]
688670 %max0 = call <2 x float > @llvm.maximum.v2f32 (<2 x float > %a , <2 x float > %b )
689671 %max1 = call <2 x float > @llvm.maximum.v2f32 (<2 x float > %c , <2 x float > %max0 )
@@ -727,10 +709,8 @@ define <2 x float> @v_fmaximum3_v2f32_commute(<2 x float> %a, <2 x float> %b, <2
727709; GFX950-LABEL: v_fmaximum3_v2f32_commute:
728710; GFX950: ; %bb.0:
729711; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
730- ; GFX950-NEXT: v_maximum3_f32 v1, v1, v3, v3
731- ; GFX950-NEXT: v_maximum3_f32 v0, v0, v2, v2
732- ; GFX950-NEXT: v_maximum3_f32 v0, v0, v4, v4
733- ; GFX950-NEXT: v_maximum3_f32 v1, v1, v5, v5
712+ ; GFX950-NEXT: v_maximum3_f32 v0, v0, v2, v4
713+ ; GFX950-NEXT: v_maximum3_f32 v1, v1, v3, v5
734714; GFX950-NEXT: s_setpc_b64 s[30:31]
735715 %max0 = call <2 x float > @llvm.maximum.v2f32 (<2 x float > %a , <2 x float > %b )
736716 %max1 = call <2 x float > @llvm.maximum.v2f32 (<2 x float > %max0 , <2 x float > %c )
@@ -774,10 +754,8 @@ define <2 x float> @v_fmaximum3_v2f32__fabs_all(<2 x float> %a, <2 x float> %b,
774754; GFX950-LABEL: v_fmaximum3_v2f32__fabs_all:
775755; GFX950: ; %bb.0:
776756; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
777- ; GFX950-NEXT: v_maximum3_f32 v1, |v1|, |v3|, |v3|
778- ; GFX950-NEXT: v_maximum3_f32 v0, |v0|, |v2|, |v2|
779- ; GFX950-NEXT: v_maximum3_f32 v0, v0, |v4|, |v4|
780- ; GFX950-NEXT: v_maximum3_f32 v1, v1, |v5|, |v5|
757+ ; GFX950-NEXT: v_maximum3_f32 v0, |v0|, |v2|, |v4|
758+ ; GFX950-NEXT: v_maximum3_f32 v1, |v1|, |v3|, |v5|
781759; GFX950-NEXT: s_setpc_b64 s[30:31]
782760 %a.fabs = call <2 x float > @llvm.fabs.v2f32 (<2 x float > %a )
783761 %b.fabs = call <2 x float > @llvm.fabs.v2f32 (<2 x float > %b )
@@ -824,10 +802,8 @@ define <2 x float> @v_fmaximum3_v2f32__fneg_all(<2 x float> %a, <2 x float> %b,
824802; GFX950-LABEL: v_fmaximum3_v2f32__fneg_all:
825803; GFX950: ; %bb.0:
826804; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
827- ; GFX950-NEXT: v_maximum3_f32 v1, -v1, -v3, -v3
828- ; GFX950-NEXT: v_maximum3_f32 v0, -v0, -v2, -v2
829- ; GFX950-NEXT: v_maximum3_f32 v0, v0, -v4, -v4
830- ; GFX950-NEXT: v_maximum3_f32 v1, v1, -v5, -v5
805+ ; GFX950-NEXT: v_maximum3_f32 v0, -v0, -v2, -v4
806+ ; GFX950-NEXT: v_maximum3_f32 v1, -v1, -v3, -v5
831807; GFX950-NEXT: s_setpc_b64 s[30:31]
832808 %a.fneg = fneg <2 x float > %a
833809 %b.fneg = fneg <2 x float > %b
@@ -874,10 +850,8 @@ define <2 x float> @v_fmaximum3_v2f32__inlineimm1(<2 x float> %a, <2 x float> %c
874850; GFX950-LABEL: v_fmaximum3_v2f32__inlineimm1:
875851; GFX950: ; %bb.0:
876852; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
877- ; GFX950-NEXT: v_maximum3_f32 v1, v1, 2.0, 2.0
878- ; GFX950-NEXT: v_maximum3_f32 v0, v0, 2.0, 2.0
879- ; GFX950-NEXT: v_maximum3_f32 v0, v0, v2, v2
880- ; GFX950-NEXT: v_maximum3_f32 v1, v1, v3, v3
853+ ; GFX950-NEXT: v_maximum3_f32 v0, v0, 2.0, v2
854+ ; GFX950-NEXT: v_maximum3_f32 v1, v1, 2.0, v3
881855; GFX950-NEXT: s_setpc_b64 s[30:31]
882856 %max0 = call <2 x float > @llvm.maximum.v2f32 (<2 x float > %a , <2 x float > <float 2 .0 , float 2 .0 >)
883857 %max1 = call <2 x float > @llvm.maximum.v2f32 (<2 x float > %max0 , <2 x float > %c )
@@ -921,10 +895,8 @@ define <2 x float> @v_fmaximum3_v2f32__inlineimm2(<2 x float> %a, <2 x float> %b
921895; GFX950-LABEL: v_fmaximum3_v2f32__inlineimm2:
922896; GFX950: ; %bb.0:
923897; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
924- ; GFX950-NEXT: v_maximum3_f32 v1, v1, v3, v3
925- ; GFX950-NEXT: v_maximum3_f32 v0, v0, v2, v2
926- ; GFX950-NEXT: v_maximum3_f32 v0, v0, 4.0, 4.0
927- ; GFX950-NEXT: v_maximum3_f32 v1, v1, 4.0, 4.0
898+ ; GFX950-NEXT: v_maximum3_f32 v0, v0, v2, 4.0
899+ ; GFX950-NEXT: v_maximum3_f32 v1, v1, v3, 4.0
928900; GFX950-NEXT: s_setpc_b64 s[30:31]
929901 %max0 = call <2 x float > @llvm.maximum.v2f32 (<2 x float > %a , <2 x float > %b )
930902 %max1 = call <2 x float > @llvm.maximum.v2f32 (<2 x float > %max0 , <2 x float > <float 4 .0 , float 4 .0 >)
@@ -977,12 +949,9 @@ define <3 x float> @v_fmaximum3_v3f32(<3 x float> %a, <3 x float> %b, <3 x float
977949; GFX950-LABEL: v_fmaximum3_v3f32:
978950; GFX950: ; %bb.0:
979951; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
980- ; GFX950-NEXT: v_maximum3_f32 v2, v2, v5, v5
981- ; GFX950-NEXT: v_maximum3_f32 v1, v1, v4, v4
982- ; GFX950-NEXT: v_maximum3_f32 v0, v0, v3, v3
983- ; GFX950-NEXT: v_maximum3_f32 v0, v6, v0, v0
984- ; GFX950-NEXT: v_maximum3_f32 v1, v7, v1, v1
985- ; GFX950-NEXT: v_maximum3_f32 v2, v8, v2, v2
952+ ; GFX950-NEXT: v_maximum3_f32 v0, v6, v0, v3
953+ ; GFX950-NEXT: v_maximum3_f32 v1, v7, v1, v4
954+ ; GFX950-NEXT: v_maximum3_f32 v2, v8, v2, v5
986955; GFX950-NEXT: s_setpc_b64 s[30:31]
987956 %max0 = call <3 x float > @llvm.maximum.v3f32 (<3 x float > %a , <3 x float > %b )
988957 %max1 = call <3 x float > @llvm.maximum.v3f32 (<3 x float > %c , <3 x float > %max0 )
@@ -1035,12 +1004,9 @@ define <3 x float> @v_fmaximum3_v3f32_commute(<3 x float> %a, <3 x float> %b, <3
10351004; GFX950-LABEL: v_fmaximum3_v3f32_commute:
10361005; GFX950: ; %bb.0:
10371006; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1038- ; GFX950-NEXT: v_maximum3_f32 v2, v2, v5, v5
1039- ; GFX950-NEXT: v_maximum3_f32 v1, v1, v4, v4
1040- ; GFX950-NEXT: v_maximum3_f32 v0, v0, v3, v3
1041- ; GFX950-NEXT: v_maximum3_f32 v0, v0, v6, v6
1042- ; GFX950-NEXT: v_maximum3_f32 v1, v1, v7, v7
1043- ; GFX950-NEXT: v_maximum3_f32 v2, v2, v8, v8
1007+ ; GFX950-NEXT: v_maximum3_f32 v0, v0, v3, v6
1008+ ; GFX950-NEXT: v_maximum3_f32 v1, v1, v4, v7
1009+ ; GFX950-NEXT: v_maximum3_f32 v2, v2, v5, v8
10441010; GFX950-NEXT: s_setpc_b64 s[30:31]
10451011 %max0 = call <3 x float > @llvm.maximum.v3f32 (<3 x float > %a , <3 x float > %b )
10461012 %max1 = call <3 x float > @llvm.maximum.v3f32 (<3 x float > %max0 , <3 x float > %c )
@@ -1093,12 +1059,9 @@ define <3 x float> @v_fmaximum3_v3f32__fabs_all(<3 x float> %a, <3 x float> %b,
10931059; GFX950-LABEL: v_fmaximum3_v3f32__fabs_all:
10941060; GFX950: ; %bb.0:
10951061; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1096- ; GFX950-NEXT: v_maximum3_f32 v2, |v2|, |v5|, |v5|
1097- ; GFX950-NEXT: v_maximum3_f32 v1, |v1|, |v4|, |v4|
1098- ; GFX950-NEXT: v_maximum3_f32 v0, |v0|, |v3|, |v3|
1099- ; GFX950-NEXT: v_maximum3_f32 v0, v0, |v6|, |v6|
1100- ; GFX950-NEXT: v_maximum3_f32 v1, v1, |v7|, |v7|
1101- ; GFX950-NEXT: v_maximum3_f32 v2, v2, |v8|, |v8|
1062+ ; GFX950-NEXT: v_maximum3_f32 v0, |v0|, |v3|, |v6|
1063+ ; GFX950-NEXT: v_maximum3_f32 v1, |v1|, |v4|, |v7|
1064+ ; GFX950-NEXT: v_maximum3_f32 v2, |v2|, |v5|, |v8|
11021065; GFX950-NEXT: s_setpc_b64 s[30:31]
11031066 %a.fabs = call <3 x float > @llvm.fabs.v3f32 (<3 x float > %a )
11041067 %b.fabs = call <3 x float > @llvm.fabs.v3f32 (<3 x float > %b )
@@ -1154,12 +1117,9 @@ define <3 x float> @v_fmaximum3_v3f32__fneg_all(<3 x float> %a, <3 x float> %b,
11541117; GFX950-LABEL: v_fmaximum3_v3f32__fneg_all:
11551118; GFX950: ; %bb.0:
11561119; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1157- ; GFX950-NEXT: v_maximum3_f32 v2, -v2, -v5, -v5
1158- ; GFX950-NEXT: v_maximum3_f32 v1, -v1, -v4, -v4
1159- ; GFX950-NEXT: v_maximum3_f32 v0, -v0, -v3, -v3
1160- ; GFX950-NEXT: v_maximum3_f32 v0, v0, -v6, -v6
1161- ; GFX950-NEXT: v_maximum3_f32 v1, v1, -v7, -v7
1162- ; GFX950-NEXT: v_maximum3_f32 v2, v2, -v8, -v8
1120+ ; GFX950-NEXT: v_maximum3_f32 v0, -v0, -v3, -v6
1121+ ; GFX950-NEXT: v_maximum3_f32 v1, -v1, -v4, -v7
1122+ ; GFX950-NEXT: v_maximum3_f32 v2, -v2, -v5, -v8
11631123; GFX950-NEXT: s_setpc_b64 s[30:31]
11641124 %a.fneg = fneg <3 x float > %a
11651125 %b.fneg = fneg <3 x float > %b
@@ -1215,12 +1175,9 @@ define <3 x float> @v_fmaximum3_v3f32__inlineimm1(<3 x float> %a, <3 x float> %c
12151175; GFX950-LABEL: v_fmaximum3_v3f32__inlineimm1:
12161176; GFX950: ; %bb.0:
12171177; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1218- ; GFX950-NEXT: v_maximum3_f32 v2, v2, 2.0, 2.0
1219- ; GFX950-NEXT: v_maximum3_f32 v1, v1, 2.0, 2.0
1220- ; GFX950-NEXT: v_maximum3_f32 v0, v0, 2.0, 2.0
1221- ; GFX950-NEXT: v_maximum3_f32 v0, v0, v3, v3
1222- ; GFX950-NEXT: v_maximum3_f32 v1, v1, v4, v4
1223- ; GFX950-NEXT: v_maximum3_f32 v2, v2, v5, v5
1178+ ; GFX950-NEXT: v_maximum3_f32 v0, v0, 2.0, v3
1179+ ; GFX950-NEXT: v_maximum3_f32 v1, v1, 2.0, v4
1180+ ; GFX950-NEXT: v_maximum3_f32 v2, v2, 2.0, v5
12241181; GFX950-NEXT: s_setpc_b64 s[30:31]
12251182 %max0 = call <3 x float > @llvm.maximum.v3f32 (<3 x float > %a , <3 x float > <float 2 .0 , float 2 .0 , float 2 .0 >)
12261183 %max1 = call <3 x float > @llvm.maximum.v3f32 (<3 x float > %max0 , <3 x float > %c )
@@ -1273,12 +1230,9 @@ define <3 x float> @v_fmaximum3_v3f32__inlineimm2(<3 x float> %a, <3 x float> %b
12731230; GFX950-LABEL: v_fmaximum3_v3f32__inlineimm2:
12741231; GFX950: ; %bb.0:
12751232; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1276- ; GFX950-NEXT: v_maximum3_f32 v2, v2, v5, v5
1277- ; GFX950-NEXT: v_maximum3_f32 v1, v1, v4, v4
1278- ; GFX950-NEXT: v_maximum3_f32 v0, v0, v3, v3
1279- ; GFX950-NEXT: v_maximum3_f32 v0, v0, 4.0, 4.0
1280- ; GFX950-NEXT: v_maximum3_f32 v1, v1, 4.0, 4.0
1281- ; GFX950-NEXT: v_maximum3_f32 v2, v2, 4.0, 4.0
1233+ ; GFX950-NEXT: v_maximum3_f32 v0, v0, v3, 4.0
1234+ ; GFX950-NEXT: v_maximum3_f32 v1, v1, v4, 4.0
1235+ ; GFX950-NEXT: v_maximum3_f32 v2, v2, v5, 4.0
12821236; GFX950-NEXT: s_setpc_b64 s[30:31]
12831237 %max0 = call <3 x float > @llvm.maximum.v3f32 (<3 x float > %a , <3 x float > %b )
12841238 %max1 = call <3 x float > @llvm.maximum.v3f32 (<3 x float > %max0 , <3 x float > <float 4 .0 , float 4 .0 , float 4 .0 >)
0 commit comments