@@ -355,17 +355,15 @@ define <2 x float> @v_test_fmin_legacy_ule_v2f32_nnan_nsz_flag(<2 x float> %a, <
355
355
; GFX7-LABEL: v_test_fmin_legacy_ule_v2f32_nnan_nsz_flag:
356
356
; GFX7: ; %bb.0:
357
357
; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
358
- ; GFX7-NEXT: v_min_legacy_f32_e32 v0, v2, v0
359
- ; GFX7-NEXT: v_min_legacy_f32_e32 v1, v3, v1
358
+ ; GFX7-NEXT: v_min_f32_e32 v0, v0, v2
359
+ ; GFX7-NEXT: v_min_f32_e32 v1, v1, v3
360
360
; GFX7-NEXT: s_setpc_b64 s[30:31]
361
361
;
362
362
; GFX9-LABEL: v_test_fmin_legacy_ule_v2f32_nnan_nsz_flag:
363
363
; GFX9: ; %bb.0:
364
364
; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
365
- ; GFX9-NEXT: v_cmp_ngt_f32_e32 vcc, v0, v2
366
- ; GFX9-NEXT: v_cndmask_b32_e32 v0, v2, v0, vcc
367
- ; GFX9-NEXT: v_cmp_ngt_f32_e32 vcc, v1, v3
368
- ; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v1, vcc
365
+ ; GFX9-NEXT: v_min_f32_e32 v0, v0, v2
366
+ ; GFX9-NEXT: v_min_f32_e32 v1, v1, v3
369
367
; GFX9-NEXT: s_setpc_b64 s[30:31]
370
368
;
371
369
; GFX12-LABEL: v_test_fmin_legacy_ule_v2f32_nnan_nsz_flag:
@@ -375,12 +373,7 @@ define <2 x float> @v_test_fmin_legacy_ule_v2f32_nnan_nsz_flag(<2 x float> %a, <
375
373
; GFX12-NEXT: s_wait_samplecnt 0x0
376
374
; GFX12-NEXT: s_wait_bvhcnt 0x0
377
375
; GFX12-NEXT: s_wait_kmcnt 0x0
378
- ; GFX12-NEXT: v_cmp_ngt_f32_e32 vcc_lo, v0, v2
379
- ; GFX12-NEXT: s_wait_alu 0xfffd
380
- ; GFX12-NEXT: v_cndmask_b32_e32 v0, v2, v0, vcc_lo
381
- ; GFX12-NEXT: v_cmp_ngt_f32_e32 vcc_lo, v1, v3
382
- ; GFX12-NEXT: s_wait_alu 0xfffd
383
- ; GFX12-NEXT: v_cndmask_b32_e32 v1, v3, v1, vcc_lo
376
+ ; GFX12-NEXT: v_dual_min_num_f32 v0, v0, v2 :: v_dual_min_num_f32 v1, v1, v3
384
377
; GFX12-NEXT: s_setpc_b64 s[30:31]
385
378
%cmp = fcmp ule <2 x float > %a , %b
386
379
%val = select nnan nsz <2 x i1 > %cmp , <2 x float > %a , <2 x float > %b
@@ -499,17 +492,15 @@ define <2 x float> @v_test_fmax_legacy_uge_v2f32_nnan_nsz_flag(<2 x float> %a, <
499
492
; GFX7-LABEL: v_test_fmax_legacy_uge_v2f32_nnan_nsz_flag:
500
493
; GFX7: ; %bb.0:
501
494
; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
502
- ; GFX7-NEXT: v_max_legacy_f32_e32 v0, v2, v0
503
- ; GFX7-NEXT: v_max_legacy_f32_e32 v1, v3, v1
495
+ ; GFX7-NEXT: v_max_f32_e32 v0, v0, v2
496
+ ; GFX7-NEXT: v_max_f32_e32 v1, v1, v3
504
497
; GFX7-NEXT: s_setpc_b64 s[30:31]
505
498
;
506
499
; GFX9-LABEL: v_test_fmax_legacy_uge_v2f32_nnan_nsz_flag:
507
500
; GFX9: ; %bb.0:
508
501
; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
509
- ; GFX9-NEXT: v_cmp_nlt_f32_e32 vcc, v0, v2
510
- ; GFX9-NEXT: v_cndmask_b32_e32 v0, v2, v0, vcc
511
- ; GFX9-NEXT: v_cmp_nlt_f32_e32 vcc, v1, v3
512
- ; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v1, vcc
502
+ ; GFX9-NEXT: v_max_f32_e32 v0, v0, v2
503
+ ; GFX9-NEXT: v_max_f32_e32 v1, v1, v3
513
504
; GFX9-NEXT: s_setpc_b64 s[30:31]
514
505
;
515
506
; GFX12-LABEL: v_test_fmax_legacy_uge_v2f32_nnan_nsz_flag:
@@ -519,12 +510,7 @@ define <2 x float> @v_test_fmax_legacy_uge_v2f32_nnan_nsz_flag(<2 x float> %a, <
519
510
; GFX12-NEXT: s_wait_samplecnt 0x0
520
511
; GFX12-NEXT: s_wait_bvhcnt 0x0
521
512
; GFX12-NEXT: s_wait_kmcnt 0x0
522
- ; GFX12-NEXT: v_cmp_nlt_f32_e32 vcc_lo, v0, v2
523
- ; GFX12-NEXT: s_wait_alu 0xfffd
524
- ; GFX12-NEXT: v_cndmask_b32_e32 v0, v2, v0, vcc_lo
525
- ; GFX12-NEXT: v_cmp_nlt_f32_e32 vcc_lo, v1, v3
526
- ; GFX12-NEXT: s_wait_alu 0xfffd
527
- ; GFX12-NEXT: v_cndmask_b32_e32 v1, v3, v1, vcc_lo
513
+ ; GFX12-NEXT: v_dual_max_num_f32 v0, v0, v2 :: v_dual_max_num_f32 v1, v1, v3
528
514
; GFX12-NEXT: s_setpc_b64 s[30:31]
529
515
%cmp = fcmp uge <2 x float > %a , %b
530
516
%val = select nnan nsz <2 x i1 > %cmp , <2 x float > %a , <2 x float > %b
@@ -673,10 +659,10 @@ define half @v_test_fmin_legacy_ule_f16_nnan_nsz_flag(half %a, half %b) {
673
659
; GFX7-LABEL: v_test_fmin_legacy_ule_f16_nnan_nsz_flag:
674
660
; GFX7: ; %bb.0:
675
661
; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
676
- ; GFX7-NEXT: v_cvt_f16_f32_e32 v0, v0
677
662
; GFX7-NEXT: v_cvt_f16_f32_e32 v1, v1
678
- ; GFX7-NEXT: v_cvt_f32_f16_e32 v0, v0
663
+ ; GFX7-NEXT: v_cvt_f16_f32_e32 v0, v0
679
664
; GFX7-NEXT: v_cvt_f32_f16_e32 v1, v1
665
+ ; GFX7-NEXT: v_cvt_f32_f16_e32 v0, v0
680
666
; GFX7-NEXT: v_min_f32_e32 v0, v0, v1
681
667
; GFX7-NEXT: s_setpc_b64 s[30:31]
682
668
;
@@ -852,10 +838,10 @@ define half @v_test_fmax_legacy_uge_f16_nnan_nsz_flag(half %a, half %b) {
852
838
; GFX7-LABEL: v_test_fmax_legacy_uge_f16_nnan_nsz_flag:
853
839
; GFX7: ; %bb.0:
854
840
; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
855
- ; GFX7-NEXT: v_cvt_f16_f32_e32 v0, v0
856
841
; GFX7-NEXT: v_cvt_f16_f32_e32 v1, v1
857
- ; GFX7-NEXT: v_cvt_f32_f16_e32 v0, v0
842
+ ; GFX7-NEXT: v_cvt_f16_f32_e32 v0, v0
858
843
; GFX7-NEXT: v_cvt_f32_f16_e32 v1, v1
844
+ ; GFX7-NEXT: v_cvt_f32_f16_e32 v0, v0
859
845
; GFX7-NEXT: v_max_f32_e32 v0, v0, v1
860
846
; GFX7-NEXT: s_setpc_b64 s[30:31]
861
847
;
@@ -1097,16 +1083,16 @@ define <2 x half> @v_test_fmin_legacy_ule_v2f16_nnan_nsz_flag(<2 x half> %a, <2
1097
1083
; GFX7-LABEL: v_test_fmin_legacy_ule_v2f16_nnan_nsz_flag:
1098
1084
; GFX7: ; %bb.0:
1099
1085
; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1100
- ; GFX7-NEXT: v_cvt_f16_f32_e32 v1, v1
1101
- ; GFX7-NEXT: v_cvt_f16_f32_e32 v0, v0
1102
- ; GFX7-NEXT: v_cvt_f16_f32_e32 v2, v2
1103
1086
; GFX7-NEXT: v_cvt_f16_f32_e32 v3, v3
1104
- ; GFX7-NEXT: v_cvt_f32_f16_e32 v1, v1
1105
- ; GFX7-NEXT: v_cvt_f32_f16_e32 v0, v0
1106
- ; GFX7-NEXT: v_cvt_f32_f16_e32 v2, v2
1087
+ ; GFX7-NEXT: v_cvt_f16_f32_e32 v2, v2
1088
+ ; GFX7-NEXT: v_cvt_f16_f32_e32 v0, v0
1089
+ ; GFX7-NEXT: v_cvt_f16_f32_e32 v1, v1
1107
1090
; GFX7-NEXT: v_cvt_f32_f16_e32 v3, v3
1108
- ; GFX7-NEXT: v_min_legacy_f32_e32 v0, v2, v0
1109
- ; GFX7-NEXT: v_min_legacy_f32_e32 v1, v3, v1
1091
+ ; GFX7-NEXT: v_cvt_f32_f16_e32 v2, v2
1092
+ ; GFX7-NEXT: v_cvt_f32_f16_e32 v0, v0
1093
+ ; GFX7-NEXT: v_cvt_f32_f16_e32 v1, v1
1094
+ ; GFX7-NEXT: v_min_f32_e32 v0, v0, v2
1095
+ ; GFX7-NEXT: v_min_f32_e32 v1, v1, v3
1110
1096
; GFX7-NEXT: s_setpc_b64 s[30:31]
1111
1097
;
1112
1098
; GFX9-LABEL: v_test_fmin_legacy_ule_v2f16_nnan_nsz_flag:
@@ -1337,16 +1323,16 @@ define <2 x half> @v_test_fmax_legacy_uge_v2f16_nnan_nsz_flag(<2 x half> %a, <2
1337
1323
; GFX7-LABEL: v_test_fmax_legacy_uge_v2f16_nnan_nsz_flag:
1338
1324
; GFX7: ; %bb.0:
1339
1325
; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1340
- ; GFX7-NEXT: v_cvt_f16_f32_e32 v1, v1
1341
- ; GFX7-NEXT: v_cvt_f16_f32_e32 v0, v0
1342
- ; GFX7-NEXT: v_cvt_f16_f32_e32 v2, v2
1343
1326
; GFX7-NEXT: v_cvt_f16_f32_e32 v3, v3
1344
- ; GFX7-NEXT: v_cvt_f32_f16_e32 v1, v1
1345
- ; GFX7-NEXT: v_cvt_f32_f16_e32 v0, v0
1346
- ; GFX7-NEXT: v_cvt_f32_f16_e32 v2, v2
1327
+ ; GFX7-NEXT: v_cvt_f16_f32_e32 v2, v2
1328
+ ; GFX7-NEXT: v_cvt_f16_f32_e32 v0, v0
1329
+ ; GFX7-NEXT: v_cvt_f16_f32_e32 v1, v1
1347
1330
; GFX7-NEXT: v_cvt_f32_f16_e32 v3, v3
1348
- ; GFX7-NEXT: v_max_legacy_f32_e32 v0, v2, v0
1349
- ; GFX7-NEXT: v_max_legacy_f32_e32 v1, v3, v1
1331
+ ; GFX7-NEXT: v_cvt_f32_f16_e32 v2, v2
1332
+ ; GFX7-NEXT: v_cvt_f32_f16_e32 v0, v0
1333
+ ; GFX7-NEXT: v_cvt_f32_f16_e32 v1, v1
1334
+ ; GFX7-NEXT: v_max_f32_e32 v0, v0, v2
1335
+ ; GFX7-NEXT: v_max_f32_e32 v1, v1, v3
1350
1336
; GFX7-NEXT: s_setpc_b64 s[30:31]
1351
1337
;
1352
1338
; GFX9-LABEL: v_test_fmax_legacy_uge_v2f16_nnan_nsz_flag:
@@ -1667,26 +1653,26 @@ define <4 x half> @v_test_fmin_legacy_ule_v4f16_nnan_nsz_flag(<4 x half> %a, <4
1667
1653
; GFX7-LABEL: v_test_fmin_legacy_ule_v4f16_nnan_nsz_flag:
1668
1654
; GFX7: ; %bb.0:
1669
1655
; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1670
- ; GFX7-NEXT: v_cvt_f16_f32_e32 v3, v3
1671
- ; GFX7-NEXT: v_cvt_f16_f32_e32 v2, v2
1672
1656
; GFX7-NEXT: v_cvt_f16_f32_e32 v7, v7
1673
1657
; GFX7-NEXT: v_cvt_f16_f32_e32 v6, v6
1674
- ; GFX7-NEXT: v_cvt_f16_f32_e32 v1, v1
1675
- ; GFX7-NEXT: v_cvt_f16_f32_e32 v0, v0
1676
- ; GFX7-NEXT: v_cvt_f16_f32_e32 v4, v4
1658
+ ; GFX7-NEXT: v_cvt_f16_f32_e32 v3, v3
1659
+ ; GFX7-NEXT: v_cvt_f16_f32_e32 v2, v2
1677
1660
; GFX7-NEXT: v_cvt_f16_f32_e32 v5, v5
1678
- ; GFX7-NEXT: v_cvt_f32_f16_e32 v3, v3
1679
- ; GFX7-NEXT: v_cvt_f32_f16_e32 v2, v2
1680
- ; GFX7-NEXT: v_cvt_f32_f16_e32 v1, v1
1681
- ; GFX7-NEXT: v_cvt_f32_f16_e32 v0, v0
1682
- ; GFX7-NEXT: v_cvt_f32_f16_e32 v4, v4
1683
- ; GFX7-NEXT: v_cvt_f32_f16_e32 v5, v5
1684
- ; GFX7-NEXT: v_cvt_f32_f16_e32 v6, v6
1661
+ ; GFX7-NEXT: v_cvt_f16_f32_e32 v4, v4
1662
+ ; GFX7-NEXT: v_cvt_f16_f32_e32 v0, v0
1663
+ ; GFX7-NEXT: v_cvt_f16_f32_e32 v1, v1
1685
1664
; GFX7-NEXT: v_cvt_f32_f16_e32 v7, v7
1686
- ; GFX7-NEXT: v_min_legacy_f32_e32 v0, v4, v0
1687
- ; GFX7-NEXT: v_min_legacy_f32_e32 v1, v5, v1
1688
- ; GFX7-NEXT: v_min_legacy_f32_e32 v2, v6, v2
1689
- ; GFX7-NEXT: v_min_legacy_f32_e32 v3, v7, v3
1665
+ ; GFX7-NEXT: v_cvt_f32_f16_e32 v6, v6
1666
+ ; GFX7-NEXT: v_cvt_f32_f16_e32 v5, v5
1667
+ ; GFX7-NEXT: v_cvt_f32_f16_e32 v4, v4
1668
+ ; GFX7-NEXT: v_cvt_f32_f16_e32 v0, v0
1669
+ ; GFX7-NEXT: v_cvt_f32_f16_e32 v1, v1
1670
+ ; GFX7-NEXT: v_cvt_f32_f16_e32 v2, v2
1671
+ ; GFX7-NEXT: v_cvt_f32_f16_e32 v3, v3
1672
+ ; GFX7-NEXT: v_min_f32_e32 v0, v0, v4
1673
+ ; GFX7-NEXT: v_min_f32_e32 v1, v1, v5
1674
+ ; GFX7-NEXT: v_min_f32_e32 v2, v2, v6
1675
+ ; GFX7-NEXT: v_min_f32_e32 v3, v3, v7
1690
1676
; GFX7-NEXT: s_setpc_b64 s[30:31]
1691
1677
;
1692
1678
; GFX9-LABEL: v_test_fmin_legacy_ule_v4f16_nnan_nsz_flag:
@@ -2009,26 +1995,26 @@ define <4 x half> @v_test_fmax_legacy_uge_v4f16_nnan_nsz_flag(<4 x half> %a, <4
2009
1995
; GFX7-LABEL: v_test_fmax_legacy_uge_v4f16_nnan_nsz_flag:
2010
1996
; GFX7: ; %bb.0:
2011
1997
; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2012
- ; GFX7-NEXT: v_cvt_f16_f32_e32 v3, v3
2013
- ; GFX7-NEXT: v_cvt_f16_f32_e32 v2, v2
2014
1998
; GFX7-NEXT: v_cvt_f16_f32_e32 v7, v7
2015
1999
; GFX7-NEXT: v_cvt_f16_f32_e32 v6, v6
2016
- ; GFX7-NEXT: v_cvt_f16_f32_e32 v1, v1
2017
- ; GFX7-NEXT: v_cvt_f16_f32_e32 v0, v0
2018
- ; GFX7-NEXT: v_cvt_f16_f32_e32 v4, v4
2000
+ ; GFX7-NEXT: v_cvt_f16_f32_e32 v3, v3
2001
+ ; GFX7-NEXT: v_cvt_f16_f32_e32 v2, v2
2019
2002
; GFX7-NEXT: v_cvt_f16_f32_e32 v5, v5
2020
- ; GFX7-NEXT: v_cvt_f32_f16_e32 v3, v3
2021
- ; GFX7-NEXT: v_cvt_f32_f16_e32 v2, v2
2022
- ; GFX7-NEXT: v_cvt_f32_f16_e32 v1, v1
2023
- ; GFX7-NEXT: v_cvt_f32_f16_e32 v0, v0
2024
- ; GFX7-NEXT: v_cvt_f32_f16_e32 v4, v4
2025
- ; GFX7-NEXT: v_cvt_f32_f16_e32 v5, v5
2026
- ; GFX7-NEXT: v_cvt_f32_f16_e32 v6, v6
2003
+ ; GFX7-NEXT: v_cvt_f16_f32_e32 v4, v4
2004
+ ; GFX7-NEXT: v_cvt_f16_f32_e32 v0, v0
2005
+ ; GFX7-NEXT: v_cvt_f16_f32_e32 v1, v1
2027
2006
; GFX7-NEXT: v_cvt_f32_f16_e32 v7, v7
2028
- ; GFX7-NEXT: v_max_legacy_f32_e32 v0, v4, v0
2029
- ; GFX7-NEXT: v_max_legacy_f32_e32 v1, v5, v1
2030
- ; GFX7-NEXT: v_max_legacy_f32_e32 v2, v6, v2
2031
- ; GFX7-NEXT: v_max_legacy_f32_e32 v3, v7, v3
2007
+ ; GFX7-NEXT: v_cvt_f32_f16_e32 v6, v6
2008
+ ; GFX7-NEXT: v_cvt_f32_f16_e32 v5, v5
2009
+ ; GFX7-NEXT: v_cvt_f32_f16_e32 v4, v4
2010
+ ; GFX7-NEXT: v_cvt_f32_f16_e32 v0, v0
2011
+ ; GFX7-NEXT: v_cvt_f32_f16_e32 v1, v1
2012
+ ; GFX7-NEXT: v_cvt_f32_f16_e32 v2, v2
2013
+ ; GFX7-NEXT: v_cvt_f32_f16_e32 v3, v3
2014
+ ; GFX7-NEXT: v_max_f32_e32 v0, v0, v4
2015
+ ; GFX7-NEXT: v_max_f32_e32 v1, v1, v5
2016
+ ; GFX7-NEXT: v_max_f32_e32 v2, v2, v6
2017
+ ; GFX7-NEXT: v_max_f32_e32 v3, v3, v7
2032
2018
; GFX7-NEXT: s_setpc_b64 s[30:31]
2033
2019
;
2034
2020
; GFX9-LABEL: v_test_fmax_legacy_uge_v4f16_nnan_nsz_flag:
0 commit comments