diff --git a/llvm/lib/Target/AMDGPU/SOPInstructions.td b/llvm/lib/Target/AMDGPU/SOPInstructions.td index 849f8a0f183cf..46ac2a4992c45 100644 --- a/llvm/lib/Target/AMDGPU/SOPInstructions.td +++ b/llvm/lib/Target/AMDGPU/SOPInstructions.td @@ -948,7 +948,7 @@ let SubtargetPredicate = HasSALUFloatInsts, mayRaiseFPException = 1, // On GFX12 MIN/MAX instructions do not read MODE register. let SubtargetPredicate = isGFX12Plus, mayRaiseFPException = 1, isCommutable = 1, - isReMaterializable = 1, SchedRW = [WriteSFPU] in { + isReMaterializable = 1, SchedRW = [WriteSFPU], AddedComplexity = 17 in { def S_MINIMUM_F32 : SOP2_F32_Inst<"s_minimum_f32", fminimum>; def S_MAXIMUM_F32 : SOP2_F32_Inst<"s_maximum_f32", fmaximum>; def S_MINIMUM_F16 : SOP2_F16_Inst<"s_minimum_f16", fminimum>; diff --git a/llvm/lib/Target/AMDGPU/VOP3Instructions.td b/llvm/lib/Target/AMDGPU/VOP3Instructions.td index 94dce739b08b5..1d1e24970b52a 100644 --- a/llvm/lib/Target/AMDGPU/VOP3Instructions.td +++ b/llvm/lib/Target/AMDGPU/VOP3Instructions.td @@ -167,7 +167,7 @@ defm V_MUL_LO_I32 : VOP3Inst <"v_mul_lo_i32", V_MUL_PROF>; defm V_MUL_HI_I32 : VOP3Inst <"v_mul_hi_i32", V_MUL_PROF, mulhs>; } // End SchedRW = [WriteIntMul] -let SubtargetPredicate = isGFX12Plus, ReadsModeReg = 0 in { +let SubtargetPredicate = isGFX12Plus, ReadsModeReg = 0, AddedComplexity = 1 in { defm V_MINIMUM_F32 : VOP3Inst <"v_minimum_f32", VOP3_Profile, DivergentBinFrag>; defm V_MAXIMUM_F32 : VOP3Inst <"v_maximum_f32", VOP3_Profile, DivergentBinFrag>; defm V_MINIMUM_F16 : VOP3Inst <"v_minimum_f16", VOP3_Profile, DivergentBinFrag>; @@ -177,7 +177,7 @@ let SchedRW = [WriteDoubleAdd] in { defm V_MINIMUM_F64 : VOP3Inst <"v_minimum_f64", VOP3_Profile, fminimum>; defm V_MAXIMUM_F64 : VOP3Inst <"v_maximum_f64", VOP3_Profile, fmaximum>; } // End SchedRW = [WriteDoubleAdd] -} // End SubtargetPredicate = isGFX12Plus, ReadsModeReg = 0 +} // End SubtargetPredicate = isGFX12Plus, ReadsModeReg = 0, AddedComplexity = 1 } // End isReMaterializable = 1 @@ -1561,7 +1561,7 @@ class MinimumMaximumByMinimum3Maximum3; // Prefer the real 2 operand form if legal -let SubtargetPredicate = HasMinimum3Maximum3F32, AddedComplexity = -1000 in { +let SubtargetPredicate = HasMinimum3Maximum3F32 in { def : MinimumMaximumByMinimum3Maximum3; def : MinimumMaximumByMinimum3Maximum3; }