Skip to content

Commit f13ff77

Browse files
authored
AMDGPU: Form min3/max3 from minimumnum/maximumnum (#139137)
1 parent 458e241 commit f13ff77

File tree

3 files changed

+588
-1768
lines changed

3 files changed

+588
-1768
lines changed

llvm/lib/Target/AMDGPU/SIISelLowering.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -934,6 +934,8 @@ SITargetLowering::SITargetLowering(const TargetMachine &TM,
934934
ISD::FMAXNUM_IEEE,
935935
ISD::FMINIMUM,
936936
ISD::FMAXIMUM,
937+
ISD::FMINIMUMNUM,
938+
ISD::FMAXIMUMNUM,
937939
ISD::FMA,
938940
ISD::SMIN,
939941
ISD::SMAX,
@@ -13483,6 +13485,7 @@ static unsigned minMaxOpcToMin3Max3Opc(unsigned Opc) {
1348313485
switch (Opc) {
1348413486
case ISD::FMAXNUM:
1348513487
case ISD::FMAXNUM_IEEE:
13488+
case ISD::FMAXIMUMNUM:
1348613489
return AMDGPUISD::FMAX3;
1348713490
case ISD::FMAXIMUM:
1348813491
return AMDGPUISD::FMAXIMUM3;
@@ -13492,6 +13495,7 @@ static unsigned minMaxOpcToMin3Max3Opc(unsigned Opc) {
1349213495
return AMDGPUISD::UMAX3;
1349313496
case ISD::FMINNUM:
1349413497
case ISD::FMINNUM_IEEE:
13498+
case ISD::FMINIMUMNUM:
1349513499
return AMDGPUISD::FMIN3;
1349613500
case ISD::FMINIMUM:
1349713501
return AMDGPUISD::FMINIMUM3;
@@ -13613,6 +13617,8 @@ static bool supportsMin3Max3(const GCNSubtarget &Subtarget, unsigned Opc,
1361313617
case ISD::FMAXNUM:
1361413618
case ISD::FMINNUM_IEEE:
1361513619
case ISD::FMAXNUM_IEEE:
13620+
case ISD::FMINIMUMNUM:
13621+
case ISD::FMAXIMUMNUM:
1361613622
case AMDGPUISD::FMIN_LEGACY:
1361713623
case AMDGPUISD::FMAX_LEGACY:
1361813624
return (VT == MVT::f32) || (VT == MVT::f16 && Subtarget.hasMin3Max3_16());
@@ -15318,6 +15324,8 @@ SDValue SITargetLowering::PerformDAGCombine(SDNode *N,
1531815324
case ISD::FMINNUM_IEEE:
1531915325
case ISD::FMAXIMUM:
1532015326
case ISD::FMINIMUM:
15327+
case ISD::FMAXIMUMNUM:
15328+
case ISD::FMINIMUMNUM:
1532115329
case ISD::SMAX:
1532215330
case ISD::SMIN:
1532315331
case ISD::UMAX:

0 commit comments

Comments
 (0)