Index: llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.cpp =================================================================== --- llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.cpp +++ llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.cpp @@ -599,7 +599,7 @@ if (VGPRs < Granule) return MaxWaves; unsigned RoundedRegs = ((VGPRs + Granule - 1) / Granule) * Granule; - return std::min(getTotalNumVGPRs() / RoundedRegs, MaxWaves); + return std::min(std::max(getTotalNumVGPRs() / RoundedRegs, 1u), MaxWaves); } unsigned GCNSubtarget::getReservedNumSGPRs(const MachineFunction &MF) const {