From 02707cb98e29f7e1a086da25c688a01578943d71 Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Wed, 6 Nov 2013 11:55:41 +0000 Subject: [PATCH] Add test case for PR12377, it was fixed by r194116. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194147 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../IndVarSimplify/loop_evaluate_1.ll | 34 ++++++++++++++++--- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/test/Transforms/IndVarSimplify/loop_evaluate_1.ll b/test/Transforms/IndVarSimplify/loop_evaluate_1.ll index abf1bc3a9d0..5d2c8c7209f 100644 --- a/test/Transforms/IndVarSimplify/loop_evaluate_1.ll +++ b/test/Transforms/IndVarSimplify/loop_evaluate_1.ll @@ -1,8 +1,9 @@ -; RUN: opt < %s -indvars -loop-deletion -simplifycfg -S | not grep br -; -; Testcase distilled from 256.bzip2 +; RUN: opt < %s -indvars -loop-deletion -simplifycfg -S | FileCheck %s -define i32 @main() { +; Testcase distilled from 256.bzip2 +; CHECK-LABEL: @test1 +; CHECK-NOT: br +define i32 @test1() { entry: br label %loopentry @@ -19,3 +20,28 @@ loopexit: ; preds = %loopentry ret i32 %tmp.2 } + +; PR12377 +; CHECK-LABEL: @test2 +; CHECK: [[VAR1:%.+]] = add i32 %arg, -11 +; CHECK: [[VAR2:%.+]] = lshr i32 [[VAR1]], 1 +; CHECK: [[VAR3:%.+]] = add i32 [[VAR2]], 1 +; CHECK: [[VAR4:%.+]] = phi i32 [ 0, %bb ], [ [[VAR3]], %bb1.preheader ] +; CHECK: ret i32 [[VAR4]] +define i32 @test2(i32 %arg) { +bb: + %tmp = icmp ugt i32 %arg, 10 + br i1 %tmp, label %bb1, label %bb7 + +bb1: ; preds = %bb1, %bb + %tmp2 = phi i32 [ %tmp5, %bb1 ], [ 0, %bb ] + %tmp3 = phi i32 [ %tmp4, %bb1 ], [ %arg, %bb ] + %tmp4 = add i32 %tmp3, -2 + %tmp5 = add i32 %tmp2, 1 + %tmp6 = icmp ugt i32 %tmp4, 10 + br i1 %tmp6, label %bb1, label %bb7 + +bb7: ; preds = %bb1, %bb + %tmp8 = phi i32 [ 0, %bb ], [ %tmp5, %bb1 ] + ret i32 %tmp8 +} -- 2.34.1