mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-09-01 19:29:22 +00:00
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
31 lines
854 B
LLVM
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
|
|
}
|