brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · 257b2ed Raw
63 lines · plain
1; RUN: opt %loadNPMPolly -polly-stmt-granularity=bb '-passes=polly-custom<scops>' -polly-print-scops -disable-output < %s 2>&1 | FileCheck %s2 3; Verify that we do not allow PHI nodes such as %phi, if they reference an error4; block and are used by anything else than a terminator instruction.5 6; CHECK:      Statements {7; CHECK-NEXT: 	Stmt_loop8; CHECK-NEXT:         Domain :=9; CHECK-NEXT:             [p] -> { Stmt_loop[i0] : p >= 13 and 0 <= i0 <= 1025 };10; CHECK-NEXT:         Schedule :=11; CHECK-NEXT:             [p] -> { Stmt_loop[i0] -> [i0] };12; CHECK-NEXT:         MustWriteAccess :=	[Reduction Type: NONE] [Scalar: 0]13; CHECK-NEXT:             [p] -> { Stmt_loop[i0] -> MemRef_X[0] };14; CHECK-NEXT:         MustWriteAccess :=	[Reduction Type: NONE] [Scalar: 1]15; CHECK-NEXT:             [p] -> { Stmt_loop[i0] -> MemRef_phi[] };16; CHECK-NEXT: }17 18declare void @bar()19 20define void @foo(ptr %X, i64 %p) {21entry:22  br label %br23 24br:25  %cmp1 = icmp sle i64 %p, 1226  br i1 %cmp1, label %A, label %br227 28br2:29  %cmp3 = icmp sle i64 %p, 1230  br i1 %cmp3, label %cond, label %loop31 32loop:33  %indvar = phi i64 [0, %br2], [%indvar.next, %loop]34  %indvar.next = add nsw i64 %indvar, 135  store float 41.0, ptr %X36  %cmp2 = icmp sle i64 %indvar, 102437  br i1 %cmp2, label %loop, label %merge38 39cond:40  br label %cond241 42cond2:43  call void @bar()44  br label %merge45 46merge:47  %phi = phi i1 [false, %cond2], [true, %loop]48  %add = add i1 %phi, 149  br i1 %add, label %A, label %B50 51A:52  store float 42.0, ptr %X53  br label %exit54 55B:56  call void @bar()57  store float 41.0, ptr %X58  br label %exit59 60exit:61  ret void62}63