Path: blob/main/lib/libc/stdbit/stdc_first_trailing_zero.c
96290 views
/*1* Copyright (c) 2025 Robert Clausecker <[email protected]>2*3* SPDX-License-Identifier: BSD-2-Clause4*/56#include <limits.h>7#include <stdbit.h>89unsigned int10stdc_first_trailing_zero_uc(unsigned char x)11{12if (x == UCHAR_MAX)13return (0);1415return (__builtin_ctz(~x) + 1);16}1718unsigned int19stdc_first_trailing_zero_us(unsigned short x)20{21if (x == USHRT_MAX)22return (0);2324return (__builtin_ctz(~x) + 1);25}2627unsigned int28stdc_first_trailing_zero_ui(unsigned int x)29{30if (x == ~0U)31return (0);3233return (__builtin_ctz(~x) + 1);34}3536unsigned int37stdc_first_trailing_zero_ul(unsigned long x)38{39if (x == ~0UL)40return (0);4142return (__builtin_ctzl(~x) + 1);43}4445unsigned int46stdc_first_trailing_zero_ull(unsigned long long x)47{48if (x == ~0ULL)49return (0);5051return (__builtin_ctzll(~x) + 1);52}535455