summaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/2009-09-22-CoalescerBug.ll
blob: 33f35f881e85348994456375cbe382bcc3bbdf05 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
; RUN: llc < %s -mtriple=x86_64-apple-darwin10

define i32 @main(i32 %argc, i8** nocapture %argv) nounwind ssp {
entry:
  br i1 undef, label %bb, label %bb1

bb:                                               ; preds = %entry
  ret i32 3

bb1:                                              ; preds = %entry
  br i1 undef, label %bb3, label %bb2

bb2:                                              ; preds = %bb1
  ret i32 3

bb3:                                              ; preds = %bb1
  br i1 undef, label %bb.i18, label %quantum_getwidth.exit

bb.i18:                                           ; preds = %bb.i18, %bb3
  br i1 undef, label %bb.i18, label %quantum_getwidth.exit

quantum_getwidth.exit:                            ; preds = %bb.i18, %bb3
  br i1 undef, label %bb4, label %bb6.preheader

bb4:                                              ; preds = %quantum_getwidth.exit
  unreachable

bb6.preheader:                                    ; preds = %quantum_getwidth.exit
  br i1 undef, label %bb.i1, label %bb1.i2

bb.i1:                                            ; preds = %bb6.preheader
  unreachable

bb1.i2:                                           ; preds = %bb6.preheader
  br i1 undef, label %bb2.i, label %bb3.i4

bb2.i:                                            ; preds = %bb1.i2
  unreachable

bb3.i4:                                           ; preds = %bb1.i2
  br i1 undef, label %quantum_new_qureg.exit, label %bb4.i

bb4.i:                                            ; preds = %bb3.i4
  unreachable

quantum_new_qureg.exit:                           ; preds = %bb3.i4
  br i1 undef, label %bb9, label %bb11.thread

bb11.thread:                                      ; preds = %quantum_new_qureg.exit
  %.cast.i = zext i32 undef to i64                ; <i64> [#uses=1]
  br label %bb.i37

bb9:                                              ; preds = %quantum_new_qureg.exit
  unreachable

bb.i37:                                           ; preds = %bb.i37, %bb11.thread
  %0 = load i64* undef, align 8                   ; <i64> [#uses=1]
  %1 = shl i64 %0, %.cast.i                       ; <i64> [#uses=1]
  store i64 %1, i64* undef, align 8
  br i1 undef, label %bb.i37, label %quantum_addscratch.exit

quantum_addscratch.exit:                          ; preds = %bb.i37
  br i1 undef, label %bb12.preheader, label %bb14

bb12.preheader:                                   ; preds = %quantum_addscratch.exit
  unreachable

bb14:                                             ; preds = %quantum_addscratch.exit
  br i1 undef, label %bb17, label %bb.nph

bb.nph:                                           ; preds = %bb14
  unreachable

bb17:                                             ; preds = %bb14
  br i1 undef, label %bb1.i7, label %quantum_measure.exit

bb1.i7:                                           ; preds = %bb17
  br label %quantum_measure.exit

quantum_measure.exit:                             ; preds = %bb1.i7, %bb17
  switch i32 undef, label %bb21 [
    i32 -1, label %bb18
    i32 0, label %bb20
  ]

bb18:                                             ; preds = %quantum_measure.exit
  unreachable

bb20:                                             ; preds = %quantum_measure.exit
  unreachable

bb21:                                             ; preds = %quantum_measure.exit
  br i1 undef, label %quantum_frac_approx.exit, label %bb1.i

bb1.i:                                            ; preds = %bb21
  unreachable

quantum_frac_approx.exit:                         ; preds = %bb21
  br i1 undef, label %bb25, label %bb26

bb25:                                             ; preds = %quantum_frac_approx.exit
  unreachable

bb26:                                             ; preds = %quantum_frac_approx.exit
  br i1 undef, label %quantum_gcd.exit, label %bb.i

bb.i:                                             ; preds = %bb.i, %bb26
  br i1 undef, label %quantum_gcd.exit, label %bb.i

quantum_gcd.exit:                                 ; preds = %bb.i, %bb26
  br i1 undef, label %bb32, label %bb33

bb32:                                             ; preds = %quantum_gcd.exit
  br i1 undef, label %bb.i.i, label %quantum_delete_qureg.exit

bb.i.i:                                           ; preds = %bb32
  ret i32 0

quantum_delete_qureg.exit:                        ; preds = %bb32
  ret i32 0

bb33:                                             ; preds = %quantum_gcd.exit
  unreachable
}