diff options
Diffstat (limited to 'polly/test/CodeGen/reduction.ll')
-rw-r--r-- | polly/test/CodeGen/reduction.ll | 73 |
1 files changed, 36 insertions, 37 deletions
diff --git a/polly/test/CodeGen/reduction.ll b/polly/test/CodeGen/reduction.ll index e9ed1413fe34..6e5a230ad231 100644 --- a/polly/test/CodeGen/reduction.ll +++ b/polly/test/CodeGen/reduction.ll @@ -32,57 +32,56 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3 define i32 @main() nounwind { ; <label>:0 - %A = alloca [1021 x i32], align 16 ; <[1021 x i32]*> [#uses=6] - %1 = getelementptr inbounds [1021 x i32], [1021 x i32]* %A, i32 0, i32 0 ; <i32*> [#uses=1] - %2 = bitcast i32* %1 to i8* ; <i8*> [#uses=1] - call void @llvm.memset.p0i8.i64(i8* %2, i8 0, i64 4084, i32 1, i1 false) - %3 = getelementptr inbounds [1021 x i32], [1021 x i32]* %A, i32 0, i32 0 ; <i32*> [#uses=1] - %4 = getelementptr inbounds i32, i32* %3, i64 0 ; <i32*> [#uses=1] - store i32 1, i32* %4 - %5 = getelementptr inbounds [1021 x i32], [1021 x i32]* %A, i32 0, i32 0 ; <i32*> [#uses=1] - %6 = getelementptr inbounds i32, i32* %5, i64 1 ; <i32*> [#uses=1] - store i32 1, i32* %6 + %A = alloca [1021 x i32], align 16 ; <ptr> [#uses=6] + %1 = getelementptr inbounds [1021 x i32], ptr %A, i32 0, i32 0 ; <ptr> [#uses=1] + call void @llvm.memset.p0.i64(ptr %1, i8 0, i64 4084, i32 1, i1 false) + %2 = getelementptr inbounds [1021 x i32], ptr %A, i32 0, i32 0 ; <ptr> [#uses=1] + %3 = getelementptr inbounds i32, ptr %2, i64 0 ; <ptr> [#uses=1] + store i32 1, ptr %3 + %4 = getelementptr inbounds [1021 x i32], ptr %A, i32 0, i32 0 ; <ptr> [#uses=1] + %5 = getelementptr inbounds i32, ptr %4, i64 1 ; <ptr> [#uses=1] + store i32 1, ptr %5 fence seq_cst - br label %7 + br label %6 -; <label>:7 ; preds = %14, %0 - %indvar = phi i64 [ %indvar.next, %14 ], [ 0, %0 ] ; <i64> [#uses=5] - %red.0 = phi i32 [ 0, %0 ], [ %13, %14 ] ; <i32> [#uses=2] - %scevgep = getelementptr [1021 x i32], [1021 x i32]* %A, i64 0, i64 %indvar ; <i32*> [#uses=2] +; <label>:7 ; preds = %13, %0 + %indvar = phi i64 [ %indvar.next, %13 ], [ 0, %0 ] ; <i64> [#uses=5] + %red.0 = phi i32 [ 0, %0 ], [ %12, %13 ] ; <i32> [#uses=2] + %scevgep = getelementptr [1021 x i32], ptr %A, i64 0, i64 %indvar ; <ptr> [#uses=2] %tmp = add i64 %indvar, 2 ; <i64> [#uses=1] - %scevgep1 = getelementptr [1021 x i32], [1021 x i32]* %A, i64 0, i64 %tmp ; <i32*> [#uses=1] + %scevgep1 = getelementptr [1021 x i32], ptr %A, i64 0, i64 %tmp ; <ptr> [#uses=1] %tmp2 = add i64 %indvar, 1 ; <i64> [#uses=1] - %scevgep3 = getelementptr [1021 x i32], [1021 x i32]* %A, i64 0, i64 %tmp2 ; <i32*> [#uses=1] + %scevgep3 = getelementptr [1021 x i32], ptr %A, i64 0, i64 %tmp2 ; <ptr> [#uses=1] %exitcond = icmp ne i64 %indvar, 1019 ; <i1> [#uses=1] - br i1 %exitcond, label %8, label %15 + br i1 %exitcond, label %7, label %14 -; <label>:8 ; preds = %7 - %9 = load i32, i32* %scevgep3 ; <i32> [#uses=1] - %10 = load i32, i32* %scevgep ; <i32> [#uses=1] - %11 = add nsw i32 %9, %10 ; <i32> [#uses=1] - store i32 %11, i32* %scevgep1 - %12 = load i32, i32* %scevgep ; <i32> [#uses=1] - %13 = add nsw i32 %red.0, %12 ; <i32> [#uses=1] - br label %14 +; <label>:8 ; preds = %6 + %8 = load i32, ptr %scevgep3 ; <i32> [#uses=1] + %9 = load i32, ptr %scevgep ; <i32> [#uses=1] + %10 = add nsw i32 %8, %9 ; <i32> [#uses=1] + store i32 %10, ptr %scevgep1 + %11 = load i32, ptr %scevgep ; <i32> [#uses=1] + %12 = add nsw i32 %red.0, %11 ; <i32> [#uses=1] + br label %13 -; <label>:14 ; preds = %8 +; <label>:14 ; preds = %7 %indvar.next = add i64 %indvar, 1 ; <i64> [#uses=1] - br label %7 + br label %6 -; <label>:15 ; preds = %7 - %red.0.lcssa = phi i32 [ %red.0, %7 ] ; <i32> [#uses=1] +; <label>:15 ; preds = %6 + %red.0.lcssa = phi i32 [ %red.0, %6 ] ; <i32> [#uses=1] fence seq_cst - %16 = icmp ne i32 %red.0.lcssa, 382399368 ; <i1> [#uses=1] - br i1 %16, label %17, label %18 + %15 = icmp ne i32 %red.0.lcssa, 382399368 ; <i1> [#uses=1] + br i1 %15, label %16, label %17 -; <label>:17 ; preds = %15 - br label %18 +; <label>:17 ; preds = %14 + br label %17 -; <label>:18 ; preds = %17, %15 - %.0 = phi i32 [ 1, %17 ], [ 0, %15 ] ; <i32> [#uses=1] +; <label>:18 ; preds = %16, %14 + %.0 = phi i32 [ 1, %16 ], [ 0, %14 ] ; <i32> [#uses=1] ret i32 %.0 } -declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) nounwind +declare void @llvm.memset.p0.i64(ptr nocapture, i8, i64, i32, i1) nounwind ; CHECK: Could not generate independent blocks |