Bump version to 19.1.0 (final)
[llvm-project.git] / polly / test / ScopDetect / only_func_flag_regex.ll
blob2ad22c9f7a7f5940dd19dc3237e0119b6e1fd33b
1 ; RUN: opt %loadNPMPolly -polly-only-func=f.*,g.* '-passes=print<polly-function-scops>' -disable-output < %s 2>&1 | FileCheck %s
3 ; Check that the flag `-polly-only-func` works with regexes.
5 ; CHECK:      Function: f1
6 ; CHECK-NEXT:    Region: %for.cond---%for.end
8 ; CHECK:      Function: f2
9 ; CHECK-NEXT:    Region: %for.cond---%for.end
11 ; CHECK:      Function: g1
12 ; CHECK-NEXT:    Region: %for.cond---%for.end
14 ; CHECK-NOT:      Function: h
16 ; void f1(int* sum) {
17 ;   for (int i = 0; i <= 100; i++)
18 ;     sum += i * 3;
19 ; }
20 ; void f2(int* sum) {
21 ;   for (int i = 0; i <= 100; i++)
22 ;     sum += i * 3;
23 ; }
24 ; void g1(int* sum) {
25 ;   for (int i = 0; i <= 100; i++)
26 ;     sum += i * 3;
27 ; }
28 ; void h(int* sum) {
29 ;   for (int i = 0; i <= 100; i++)
30 ;     sum += i * 3;
31 ; }
32 target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-n32-S64"
34 define void @f1(ptr %sum) {
35 entry:
36   br label %entry.split1
38 entry.split1:                                     ; preds = %entry
39   br label %entry.split
41 entry.split:                                      ; preds = %entry.split1
42   br label %for.cond
44 for.cond:                                         ; preds = %for.cond, %entry.split
45   %i1.0 = phi i32 [ 0, %entry.split ], [ %inc, %for.cond ]
46   %sum.reload = load i32, ptr %sum
47   %mul = mul nsw i32 %i1.0, 3
48   %add = add nsw i32 %sum.reload, %mul
49   %inc = add nsw i32 %i1.0, 1
50   store i32 %add, ptr %sum
51   %cmp = icmp slt i32 %i1.0, 100
52   br i1 %cmp, label %for.cond, label %for.end
54 for.end:                                          ; preds = %for.cond
55   ret void
59 define void @f2(ptr %sum) {
60 entry:
61   br label %entry.split1
63 entry.split1:                                     ; preds = %entry
64   br label %entry.split
66 entry.split:                                      ; preds = %entry.split1
67   br label %for.cond
69 for.cond:                                         ; preds = %for.cond, %entry.split
70   %i1.0 = phi i32 [ 0, %entry.split ], [ %inc, %for.cond ]
71   %sum.reload = load i32, ptr %sum
72   %mul = mul nsw i32 %i1.0, 3
73   %add = add nsw i32 %sum.reload, %mul
74   %inc = add nsw i32 %i1.0, 1
75   store i32 %add, ptr %sum
76   %cmp = icmp slt i32 %i1.0, 100
77   br i1 %cmp, label %for.cond, label %for.end
79 for.end:                                          ; preds = %for.cond
80   ret void
83 define void @g1(ptr %sum) {
84 entry:
85   br label %entry.split1
87 entry.split1:                                     ; preds = %entry
88   br label %entry.split
90 entry.split:                                      ; preds = %entry.split1
91   br label %for.cond
93 for.cond:                                         ; preds = %for.cond, %entry.split
94   %i1.0 = phi i32 [ 0, %entry.split ], [ %inc, %for.cond ]
95   %sum.reload = load i32, ptr %sum
96   %mul = mul nsw i32 %i1.0, 3
97   %add = add nsw i32 %sum.reload, %mul
98   %inc = add nsw i32 %i1.0, 1
99   store i32 %add, ptr %sum
100   %cmp = icmp slt i32 %i1.0, 100
101   br i1 %cmp, label %for.cond, label %for.end
103 for.end:                                          ; preds = %for.cond
104   ret void
107 define void @h(ptr %sum) {
108 entry:
109   br label %entry.split1
111 entry.split1:                                     ; preds = %entry
112   br label %entry.split
114 entry.split:                                      ; preds = %entry.split1
115   br label %for.cond
117 for.cond:                                         ; preds = %for.cond, %entry.split
118   %i1.0 = phi i32 [ 0, %entry.split ], [ %inc, %for.cond ]
119   %sum.reload = load i32, ptr %sum
120   %mul = mul nsw i32 %i1.0, 3
121   %add = add nsw i32 %sum.reload, %mul
122   %inc = add nsw i32 %i1.0, 1
123   store i32 %add, ptr %sum
124   %cmp = icmp slt i32 %i1.0, 100
125   br i1 %cmp, label %for.cond, label %for.end
127 for.end:                                          ; preds = %for.cond
128   ret void