diff options
Diffstat (limited to 'llvm/lib/Target/AMDGPU')
| -rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp | 13 | 
1 files changed, 8 insertions, 5 deletions
| diff --git a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp index df58e7dbef0..090208e4c30 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp @@ -634,11 +634,14 @@ AMDGPULegalizerInfo::AMDGPULegalizerInfo(const GCNSubtarget &ST_,      getActionDefinitionsBuilder(Op)        .legalIf([=](const LegalityQuery &Query) { -          const LLT &VecTy = Query.Types[VecTypeIdx]; -          const LLT &IdxTy = Query.Types[IdxTypeIdx]; -          return VecTy.getSizeInBits() % 32 == 0 && -            VecTy.getSizeInBits() <= 512 && -            IdxTy.getSizeInBits() == 32; +          const LLT EltTy = Query.Types[EltTypeIdx]; +          const LLT VecTy = Query.Types[VecTypeIdx]; +          const LLT IdxTy = Query.Types[IdxTypeIdx]; +          return (EltTy.getSizeInBits() == 16 || +                  EltTy.getSizeInBits() % 32 == 0) && +                 VecTy.getSizeInBits() % 32 == 0 && +                 VecTy.getSizeInBits() <= 512 && +                 IdxTy.getSizeInBits() == 32;          })        .clampScalar(EltTypeIdx, S32, S64)        .clampScalar(VecTypeIdx, S32, S64) | 

