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