Skip to content

Commit 253a762

Browse files
authored
AMDGPU: Consolidiate f16 med3 patterns (#97399)
1 parent a616f57 commit 253a762

File tree

2 files changed

+5
-11
lines changed

2 files changed

+5
-11
lines changed

llvm/lib/Target/AMDGPU/AMDGPU.td

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2013,6 +2013,7 @@ def HasVOP3PInsts : Predicate<"Subtarget->hasVOP3PInsts()">,
20132013
AssemblerPredicate<(all_of FeatureVOP3P)>;
20142014

20152015
def NotHasMed3_16 : Predicate<"!Subtarget->hasMed3_16()">;
2016+
def HasMed3_16 : Predicate<"Subtarget->hasMed3_16()">;
20162017

20172018
def HasMinMaxDenormModes : Predicate<"Subtarget->supportsMinMaxDenormModes()">;
20182019
def NotHasMinMaxDenormModes : Predicate<"!Subtarget->supportsMinMaxDenormModes()">;

llvm/lib/Target/AMDGPU/SIInstructions.td

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3534,16 +3534,6 @@ multiclass FPMed3Pat<ValueType vt,
35343534
DSTCLAMP.NONE, DSTOMOD.NONE)>;
35353535
}
35363536

3537-
class FP16Med3Pat<ValueType vt,
3538-
Instruction med3Inst> : GCNPat<
3539-
(fmaxnum_like_nnan (fminnum_like (VOP3Mods vt:$src0, i32:$src0_mods),
3540-
(VOP3Mods vt:$src1, i32:$src1_mods)),
3541-
(fminnum_like (fmaxnum_like (VOP3Mods vt:$src0, i32:$src0_mods),
3542-
(VOP3Mods vt:$src1, i32:$src1_mods)),
3543-
(vt (VOP3Mods vt:$src2, i32:$src2_mods)))),
3544-
(med3Inst $src0_mods, $src0, $src1_mods, $src1, $src2_mods, $src2, DSTCLAMP.NONE)
3545-
>;
3546-
35473537
multiclass Int16Med3Pat<Instruction med3Inst,
35483538
SDPatternOperator min,
35493539
SDPatternOperator max> {
@@ -3566,6 +3556,10 @@ multiclass Int16Med3Pat<Instruction med3Inst,
35663556

35673557
defm : FPMed3Pat<f32, V_MED3_F32_e64>;
35683558

3559+
let SubtargetPredicate = HasMed3_16 in {
3560+
defm : FPMed3Pat<f16, V_MED3_F16_e64>;
3561+
}
3562+
35693563
class
35703564
IntMinMaxPat<Instruction minmaxInst, SDPatternOperator min_or_max,
35713565
SDPatternOperator max_or_min_oneuse> : AMDGPUPat <
@@ -3611,7 +3605,6 @@ def : FPMinCanonMaxPat<V_MAXMIN_F16_e64, f16, fminnum_like, fmaxnum_like_oneuse>
36113605
}
36123606

36133607
let OtherPredicates = [isGFX9Plus] in {
3614-
def : FP16Med3Pat<f16, V_MED3_F16_e64>;
36153608
defm : Int16Med3Pat<V_MED3_I16_e64, smin, smax>;
36163609
defm : Int16Med3Pat<V_MED3_U16_e64, umin, umax>;
36173610
} // End Predicates = [isGFX9Plus]

0 commit comments

Comments
 (0)