diff --git a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp --- a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp @@ -3942,8 +3942,10 @@ // derivatives dx/dh and dx/dv are packed with undef. if (((I + 1) >= EndIdx) || ((Intr->NumGradients / 2) % 2 == 1 && - (I == Intr->GradientStart + (Intr->NumGradients / 2) - 1 || - I == Intr->GradientStart + Intr->NumGradients - 1)) || + (I == static_cast(Intr->GradientStart + + (Intr->NumGradients / 2) - 1) || + I == static_cast(Intr->GradientStart + + Intr->NumGradients - 1))) || // Check for _L to _LZ optimization !MI.getOperand(ArgOffset + I + 1).isReg()) { PackedAddrs.push_back(