llvm/unittests/ADT
Craig Topper 47c969db7e [APInt] Add support for dividing or remainder by a uint64_t or int64_t.
Summary:
This patch adds udiv/sdiv/urem/srem/udivrem/sdivrem methods that can divide by a uint64_t. This makes division consistent with all the other arithmetic operations.

This modifies the interface of the divide helper method to work on raw arrays instead of APInts. This way we can pass the uint64_t in for the RHS without wrapping it in an APInt. This required moving all the Quotient and Remainder allocation handling up to the callers. For udiv/urem this was as simple as just creating the Quotient/Remainder with the right size when they were declared. For udivrem we have to rely on reallocate not changing the contents of the variable LHS or RHS is aliased with the Quotient or Remainder APInts. We also have to zero the upper bits of Remainder and Quotient that divide doesn't write to if lhsWords/rhsWords is smaller than the width.

I've update the toString method to use the new udivrem.

Reviewers: hans, dblaikie, RKSimon

Reviewed By: RKSimon

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D33310

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303431 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-19 16:43:54 +00:00
..
APFloatTest.cpp [AsmWriter/APFloat] FP constant printing: Avoid usage of locale dependent snprinf 2017-04-21 02:52:17 +00:00
APIntTest.cpp [APInt] Add support for dividing or remainder by a uint64_t or int64_t. 2017-05-19 16:43:54 +00:00
APSIntTest.cpp
ArrayRefTest.cpp Add some searching functions for ArrayRef<T>. 2016-11-22 23:22:19 +00:00
BitmaskEnumTest.cpp [ADT] Add LLVM_MARK_AS_BITMASK_ENUM, used to enable bitwise operations on enums without static_cast. 2016-07-13 18:23:16 +00:00
BitVectorTest.cpp [BitVector] Add find_[first,last]_[set,unset]_in. 2017-05-17 15:49:45 +00:00
BreadthFirstIteratorTest.cpp [ADT] Add a generic breadth-first-search graph iterator. 2017-04-06 17:03:04 +00:00
BumpPtrListTest.cpp ADT: Add AllocatorList, and use it for yaml::Token 2016-09-11 22:40:40 +00:00
CMakeLists.txt [ADT] Add a generic breadth-first-search graph iterator. 2017-04-06 17:03:04 +00:00
DAGDeltaAlgorithmTest.cpp
DeltaAlgorithmTest.cpp
DenseMapTest.cpp Add support for DenseMap/DenseSet count and find using const pointers 2017-03-10 00:25:26 +00:00
DenseSetTest.cpp Add support for DenseMap/DenseSet count and find using const pointers 2017-03-10 00:25:26 +00:00
DepthFirstIteratorTest.cpp Modify df_iterator to support post-order actions 2016-10-05 21:36:16 +00:00
FoldingSet.cpp PR30711: Fix incorrect profiling of 'long long' in FoldingSet, then use it to 2016-10-16 17:49:09 +00:00
FunctionRefTest.cpp
HashingTest.cpp
IListBaseTest.cpp ADT: Add sentinel tracking and custom tags to ilists 2016-09-11 16:20:53 +00:00
IListIteratorTest.cpp Fix some missing negations in the traits checking from r294349 2017-02-07 21:31:03 +00:00
IListNodeBaseTest.cpp ADT: Add sentinel tracking and custom tags to ilists 2016-09-11 16:20:53 +00:00
IListNodeTest.cpp ADT: Add sentinel tracking and custom tags to ilists 2016-09-11 16:20:53 +00:00
IListSentinelTest.cpp Turn LLVM_ENABLE_ABI_BREAKING_CHECKS into a 0/1 definition like 2016-09-30 19:52:27 +00:00
IListTest.cpp ADT: Never allocate nodes in iplist<> and ilist<> 2016-09-11 23:43:43 +00:00
ImmutableMapTest.cpp
ImmutableSetTest.cpp Fix warnings in ImmutableSetTest and SequenceTest. 2016-07-17 18:10:30 +00:00
IntEqClassesTest.cpp
IntervalMapTest.cpp [ADT] IntervalMap: fix setStart and setStop 2016-11-03 19:14:46 +00:00
IntrusiveRefCntPtrTest.cpp [ADT] Attempt to fix GCC warning in IntrusiveRefCntPtrTest. 2017-01-04 22:49:55 +00:00
IteratorTest.cpp ADT: Add range helpers for pointer_ and pointee_iterator 2017-03-27 12:56:12 +00:00
MakeUniqueTest.cpp
MapVectorTest.cpp [ADT] Let MapVector handle non-copyable values. 2016-10-10 16:25:59 +00:00
OptionalTest.cpp [ADT] Add relation operators for Optional 2016-08-11 20:10:15 +00:00
PackedVectorTest.cpp
PointerEmbeddedIntTest.cpp [ADT] Fix PointerEmbeddedInt when the underlying type is uintptr_t. 2016-02-18 21:00:08 +00:00
PointerIntPairTest.cpp Fix PointerIntPair so that it can use an enum class as its integer template argument. 2016-01-13 05:59:13 +00:00
PointerSumTypeTest.cpp [ADT] Add a sum type abstraction for pointer-like types. 2016-01-10 08:48:23 +00:00
PointerUnionTest.cpp
PostOrderIteratorTest.cpp [ADT] Change PostOrderIterator to use NodeRef. NFC. 2016-08-15 21:52:54 +00:00
PriorityWorklistTest.cpp [ADT] Speculative attempt to fix build bot issues with r290952. 2017-01-04 11:40:18 +00:00
RangeAdapterTest.cpp Reapply "ADT: Remove references in has_rbegin for reverse()" 2016-08-18 17:15:25 +00:00
ReverseIterationTest.cpp [ADT] Fix for compilation error when operator++(int) (post-increment function) of SmallPtrSetIterator is used. 2016-12-30 12:34:36 +00:00
SCCIteratorTest.cpp [ADT] Actually mutate the iterator VisitStack.back().second, not its copy. 2016-08-22 21:59:26 +00:00
ScopeExitTest.cpp [ADT] Add make_scope_exit(). 2016-08-10 17:52:09 +00:00
SequenceTest.cpp Fix warnings in ImmutableSetTest and SequenceTest. 2016-07-17 18:10:30 +00:00
SetVectorTest.cpp [SetVector] Add erase() method 2016-03-25 19:28:08 +00:00
SimpleIListTest.cpp [ilist_node] Add a getReverseIterator() method and a unittest for it. 2016-11-02 00:59:58 +00:00
SmallPtrSetTest.cpp ADT: Fix SmallPtrSet iterators in reverse mode 2017-03-07 21:56:32 +00:00
SmallStringTest.cpp Revert "Fix Clang-tidy modernize-deprecated-headers warnings in remaining files; other minor fixes." 2016-04-05 20:45:04 +00:00
SmallVectorTest.cpp Revert "Fix Clang-tidy modernize-deprecated-headers warnings in remaining files; other minor fixes." 2016-04-05 20:45:04 +00:00
SparseBitVectorTest.cpp [ADT] Add SparseBitVector::find_last(). 2017-01-17 23:09:21 +00:00
SparseMultiSetTest.cpp
SparseSetTest.cpp [ADT] Add a pop_back_val method to the SparseSet container. 2016-03-14 18:10:41 +00:00
STLExtrasTest.cpp Fix sign compare warning in unit test by using an explicit unsigned literal suffix 2017-03-13 21:46:12 +00:00
StringExtrasTest.cpp [StringExtras] Add a fromHex to complement toHex. 2017-04-25 20:21:35 +00:00
StringMapTest.cpp Spelling mistakes in comments. NFCI. 2017-03-31 10:59:37 +00:00
StringRefTest.cpp Add more test cases for StringRef::edit_distance 2017-04-14 08:34:32 +00:00
StringSwitchTest.cpp [Support] Add case-insensitive versions of StringSwitch members. 2016-10-04 19:33:13 +00:00
TestGraph.h s/static inline/static/ for headers I have changed in r279475. NFC. 2016-08-31 16:48:13 +00:00
TinyPtrVectorTest.cpp Remove uses of deprecated std::random_shuffle in the LLVM code base. Reviewed as https://reviews.llvm.org/D29780. 2017-02-16 14:37:03 +00:00
TripleTest.cpp Add SUSE vendor 2017-04-24 11:18:29 +00:00
TwineTest.cpp Fix compilation. 2016-12-17 01:31:46 +00:00
VariadicFunctionTest.cpp