POPCOUNT(3clc)

πŸ“¦
version 1.0~svn33624 Β· 3 versions
, in ubuntu jammy, ubuntu noble

✨ POPCOUNT πŸ’…

okay so bestie, welcome to the popcount page from the OpenCL Manual β€” yes it's a section 3clc situation, yes it's about counting bits, and yes it absolutely eats πŸ”₯

🌸 NAME 🌸

popcount β€” literally just returns the number of non-zero bits in x. that's it. that's the whole job. iconic behaviour honestly πŸ‘‘

gentype popcount(gentype x);

πŸ¦‹ DESCRIPTION πŸ¦‹

so popcount returns the number of non-zero bits in x. no cap, that's genuinely the entire description. it counts your ones and tells you how many there were πŸ’–


πŸŽ€ NOTES πŸŽ€

okay here's where it gets a lil more involved, stay with me 🫢

Built-in integer functions take scalar or vector arguments. The vector versions of the integer functions operate component-wise. The description is per component.

We use the generic type name gentype to indicate that the function can take char, char{2|3|4|8|16}, uchar, uchar{2|3|4|8|16}, short, short{2|3|4|8|16}, ushort, ushort{2|3|4|8|16}, int, int{2|3|4|8|16}, uint, uint{2|3|4|8|16}, long, long{2|3|4|8|16}, ulong, or ulong{2|3|4|8|16} as the type for the arguments. We use the generic type name ugentype to refer to unsigned versions of gentype. For example, if gentype is char4, ugentype is uchar4. ✨

We also use the generic type name sgentype to indicate that the function can take a scalar data type i.e. char, uchar, short, ushort, int, uint, long, or ulong as the type for the arguments. For built-in integer functions that take gentype and sgentype arguments, the gentype argument must be a vector or scalar version of the sgentype argument. For example, if sgentype is uchar, gentype must be uchar or uchar{2|3|4|8|16}. For vector versions, sgentype is implicitly widened to gentype as described in section 6.3.a of the OpenCL specification. πŸ“š

For any specific use of a function, the actual type has to be the same for all arguments and the return type unless otherwise specified. fr fr, don't mix and match, it will not slay πŸ’€

⭐ SPECIFICATION ⭐

OpenCL Specification[1]


🌈 SEE ALSO 🌈

integerFunctions(3clc)


πŸ’œ AUTHORS πŸ’œ

The Khronos Group


Copyright Β© 2007-2011 The Khronos Group Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and/or associated documentation files (the "Materials"), to deal in the Materials without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Materials, and to permit persons to whom the Materials are furnished to do so, subject to the following condition:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Materials.


πŸ“ NOTES (the footnote one, not the other one) πŸ“

  1. OpenCL Specification β€” page 256, section 6.12.3 - Integer Functions

and that's the whole page bestie!! πŸŽ€ brought to you by The Khronos Group, dated 01/14/2021, filed under POPCOUNT(3clc) β€” go count some bits, you've got this πŸ’…πŸ¦‹βœ¨

πŸ“¦ where this page comes from