1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/unittests/ADT
Craig Topper e1fe9f0a92 [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

llvm-svn: 303431
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
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
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
PackedVectorTest.cpp
PointerEmbeddedIntTest.cpp
PointerIntPairTest.cpp
PointerSumTypeTest.cpp
PointerUnionTest.cpp
PostOrderIteratorTest.cpp
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
SequenceTest.cpp
SetVectorTest.cpp
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
SmallVectorTest.cpp
SparseBitVectorTest.cpp [ADT] Add SparseBitVector::find_last(). 2017-01-17 23:09:21 +00:00
SparseMultiSetTest.cpp
SparseSetTest.cpp
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