Index: llvm/lib/Target/AMDGPU/SIInstrInfo.cpp =================================================================== --- llvm/lib/Target/AMDGPU/SIInstrInfo.cpp +++ llvm/lib/Target/AMDGPU/SIInstrInfo.cpp @@ -3906,6 +3906,7 @@ } case AMDGPU::OPERAND_KIMM32: case AMDGPU::OPERAND_KIMM16: + return false; case AMDGPU::OPERAND_INPUT_MODS: case MCOI::OPERAND_IMMEDIATE: // Always embedded in the instruction for free. Index: llvm/lib/Target/AMDGPU/VOP2Instructions.td =================================================================== --- llvm/lib/Target/AMDGPU/VOP2Instructions.td +++ llvm/lib/Target/AMDGPU/VOP2Instructions.td @@ -931,7 +931,7 @@ } // End isCommutable = 1 } // End SubtargetPredicate = isGFX11Plus -let FPDPRounding = 1, isReMaterializable = 1 in { +let FPDPRounding = 1, isReMaterializable = 1, FixedSize = 1 in { let SubtargetPredicate = isGFX10Plus, OtherPredicates = [NotHasTrue16BitInsts] in { def V_FMAMK_F16 : VOP2_Pseudo <"v_fmamk_f16", VOP_MADMK_F16, [], "">; } @@ -1089,7 +1089,7 @@ } } // End AddedComplexity = 30 -let SubtargetPredicate = HasFmaakFmamkF32Insts, isReMaterializable = 1 in { +let SubtargetPredicate = HasFmaakFmamkF32Insts, isReMaterializable = 1, FixedSize = 1 in { def V_FMAMK_F32 : VOP2_Pseudo<"v_fmamk_f32", VOP_MADMK_F32, [], "">, VOPD_Component<0x2, "v_fmamk_f32">; let isCommutable = 1 in Index: llvm/test/CodeGen/AMDGPU/code-size-estimate.ll =================================================================== --- llvm/test/CodeGen/AMDGPU/code-size-estimate.ll +++ llvm/test/CodeGen/AMDGPU/code-size-estimate.ll @@ -149,6 +149,7 @@ ; GFX9: codeLenInByte = 24 ; GFX10: codeLenInByte = 20 +; GFX11: codeLenInByte = 20 define float @v_mul_f32_vop2_frame_index(float %x) { ; GFX9-LABEL: v_mul_f32_vop2_frame_index: