~pali/+junk/llvm-toolchain-3.7

« back to all changes in this revision

Viewing changes to test/Analysis/ScalarEvolution/2008-12-08-FiniteSGE.ll

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2015-07-15 17:51:08 UTC
  • Revision ID: package-import@ubuntu.com-20150715175108-l8mynwovkx4zx697
Tags: upstream-3.7~+rc2
ImportĀ upstreamĀ versionĀ 3.7~+rc2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s
 
2
 
 
3
; CHECK: backedge-taken count is 255
 
4
 
 
5
define i32 @foo(i32 %x, i32 %y, i32* %lam, i32* %alp) nounwind {
 
6
bb1.thread:
 
7
        br label %bb1
 
8
 
 
9
bb1:            ; preds = %bb1, %bb1.thread
 
10
        %indvar = phi i32 [ 0, %bb1.thread ], [ %indvar.next, %bb1 ]            ; <i32> [#uses=4]
 
11
        %i.0.reg2mem.0 = sub i32 255, %indvar           ; <i32> [#uses=2]
 
12
        %0 = getelementptr i32, i32* %alp, i32 %i.0.reg2mem.0           ; <i32*> [#uses=1]
 
13
        %1 = load i32, i32* %0, align 4         ; <i32> [#uses=1]
 
14
        %2 = getelementptr i32, i32* %lam, i32 %i.0.reg2mem.0           ; <i32*> [#uses=1]
 
15
        store i32 %1, i32* %2, align 4
 
16
        %3 = sub i32 254, %indvar               ; <i32> [#uses=1]
 
17
        %4 = icmp slt i32 %3, 0         ; <i1> [#uses=1]
 
18
        %indvar.next = add i32 %indvar, 1               ; <i32> [#uses=1]
 
19
        br i1 %4, label %bb2, label %bb1
 
20
 
 
21
bb2:            ; preds = %bb1
 
22
        %tmp10 = mul i32 %indvar, %x            ; <i32> [#uses=1]
 
23
        %z.0.reg2mem.0 = add i32 %tmp10, %y             ; <i32> [#uses=1]
 
24
        %5 = add i32 %z.0.reg2mem.0, %x         ; <i32> [#uses=1]
 
25
        ret i32 %5
 
26
}