__clz
Applicability
Product |
Supported |
|---|---|
Atlas 350 Accelerator Card |
√ |
x |
|
x |
|
x |
|
x |
|
x |
|
x |
Function Usage
Returns the number of consecutive leading zeros in the binary representation of the input data, starting from the most significant bit.
Prototype
1 | int __clz(int x) |
1 | int __clz(long long x) |
1 | int __clz(long x) |
Parameters
Parameter |
Input/Output |
Description |
|---|---|---|
x |
Input |
Source operand. |
Returns
The number of consecutive leading zeros in the binary representation of the input data, starting from the most significant bit.
Restrictions
For SIMT programming, this API is not supported.
Header File to Be Included
To use this API, the simt_api/device_functions.h header file must be included.
Examples
For SIMD and SIMT programming:
1 2 3 4 5 | __simt_vf__ __launch_bounds__(1024) inline void KernelClz(__gm__ int* dst, __gm__ int* x) { int idx = threadIdx.x + blockIdx.x * blockDim.x; dst[idx] = __clz(x[idx]); } |
1 2 3 4 5 | __simt_vf__ __launch_bounds__(1024) inline void KernelClz(__gm__ int* dst, __gm__ long long* x) { int idx = threadIdx.x + blockIdx.x * blockDim.x; dst[idx] = __clz(x[idx]); } |
Parent topic: Mathematical Functions