From 2adb40ecb690c3c647bb9996577d823929f39e1e Mon Sep 17 00:00:00 2001 From: Yaron Keren Date: Wed, 22 Apr 2015 18:49:59 +0000 Subject: [PATCH] Another test to exercise APInt divide step D6. This is divrem_big7 since divrem_big6 is used in Pawel upcoming patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235536 91177308-0d34-0410-b5e6-96231b3b80d8 --- unittests/ADT/APIntTest.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/unittests/ADT/APIntTest.cpp b/unittests/ADT/APIntTest.cpp index acdc1ecbbde..a8fc3629cdb 100644 --- a/unittests/ADT/APIntTest.cpp +++ b/unittests/ADT/APIntTest.cpp @@ -409,6 +409,19 @@ TEST(APIntTest, divrem_big5) { EXPECT_EQ(r, c); } +TEST(APIntTest, divrem_big7) { + // Yet another test for KnuthDiv rare step D6. + APInt a{224, "800000008000000200000005", 16}; + APInt b{224, "fffffffd", 16}; + APInt c{224, "80000000800000010000000f", 16}; + + auto p = a * b + c; + auto q = p.udiv(a); + auto r = p.urem(a); + EXPECT_EQ(q, b); + EXPECT_EQ(r, c); +} + TEST(APIntTest, fromString) { EXPECT_EQ(APInt(32, 0), APInt(32, "0", 2)); EXPECT_EQ(APInt(32, 1), APInt(32, "1", 2)); -- 2.34.1