From 8b4afc5aef148aff26047ca7bad4cdcf58c35e25 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 10 Sep 2021 11:31:26 -0700 Subject: [APInt] Add a concat method, use LLVM_UNLIKELY to help optimizer. Three unrelated changes: 1) Add a concat method as a convenience to help write bitvector use cases in a nicer way. 2) Use LLVM_UNLIKELY as suggested by @xbolva00 in a previous patch. 3) Fix casing of some "slow" methods to follow naming standards. Differential Revision: https://reviews.llvm.org/D109620 --- llvm/unittests/ADT/APIntTest.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'llvm/unittests/ADT/APIntTest.cpp') diff --git a/llvm/unittests/ADT/APIntTest.cpp b/llvm/unittests/ADT/APIntTest.cpp index 6da9d2d..fe7a231 100644 --- a/llvm/unittests/ADT/APIntTest.cpp +++ b/llvm/unittests/ADT/APIntTest.cpp @@ -2587,6 +2587,18 @@ TEST(APIntTest, truncOrSelf) { EXPECT_EQ(0xFFFFFFFF, val.truncOrSelf(64)); } +TEST(APIntTest, concatMSB) { + APInt Int1(4, 0x1ULL); + APInt Int3(4, 0x3ULL); + + EXPECT_EQ(0x31, Int3.concat(Int1)); + EXPECT_EQ(APInt(12, 0x313), Int3.concat(Int1).concat(Int3)); + EXPECT_EQ(APInt(16, 0x3313), Int3.concat(Int3).concat(Int1).concat(Int3)); + + APInt I64(64, 0x3ULL); + EXPECT_EQ(I64, I64.concat(I64).lshr(64).trunc(64)); +} + TEST(APIntTest, multiply) { APInt i64(64, 1234); -- cgit v1.1