[llvm-dev] CTPOP and zeroes
Friedman, Eli via llvm-dev
llvm-dev at lists.llvm.org
Thu Jan 18 11:01:57 PST 2018
On 1/18/2018 12:57 AM, ORiordan, Martin via llvm-dev wrote:
> Quick question. The 'ISD::CTPOP' node allows a target to lower the counting of ones in a word to a single instruction. Our target also has an instruction for counting the zeroes in a word. Does CTPOP support counting of zeroes as well as ones instead of doing either "CTPOP(INVERT(operand))" or "N-bits - CTPOP(operand)"?
There is no target-independent ISD opcode for the operation you're
describing (as far as I know, no in-tree target has an instruction like
that). I would suggest handling this using pattern-matching in your
backend, e.g. "def : Pat<(i32 (ctpop (not i32:$a))), (INVCTPOP R:$a)>;".
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
More information about the llvm-dev