
This extends the work from 7755c26 to all of the different backend taken count kinds that we print for the scev analysis printer. As before, the goal is to cut down on confusion as i4 -1 is a very different (unsigned) value from i32 -1.
37 lines
1.2 KiB
LLVM
37 lines
1.2 KiB
LLVM
; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py UTC_ARGS: --version 4
|
|
; RUN: opt < %s -disable-output "-passes=print<scalar-evolution>" -scalar-evolution-classify-expressions=0 2>&1 | FileCheck %s
|
|
|
|
declare void @foo()
|
|
|
|
define void @test1() nounwind {
|
|
;
|
|
; CHECK-LABEL: 'test1'
|
|
; CHECK-NEXT: Determining loop execution counts for: @test1
|
|
; CHECK-NEXT: Loop %for.cond: backedge-taken count is i32 2
|
|
; CHECK-NEXT: Loop %for.cond: constant max backedge-taken count is i32 2
|
|
; CHECK-NEXT: Loop %for.cond: symbolic max backedge-taken count is i32 2
|
|
; CHECK-NEXT: Loop %for.cond: Trip multiple is 3
|
|
;
|
|
entry:
|
|
br label %for.cond
|
|
|
|
for.cond: ; preds = %if.end, %entry
|
|
%i.0 = phi i32 [ 2, %entry ], [ %dec, %if.end ]
|
|
switch i32 %i.0, label %if.end [
|
|
i32 0, label %for.end
|
|
i32 1, label %if.then
|
|
]
|
|
|
|
if.then: ; preds = %for.cond
|
|
tail call void @foo()
|
|
br label %if.end
|
|
|
|
if.end: ; preds = %for.cond, %if.then
|
|
%dec = add nsw i32 %i.0, -1
|
|
br label %for.cond
|
|
|
|
for.end: ; preds = %for.cond
|
|
ret void
|
|
|
|
}
|