xref: /llvm-project/libc/src/stdbit/stdc_trailing_zeros_ull.cpp (revision 5ff3ff33ff930e4ec49da7910612d8a41eb068cb)
1d5a3de4aSNick Desaulniers //===-- Implementation of stdc_trailing_zeros_ull -------------------------===//
2d5a3de4aSNick Desaulniers //
3d5a3de4aSNick Desaulniers // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4d5a3de4aSNick Desaulniers // See https://llvm.org/LICENSE.txt for license information.
5d5a3de4aSNick Desaulniers // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6d5a3de4aSNick Desaulniers //
7d5a3de4aSNick Desaulniers //===----------------------------------------------------------------------===//
8d5a3de4aSNick Desaulniers 
9d5a3de4aSNick Desaulniers #include "src/stdbit/stdc_trailing_zeros_ull.h"
10d5a3de4aSNick Desaulniers 
11d5a3de4aSNick Desaulniers #include "src/__support/CPP/bit.h"
12d5a3de4aSNick Desaulniers #include "src/__support/common.h"
13*5ff3ff33SPetr Hosek #include "src/__support/macros/config.h"
14d5a3de4aSNick Desaulniers 
15*5ff3ff33SPetr Hosek namespace LIBC_NAMESPACE_DECL {
16d5a3de4aSNick Desaulniers 
17d5a3de4aSNick Desaulniers LLVM_LIBC_FUNCTION(unsigned, stdc_trailing_zeros_ull,
18d5a3de4aSNick Desaulniers                    (unsigned long long value)) {
19d5a3de4aSNick Desaulniers   return static_cast<unsigned>(cpp::countr_zero(value));
20d5a3de4aSNick Desaulniers }
21d5a3de4aSNick Desaulniers 
22*5ff3ff33SPetr Hosek } // namespace LIBC_NAMESPACE_DECL
23