llvm/test/Transforms/LoopStrengthReduce/2007-04-23-UseIterator.ll
Dan Gohman f2f6ce65b7 Change tests from "opt %s" to "opt < %s" so that opt doesn't see the
input filename so that opt doesn't print the input filename in the
output so that grep lines in the tests don't unintentionally match
strings in the input filename.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81537 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-11 18:01:28 +00:00

72 lines
2.0 KiB
LLVM

; RUN: opt < %s -loop-reduce -disable-output
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
target triple = "i686-apple-darwin9"
define i8* @foo( i8* %ABC) {
entry:
switch i8 0, label %bb129 [
i8 0, label %UnifiedReturnBlock
i8 9, label %UnifiedReturnBlock
i8 32, label %UnifiedReturnBlock
i8 35, label %UnifiedReturnBlock
i8 37, label %bb16.preheader
]
bb16.preheader: ; preds = %entry
br label %bb16
bb16: ; preds = %cond_next102, %bb16.preheader
%indvar = phi i32 [ %indvar.next, %cond_next102 ], [ 0, %bb16.preheader ] ; <i32> [#uses=2]
%ABC.2146.0.rec = mul i32 %indvar, 3 ; <i32> [#uses=1]
br i1 false, label %UnifiedReturnBlock.loopexit, label %cond_next102
cond_next102: ; preds = %bb16
%tmp138145.rec = add i32 %ABC.2146.0.rec, 3 ; <i32> [#uses=1]
%tmp138145 = getelementptr i8* %ABC, i32 %tmp138145.rec ; <i8*> [#uses=4]
%indvar.next = add i32 %indvar, 1 ; <i32> [#uses=1]
switch i8 0, label %bb129.loopexit [
i8 0, label %UnifiedReturnBlock.loopexit
i8 9, label %UnifiedReturnBlock.loopexit
i8 32, label %UnifiedReturnBlock.loopexit
i8 35, label %UnifiedReturnBlock.loopexit
i8 37, label %bb16
]
bb129.loopexit: ; preds = %cond_next102
br label %bb129
bb129: ; preds = %bb129.loopexit, %entry
ret i8* null
UnifiedReturnBlock.loopexit: ; preds = %cond_next102, %cond_next102, %cond_next102, %cond_next102, %bb16
%UnifiedRetVal.ph = phi i8* [ %tmp138145, %cond_next102 ], [ %tmp138145, %cond_next102 ], [ %tmp138145, %cond_next102 ], [ %tmp138145, %cond_next102 ], [ null, %bb16 ] ; <i8*> [#uses=0]
br label %UnifiedReturnBlock
UnifiedReturnBlock: ; preds = %UnifiedReturnBlock.loopexit, %entry, %entry, %entry, %entry
ret i8* null
}
define i8* @bar() {
entry:
switch i8 0, label %bb158 [
i8 37, label %bb74
i8 58, label %cond_true
i8 64, label %bb11
]
bb11: ; preds = %entry
ret i8* null
cond_true: ; preds = %entry
ret i8* null
bb74: ; preds = %entry
ret i8* null
bb158: ; preds = %entry
ret i8* null
}