aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/Analysis/ScalarEvolutionTest.cpp
diff options
context:
space:
mode:
authorMax Kazantsev <mkazantsev@azul.com>2020-10-06 11:18:13 +0700
committerMax Kazantsev <mkazantsev@azul.com>2020-10-06 11:40:14 +0700
commitbbb0ee6e34db1d8e00367ea03ee1972d1131d1e0 (patch)
tree9653f43c0ef69728b928647f2dead8a696d87b1f /llvm/unittests/Analysis/ScalarEvolutionTest.cpp
parent848342b333e76ff1db04d10097470fc454d4a8b7 (diff)
downloadllvm-bbb0ee6e34db1d8e00367ea03ee1972d1131d1e0.zip
llvm-bbb0ee6e34db1d8e00367ea03ee1972d1131d1e0.tar.gz
llvm-bbb0ee6e34db1d8e00367ea03ee1972d1131d1e0.tar.bz2
Revert "[SCEV] Prove implicaitons via AddRec start"
This reverts commit 69acdfe075fa8eb18781f88f4d0cd1ea40fa6e48. Need to investigate reported miscompiles.
Diffstat (limited to 'llvm/unittests/Analysis/ScalarEvolutionTest.cpp')
-rw-r--r--llvm/unittests/Analysis/ScalarEvolutionTest.cpp65
1 files changed, 0 insertions, 65 deletions
diff --git a/llvm/unittests/Analysis/ScalarEvolutionTest.cpp b/llvm/unittests/Analysis/ScalarEvolutionTest.cpp
index be89418..ff33495 100644
--- a/llvm/unittests/Analysis/ScalarEvolutionTest.cpp
+++ b/llvm/unittests/Analysis/ScalarEvolutionTest.cpp
@@ -1251,69 +1251,4 @@ TEST_F(ScalarEvolutionsTest, SCEVgetExitLimitForGuardedLoop) {
});
}
-TEST_F(ScalarEvolutionsTest, ImpliedViaAddRecStart) {
- LLVMContext C;
- SMDiagnostic Err;
- std::unique_ptr<Module> M = parseAssemblyString(
- "define void @foo(i32* %p) { "
- "entry: "
- " %x = load i32, i32* %p, !range !0 "
- " br label %loop "
- "loop: "
- " %iv = phi i32 [ %x, %entry], [%iv.next, %backedge] "
- " %ne.check = icmp ne i32 %iv, 0 "
- " br i1 %ne.check, label %backedge, label %exit "
- "backedge: "
- " %iv.next = add i32 %iv, -1 "
- " br label %loop "
- "exit:"
- " ret void "
- "} "
- "!0 = !{i32 0, i32 2147483647}",
- Err, C);
-
- ASSERT_TRUE(M && "Could not parse module?");
- ASSERT_TRUE(!verifyModule(*M) && "Must have been well formed!");
-
- runWithSE(*M, "foo", [](Function &F, LoopInfo &LI, ScalarEvolution &SE) {
- auto *X = SE.getSCEV(getInstructionByName(F, "x"));
- auto *Context = getInstructionByName(F, "iv.next");
- EXPECT_TRUE(SE.isKnownPredicateAt(ICmpInst::ICMP_NE, X,
- SE.getZero(X->getType()), Context));
- });
-}
-
-TEST_F(ScalarEvolutionsTest, UnsignedIsImpliedViaOperations) {
- LLVMContext C;
- SMDiagnostic Err;
- std::unique_ptr<Module> M =
- parseAssemblyString("define void @foo(i32* %p1, i32* %p2) { "
- "entry: "
- " %x = load i32, i32* %p1, !range !0 "
- " %cond = icmp ne i32 %x, 0 "
- " br i1 %cond, label %guarded, label %exit "
- "guarded: "
- " %y = add i32 %x, -1 "
- " ret void "
- "exit: "
- " ret void "
- "} "
- "!0 = !{i32 0, i32 2147483647}",
- Err, C);
-
- ASSERT_TRUE(M && "Could not parse module?");
- ASSERT_TRUE(!verifyModule(*M) && "Must have been well formed!");
-
- runWithSE(*M, "foo", [](Function &F, LoopInfo &LI, ScalarEvolution &SE) {
- auto *X = SE.getSCEV(getInstructionByName(F, "x"));
- auto *Y = SE.getSCEV(getInstructionByName(F, "y"));
- auto *Guarded = getInstructionByName(F, "y")->getParent();
- ASSERT_TRUE(Guarded);
- EXPECT_TRUE(
- SE.isBasicBlockEntryGuardedByCond(Guarded, ICmpInst::ICMP_ULT, Y, X));
- EXPECT_TRUE(
- SE.isBasicBlockEntryGuardedByCond(Guarded, ICmpInst::ICMP_UGT, X, Y));
- });
-}
-
} // end namespace llvm