Skip to content

Commit 9bd2174

Browse files
arsenmvikramRH
authored andcommitted
AMDGPU: Form v2f16 minimum3/maximum3 on gfx950 (llvm#128123)
1 parent ea8aa3b commit 9bd2174

File tree

4 files changed

+566
-651
lines changed

4 files changed

+566
-651
lines changed

llvm/lib/Target/AMDGPU/SIISelLowering.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13493,7 +13493,8 @@ static bool supportsMin3Max3(const GCNSubtarget &Subtarget, unsigned Opc,
1349313493
case ISD::FMINIMUM:
1349413494
case ISD::FMAXIMUM:
1349513495
return (VT == MVT::f32 && Subtarget.hasMinimum3Maximum3F32()) ||
13496-
(VT == MVT::f16 && Subtarget.hasMinimum3Maximum3F16());
13496+
(VT == MVT::f16 && Subtarget.hasMinimum3Maximum3F16()) ||
13497+
(VT == MVT::v2f16 && Subtarget.hasMinimum3Maximum3PKF16());
1349713498
case ISD::SMAX:
1349813499
case ISD::SMIN:
1349913500
case ISD::UMAX:

llvm/lib/Target/AMDGPU/VOP3PInstructions.td

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,8 @@ def : VOP3PSatPat<ssubsat, V_PK_SUB_I16>;
145145
} // End SubtargetPredicate = HasVOP3PInsts
146146

147147
let SubtargetPredicate = HasMinimum3Maximum3PKF16, FPDPRounding = 1 in {
148-
defm V_PK_MINIMUM3_F16 : VOP3PInst<"v_pk_minimum3_f16", VOP3P_Profile<VOP_V2F16_V2F16_V2F16_V2F16>>;
149-
defm V_PK_MAXIMUM3_F16 : VOP3PInst<"v_pk_maximum3_f16", VOP3P_Profile<VOP_V2F16_V2F16_V2F16_V2F16>>;
148+
defm V_PK_MINIMUM3_F16 : VOP3PInst<"v_pk_minimum3_f16", VOP3P_Profile<VOP_V2F16_V2F16_V2F16_V2F16>, AMDGPUfminimum3>;
149+
defm V_PK_MAXIMUM3_F16 : VOP3PInst<"v_pk_maximum3_f16", VOP3P_Profile<VOP_V2F16_V2F16_V2F16_V2F16>, AMDGPUfmaximum3>;
150150
}
151151

152152
// TODO: Make sure we're doing the right thing with denormals. Note

0 commit comments

Comments
 (0)