brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.6 KiB · f180fa7 Raw
131 lines · plain
1; RUN: opt %loadNPMPolly '-polly-only-func=f.*,g.*' '-passes=polly-custom<scops>' -polly-print-scops -disable-output < %s 2>&1 | FileCheck %s2;3; Check that the flag `-polly-only-func` works with regexes.4;5; CHECK:      Function: f16; CHECK-NEXT:    Region: %for.cond---%for.end7;8; CHECK:      Function: f29; CHECK-NEXT:    Region: %for.cond---%for.end10;11; CHECK:      Function: g112; CHECK-NEXT:    Region: %for.cond---%for.end13;14; CHECK-NOT:      Function: h15;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; }32target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-n32-S64"33 34define void @f1(ptr %sum) {35entry:36  br label %entry.split137 38entry.split1:                                     ; preds = %entry39  br label %entry.split40 41entry.split:                                      ; preds = %entry.split142  br label %for.cond43 44for.cond:                                         ; preds = %for.cond, %entry.split45  %i1.0 = phi i32 [ 0, %entry.split ], [ %inc, %for.cond ]46  %sum.reload = load i32, ptr %sum47  %mul = mul nsw i32 %i1.0, 348  %add = add nsw i32 %sum.reload, %mul49  %inc = add nsw i32 %i1.0, 150  store i32 %add, ptr %sum51  %cmp = icmp slt i32 %i1.0, 10052  br i1 %cmp, label %for.cond, label %for.end53 54for.end:                                          ; preds = %for.cond55  ret void56}57 58 59define void @f2(ptr %sum) {60entry:61  br label %entry.split162 63entry.split1:                                     ; preds = %entry64  br label %entry.split65 66entry.split:                                      ; preds = %entry.split167  br label %for.cond68 69for.cond:                                         ; preds = %for.cond, %entry.split70  %i1.0 = phi i32 [ 0, %entry.split ], [ %inc, %for.cond ]71  %sum.reload = load i32, ptr %sum72  %mul = mul nsw i32 %i1.0, 373  %add = add nsw i32 %sum.reload, %mul74  %inc = add nsw i32 %i1.0, 175  store i32 %add, ptr %sum76  %cmp = icmp slt i32 %i1.0, 10077  br i1 %cmp, label %for.cond, label %for.end78 79for.end:                                          ; preds = %for.cond80  ret void81}82 83define void @g1(ptr %sum) {84entry:85  br label %entry.split186 87entry.split1:                                     ; preds = %entry88  br label %entry.split89 90entry.split:                                      ; preds = %entry.split191  br label %for.cond92 93for.cond:                                         ; preds = %for.cond, %entry.split94  %i1.0 = phi i32 [ 0, %entry.split ], [ %inc, %for.cond ]95  %sum.reload = load i32, ptr %sum96  %mul = mul nsw i32 %i1.0, 397  %add = add nsw i32 %sum.reload, %mul98  %inc = add nsw i32 %i1.0, 199  store i32 %add, ptr %sum100  %cmp = icmp slt i32 %i1.0, 100101  br i1 %cmp, label %for.cond, label %for.end102 103for.end:                                          ; preds = %for.cond104  ret void105}106 107define void @h(ptr %sum) {108entry:109  br label %entry.split1110 111entry.split1:                                     ; preds = %entry112  br label %entry.split113 114entry.split:                                      ; preds = %entry.split1115  br label %for.cond116 117for.cond:                                         ; preds = %for.cond, %entry.split118  %i1.0 = phi i32 [ 0, %entry.split ], [ %inc, %for.cond ]119  %sum.reload = load i32, ptr %sum120  %mul = mul nsw i32 %i1.0, 3121  %add = add nsw i32 %sum.reload, %mul122  %inc = add nsw i32 %i1.0, 1123  store i32 %add, ptr %sum124  %cmp = icmp slt i32 %i1.0, 100125  br i1 %cmp, label %for.cond, label %for.end126 127for.end:                                          ; preds = %for.cond128  ret void129}130 131