Stackmap shadows should consider call returns a branch target.
[oota-llvm.git] / test / CodeGen / X86 / 2010-01-19-OptExtBug.ll
1 ; REQUIRES: asserts
2 ; RUN: llc < %s -mtriple=x86_64-apple-darwin11 -relocation-model=pic -disable-fp-elim -stats 2>&1 | not grep ext-opt
3
4 define fastcc i8* @S_scan_str(i8* %start, i32 %keep_quoted, i32 %keep_delims) nounwind ssp {
5 entry:
6   switch i8 undef, label %bb6 [
7     i8 9, label %bb5
8     i8 32, label %bb5
9     i8 10, label %bb5
10     i8 13, label %bb5
11     i8 12, label %bb5
12   ]
13
14 bb5:                                              ; preds = %entry, %entry, %entry, %entry, %entry
15   br label %bb6
16
17 bb6:                                              ; preds = %bb5, %entry
18   br i1 undef, label %bb7, label %bb9
19
20 bb7:                                              ; preds = %bb6
21   unreachable
22
23 bb9:                                              ; preds = %bb6
24   %0 = load i8* undef, align 1                    ; <i8> [#uses=3]
25   br i1 undef, label %bb12, label %bb10
26
27 bb10:                                             ; preds = %bb9
28   br i1 undef, label %bb12, label %bb11
29
30 bb11:                                             ; preds = %bb10
31   unreachable
32
33 bb12:                                             ; preds = %bb10, %bb9
34   br i1 undef, label %bb13, label %bb14
35
36 bb13:                                             ; preds = %bb12
37   store i8 %0, i8* undef, align 1
38   %1 = zext i8 %0 to i32                          ; <i32> [#uses=1]
39   br label %bb18
40
41 bb14:                                             ; preds = %bb12
42   br label %bb18
43
44 bb18:                                             ; preds = %bb14, %bb13
45   %termcode.0 = phi i32 [ %1, %bb13 ], [ undef, %bb14 ] ; <i32> [#uses=2]
46   %2 = icmp eq i8 %0, 0                           ; <i1> [#uses=1]
47   br i1 %2, label %bb21, label %bb19
48
49 bb19:                                             ; preds = %bb18
50   br i1 undef, label %bb21, label %bb20
51
52 bb20:                                             ; preds = %bb19
53   br label %bb21
54
55 bb21:                                             ; preds = %bb20, %bb19, %bb18
56   %termcode.1 = phi i32 [ %termcode.0, %bb18 ], [ %termcode.0, %bb19 ], [ undef, %bb20 ] ; <i32> [#uses=0]
57   unreachable
58 }