[Simplify] Remove unused instructions and accesses.
[polly-mirror.git] / test / ScopDetect / only_func_flag.ll
blob4a070a64088c8173106d91c20f4f7c755f7c6d68
1 ; RUN: opt %loadPolly -polly-scops  -analyze -polly-only-func=f,g < %s | FileCheck %s
3 ; Check that the flag `-polly-only-func` limits analysis to `f` and `g`.
5 ; CHECK:      Function: f
6 ; CHECK-NEXT:    Region: %for.cond---%for.end
8 ; CHECK:      Function: g
9 ; CHECK-NEXT:    Region: %for.cond---%for.end
11 ; CHECK-NOT:      Function: h
13 ; void f(int* sum) {
14 ;   for (int i = 0; i <= 100; i++)
15 ;     sum += i * 3;
16 ; }
17 ; void g(int* sum) {
18 ;   for (int i = 0; i <= 100; i++)
19 ;     sum += i * 3;
20 ; }
21 ; void h(int* sum) {
22 ;   for (int i = 0; i <= 100; i++)
23 ;     sum += i * 3;
24 ; }
25 target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-n32-S64"
27 define void @f(i32* %sum) {
28 entry:
29   br label %entry.split1
31 entry.split1:                                     ; preds = %entry
32   br label %entry.split
34 entry.split:                                      ; preds = %entry.split1
35   br label %for.cond
37 for.cond:                                         ; preds = %for.cond, %entry.split
38   %i1.0 = phi i32 [ 0, %entry.split ], [ %inc, %for.cond ]
39   %sum.reload = load i32, i32* %sum
40   %mul = mul nsw i32 %i1.0, 3
41   %add = add nsw i32 %sum.reload, %mul
42   %inc = add nsw i32 %i1.0, 1
43   store i32 %add, i32* %sum
44   %cmp = icmp slt i32 %i1.0, 100
45   br i1 %cmp, label %for.cond, label %for.end
47 for.end:                                          ; preds = %for.cond
48   ret void
52 define void @g(i32* %sum) {
53 entry:
54   br label %entry.split1
56 entry.split1:                                     ; preds = %entry
57   br label %entry.split
59 entry.split:                                      ; preds = %entry.split1
60   br label %for.cond
62 for.cond:                                         ; preds = %for.cond, %entry.split
63   %i1.0 = phi i32 [ 0, %entry.split ], [ %inc, %for.cond ]
64   %sum.reload = load i32, i32* %sum
65   %mul = mul nsw i32 %i1.0, 3
66   %add = add nsw i32 %sum.reload, %mul
67   %inc = add nsw i32 %i1.0, 1
68   store i32 %add, i32* %sum
69   %cmp = icmp slt i32 %i1.0, 100
70   br i1 %cmp, label %for.cond, label %for.end
72 for.end:                                          ; preds = %for.cond
73   ret void
77 define void @h(i32* %sum) {
78 entry:
79   br label %entry.split1
81 entry.split1:                                     ; preds = %entry
82   br label %entry.split
84 entry.split:                                      ; preds = %entry.split1
85   br label %for.cond
87 for.cond:                                         ; preds = %for.cond, %entry.split
88   %i1.0 = phi i32 [ 0, %entry.split ], [ %inc, %for.cond ]
89   %sum.reload = load i32, i32* %sum
90   %mul = mul nsw i32 %i1.0, 3
91   %add = add nsw i32 %sum.reload, %mul
92   %inc = add nsw i32 %i1.0, 1
93   store i32 %add, i32* %sum
94   %cmp = icmp slt i32 %i1.0, 100
95   br i1 %cmp, label %for.cond, label %for.end
97 for.end:                                          ; preds = %for.cond
98   ret void