103 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py UTC_ARGS: --version 42; RUN: opt -disable-output "-passes=print<scalar-evolution>" -scalar-evolution-classify-expressions=0 < %s 2>&1 | FileCheck %s3 4target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"5target triple = "x86_64-unknown-linux-gnu"6 7define void @hoge1(i1 %arg) {8;9; CHECK-LABEL: 'hoge1'10; CHECK-NEXT: Determining loop execution counts for: @hoge111; CHECK-NEXT: Loop %bb13: backedge-taken count is (-2 + (2 * undef) + %tmp7 + %tmp6)12; CHECK-NEXT: Loop %bb13: constant max backedge-taken count is i32 -113; CHECK-NEXT: Loop %bb13: symbolic max backedge-taken count is (-2 + (2 * undef) + %tmp7 + %tmp6)14; CHECK-NEXT: Loop %bb13: Trip multiple is 115; CHECK-NEXT: Loop %bb4: backedge-taken count is i64 2016; CHECK-NEXT: Loop %bb4: constant max backedge-taken count is i64 2017; CHECK-NEXT: Loop %bb4: symbolic max backedge-taken count is i64 2018; CHECK-NEXT: Loop %bb4: Trip multiple is 2119; CHECK-NEXT: Loop %bb2: Unpredictable backedge-taken count.20; CHECK-NEXT: Loop %bb2: Unpredictable constant max backedge-taken count.21; CHECK-NEXT: Loop %bb2: Unpredictable symbolic max backedge-taken count.22;23bb:24 br i1 %arg, label %bb4, label %bb225 26bb2: ; preds = %bb2, %bb27 br i1 false, label %bb4, label %bb228 29bb3: ; preds = %bb430 %tmp = add i32 %tmp10, -131 br label %bb1332 33bb4: ; preds = %bb4, %bb2, %bb34 %tmp5 = phi i64 [ %tmp11, %bb4 ], [ 1, %bb2 ], [ 1, %bb ]35 %tmp6 = phi i32 [ %tmp10, %bb4 ], [ 0, %bb2 ], [ 0, %bb ]36 %tmp7 = load i32, ptr undef, align 437 %tmp8 = add i32 %tmp7, %tmp638 %tmp9 = add i32 undef, %tmp839 %tmp10 = add i32 undef, %tmp940 %tmp11 = add nsw i64 %tmp5, 341 %tmp12 = icmp eq i64 %tmp11, 6442 br i1 %tmp12, label %bb3, label %bb443 44 45bb13: ; preds = %bb13, %bb346 %tmp14 = phi i64 [ 0, %bb3 ], [ %tmp15, %bb13 ]47 %tmp15 = add nuw nsw i64 %tmp14, 148 %tmp16 = trunc i64 %tmp15 to i3249 %tmp17 = icmp eq i32 %tmp16, %tmp50 br i1 %tmp17, label %bb18, label %bb1351 52bb18: ; preds = %bb1353 ret void54}55 56define void @hoge2(i1 %arg) {57;58; CHECK-LABEL: 'hoge2'59; CHECK-NEXT: Determining loop execution counts for: @hoge260; CHECK-NEXT: Loop %bb13: backedge-taken count is (-2 + (2 * undef) + %tmp7 + %tmp6)61; CHECK-NEXT: Loop %bb13: constant max backedge-taken count is i32 -162; CHECK-NEXT: Loop %bb13: symbolic max backedge-taken count is (-2 + (2 * undef) + %tmp7 + %tmp6)63; CHECK-NEXT: Loop %bb13: Trip multiple is 164; CHECK-NEXT: Loop %bb4: Unpredictable backedge-taken count.65; CHECK-NEXT: Loop %bb4: Unpredictable constant max backedge-taken count.66; CHECK-NEXT: Loop %bb4: Unpredictable symbolic max backedge-taken count.67; CHECK-NEXT: Loop %bb2: Unpredictable backedge-taken count.68; CHECK-NEXT: Loop %bb2: Unpredictable constant max backedge-taken count.69; CHECK-NEXT: Loop %bb2: Unpredictable symbolic max backedge-taken count.70;71bb:72 br i1 %arg, label %bb4, label %bb273 74bb2: ; preds = %bb2, %bb75 br i1 false, label %bb4, label %bb276 77bb3: ; preds = %bb478 %tmp = add i32 %tmp10, -179 br label %bb1380 81bb4: ; preds = %bb4, %bb2, %bb82 %tmp5 = phi i64 [ %tmp11, %bb4 ], [ 1, %bb2 ], [ 3, %bb ]83 %tmp6 = phi i32 [ %tmp10, %bb4 ], [ 0, %bb2 ], [ 0, %bb ]84 %tmp7 = load i32, ptr undef, align 485 %tmp8 = add i32 %tmp7, %tmp686 %tmp9 = add i32 undef, %tmp887 %tmp10 = add i32 undef, %tmp988 %tmp11 = add nsw i64 %tmp5, 389 %tmp12 = icmp eq i64 %tmp11, 6490 br i1 %tmp12, label %bb3, label %bb491 92 93bb13: ; preds = %bb13, %bb394 %tmp14 = phi i64 [ 0, %bb3 ], [ %tmp15, %bb13 ]95 %tmp15 = add nuw nsw i64 %tmp14, 196 %tmp16 = trunc i64 %tmp15 to i3297 %tmp17 = icmp eq i32 %tmp16, %tmp98 br i1 %tmp17, label %bb18, label %bb1399 100bb18: ; preds = %bb13101 ret void102}103