@@ -3534,16 +3534,6 @@ multiclass FPMed3Pat<ValueType vt,
3534
3534
DSTCLAMP.NONE, DSTOMOD.NONE)>;
3535
3535
}
3536
3536
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
-
3547
3537
multiclass Int16Med3Pat<Instruction med3Inst,
3548
3538
SDPatternOperator min,
3549
3539
SDPatternOperator max> {
@@ -3566,6 +3556,10 @@ multiclass Int16Med3Pat<Instruction med3Inst,
3566
3556
3567
3557
defm : FPMed3Pat<f32, V_MED3_F32_e64>;
3568
3558
3559
+ let SubtargetPredicate = HasMed3_16 in {
3560
+ defm : FPMed3Pat<f16, V_MED3_F16_e64>;
3561
+ }
3562
+
3569
3563
class
3570
3564
IntMinMaxPat<Instruction minmaxInst, SDPatternOperator min_or_max,
3571
3565
SDPatternOperator max_or_min_oneuse> : AMDGPUPat <
@@ -3611,7 +3605,6 @@ def : FPMinCanonMaxPat<V_MAXMIN_F16_e64, f16, fminnum_like, fmaxnum_like_oneuse>
3611
3605
}
3612
3606
3613
3607
let OtherPredicates = [isGFX9Plus] in {
3614
- def : FP16Med3Pat<f16, V_MED3_F16_e64>;
3615
3608
defm : Int16Med3Pat<V_MED3_I16_e64, smin, smax>;
3616
3609
defm : Int16Med3Pat<V_MED3_U16_e64, umin, umax>;
3617
3610
} // End Predicates = [isGFX9Plus]
0 commit comments