[ARM] Better OR's for MVE compares
[llvm-core.git] / test / Transforms / IndVarSimplify / 2007-01-06-TripCount.ll
blobe6986ca9fe8d5188f8c000e74eb1e04e05318479
1 ; PR1015
2 ; RUN: opt < %s -indvars -S | FileCheck %s
4 target datalayout = "e-p:32:32"
5 target triple = "i686-apple-darwin8"
6 @foo = internal constant [5 x i8] c"\00abc\00"          ; <[5 x i8]*> [#uses=1]
7 @str = internal constant [4 x i8] c"%d\0A\00"           ; <[4 x i8]*> [#uses=1]
10 define i32 @test(i32 %J) {
11 ; CHECK-LABEL: @test(
12 ; CHECK-NOT: ret i32 0
13 entry:
14         br label %bb2
16 bb:             ; preds = %cond_next, %cond_true
17         %tmp1 = add i32 %i.0, 1         ; <i32> [#uses=1]
18         br label %bb2
20 bb2:            ; preds = %bb, %entry
21         %i.0 = phi i32 [ 0, %entry ], [ %tmp1, %bb ]            ; <i32> [#uses=4]
22         %tmp = icmp eq i32 %i.0, 0              ; <i1> [#uses=1]
23         br i1 %tmp, label %cond_true, label %cond_next
25 cond_true:              ; preds = %bb2
26         br label %bb
28 cond_next:              ; preds = %bb2
29         %tmp2 = getelementptr [5 x i8], [5 x i8]* @foo, i32 0, i32 %i.0         ; <i8*> [#uses=1]
30         %tmp3 = load i8, i8* %tmp2              ; <i8> [#uses=1]
31         %tmp5 = icmp eq i8 %tmp3, 0             ; <i1> [#uses=1]
32         br i1 %tmp5, label %bb6, label %bb
34 bb6:            ; preds = %cond_next
35         br label %return
37 return:         ; preds = %bb6
38         ret i32 %i.0