If ExitValue operand is also defined in Loop header then
[oota-llvm.git] / test / Transforms / LoopIndexSplit / Crash-2007-12-03.ll
1 ; RUN: llvm-as < %s | opt -loop-index-split -disable-output 
2 ; PR1828.bc
3 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-f80:32:32"
4 target triple = "i686-pc-linux-gnu"
5         %RPyOpaque_RuntimeTypeInfo = type opaque*
6         %arraytype_Char_1 = type { i32, [0 x i8] }
7         %arraytype_Signed = type { i32, [0 x i32] }
8         %functiontype_11 = type %structtype_object* ()
9         %functiontype_360 = type %structtype_rpy_string* (%structtype_pypy.rlib.rbigint.rbigint*, %structtype_rpy_string*, %structtype_rpy_string*, %structtype_rpy_string*)
10         %structtype_list_18 = type { i32, %arraytype_Signed* }
11         %structtype_object = type { %structtype_object_vtable* }
12         %structtype_object_vtable = type { i32, i32, %RPyOpaque_RuntimeTypeInfo*, %arraytype_Char_1*, %functiontype_11* }
13         %structtype_pypy.rlib.rbigint.rbigint = type { %structtype_object, %structtype_list_18*, i32 }
14         %structtype_rpy_string = type { i32, %arraytype_Char_1 }
15
16 define fastcc %structtype_rpy_string* @pypy__format(%structtype_pypy.rlib.rbigint.rbigint* %a_1, %structtype_rpy_string* %digits_0, %structtype_rpy_string* %prefix_3, %structtype_rpy_string* %suffix_0) {
17 block0:
18         br i1 false, label %block67, label %block13
19
20 block13:                ; preds = %block0
21         ret %structtype_rpy_string* null
22
23 block31:                ; preds = %block67, %block44
24         ret %structtype_rpy_string* null
25
26 block42:                ; preds = %block67, %block44
27         %j_167.reg2mem.0 = phi i32 [ %v63822, %block44 ], [ 0, %block67 ]               ; <i32> [#uses=1]
28         %v63822 = add i32 %j_167.reg2mem.0, -1          ; <i32> [#uses=3]
29         %v63823 = icmp slt i32 %v63822, 0               ; <i1> [#uses=1]
30         br i1 %v63823, label %block46, label %block43
31
32 block43:                ; preds = %block42
33         br label %block44
34
35 block44:                ; preds = %block46, %block43
36         %v6377959 = icmp sgt i32 %v63822, 0             ; <i1> [#uses=1]
37         br i1 %v6377959, label %block42, label %block31
38
39 block46:                ; preds = %block42
40         br label %block44
41
42 block67:                ; preds = %block0
43         br i1 false, label %block42, label %block31
44 }