brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.8 KiB · e23b3ae Raw
147 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly-custom<scops>' -polly-print-scops -disable-output < %s 2>&1 | FileCheck %s2 3; This test case verifies that we generate numbered statement names in case4; no LLVM-IR names are used in the test case. We also verify, that we5; distinguish statements named with a number and unnamed statements that happen6; to have an index identical to a number used in a statement name.7 8; CHECK: Arrays {9; CHECK-NEXT:     float MemRef0[*][%n]; // Element size 410; CHECK-NEXT:     float MemRef1[*][%n]; // Element size 411; CHECK-NEXT: }12; CHECK-NEXT: Arrays (Bounds as pw_affs) {13; CHECK-NEXT:     float MemRef0[*][ [n] -> { [] -> [(n)] } ]; // Element size 414; CHECK-NEXT:     float MemRef1[*][ [n] -> { [] -> [(n)] } ]; // Element size 415; CHECK-NEXT: }16 17; CHECK: Statements {18; CHECK-NEXT: 	Stmt219; CHECK-NEXT:         Domain :=20; CHECK-NEXT:             [n] -> { Stmt2[i0, i1] : 0 <= i0 < n and 0 <= i1 < n };21; CHECK-NEXT:         Schedule :=22; CHECK-NEXT:             [n] -> { Stmt2[i0, i1] -> [0, i0, i1, 0] };23; CHECK-NEXT:         ReadAccess :=	[Reduction Type: NONE] [Scalar: 0]24; CHECK-NEXT:             [n] -> { Stmt2[i0, i1] -> MemRef0[i0, i1] };25; CHECK-NEXT:         ReadAccess :=	[Reduction Type: NONE] [Scalar: 0]26; CHECK-NEXT:             [n] -> { Stmt2[i0, i1] -> MemRef1[i0, i1] };27; CHECK-NEXT:         MustWriteAccess :=	[Reduction Type: NONE] [Scalar: 0]28; CHECK-NEXT:             [n] -> { Stmt2[i0, i1] -> MemRef1[i0, i1] };29; CHECK-NEXT: 	Stmt1030; CHECK-NEXT:         Domain :=31; CHECK-NEXT:             [n] -> { Stmt10[i0, i1] : 0 <= i0 < n and 0 <= i1 < n };32; CHECK-NEXT:         Schedule :=33; CHECK-NEXT:             [n] -> { Stmt10[i0, i1] -> [1, i0, i1, 0] };34; CHECK-NEXT:         ReadAccess :=	[Reduction Type: NONE] [Scalar: 0]35; CHECK-NEXT:             [n] -> { Stmt10[i0, i1] -> MemRef1[i0, i1] };36; CHECK-NEXT:         ReadAccess :=	[Reduction Type: NONE] [Scalar: 0]37; CHECK-NEXT:             [n] -> { Stmt10[i0, i1] -> MemRef0[i0, i1] };38; CHECK-NEXT:         MustWriteAccess :=	[Reduction Type: NONE] [Scalar: 0]39; CHECK-NEXT:             [n] -> { Stmt10[i0, i1] -> MemRef0[i0, i1] };40; CHECK-NEXT: 	Stmt_241; CHECK-NEXT:         Domain :=42; CHECK-NEXT:             [n] -> { Stmt_2[i0, i1] : 0 <= i0 < n and 0 <= i1 < n };43; CHECK-NEXT:         Schedule :=44; CHECK-NEXT:             [n] -> { Stmt_2[i0, i1] -> [1, i0, i1, 1] };45; CHECK-NEXT:         MustWriteAccess :=	[Reduction Type: NONE] [Scalar: 0]46; CHECK-NEXT:             [n] -> { Stmt_2[i0, i1] -> MemRef0[i0, i1]47 48target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"49 50; Function Attrs: nounwind uwtable51define void @vec3(i64 %n, ptr, ptr) {52  br label %.split53 54.split:                                           ; preds = %055  br label %.preheader2.lr.ph56 57.preheader2.lr.ph:                                ; preds = %.split58  br label %.preheader259 60.preheader2:                                      ; preds = %.preheader2.lr.ph, %1561  %i.010 = phi i64 [ 0, %.preheader2.lr.ph ], [ %16, %15 ]62  br label %.lr.ph863 64.lr.ph8:                                          ; preds = %.preheader265  br label %466 67..preheader1_crit_edge:                           ; preds = %1568  br label %.preheader169 70.preheader1:                                      ; preds = %..preheader1_crit_edge, %.split71  %3 = icmp sgt i64 %n, 072  br i1 %3, label %.preheader.lr.ph, label %"name"73 74.preheader.lr.ph:                                 ; preds = %.preheader175  br label %.preheader76 77; <label>:4:                                      ; preds = %.lr.ph8, %478  %j.07 = phi i64 [ 0, %.lr.ph8 ], [ %14, %4 ]79  %5 = mul nsw i64 %i.010, %n80  %6 = getelementptr inbounds float, ptr %1, i64 %581  %7 = getelementptr inbounds float, ptr %6, i64 %j.0782  %8 = load float, ptr %7, align 483  %9 = mul nsw i64 %i.010, %n84  %10 = getelementptr inbounds float, ptr %0, i64 %985  %11 = getelementptr inbounds float, ptr %10, i64 %j.0786  %12 = load float, ptr %11, align 487  %13 = fadd float %8, %1288  store float %13, ptr %11, align 489  %14 = add nuw nsw i64 %j.07, 190  %exitcond13 = icmp ne i64 %14, %n91  br i1 %exitcond13, label %4, label %._crit_edge992 93._crit_edge9:                                     ; preds = %494  br label %1595 96; <label>:15:                                     ; preds = %._crit_edge9, %.preheader297  %16 = add nuw nsw i64 %i.010, 198  %exitcond14 = icmp ne i64 %16, %n99  br i1 %exitcond14, label %.preheader2, label %..preheader1_crit_edge100 101.preheader:                                       ; preds = %.preheader.lr.ph, %29102  %i1.04 = phi i64 [ 0, %.preheader.lr.ph ], [ %30, %29 ]103  %17 = icmp sgt i64 %n, 0104  br i1 %17, label %.lr.ph, label %29105 106.lr.ph:                                           ; preds = %.preheader107  br label %18108 109; <label>:18:                                     ; preds = %.lr.ph, %18110  %j2.03 = phi i64 [ 0, %.lr.ph ], [ %28, %"2" ]111  %19 = mul nsw i64 %i1.04, %n112  %20 = getelementptr inbounds float, ptr %0, i64 %19113  %21 = getelementptr inbounds float, ptr %20, i64 %j2.03114  %22 = load float, ptr %21, align 4115  %23 = mul nsw i64 %i1.04, %n116  %24 = getelementptr inbounds float, ptr %1, i64 %23117  %25 = getelementptr inbounds float, ptr %24, i64 %j2.03118  %26 = load float, ptr %25, align 4119  %27 = fadd float %22, %26120  store float %27, ptr %25, align 4121  br label %"2"122 123"2":124  store float 42.0, ptr %25125  %28 = add nuw nsw i64 %j2.03, 1126  %exitcond = icmp ne i64 %28, %n127  br i1 %exitcond, label %18, label %._crit_edge128 129._crit_edge:                                      ; preds = %18130  br label %29131 132; <label>:29:                                     ; preds = %._crit_edge, %.preheader133  %30 = add nuw nsw i64 %i1.04, 1134  %exitcond12 = icmp ne i64 %30, %n135  br i1 %exitcond12, label %.preheader, label %._crit_edge6136 137._crit_edge6:                                     ; preds = %29138  br label %"name"139 140"name":141  ret void142}143 144!llvm.ident = !{!0}145 146!0 = !{!"Ubuntu clang version 3.7.1-3ubuntu4 (tags/RELEASE_371/final) (based on LLVM 3.7.1)"}147