Index: lib/Target/AMDGPU/SIInstrInfo.td =================================================================== --- lib/Target/AMDGPU/SIInstrInfo.td +++ lib/Target/AMDGPU/SIInstrInfo.td @@ -1195,7 +1195,13 @@ // Suppress src2 implied by type since the 32-bit encoding uses an // implicit VCC use. - let Ins32 = (ins Src0RC32:$src0, Src1RC32:$src1); + // + // We also use VCSrc_32 to exclude literal constants, even though + // the encoding normally allows them since the implicit VCC use + // means using one would always violate the constant bus + // restriction. SGPRs are still allowed because it should + // technically be possible to use VCC again as src0. + let Ins32 = (ins VCSrc_32:$src0, Src1RC32:$src1); } class VOP3b_Profile : VOPProfile<[vt, vt, vt, vt]> {