summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/R600/AMDGPUTargetTransformInfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/R600/AMDGPUTargetTransformInfo.cpp')
-rw-r--r--llvm/lib/Target/R600/AMDGPUTargetTransformInfo.cpp8
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;
+}
OpenPOWER on IntegriCloud