Test case update for unroll-scev.

llvm-svn: 139037
This commit is contained in:
Andrew Trick 2011-09-02 21:21:03 +00:00
parent bbb226a827
commit 310a448cfe
2 changed files with 13 additions and 8 deletions

View File

@ -1,4 +1,4 @@
; RUN: opt < %s -loop-unroll -S -unroll-count=4 -disable-unroll-scev | FileCheck %s
; RUN: opt < %s -loop-unroll -S -unroll-count=4 | FileCheck %s
; Test phi update after partial unroll.
declare i1 @check() nounwind
@ -73,13 +73,15 @@ bb2: ; preds = %bb1.bb2_crit_edge,
; CHECK: exit.3:
define i32 @test3() nounwind uwtable ssp align 2 {
entry:
br i1 undef, label %return, label %if.end
%cond1 = call zeroext i1 @check()
br i1 %cond1, label %return, label %if.end
if.end: ; preds = %entry
br label %do.body
do.body: ; preds = %do.cond, %if.end
br i1 undef, label %exit, label %do.cond
%cond2 = call zeroext i1 @check()
br i1 %cond2, label %exit, label %do.cond
exit: ; preds = %do.body
%tmp7.i = load i32* undef, align 8
@ -89,7 +91,8 @@ land.lhs.true: ; preds = %exit
br i1 undef, label %return, label %do.cond
do.cond: ; preds = %land.lhs.true, %exit, %do.body
br i1 undef, label %do.end, label %do.body
%cond3 = call zeroext i1 @check()
br i1 %cond3, label %do.end, label %do.body
do.end: ; preds = %do.cond
br label %return

View File

@ -1,18 +1,20 @@
; RUN: opt -S < %s -loop-unroll -unroll-count=4 -disable-iv-rewrite -disable-unroll-scev | FileCheck %s
; RUN: opt -S < %s -loop-unroll -unroll-count=4 -disable-iv-rewrite | FileCheck %s
;
; Test induction variable simplify after loop unrolling. It should
; expose nice opportunities for GVN.
;
; CHECK-NOT: while.body also ensures that loop unrolling (with SCEV)
; removes unrolled loop exits given that 128 is a multiple of 4.
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f80:128:128-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32"
; PR10534: LoopUnroll not keeping canonical induction variable...
; CHECK: while.body.1:
; CHECK: while.body:
; CHECK-NOT: while.body.1:
; CHECK: %shr.1 = lshr i32 %bit_addr.addr.01, 5
; CHECK: %arrayidx.1 = getelementptr inbounds i32* %bitmap, i32 %shr.1
; CHECK: while.body.2:
; CHECK: %shr.2 = lshr i32 %bit_addr.addr.01, 5
; CHECK: %arrayidx.2 = getelementptr inbounds i32* %bitmap, i32 %shr.2
; CHECK: while.body.3:
; CHECK: %shr.3 = lshr i32 %bit_addr.addr.01, 5
; CHECK: %arrayidx.3 = getelementptr inbounds i32* %bitmap, i32 %shr.3
define void @FlipBit(i32* nocapture %bitmap, i32 %bit_addr, i32 %nbits) nounwind {