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