@@ -31,8 +31,7 @@ define float @v_fmaximum3_f32(float %a, float %b, float %c) {
31
31
; GFX950-LABEL: v_fmaximum3_f32:
32
32
; GFX950: ; %bb.0:
33
33
; 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
36
35
; GFX950-NEXT: s_setpc_b64 s[30:31]
37
36
%max0 = call float @llvm.maximum.f32 (float %a , float %b )
38
37
%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) {
67
66
; GFX950-LABEL: v_fmaximum3_f32_commute:
68
67
; GFX950: ; %bb.0:
69
68
; 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
72
70
; GFX950-NEXT: s_setpc_b64 s[30:31]
73
71
%max0 = call float @llvm.maximum.f32 (float %a , float %b )
74
72
%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
102
100
;
103
101
; GFX950-LABEL: s_fmaximum3_f32:
104
102
; 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
108
106
; GFX950-NEXT: s_nop 0
109
107
; GFX950-NEXT: v_readfirstlane_b32 s0, v0
110
108
; GFX950-NEXT: ; return to shader part epilog
@@ -143,8 +141,7 @@ define float @v_fmaximum3_f32_fabs0(float %a, float %b, float %c) {
143
141
; GFX950-LABEL: v_fmaximum3_f32_fabs0:
144
142
; GFX950: ; %bb.0:
145
143
; 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
148
145
; GFX950-NEXT: s_setpc_b64 s[30:31]
149
146
%a.fabs = call float @llvm.fabs.f32 (float %a )
150
147
%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) {
180
177
; GFX950-LABEL: v_fmaximum3_f32_fabs1:
181
178
; GFX950: ; %bb.0:
182
179
; 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
185
181
; GFX950-NEXT: s_setpc_b64 s[30:31]
186
182
%b.fabs = call float @llvm.fabs.f32 (float %b )
187
183
%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) {
217
213
; GFX950-LABEL: v_fmaximum3_f32_fabs2:
218
214
; GFX950: ; %bb.0:
219
215
; 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|
222
217
; GFX950-NEXT: s_setpc_b64 s[30:31]
223
218
%c.fabs = call float @llvm.fabs.f32 (float %c )
224
219
%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) {
254
249
; GFX950-LABEL: v_fmaximum3_f32_fabs_all:
255
250
; GFX950: ; %bb.0:
256
251
; 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|
259
253
; GFX950-NEXT: s_setpc_b64 s[30:31]
260
254
%a.fabs = call float @llvm.fabs.f32 (float %a )
261
255
%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) {
293
287
; GFX950-LABEL: v_fmaximum3_f32_fneg_all:
294
288
; GFX950: ; %bb.0:
295
289
; 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
298
291
; GFX950-NEXT: s_setpc_b64 s[30:31]
299
292
%a.fneg = fneg float %a
300
293
%b.fneg = fneg float %b
@@ -332,8 +325,7 @@ define float @v_fmaximum3_f32_fneg_fabs_all(float %a, float %b, float %c) {
332
325
; GFX950-LABEL: v_fmaximum3_f32_fneg_fabs_all:
333
326
; GFX950: ; %bb.0:
334
327
; 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|
337
329
; GFX950-NEXT: s_setpc_b64 s[30:31]
338
330
%a.fabs = call float @llvm.fabs.f32 (float %a )
339
331
%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) {
374
366
; GFX950-LABEL: v_fmaximum3_f32_fneg0:
375
367
; GFX950: ; %bb.0:
376
368
; 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
379
370
; GFX950-NEXT: s_setpc_b64 s[30:31]
380
371
%a.fneg = fneg float %a
381
372
%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) {
411
402
; GFX950-LABEL: v_fmaximum3_f32_fneg1:
412
403
; GFX950: ; %bb.0:
413
404
; 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
416
406
; GFX950-NEXT: s_setpc_b64 s[30:31]
417
407
%b.fneg = fneg float %b
418
408
%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) {
448
438
; GFX950-LABEL: v_fmaximum3_f32_fneg2:
449
439
; GFX950: ; %bb.0:
450
440
; 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
453
442
; GFX950-NEXT: s_setpc_b64 s[30:31]
454
443
%c.fneg = fneg float %c
455
444
%max0 = call float @llvm.maximum.f32 (float %a , float %b )
@@ -486,8 +475,7 @@ define float @v_fmaximum3_f32_const0(float %b, float %c) {
486
475
; GFX950: ; %bb.0:
487
476
; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
488
477
; 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
491
479
; GFX950-NEXT: s_setpc_b64 s[30:31]
492
480
%max0 = call float @llvm.maximum.f32 (float 8 .0 , float %b )
493
481
%max1 = call float @llvm.maximum.f32 (float %max0 , float %c )
@@ -522,9 +510,8 @@ define float @v_fmaximum3_f32__const2(float %a, float %b) {
522
510
; GFX950-LABEL: v_fmaximum3_f32__const2:
523
511
; GFX950: ; %bb.0:
524
512
; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
525
- ; GFX950-NEXT: v_maximum3_f32 v0, v0, v1, v1
526
513
; 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
528
515
; GFX950-NEXT: s_setpc_b64 s[30:31]
529
516
%max0 = call float @llvm.maximum.f32 (float %a , float %b )
530
517
%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) {
559
546
; GFX950-LABEL: v_fmaximum3_f32_inlineimm0:
560
547
; GFX950: ; %bb.0:
561
548
; 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
564
550
; GFX950-NEXT: s_setpc_b64 s[30:31]
565
551
%max0 = call float @llvm.maximum.f32 (float 4 .0 , float %b )
566
552
%max1 = call float @llvm.maximum.f32 (float %max0 , float %c )
@@ -595,8 +581,7 @@ define float @v_fmaximum3_f32__inlineimm(float %a, float %b) {
595
581
; GFX950-LABEL: v_fmaximum3_f32__inlineimm:
596
582
; GFX950: ; %bb.0:
597
583
; 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
600
585
; GFX950-NEXT: s_setpc_b64 s[30:31]
601
586
%max0 = call float @llvm.maximum.f32 (float %a , float %b )
602
587
%max1 = call float @llvm.maximum.f32 (float %max0 , float 4 .0 )
@@ -634,9 +619,8 @@ define float @v_fmaximum3_f32_const1_const2(float %a) {
634
619
; GFX950: ; %bb.0:
635
620
; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
636
621
; 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
640
624
; GFX950-NEXT: s_setpc_b64 s[30:31]
641
625
%max0 = call float @llvm.maximum.f32 (float %a , float 8 .0 )
642
626
%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
680
664
; GFX950-LABEL: v_fmaximum3_v2f32:
681
665
; GFX950: ; %bb.0:
682
666
; 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
687
669
; GFX950-NEXT: s_setpc_b64 s[30:31]
688
670
%max0 = call <2 x float > @llvm.maximum.v2f32 (<2 x float > %a , <2 x float > %b )
689
671
%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
727
709
; GFX950-LABEL: v_fmaximum3_v2f32_commute:
728
710
; GFX950: ; %bb.0:
729
711
; 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
734
714
; GFX950-NEXT: s_setpc_b64 s[30:31]
735
715
%max0 = call <2 x float > @llvm.maximum.v2f32 (<2 x float > %a , <2 x float > %b )
736
716
%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,
774
754
; GFX950-LABEL: v_fmaximum3_v2f32__fabs_all:
775
755
; GFX950: ; %bb.0:
776
756
; 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|
781
759
; GFX950-NEXT: s_setpc_b64 s[30:31]
782
760
%a.fabs = call <2 x float > @llvm.fabs.v2f32 (<2 x float > %a )
783
761
%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,
824
802
; GFX950-LABEL: v_fmaximum3_v2f32__fneg_all:
825
803
; GFX950: ; %bb.0:
826
804
; 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
831
807
; GFX950-NEXT: s_setpc_b64 s[30:31]
832
808
%a.fneg = fneg <2 x float > %a
833
809
%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
874
850
; GFX950-LABEL: v_fmaximum3_v2f32__inlineimm1:
875
851
; GFX950: ; %bb.0:
876
852
; 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
881
855
; GFX950-NEXT: s_setpc_b64 s[30:31]
882
856
%max0 = call <2 x float > @llvm.maximum.v2f32 (<2 x float > %a , <2 x float > <float 2 .0 , float 2 .0 >)
883
857
%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
921
895
; GFX950-LABEL: v_fmaximum3_v2f32__inlineimm2:
922
896
; GFX950: ; %bb.0:
923
897
; 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
928
900
; GFX950-NEXT: s_setpc_b64 s[30:31]
929
901
%max0 = call <2 x float > @llvm.maximum.v2f32 (<2 x float > %a , <2 x float > %b )
930
902
%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
977
949
; GFX950-LABEL: v_fmaximum3_v3f32:
978
950
; GFX950: ; %bb.0:
979
951
; 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
986
955
; GFX950-NEXT: s_setpc_b64 s[30:31]
987
956
%max0 = call <3 x float > @llvm.maximum.v3f32 (<3 x float > %a , <3 x float > %b )
988
957
%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
1035
1004
; GFX950-LABEL: v_fmaximum3_v3f32_commute:
1036
1005
; GFX950: ; %bb.0:
1037
1006
; 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
1044
1010
; GFX950-NEXT: s_setpc_b64 s[30:31]
1045
1011
%max0 = call <3 x float > @llvm.maximum.v3f32 (<3 x float > %a , <3 x float > %b )
1046
1012
%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,
1093
1059
; GFX950-LABEL: v_fmaximum3_v3f32__fabs_all:
1094
1060
; GFX950: ; %bb.0:
1095
1061
; 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|
1102
1065
; GFX950-NEXT: s_setpc_b64 s[30:31]
1103
1066
%a.fabs = call <3 x float > @llvm.fabs.v3f32 (<3 x float > %a )
1104
1067
%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,
1154
1117
; GFX950-LABEL: v_fmaximum3_v3f32__fneg_all:
1155
1118
; GFX950: ; %bb.0:
1156
1119
; 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
1163
1123
; GFX950-NEXT: s_setpc_b64 s[30:31]
1164
1124
%a.fneg = fneg <3 x float > %a
1165
1125
%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
1215
1175
; GFX950-LABEL: v_fmaximum3_v3f32__inlineimm1:
1216
1176
; GFX950: ; %bb.0:
1217
1177
; 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
1224
1181
; GFX950-NEXT: s_setpc_b64 s[30:31]
1225
1182
%max0 = call <3 x float > @llvm.maximum.v3f32 (<3 x float > %a , <3 x float > <float 2 .0 , float 2 .0 , float 2 .0 >)
1226
1183
%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
1273
1230
; GFX950-LABEL: v_fmaximum3_v3f32__inlineimm2:
1274
1231
; GFX950: ; %bb.0:
1275
1232
; 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
1282
1236
; GFX950-NEXT: s_setpc_b64 s[30:31]
1283
1237
%max0 = call <3 x float > @llvm.maximum.v3f32 (<3 x float > %a , <3 x float > %b )
1284
1238
%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