Skip to content

Commit cc9da20

Browse files
committed
AMDGPU: Form min3/max3 from minimumnum/maximumnum
1 parent 147d87a commit cc9da20

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
@@ -930,6 +930,8 @@ SITargetLowering::SITargetLowering(const TargetMachine &TM,
930930
ISD::FMAXNUM_IEEE,
931931
ISD::FMINIMUM,
932932
ISD::FMAXIMUM,
933+
ISD::FMINIMUMNUM,
934+
ISD::FMAXIMUMNUM,
933935
ISD::FMA,
934936
ISD::SMIN,
935937
ISD::SMAX,
@@ -13479,6 +13481,7 @@ static unsigned minMaxOpcToMin3Max3Opc(unsigned Opc) {
1347913481
switch (Opc) {
1348013482
case ISD::FMAXNUM:
1348113483
case ISD::FMAXNUM_IEEE:
13484+
case ISD::FMAXIMUMNUM:
1348213485
return AMDGPUISD::FMAX3;
1348313486
case ISD::FMAXIMUM:
1348413487
return AMDGPUISD::FMAXIMUM3;
@@ -13488,6 +13491,7 @@ static unsigned minMaxOpcToMin3Max3Opc(unsigned Opc) {
1348813491
return AMDGPUISD::UMAX3;
1348913492
case ISD::FMINNUM:
1349013493
case ISD::FMINNUM_IEEE:
13494+
case ISD::FMINIMUMNUM:
1349113495
return AMDGPUISD::FMIN3;
1349213496
case ISD::FMINIMUM:
1349313497
return AMDGPUISD::FMINIMUM3;
@@ -13609,6 +13613,8 @@ static bool supportsMin3Max3(const GCNSubtarget &Subtarget, unsigned Opc,
1360913613
case ISD::FMAXNUM:
1361013614
case ISD::FMINNUM_IEEE:
1361113615
case ISD::FMAXNUM_IEEE:
13616+
case ISD::FMINIMUMNUM:
13617+
case ISD::FMAXIMUMNUM:
1361213618
case AMDGPUISD::FMIN_LEGACY:
1361313619
case AMDGPUISD::FMAX_LEGACY:
1361413620
return (VT == MVT::f32) || (VT == MVT::f16 && Subtarget.hasMin3Max3_16());
@@ -15314,6 +15320,8 @@ SDValue SITargetLowering::PerformDAGCombine(SDNode *N,
1531415320
case ISD::FMINNUM_IEEE:
1531515321
case ISD::FMAXIMUM:
1531615322
case ISD::FMINIMUM:
15323+
case ISD::FMAXIMUMNUM:
15324+
case ISD::FMINIMUMNUM:
1531715325
case ISD::SMAX:
1531815326
case ISD::SMIN:
1531915327
case ISD::UMAX:

0 commit comments

Comments
 (0)