Skip to content

Commit cc46d00

Browse files
authored
AMDGPU: Form v2f16 minimum3/maximum3 on gfx950 (#128123)
1 parent e729dc7 commit cc46d00

File tree

4 files changed

+112
-245
lines changed

4 files changed

+112
-245
lines changed

llvm/lib/Target/AMDGPU/SIISelLowering.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13515,7 +13515,8 @@ static bool supportsMin3Max3(const GCNSubtarget &Subtarget, unsigned Opc,
1351513515
case ISD::FMINIMUM:
1351613516
case ISD::FMAXIMUM:
1351713517
return (VT == MVT::f32 && Subtarget.hasMinimum3Maximum3F32()) ||
13518-
(VT == MVT::f16 && Subtarget.hasMinimum3Maximum3F16());
13518+
(VT == MVT::f16 && Subtarget.hasMinimum3Maximum3F16()) ||
13519+
(VT == MVT::v2f16 && Subtarget.hasMinimum3Maximum3PKF16());
1351913520
case ISD::SMAX:
1352013521
case ISD::SMIN:
1352113522
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)