summaryrefslogtreecommitdiff
path: root/src/arch/hsail/insts/decl.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/hsail/insts/decl.hh')
-rw-r--r--src/arch/hsail/insts/decl.hh20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/arch/hsail/insts/decl.hh b/src/arch/hsail/insts/decl.hh
index 4c0bc9ce1..919a4d9d4 100644
--- a/src/arch/hsail/insts/decl.hh
+++ b/src/arch/hsail/insts/decl.hh
@@ -725,6 +725,26 @@ namespace HsailISA
}
};
+ template<typename DestDataType, typename SrcDataType>
+ class PopcountInst :
+ public CommonInstBase<typename DestDataType::OperandType,
+ typename SrcDataType::OperandType, 1>
+ {
+ public:
+ std::string opcode_suffix()
+ {
+ return csprintf("_%s_%s", DestDataType::label, SrcDataType::label);
+ }
+
+ PopcountInst(const Brig::BrigInstBase *ib, const BrigObject *obj,
+ const char *_opcode)
+ : CommonInstBase<typename DestDataType::OperandType,
+ typename SrcDataType::OperandType,
+ 1>(ib, obj, _opcode)
+ {
+ }
+ };
+
class SpecialInstNoSrcNoDest : public HsailGPUStaticInst
{
public: