Path: blob/main/lib/libc/stdbit/stdc_first_trailing_one.c
96290 views
/*1* Copyright (c) 2025 Robert Clausecker <[email protected]>2*3* SPDX-License-Identifier: BSD-2-Clause4*/56#include <stdbit.h>78unsigned int9stdc_first_trailing_one_uc(unsigned char x)10{11if (x == 0)12return (0);1314return (__builtin_ctz(x) + 1);15}1617unsigned int18stdc_first_trailing_one_us(unsigned short x)19{20if (x == 0)21return (0);2223return (__builtin_ctz(x) + 1);24}2526unsigned int27stdc_first_trailing_one_ui(unsigned int x)28{29if (x == 0)30return (0);3132return (__builtin_ctz(x) + 1);33}3435unsigned int36stdc_first_trailing_one_ul(unsigned long x)37{38if (x == 0)39return (0);4041return (__builtin_ctzl(x) + 1);42}4344unsigned int45stdc_first_trailing_one_ull(unsigned long long x)46{47if (x == 0)48return (0);4950return (__builtin_ctzll(x) + 1);51}525354