diff options
Diffstat (limited to 'llvm/lib/Target/R600/AMDGPUTargetTransformInfo.cpp')
| -rw-r--r-- | llvm/lib/Target/R600/AMDGPUTargetTransformInfo.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/Target/R600/AMDGPUTargetTransformInfo.cpp b/llvm/lib/Target/R600/AMDGPUTargetTransformInfo.cpp index 2d934a4cb09..e3a546e1d72 100644 --- a/llvm/lib/Target/R600/AMDGPUTargetTransformInfo.cpp +++ b/llvm/lib/Target/R600/AMDGPUTargetTransformInfo.cpp @@ -77,6 +77,8 @@ public: void getUnrollingPreferences(Loop *L, UnrollingPreferences &UP) const override; + PopcntSupportKind getPopcntSupport(unsigned IntTyWidthInBit) const override; + /// @} }; @@ -119,3 +121,9 @@ void AMDGPUTTI::getUnrollingPreferences(Loop *L, } } } + +AMDGPUTTI::PopcntSupportKind +AMDGPUTTI::getPopcntSupport(unsigned TyWidth) const { + assert(isPowerOf2_32(TyWidth) && "Ty width must be power of 2"); + return ST->hasBCNT(TyWidth) ? PSK_FastHardware : PSK_Software; +} |

