~pali/+junk/llvm-toolchain-3.7

« back to all changes in this revision

Viewing changes to test/Transforms/LoopDeletion/dcetest.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
; This is the test case taken from Appel's book that illustrates a hard case
 
2
; that SCCP gets right, and when followed by ADCE, is completely eliminated
 
3
;
 
4
; RUN: opt < %s -sccp -simplifycfg -indvars -loop-deletion -dce -simplifycfg -S | not grep br
 
5
 
 
6
define i32 @"test function"(i32 %i0, i32 %j0) {
 
7
BB1:
 
8
        br label %BB2
 
9
 
 
10
BB2:            ; preds = %BB7, %BB1
 
11
        %j2 = phi i32 [ %j4, %BB7 ], [ 1, %BB1 ]                ; <i32> [#uses=2]
 
12
        %k2 = phi i32 [ %k4, %BB7 ], [ 0, %BB1 ]                ; <i32> [#uses=4]
 
13
        %kcond = icmp slt i32 %k2, 100          ; <i1> [#uses=1]
 
14
        br i1 %kcond, label %BB3, label %BB4
 
15
 
 
16
BB3:            ; preds = %BB2
 
17
        %jcond = icmp slt i32 %j2, 20           ; <i1> [#uses=1]
 
18
        br i1 %jcond, label %BB5, label %BB6
 
19
 
 
20
BB4:            ; preds = %BB2
 
21
        ret i32 %j2
 
22
 
 
23
BB5:            ; preds = %BB3
 
24
        %k3 = add i32 %k2, 1            ; <i32> [#uses=1]
 
25
        br label %BB7
 
26
 
 
27
BB6:            ; preds = %BB3
 
28
        %k5 = add i32 %k2, 1            ; <i32> [#uses=1]
 
29
        br label %BB7
 
30
 
 
31
BB7:            ; preds = %BB6, %BB5
 
32
        %j4 = phi i32 [ 1, %BB5 ], [ %k2, %BB6 ]                ; <i32> [#uses=1]
 
33
        %k4 = phi i32 [ %k3, %BB5 ], [ %k5, %BB6 ]              ; <i32> [#uses=1]
 
34
        br label %BB2
 
35
}
 
36