brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · bdd7a2e Raw
41 lines · cpp
1//===-- Unittests for ffsll -----------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#include "src/strings/ffsll.h"10 11#include "src/__support/macros/config.h"12#include "test/UnitTest/Test.h"13 14namespace LIBC_NAMESPACE_DECL {15 16TEST(LlvmLibcFfsllTest, SimpleFfsll) {17  ASSERT_EQ(ffsll(0x0000000000000000LL), 0);18  ASSERT_EQ(ffsll(0x0000000000000001LL), 1);19  ASSERT_EQ(ffsll(0x0000000000000020LL), 6);20  ASSERT_EQ(ffsll(0x0000000000000400LL), 11);21  ASSERT_EQ(ffsll(0x0000000000008000LL), 16);22  ASSERT_EQ(ffsll(0x0000000000010000LL), 17);23  ASSERT_EQ(ffsll(0x0000000000200000LL), 22);24  ASSERT_EQ(ffsll(0x0000000004000000LL), 27);25  ASSERT_EQ(ffsll(0x0000000080000000LL), 32);26  ASSERT_EQ(ffsll(0x0000000100000000LL), 33);27  ASSERT_EQ(ffsll(0x0000002000000000LL), 38);28  ASSERT_EQ(ffsll(0x0000040000000000LL), 43);29  ASSERT_EQ(ffsll(0x0000800000000000LL), 48);30  ASSERT_EQ(ffsll(0x0001000000000000LL), 49);31  ASSERT_EQ(ffsll(0x0020000000000000LL), 54);32  ASSERT_EQ(ffsll(0x0400000000000000LL), 59);33  ASSERT_EQ(ffsll(0x8000000000000000LL), 64);34  ASSERT_EQ(ffsll(0xfbe71LL), 1);35  ASSERT_EQ(ffsll(0xfbe70LL), 5);36  ASSERT_EQ(ffsll(0x10LL), 5);37  ASSERT_EQ(ffsll(0x100LL), 9);38}39 40} // namespace LIBC_NAMESPACE_DECL41