brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.6 KiB · 0a5d36f Raw
96 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly-custom<deps>' -polly-print-deps -debug-only=polly-dependence -disable-output < %s 2>&1 | FileCheck %s2;3; REQUIRES: asserts4;5; CHECK:      Read: { [Stmt_for_cond[i0] -> MemRef_sum[0{{\]\]}} -> MemRef_sum[0] : 0 <= i0 <= 100 }6; CHECK-NEXT: Write: { [Stmt_for_cond[i0] -> MemRef_sum[0{{\]\]}} -> MemRef_sum[0] : 0 <= i0 <= 100 }7; CHECK-NEXT: MayWrite: {  }8;9; CHECK:      Wrapped Dependences:10; CHECK-NEXT:     RAW dependences:11; CHECK-NEXT:         { [Stmt_for_cond[i0] -> MemRef_sum[0{{\]\]}} -> [Stmt_for_cond[1 + i0] -> MemRef_sum[0{{\]\]}} : 0 <= i0 <= 99 }12; CHECK-NEXT:     WAR dependences:13; CHECK-NEXT:         { [Stmt_for_cond[i0] -> MemRef_sum[0{{\]\]}} -> [Stmt_for_cond[1 + i0] -> MemRef_sum[0{{\]\]}} : 0 <= i0 <= 99 }14; CHECK-NEXT:     WAW dependences:15; CHECK-NEXT:         { [Stmt_for_cond[i0] -> MemRef_sum[0{{\]\]}} -> [Stmt_for_cond[1 + i0] -> MemRef_sum[0{{\]\]}} : 0 <= i0 <= 99 }16; CHECK-NEXT:     Reduction dependences:17; CHECK-NEXT:         n/a18;19; CHECK:      Final Wrapped Dependences:20; CHECK-NEXT:     RAW dependences:21; CHECK-NEXT:         {  }22; CHECK-NEXT:     WAR dependences:23; CHECK-NEXT:         {  }24; CHECK-NEXT:     WAW dependences:25; CHECK-NEXT:         {  }26; CHECK-NEXT:     Reduction dependences:27; CHECK-NEXT:         { [Stmt_for_cond[i0] -> MemRef_sum[0{{\]\]}} -> [Stmt_for_cond[1 + i0] -> MemRef_sum[0{{\]\]}} : 0 <= i0 <= 99 }28;29; CHECK:      Zipped Dependences:30; CHECK-NEXT:     RAW dependences:31; CHECK-NEXT:         {  }32; CHECK-NEXT:     WAR dependences:33; CHECK-NEXT:         {  }34; CHECK-NEXT:     WAW dependences:35; CHECK-NEXT:         {  }36; CHECK-NEXT:     Reduction dependences:37; CHECK-NEXT:         { [Stmt_for_cond[i0] -> Stmt_for_cond[1 + i0{{\]\]}} -> [MemRef_sum[0] -> MemRef_sum[0{{\]\]}} : 0 <= i0 <= 99 }38;39; CHECK:      Unwrapped Dependences:40; CHECK-NEXT:     RAW dependences:41; CHECK-NEXT:         {  }42; CHECK-NEXT:     WAR dependences:43; CHECK-NEXT:         {  }44; CHECK-NEXT:     WAW dependences:45; CHECK-NEXT:         {  }46; CHECK-NEXT:     Reduction dependences:47; CHECK-NEXT:         { Stmt_for_cond[i0] -> Stmt_for_cond[1 + i0] : 0 <= i0 <= 99 }48;49; CHECK:          RAW dependences:50; CHECK-NEXT:         {  }51; CHECK-NEXT:     WAR dependences:52; CHECK-NEXT:         {  }53; CHECK-NEXT:     WAW dependences:54; CHECK-NEXT:         {  }55; CHECK-NEXT:     Reduction dependences:56; CHECK-NEXT:         { Stmt_for_cond[i0] -> Stmt_for_cond[1 + i0] : 0 <= i0 <= 99 }57;58; CHECK:          RAW dependences:59; CHECK-NEXT:         {  }60; CHECK-NEXT:     WAR dependences:61; CHECK-NEXT:         {  }62; CHECK-NEXT:     WAW dependences:63; CHECK-NEXT:         {  }64; CHECK-NEXT:     Reduction dependences:65; CHECK-NEXT:         { Stmt_for_cond[i0] -> Stmt_for_cond[1 + i0] : 0 <= i0 <= 99 }66;67; void f(int* sum) {68;   for (int i = 0; i <= 100; i++)69;     sum += i * 3;70; }71target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-n32-S64"72 73define void @f(ptr %sum) {74entry:75  br label %entry.split176 77entry.split1:                                     ; preds = %entry78  br label %entry.split79 80entry.split:                                      ; preds = %entry.split181  br label %for.cond82 83for.cond:                                         ; preds = %for.cond, %entry.split84  %i1.0 = phi i32 [ 0, %entry.split ], [ %inc, %for.cond ]85  %sum.reload = load i32, ptr %sum86  %mul = mul nsw i32 %i1.0, 387  %add = add nsw i32 %sum.reload, %mul88  %inc = add nsw i32 %i1.0, 189  store i32 %add, ptr %sum90  %cmp = icmp slt i32 %i1.0, 10091  br i1 %cmp, label %for.cond, label %for.end92 93for.end:                                          ; preds = %for.cond94  ret void95}96