llvm/test/Transforms/IndVarSimplify/signed-trip-count.ll
Dan Gohman 15cab2817b Back out the change in 64918 that used sign-extensions when promoting
trip counts that use signed comparisons. It's not obviously the best
approach for preserving trip count information, and at any rate there
isn't anything in the tree right now that makes use of that, so for
now always using zero-extensions is preferable.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65347 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23 23:20:35 +00:00

31 lines
854 B
LLVM

; RUN: llvm-as < %s | opt -indvars | llvm-dis > %t
; RUN: not grep sext %t
; RUN: grep phi %t | count 1
define void @foo(i64* nocapture %x, i32 %n) nounwind {
entry:
%tmp102 = icmp sgt i32 %n, 0 ; <i1> [#uses=1]
br i1 %tmp102, label %bb.nph, label %return
bb.nph: ; preds = %entry
br label %bb
bb: ; preds = %bb7, %bb.nph
%i.01 = phi i32 [ %tmp6, %bb7 ], [ 0, %bb.nph ] ; <i32> [#uses=3]
%tmp1 = sext i32 %i.01 to i64 ; <i64> [#uses=1]
%tmp4 = getelementptr i64* %x, i32 %i.01 ; <i64*> [#uses=1]
store i64 %tmp1, i64* %tmp4, align 8
%tmp6 = add i32 %i.01, 1 ; <i32> [#uses=2]
br label %bb7
bb7: ; preds = %bb
%tmp10 = icmp slt i32 %tmp6, %n ; <i1> [#uses=1]
br i1 %tmp10, label %bb, label %bb7.return_crit_edge
bb7.return_crit_edge: ; preds = %bb7
br label %return
return: ; preds = %bb7.return_crit_edge, %entry
ret void
}