@@ -170,8 +170,8 @@ defm V_MUL_HI_I32 : VOP3Inst <"v_mul_hi_i32", V_MUL_PROF<VOP_I32_I32_I32>, mulhs
170
170
let SubtargetPredicate = isGFX12Plus, ReadsModeReg = 0, AddedComplexity = 1 in {
171
171
defm V_MINIMUM_F32 : VOP3Inst <"v_minimum_f32", VOP3_Profile<VOP_F32_F32_F32>, DivergentBinFrag<fminimum>>;
172
172
defm V_MAXIMUM_F32 : VOP3Inst <"v_maximum_f32", VOP3_Profile<VOP_F32_F32_F32>, DivergentBinFrag<fmaximum>>;
173
- defm V_MINIMUM_F16 : VOP3Inst <"v_minimum_f16", VOP3_Profile< VOP_F16_F16_F16> , DivergentBinFrag<fminimum>>;
174
- defm V_MAXIMUM_F16 : VOP3Inst <"v_maximum_f16", VOP3_Profile< VOP_F16_F16_F16> , DivergentBinFrag<fmaximum>>;
173
+ defm V_MINIMUM_F16 : VOP3Inst_t16 <"v_minimum_f16", VOP_F16_F16_F16, DivergentBinFrag<fminimum>>;
174
+ defm V_MAXIMUM_F16 : VOP3Inst_t16 <"v_maximum_f16", VOP_F16_F16_F16, DivergentBinFrag<fmaximum>>;
175
175
176
176
let SchedRW = [WriteDoubleAdd] in {
177
177
defm V_MINIMUM_F64 : VOP3Inst <"v_minimum_f64", VOP3_Profile<VOP_F64_F64_F64>, fminimum>;
@@ -634,8 +634,8 @@ defm V_MAX3_I16 : VOP3Inst_t16 <"v_max3_i16", VOP_I16_I16_I16_I16, AMDGPUsmax3>;
634
634
defm V_MAX3_U16 : VOP3Inst_t16 <"v_max3_u16", VOP_I16_I16_I16_I16, AMDGPUumax3>;
635
635
636
636
let SubtargetPredicate = HasMinimum3Maximum3F16, ReadsModeReg = 0 in {
637
- defm V_MINIMUM3_F16 : VOP3Inst <"v_minimum3_f16", VOP3_Profile< VOP_F16_F16_F16_F16, VOP3_OPSEL> , AMDGPUfminimum3>;
638
- defm V_MAXIMUM3_F16 : VOP3Inst <"v_maximum3_f16", VOP3_Profile< VOP_F16_F16_F16_F16, VOP3_OPSEL> , AMDGPUfmaximum3>;
637
+ defm V_MINIMUM3_F16 : VOP3Inst_t16 <"v_minimum3_f16", VOP_F16_F16_F16_F16, AMDGPUfminimum3>;
638
+ defm V_MAXIMUM3_F16 : VOP3Inst_t16 <"v_maximum3_f16", VOP_F16_F16_F16_F16, AMDGPUfmaximum3>;
639
639
} // End SubtargetPredicate = isGFX12Plus, ReadsModeReg = 0
640
640
641
641
defm V_ADD_I16 : VOP3Inst_t16 <"v_add_i16", VOP_I16_I16_I16>;
@@ -1440,8 +1440,8 @@ let SubtargetPredicate = HasF32ToF16BF16ConversionSRInsts in {
1440
1440
let SubtargetPredicate = isGFX12Plus, ReadsModeReg = 0 in {
1441
1441
defm V_MAXIMUMMINIMUM_F32 : VOP3Inst<"v_maximumminimum_f32", VOP3_Profile<VOP_F32_F32_F32_F32>>;
1442
1442
defm V_MINIMUMMAXIMUM_F32 : VOP3Inst<"v_minimummaximum_f32", VOP3_Profile<VOP_F32_F32_F32_F32>>;
1443
- defm V_MAXIMUMMINIMUM_F16 : VOP3Inst <"v_maximumminimum_f16", VOP3_Profile< VOP_F16_F16_F16_F16, VOP3_OPSEL> >;
1444
- defm V_MINIMUMMAXIMUM_F16 : VOP3Inst <"v_minimummaximum_f16", VOP3_Profile< VOP_F16_F16_F16_F16, VOP3_OPSEL> >;
1443
+ defm V_MAXIMUMMINIMUM_F16 : VOP3Inst_t16 <"v_maximumminimum_f16", VOP_F16_F16_F16_F16>;
1444
+ defm V_MINIMUMMAXIMUM_F16 : VOP3Inst_t16 <"v_minimummaximum_f16", VOP_F16_F16_F16_F16>;
1445
1445
} // End SubtargetPredicate = isGFX12Plus, ReadsModeReg = 0
1446
1446
1447
1447
let SubtargetPredicate = HasDot9Insts, IsDOT=1 in {
@@ -1591,8 +1591,8 @@ defm V_MIN3_NUM_F16 : VOP3_Realtriple_t16_and_fake16_gfx12<0x22b, "v_min3_
1591
1591
defm V_MAX3_NUM_F16 : VOP3_Realtriple_t16_and_fake16_gfx12<0x22c, "v_max3_num_f16", "V_MAX3_F16", "v_max3_f16">;
1592
1592
defm V_MINIMUM3_F32 : VOP3Only_Realtriple_gfx12<0x22d>;
1593
1593
defm V_MAXIMUM3_F32 : VOP3Only_Realtriple_gfx12<0x22e>;
1594
- defm V_MINIMUM3_F16 : VOP3Only_Realtriple_t16_gfx12 <0x22f>;
1595
- defm V_MAXIMUM3_F16 : VOP3Only_Realtriple_t16_gfx12 <0x230>;
1594
+ defm V_MINIMUM3_F16 : VOP3Only_Realtriple_t16_and_fake16_gfx12 <0x22f, "v_minimum3_f16" >;
1595
+ defm V_MAXIMUM3_F16 : VOP3Only_Realtriple_t16_and_fake16_gfx12 <0x230, "v_maximum3_f16" >;
1596
1596
defm V_MED3_NUM_F32 : VOP3_Realtriple_with_name_gfx12<0x231, "V_MED3_F32", "v_med3_num_f32">;
1597
1597
defm V_MED3_NUM_F16 : VOP3_Realtriple_t16_and_fake16_gfx12<0x232, "v_med3_num_f16", "V_MED3_F16", "v_med3_f16">;
1598
1598
defm V_MINMAX_NUM_F32 : VOP3_Realtriple_with_name_gfx12<0x268, "V_MINMAX_F32", "v_minmax_num_f32">;
@@ -1601,8 +1601,8 @@ defm V_MINMAX_NUM_F16 : VOP3_Realtriple_t16_and_fake16_gfx12<0x26a, "v_minma
1601
1601
defm V_MAXMIN_NUM_F16 : VOP3_Realtriple_t16_and_fake16_gfx12<0x26b, "v_maxmin_num_f16", "V_MAXMIN_F16", "v_maxmin_f16">;
1602
1602
defm V_MINIMUMMAXIMUM_F32 : VOP3Only_Realtriple_gfx12<0x26c>;
1603
1603
defm V_MAXIMUMMINIMUM_F32 : VOP3Only_Realtriple_gfx12<0x26d>;
1604
- defm V_MINIMUMMAXIMUM_F16 : VOP3Only_Realtriple_t16_gfx12 <0x26e>;
1605
- defm V_MAXIMUMMINIMUM_F16 : VOP3Only_Realtriple_t16_gfx12 <0x26f>;
1604
+ defm V_MINIMUMMAXIMUM_F16 : VOP3Only_Realtriple_t16_and_fake16_gfx12 <0x26e, "v_minimummaximum_f16" >;
1605
+ defm V_MAXIMUMMINIMUM_F16 : VOP3Only_Realtriple_t16_and_fake16_gfx12 <0x26f, "v_maximumminimum_f16" >;
1606
1606
defm V_S_EXP_F32 : VOP3Only_Real_Base_gfx12<0x280>;
1607
1607
defm V_S_EXP_F16 : VOP3Only_Real_Base_gfx12<0x281>;
1608
1608
defm V_S_LOG_F32 : VOP3Only_Real_Base_gfx12<0x282>;
@@ -1619,8 +1619,8 @@ defm V_MINIMUM_F64 : VOP3Only_Real_Base_gfx12<0x341>;
1619
1619
defm V_MAXIMUM_F64 : VOP3Only_Real_Base_gfx12<0x342>;
1620
1620
defm V_MINIMUM_F32 : VOP3Only_Realtriple_gfx12<0x365>;
1621
1621
defm V_MAXIMUM_F32 : VOP3Only_Realtriple_gfx12<0x366>;
1622
- defm V_MINIMUM_F16 : VOP3Only_Realtriple_t16_gfx12 <0x367>;
1623
- defm V_MAXIMUM_F16 : VOP3Only_Realtriple_t16_gfx12 <0x368>;
1622
+ defm V_MINIMUM_F16 : VOP3Only_Realtriple_t16_and_fake16_gfx12 <0x367, "v_minimum_f16" >;
1623
+ defm V_MAXIMUM_F16 : VOP3Only_Realtriple_t16_and_fake16_gfx12 <0x368, "v_maximum_f16" >;
1624
1624
1625
1625
defm V_PERMLANE16_VAR_B32 : VOP3Only_Real_Base_gfx12<0x30f>;
1626
1626
defm V_PERMLANEX16_VAR_B32 : VOP3Only_Real_Base_gfx12<0x310>;
0 commit comments