diff options
author | Max Kazantsev <mkazantsev@azul.com> | 2020-10-06 11:18:13 +0700 |
---|---|---|
committer | Max Kazantsev <mkazantsev@azul.com> | 2020-10-06 11:40:14 +0700 |
commit | bbb0ee6e34db1d8e00367ea03ee1972d1131d1e0 (patch) | |
tree | 9653f43c0ef69728b928647f2dead8a696d87b1f /llvm/unittests/Analysis/ScalarEvolutionTest.cpp | |
parent | 848342b333e76ff1db04d10097470fc454d4a8b7 (diff) | |
download | llvm-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.cpp | 65 |
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 |