diff options
Diffstat (limited to 'llvm/unittests/IR/ConstantRangeTest.cpp')
-rw-r--r-- | llvm/unittests/IR/ConstantRangeTest.cpp | 49 |
1 files changed, 1 insertions, 48 deletions
diff --git a/llvm/unittests/IR/ConstantRangeTest.cpp b/llvm/unittests/IR/ConstantRangeTest.cpp index f8816e4..12362b9 100644 --- a/llvm/unittests/IR/ConstantRangeTest.cpp +++ b/llvm/unittests/IR/ConstantRangeTest.cpp @@ -6,10 +6,9 @@ // //===----------------------------------------------------------------------===// -#include "llvm/IR/ConstantRange.h" #include "llvm/ADT/BitVector.h" -#include "llvm/ADT/Sequence.h" #include "llvm/ADT/SmallBitVector.h" +#include "llvm/IR/ConstantRange.h" #include "llvm/IR/Instructions.h" #include "llvm/IR/Operator.h" #include "llvm/Support/KnownBits.h" @@ -1510,52 +1509,6 @@ TEST(ConstantRange, MakeSatisfyingICmpRegion) { ConstantRange(APInt(8, 4), APInt(8, -128))); } -static bool icmp(CmpInst::Predicate Pred, const APInt &LHS, const APInt &RHS) { - switch (Pred) { - case CmpInst::Predicate::ICMP_EQ: - return LHS.eq(RHS); - case CmpInst::Predicate::ICMP_NE: - return LHS.ne(RHS); - case CmpInst::Predicate::ICMP_UGT: - return LHS.ugt(RHS); - case CmpInst::Predicate::ICMP_UGE: - return LHS.uge(RHS); - case CmpInst::Predicate::ICMP_ULT: - return LHS.ult(RHS); - case CmpInst::Predicate::ICMP_ULE: - return LHS.ule(RHS); - case CmpInst::Predicate::ICMP_SGT: - return LHS.sgt(RHS); - case CmpInst::Predicate::ICMP_SGE: - return LHS.sge(RHS); - case CmpInst::Predicate::ICMP_SLT: - return LHS.slt(RHS); - case CmpInst::Predicate::ICMP_SLE: - return LHS.sle(RHS); - default: - llvm_unreachable("Not an ICmp predicate!"); - } -} - -void ICmpTestImpl(CmpInst::Predicate Pred) { - unsigned Bits = 4; - EnumerateTwoConstantRanges( - Bits, [&](const ConstantRange &CR1, const ConstantRange &CR2) { - bool Exhaustive = true; - ForeachNumInConstantRange(CR1, [&](const APInt &N1) { - ForeachNumInConstantRange( - CR2, [&](const APInt &N2) { Exhaustive &= icmp(Pred, N1, N2); }); - }); - EXPECT_EQ(CR1.icmp(Pred, CR2), Exhaustive); - }); -} - -TEST(ConstantRange, ICmp) { - for (auto Pred : seq<unsigned>(CmpInst::Predicate::FIRST_ICMP_PREDICATE, - 1 + CmpInst::Predicate::LAST_ICMP_PREDICATE)) - ICmpTestImpl((CmpInst::Predicate)Pred); -} - TEST(ConstantRange, MakeGuaranteedNoWrapRegion) { const int IntMin4Bits = 8; const int IntMax4Bits = 7; |