diff options
Diffstat (limited to 'llvm/test/Analysis/ScalarEvolution/trip-count.ll')
-rw-r--r-- | llvm/test/Analysis/ScalarEvolution/trip-count.ll | 70 |
1 files changed, 40 insertions, 30 deletions
diff --git a/llvm/test/Analysis/ScalarEvolution/trip-count.ll b/llvm/test/Analysis/ScalarEvolution/trip-count.ll index b5ff1c3d8a3..aef7f1b9bba 100644 --- a/llvm/test/Analysis/ScalarEvolution/trip-count.ll +++ b/llvm/test/Analysis/ScalarEvolution/trip-count.ll @@ -1,43 +1,50 @@ -; RUN: opt < %s -analyze -scalar-evolution -scalar-evolution-max-iterations=0 | FileCheck %s -; RUN: opt < %s -passes='print<scalar-evolution>' -disable-output 2>&1 | FileCheck %s -; PR1101 +; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py +; RUN: opt < %s -analyze -scalar-evolution -scalar-evolution-max-iterations=0 -scalar-evolution-classify-expressions=0 | FileCheck %s target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -@A = weak global [1000 x i32] zeroinitializer, align 32 - -; CHECK-LABEL: Determining loop execution counts for: @test1 -; CHECK: backedge-taken count is 10000 - -define void @test1(i32 %N) { +@A = weak global [1000 x i32] zeroinitializer, align 32 + +define void @PR1101(i32 %N) { +; CHECK-LABEL: 'PR1101' +; CHECK-NEXT: Determining loop execution counts for: @PR1101 +; CHECK-NEXT: Loop %bb3: backedge-taken count is 10000 +; CHECK-NEXT: Loop %bb3: max backedge-taken count is 10000 +; CHECK-NEXT: Loop %bb3: Predicated backedge-taken count is 10000 +; CHECK-NEXT: Predicates: +; CHECK: Loop %bb3: Trip multiple is 10001 +; entry: - br label %bb3 + br label %bb3 bb: ; preds = %bb3 - %tmp = getelementptr [1000 x i32], [1000 x i32]* @A, i32 0, i32 %i.0 ; <i32*> [#uses=1] - store i32 123, i32* %tmp - %tmp2 = add i32 %i.0, 1 ; <i32> [#uses=1] - br label %bb3 + %tmp = getelementptr [1000 x i32], [1000 x i32]* @A, i32 0, i32 %i.0 ; <i32*> [#uses=1] + store i32 123, i32* %tmp + %tmp2 = add i32 %i.0, 1 ; <i32> [#uses=1] + br label %bb3 bb3: ; preds = %bb, %entry - %i.0 = phi i32 [ 0, %entry ], [ %tmp2, %bb ] ; <i32> [#uses=3] - %tmp3 = icmp sle i32 %i.0, 9999 ; <i1> [#uses=1] - br i1 %tmp3, label %bb, label %bb5 + %i.0 = phi i32 [ 0, %entry ], [ %tmp2, %bb ] ; <i32> [#uses=3] + %tmp3 = icmp sle i32 %i.0, 9999 ; <i1> [#uses=1] + br i1 %tmp3, label %bb, label %bb5 bb5: ; preds = %bb3 - br label %return + br label %return return: ; preds = %bb5 - ret void + ret void } -; PR22795 -; CHECK-LABEL: Classifying expressions for: @test2 -; CHECK: %iv = phi i32 [ -1, %entry ], [ %next.1, %for.inc.1 ] -; CHECK-NEXT: --> {-1,+,2}<%preheader> U: full-set S: full-set Exits: 13 - -define i32 @test2() { +define i32 @PR22795() { +; CHECK-LABEL: 'PR22795' +; CHECK-NEXT: Determining loop execution counts for: @PR22795 +; CHECK-NEXT: Loop %preheader: backedge-taken count is 7 +; CHECK-NEXT: Loop %preheader: max backedge-taken count is 7 +; CHECK-NEXT: Loop %preheader: Predicated backedge-taken count is 7 +; CHECK-NEXT: Predicates: +; CHECK: Loop %preheader: Trip multiple is 8 +; entry: %bins = alloca [16 x i64], align 16 %0 = bitcast [16 x i64]* %bins to i8* @@ -93,11 +100,14 @@ declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i1) #0 declare void @may_exit() nounwind define void @pr28012(i32 %n) { -; CHECK-LABEL: Classifying expressions for: @pr28012 -; CHECK: Loop %loop: backedge-taken count is -1431655751 -; CHECK: Loop %loop: max backedge-taken count is -1431655751 -; CHECK: Loop %loop: Predicated backedge-taken count is -1431655751 - +; CHECK-LABEL: 'pr28012' +; CHECK-NEXT: Determining loop execution counts for: @pr28012 +; CHECK-NEXT: Loop %loop: backedge-taken count is -1431655751 +; CHECK-NEXT: Loop %loop: max backedge-taken count is -1431655751 +; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is -1431655751 +; CHECK-NEXT: Predicates: +; CHECK: Loop %loop: Trip multiple is 2863311546 +; entry: br label %loop |