xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/2010-02-12-CoalescerBug-Impdef.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s > %t
2*9880d681SAndroid Build Coastguard Worker; PR6283
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker; Tricky coalescer bug:
5*9880d681SAndroid Build Coastguard Worker; After coalescing %RAX with a virtual register, this instruction was rematted:
6*9880d681SAndroid Build Coastguard Worker;
7*9880d681SAndroid Build Coastguard Worker;   %EAX<def> = MOV32rr %reg1070<kill>
8*9880d681SAndroid Build Coastguard Worker;
9*9880d681SAndroid Build Coastguard Worker; This instruction silently defined %RAX, and when rematting removed the
10*9880d681SAndroid Build Coastguard Worker; instruction, the live interval for %RAX was not properly updated. The valno
11*9880d681SAndroid Build Coastguard Worker; referred to a deleted instruction and bad things happened.
12*9880d681SAndroid Build Coastguard Worker;
13*9880d681SAndroid Build Coastguard Worker; The fix is to implicitly define %RAX when coalescing:
14*9880d681SAndroid Build Coastguard Worker;
15*9880d681SAndroid Build Coastguard Worker;   %EAX<def> = MOV32rr %reg1070<kill>, %RAX<imp-def>
16*9880d681SAndroid Build Coastguard Worker;
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
19*9880d681SAndroid Build Coastguard Workertarget triple = "x86_64-unknown-linux-gnu"
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Workermodule asm "\09.ident\09\22GCC: (GNU) 4.5.0 20100212 (experimental) LLVM: 95975\22"
22*9880d681SAndroid Build Coastguard Worker
23*9880d681SAndroid Build Coastguard Worker%0 = type { %"union gimple_statement_d"* }
24*9880d681SAndroid Build Coastguard Worker%"BITMAP_WORD[]" = type [2 x i64]
25*9880d681SAndroid Build Coastguard Worker%"uchar[]" = type [1 x i8]
26*9880d681SAndroid Build Coastguard Worker%"char[]" = type [4 x i8]
27*9880d681SAndroid Build Coastguard Worker%"enum dom_state[]" = type [2 x i32]
28*9880d681SAndroid Build Coastguard Worker%"int[]" = type [4 x i32]
29*9880d681SAndroid Build Coastguard Worker%"struct VEC_basic_block_base" = type { i32, i32, [1 x %"struct basic_block_def"*] }
30*9880d681SAndroid Build Coastguard Worker%"struct VEC_basic_block_gc" = type { %"struct VEC_basic_block_base" }
31*9880d681SAndroid Build Coastguard Worker%"struct VEC_edge_base" = type { i32, i32, [1 x %"struct edge_def"*] }
32*9880d681SAndroid Build Coastguard Worker%"struct VEC_edge_gc" = type { %"struct VEC_edge_base" }
33*9880d681SAndroid Build Coastguard Worker%"struct VEC_gimple_base" = type { i32, i32, [1 x %"union gimple_statement_d"*] }
34*9880d681SAndroid Build Coastguard Worker%"struct VEC_gimple_gc" = type { %"struct VEC_gimple_base" }
35*9880d681SAndroid Build Coastguard Worker%"struct VEC_iv_cand_p_base" = type { i32, i32, [1 x %"struct iv_cand"*] }
36*9880d681SAndroid Build Coastguard Worker%"struct VEC_iv_cand_p_heap" = type { %"struct VEC_iv_cand_p_base" }
37*9880d681SAndroid Build Coastguard Worker%"struct VEC_iv_use_p_base" = type { i32, i32, [1 x %"struct iv_use"*] }
38*9880d681SAndroid Build Coastguard Worker%"struct VEC_iv_use_p_heap" = type { %"struct VEC_iv_use_p_base" }
39*9880d681SAndroid Build Coastguard Worker%"struct VEC_loop_p_base" = type { i32, i32, [1 x %"struct loop"*] }
40*9880d681SAndroid Build Coastguard Worker%"struct VEC_loop_p_gc" = type { %"struct VEC_loop_p_base" }
41*9880d681SAndroid Build Coastguard Worker%"struct VEC_rtx_base" = type { i32, i32, [1 x %"struct rtx_def"*] }
42*9880d681SAndroid Build Coastguard Worker%"struct VEC_rtx_gc" = type { %"struct VEC_rtx_base" }
43*9880d681SAndroid Build Coastguard Worker%"struct VEC_tree_base" = type { i32, i32, [1 x %"union tree_node"*] }
44*9880d681SAndroid Build Coastguard Worker%"struct VEC_tree_gc" = type { %"struct VEC_tree_base" }
45*9880d681SAndroid Build Coastguard Worker%"struct _obstack_chunk" = type { i8*, %"struct _obstack_chunk"*, %"char[]" }
46*9880d681SAndroid Build Coastguard Worker%"struct basic_block_def" = type { %"struct VEC_edge_gc"*, %"struct VEC_edge_gc"*, i8*, %"struct loop"*, [2 x %"struct et_node"*], %"struct basic_block_def"*, %"struct basic_block_def"*, %"union basic_block_il_dependent", i64, i32, i32, i32, i32, i32 }
47*9880d681SAndroid Build Coastguard Worker%"struct bitmap_element" = type { %"struct bitmap_element"*, %"struct bitmap_element"*, i32, %"BITMAP_WORD[]" }
48*9880d681SAndroid Build Coastguard Worker%"struct bitmap_head_def" = type { %"struct bitmap_element"*, %"struct bitmap_element"*, i32, %"struct bitmap_obstack"* }
49*9880d681SAndroid Build Coastguard Worker%"struct bitmap_obstack" = type { %"struct bitmap_element"*, %"struct bitmap_head_def"*, %"struct obstack" }
50*9880d681SAndroid Build Coastguard Worker%"struct block_symbol" = type { [3 x %"union rtunion"], %"struct object_block"*, i64 }
51*9880d681SAndroid Build Coastguard Worker%"struct comp_cost" = type { i32, i32 }
52*9880d681SAndroid Build Coastguard Worker%"struct control_flow_graph" = type { %"struct basic_block_def"*, %"struct basic_block_def"*, %"struct VEC_basic_block_gc"*, i32, i32, i32, %"struct VEC_basic_block_gc"*, i32, %"enum dom_state[]", %"enum dom_state[]", i32, i32 }
53*9880d681SAndroid Build Coastguard Worker%"struct cost_pair" = type { %"struct iv_cand"*, %"struct comp_cost", %"struct bitmap_head_def"*, %"union tree_node"* }
54*9880d681SAndroid Build Coastguard Worker%"struct def_optype_d" = type { %"struct def_optype_d"*, %"union tree_node"** }
55*9880d681SAndroid Build Coastguard Worker%"struct double_int" = type { i64, i64 }
56*9880d681SAndroid Build Coastguard Worker%"struct edge_def" = type { %"struct basic_block_def"*, %"struct basic_block_def"*, %"union edge_def_insns", i8*, %"union tree_node"*, i32, i32, i32, i32, i64 }
57*9880d681SAndroid Build Coastguard Worker%"struct eh_status" = type opaque
58*9880d681SAndroid Build Coastguard Worker%"struct et_node" = type opaque
59*9880d681SAndroid Build Coastguard Worker%"struct function" = type { %"struct eh_status"*, %"struct control_flow_graph"*, %"struct gimple_seq_d"*, %"struct gimple_df"*, %"struct loops"*, %"struct htab"*, %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, %"struct machine_function"*, %"struct language_function"*, %"struct htab"*, i32, i32, i32, i32, i32, i32, i8*, i8, i8, i8, i8 }
60*9880d681SAndroid Build Coastguard Worker%"struct gimple_bb_info" = type { %"struct gimple_seq_d"*, %"struct gimple_seq_d"* }
61*9880d681SAndroid Build Coastguard Worker%"struct gimple_df" = type { %"struct htab"*, %"struct VEC_gimple_gc"*, %"struct VEC_tree_gc"*, %"union tree_node"*, %"struct pt_solution", %"struct pt_solution", %"struct pointer_map_t"*, %"union tree_node"*, %"struct htab"*, %"struct bitmap_head_def"*, i8, %"struct ssa_operands" }
62*9880d681SAndroid Build Coastguard Worker%"struct gimple_seq_d" = type { %"struct gimple_seq_node_d"*, %"struct gimple_seq_node_d"*, %"struct gimple_seq_d"* }
63*9880d681SAndroid Build Coastguard Worker%"struct gimple_seq_node_d" = type { %"union gimple_statement_d"*, %"struct gimple_seq_node_d"*, %"struct gimple_seq_node_d"* }
64*9880d681SAndroid Build Coastguard Worker%"struct gimple_statement_base" = type { i8, i8, i16, i32, i32, i32, %"struct basic_block_def"*, %"union tree_node"* }
65*9880d681SAndroid Build Coastguard Worker%"struct phi_arg_d[]" = type [1 x %"struct phi_arg_d"]
66*9880d681SAndroid Build Coastguard Worker%"struct gimple_statement_phi" = type { %"struct gimple_statement_base", i32, i32, %"union tree_node"*, %"struct phi_arg_d[]" }
67*9880d681SAndroid Build Coastguard Worker%"struct htab" = type { i32 (i8*)*, i32 (i8*, i8*)*, void (i8*)*, i8**, i64, i64, i64, i32, i32, i8* (i64, i64)*, void (i8*)*, i8*, i8* (i8*, i64, i64)*, void (i8*, i8*)*, i32 }
68*9880d681SAndroid Build Coastguard Worker%"struct iv" = type { %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, i8, i8, i32 }
69*9880d681SAndroid Build Coastguard Worker%"struct iv_cand" = type { i32, i8, i32, %"union gimple_statement_d"*, %"union tree_node"*, %"union tree_node"*, %"struct iv"*, i32, i32, %"struct iv_use"*, %"struct bitmap_head_def"* }
70*9880d681SAndroid Build Coastguard Worker%"struct iv_use" = type { i32, i32, %"struct iv"*, %"union gimple_statement_d"*, %"union tree_node"**, %"struct bitmap_head_def"*, i32, %"struct cost_pair"*, %"struct iv_cand"* }
71*9880d681SAndroid Build Coastguard Worker%"struct ivopts_data" = type { %"struct loop"*, %"struct pointer_map_t"*, i32, i32, %"struct version_info"*, %"struct bitmap_head_def"*, %"struct VEC_iv_use_p_heap"*, %"struct VEC_iv_cand_p_heap"*, %"struct bitmap_head_def"*, i32, i8, i8 }
72*9880d681SAndroid Build Coastguard Worker%"struct lang_decl" = type opaque
73*9880d681SAndroid Build Coastguard Worker%"struct language_function" = type opaque
74*9880d681SAndroid Build Coastguard Worker%"struct loop" = type { i32, i32, %"struct basic_block_def"*, %"struct basic_block_def"*, %"struct comp_cost", i32, i32, %"struct VEC_loop_p_gc"*, %"struct loop"*, %"struct loop"*, i8*, %"union tree_node"*, %"struct double_int", %"struct double_int", i8, i8, i32, %"struct nb_iter_bound"*, %"struct loop_exit"*, i8, %"union tree_node"* }
75*9880d681SAndroid Build Coastguard Worker%"struct loop_exit" = type { %"struct edge_def"*, %"struct loop_exit"*, %"struct loop_exit"*, %"struct loop_exit"* }
76*9880d681SAndroid Build Coastguard Worker%"struct loops" = type { i32, %"struct VEC_loop_p_gc"*, %"struct htab"*, %"struct loop"* }
77*9880d681SAndroid Build Coastguard Worker%"struct machine_cfa_state" = type { %"struct rtx_def"*, i64 }
78*9880d681SAndroid Build Coastguard Worker%"struct machine_function" = type { %"struct stack_local_entry"*, i8*, i32, i32, %"int[]", i32, %"struct machine_cfa_state", i32, i8 }
79*9880d681SAndroid Build Coastguard Worker%"struct nb_iter_bound" = type { %"union gimple_statement_d"*, %"struct double_int", i8, %"struct nb_iter_bound"* }
80*9880d681SAndroid Build Coastguard Worker%"struct object_block" = type { %"union section"*, i32, i64, %"struct VEC_rtx_gc"*, %"struct VEC_rtx_gc"* }
81*9880d681SAndroid Build Coastguard Worker%"struct obstack" = type { i64, %"struct _obstack_chunk"*, i8*, i8*, i8*, i64, i32, %"struct _obstack_chunk"* (i8*, i64)*, void (i8*, %"struct _obstack_chunk"*)*, i8*, i8 }
82*9880d681SAndroid Build Coastguard Worker%"struct phi_arg_d" = type { %"struct ssa_use_operand_d", %"union tree_node"*, i32 }
83*9880d681SAndroid Build Coastguard Worker%"struct pointer_map_t" = type opaque
84*9880d681SAndroid Build Coastguard Worker%"struct pt_solution" = type { i8, %"struct bitmap_head_def"* }
85*9880d681SAndroid Build Coastguard Worker%"struct rtx_def" = type { i16, i8, i8, %"union u" }
86*9880d681SAndroid Build Coastguard Worker%"struct section_common" = type { i32 }
87*9880d681SAndroid Build Coastguard Worker%"struct ssa_operand_memory_d" = type { %"struct ssa_operand_memory_d"*, %"uchar[]" }
88*9880d681SAndroid Build Coastguard Worker%"struct ssa_operands" = type { %"struct ssa_operand_memory_d"*, i32, i32, i8, %"struct def_optype_d"*, %"struct use_optype_d"* }
89*9880d681SAndroid Build Coastguard Worker%"struct ssa_use_operand_d" = type { %"struct ssa_use_operand_d"*, %"struct ssa_use_operand_d"*, %0, %"union tree_node"** }
90*9880d681SAndroid Build Coastguard Worker%"struct stack_local_entry" = type opaque
91*9880d681SAndroid Build Coastguard Worker%"struct tree_base" = type <{ i16, i8, i8, i8, [2 x i8], i8 }>
92*9880d681SAndroid Build Coastguard Worker%"struct tree_common" = type { %"struct tree_base", %"union tree_node"*, %"union tree_node"* }
93*9880d681SAndroid Build Coastguard Worker%"struct tree_decl_common" = type { %"struct tree_decl_minimal", %"union tree_node"*, i8, i8, i8, i8, i8, i32, %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, %"struct lang_decl"* }
94*9880d681SAndroid Build Coastguard Worker%"struct tree_decl_minimal" = type { %"struct tree_common", i32, i32, %"union tree_node"*, %"union tree_node"* }
95*9880d681SAndroid Build Coastguard Worker%"struct tree_decl_non_common" = type { %"struct tree_decl_with_vis", %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, %"union tree_node"* }
96*9880d681SAndroid Build Coastguard Worker%"struct tree_decl_with_rtl" = type { %"struct tree_decl_common", %"struct rtx_def"* }
97*9880d681SAndroid Build Coastguard Worker%"struct tree_decl_with_vis" = type { %"struct tree_decl_with_rtl", %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, i8, i8, i8 }
98*9880d681SAndroid Build Coastguard Worker%"struct tree_function_decl" = type { %"struct tree_decl_non_common", %"struct function"*, %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, i16, i8, i8 }
99*9880d681SAndroid Build Coastguard Worker%"struct unnamed_section" = type { %"struct section_common", void (i8*)*, i8*, %"union section"* }
100*9880d681SAndroid Build Coastguard Worker%"struct use_optype_d" = type { %"struct use_optype_d"*, %"struct ssa_use_operand_d" }
101*9880d681SAndroid Build Coastguard Worker%"struct version_info" = type { %"union tree_node"*, %"struct iv"*, i8, i32, i8 }
102*9880d681SAndroid Build Coastguard Worker%"union basic_block_il_dependent" = type { %"struct gimple_bb_info"* }
103*9880d681SAndroid Build Coastguard Worker%"union edge_def_insns" = type { %"struct gimple_seq_d"* }
104*9880d681SAndroid Build Coastguard Worker%"union gimple_statement_d" = type { %"struct gimple_statement_phi" }
105*9880d681SAndroid Build Coastguard Worker%"union rtunion" = type { i8* }
106*9880d681SAndroid Build Coastguard Worker%"union section" = type { %"struct unnamed_section" }
107*9880d681SAndroid Build Coastguard Worker%"union tree_node" = type { %"struct tree_function_decl" }
108*9880d681SAndroid Build Coastguard Worker%"union u" = type { %"struct block_symbol" }
109*9880d681SAndroid Build Coastguard Worker
110*9880d681SAndroid Build Coastguard Workerdeclare fastcc %"union tree_node"* @get_computation_at(%"struct loop"*, %"struct iv_use"* nocapture, %"struct iv_cand"* nocapture, %"union gimple_statement_d"*) nounwind
111*9880d681SAndroid Build Coastguard Worker
112*9880d681SAndroid Build Coastguard Workerdeclare fastcc i32 @computation_cost(%"union tree_node"*, i8 zeroext) nounwind
113*9880d681SAndroid Build Coastguard Worker
114*9880d681SAndroid Build Coastguard Workerdefine fastcc i64 @get_computation_cost_at(%"struct ivopts_data"* %data, %"struct iv_use"* nocapture %use, %"struct iv_cand"* nocapture %cand, i8 zeroext %address_p, %"struct bitmap_head_def"** %depends_on, %"union gimple_statement_d"* %at, i8* %can_autoinc) nounwind {
115*9880d681SAndroid Build Coastguard Workerentry:
116*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %"100", label %"4"
117*9880d681SAndroid Build Coastguard Worker
118*9880d681SAndroid Build Coastguard Worker"4":                                              ; preds = %entry
119*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %"6", label %"5"
120*9880d681SAndroid Build Coastguard Worker
121*9880d681SAndroid Build Coastguard Worker"5":                                              ; preds = %"4"
122*9880d681SAndroid Build Coastguard Worker  unreachable
123*9880d681SAndroid Build Coastguard Worker
124*9880d681SAndroid Build Coastguard Worker"6":                                              ; preds = %"4"
125*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %"8", label %"7"
126*9880d681SAndroid Build Coastguard Worker
127*9880d681SAndroid Build Coastguard Worker"7":                                              ; preds = %"6"
128*9880d681SAndroid Build Coastguard Worker  unreachable
129*9880d681SAndroid Build Coastguard Worker
130*9880d681SAndroid Build Coastguard Worker"8":                                              ; preds = %"6"
131*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %"100", label %"10"
132*9880d681SAndroid Build Coastguard Worker
133*9880d681SAndroid Build Coastguard Worker"10":                                             ; preds = %"8"
134*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %"17", label %"16"
135*9880d681SAndroid Build Coastguard Worker
136*9880d681SAndroid Build Coastguard Worker"16":                                             ; preds = %"10"
137*9880d681SAndroid Build Coastguard Worker  unreachable
138*9880d681SAndroid Build Coastguard Worker
139*9880d681SAndroid Build Coastguard Worker"17":                                             ; preds = %"10"
140*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %"19", label %"18"
141*9880d681SAndroid Build Coastguard Worker
142*9880d681SAndroid Build Coastguard Worker"18":                                             ; preds = %"17"
143*9880d681SAndroid Build Coastguard Worker  unreachable
144*9880d681SAndroid Build Coastguard Worker
145*9880d681SAndroid Build Coastguard Worker"19":                                             ; preds = %"17"
146*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %"93", label %"20"
147*9880d681SAndroid Build Coastguard Worker
148*9880d681SAndroid Build Coastguard Worker"20":                                             ; preds = %"19"
149*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %"23", label %"21"
150*9880d681SAndroid Build Coastguard Worker
151*9880d681SAndroid Build Coastguard Worker"21":                                             ; preds = %"20"
152*9880d681SAndroid Build Coastguard Worker  unreachable
153*9880d681SAndroid Build Coastguard Worker
154*9880d681SAndroid Build Coastguard Worker"23":                                             ; preds = %"20"
155*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %"100", label %"25"
156*9880d681SAndroid Build Coastguard Worker
157*9880d681SAndroid Build Coastguard Worker"25":                                             ; preds = %"23"
158*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %"100", label %"26"
159*9880d681SAndroid Build Coastguard Worker
160*9880d681SAndroid Build Coastguard Worker"26":                                             ; preds = %"25"
161*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %"30", label %"28"
162*9880d681SAndroid Build Coastguard Worker
163*9880d681SAndroid Build Coastguard Worker"28":                                             ; preds = %"26"
164*9880d681SAndroid Build Coastguard Worker  unreachable
165*9880d681SAndroid Build Coastguard Worker
166*9880d681SAndroid Build Coastguard Worker"30":                                             ; preds = %"26"
167*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %"59", label %"51"
168*9880d681SAndroid Build Coastguard Worker
169*9880d681SAndroid Build Coastguard Worker"51":                                             ; preds = %"30"
170*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %"55", label %"52"
171*9880d681SAndroid Build Coastguard Worker
172*9880d681SAndroid Build Coastguard Worker"52":                                             ; preds = %"51"
173*9880d681SAndroid Build Coastguard Worker  unreachable
174*9880d681SAndroid Build Coastguard Worker
175*9880d681SAndroid Build Coastguard Worker"55":                                             ; preds = %"51"
176*9880d681SAndroid Build Coastguard Worker  %0 = icmp ugt i32 0, undef                      ; <i1> [#uses=1]
177*9880d681SAndroid Build Coastguard Worker  br i1 %0, label %"50.i", label %"9.i"
178*9880d681SAndroid Build Coastguard Worker
179*9880d681SAndroid Build Coastguard Worker"9.i":                                            ; preds = %"55"
180*9880d681SAndroid Build Coastguard Worker  unreachable
181*9880d681SAndroid Build Coastguard Worker
182*9880d681SAndroid Build Coastguard Worker"50.i":                                           ; preds = %"55"
183*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %"55.i", label %"54.i"
184*9880d681SAndroid Build Coastguard Worker
185*9880d681SAndroid Build Coastguard Worker"54.i":                                           ; preds = %"50.i"
186*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %"57.i", label %"55.i"
187*9880d681SAndroid Build Coastguard Worker
188*9880d681SAndroid Build Coastguard Worker"55.i":                                           ; preds = %"54.i", %"50.i"
189*9880d681SAndroid Build Coastguard Worker  unreachable
190*9880d681SAndroid Build Coastguard Worker
191*9880d681SAndroid Build Coastguard Worker"57.i":                                           ; preds = %"54.i"
192*9880d681SAndroid Build Coastguard Worker  br label %"63.i"
193*9880d681SAndroid Build Coastguard Worker
194*9880d681SAndroid Build Coastguard Worker"61.i":                                           ; preds = %"63.i"
195*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %"64.i", label %"62.i"
196*9880d681SAndroid Build Coastguard Worker
197*9880d681SAndroid Build Coastguard Worker"62.i":                                           ; preds = %"61.i"
198*9880d681SAndroid Build Coastguard Worker  br label %"63.i"
199*9880d681SAndroid Build Coastguard Worker
200*9880d681SAndroid Build Coastguard Worker"63.i":                                           ; preds = %"62.i", %"57.i"
201*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %"61.i", label %"64.i"
202*9880d681SAndroid Build Coastguard Worker
203*9880d681SAndroid Build Coastguard Worker"64.i":                                           ; preds = %"63.i", %"61.i"
204*9880d681SAndroid Build Coastguard Worker  unreachable
205*9880d681SAndroid Build Coastguard Worker
206*9880d681SAndroid Build Coastguard Worker"59":                                             ; preds = %"30"
207*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %"60", label %"82"
208*9880d681SAndroid Build Coastguard Worker
209*9880d681SAndroid Build Coastguard Worker"60":                                             ; preds = %"59"
210*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %"61", label %"82"
211*9880d681SAndroid Build Coastguard Worker
212*9880d681SAndroid Build Coastguard Worker"61":                                             ; preds = %"60"
213*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %"62", label %"82"
214*9880d681SAndroid Build Coastguard Worker
215*9880d681SAndroid Build Coastguard Worker"62":                                             ; preds = %"61"
216*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %"100", label %"63"
217*9880d681SAndroid Build Coastguard Worker
218*9880d681SAndroid Build Coastguard Worker"63":                                             ; preds = %"62"
219*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %"65", label %"64"
220*9880d681SAndroid Build Coastguard Worker
221*9880d681SAndroid Build Coastguard Worker"64":                                             ; preds = %"63"
222*9880d681SAndroid Build Coastguard Worker  unreachable
223*9880d681SAndroid Build Coastguard Worker
224*9880d681SAndroid Build Coastguard Worker"65":                                             ; preds = %"63"
225*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %"66", label %"67"
226*9880d681SAndroid Build Coastguard Worker
227*9880d681SAndroid Build Coastguard Worker"66":                                             ; preds = %"65"
228*9880d681SAndroid Build Coastguard Worker  unreachable
229*9880d681SAndroid Build Coastguard Worker
230*9880d681SAndroid Build Coastguard Worker"67":                                             ; preds = %"65"
231*9880d681SAndroid Build Coastguard Worker  %1 = load i32, i32* undef, align 4                   ; <i32> [#uses=0]
232*9880d681SAndroid Build Coastguard Worker  br label %"100"
233*9880d681SAndroid Build Coastguard Worker
234*9880d681SAndroid Build Coastguard Worker"82":                                             ; preds = %"61", %"60", %"59"
235*9880d681SAndroid Build Coastguard Worker  unreachable
236*9880d681SAndroid Build Coastguard Worker
237*9880d681SAndroid Build Coastguard Worker"93":                                             ; preds = %"19"
238*9880d681SAndroid Build Coastguard Worker  %2 = call fastcc %"union tree_node"* @get_computation_at(%"struct loop"* undef, %"struct iv_use"* %use, %"struct iv_cand"* %cand, %"union gimple_statement_d"* %at) nounwind ; <%"union tree_node"*> [#uses=1]
239*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %"100", label %"97"
240*9880d681SAndroid Build Coastguard Worker
241*9880d681SAndroid Build Coastguard Worker"97":                                             ; preds = %"93"
242*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %"99", label %"98"
243*9880d681SAndroid Build Coastguard Worker
244*9880d681SAndroid Build Coastguard Worker"98":                                             ; preds = %"97"
245*9880d681SAndroid Build Coastguard Worker  br label %"99"
246*9880d681SAndroid Build Coastguard Worker
247*9880d681SAndroid Build Coastguard Worker"99":                                             ; preds = %"98", %"97"
248*9880d681SAndroid Build Coastguard Worker  %3 = phi %"union tree_node"* [ undef, %"98" ], [ %2, %"97" ] ; <%"union tree_node"*> [#uses=1]
249*9880d681SAndroid Build Coastguard Worker  %4 = call fastcc i32 @computation_cost(%"union tree_node"* %3, i8 zeroext undef) nounwind ; <i32> [#uses=1]
250*9880d681SAndroid Build Coastguard Worker  br label %"100"
251*9880d681SAndroid Build Coastguard Worker
252*9880d681SAndroid Build Coastguard Worker"100":                                            ; preds = %"99", %"93", %"67", %"62", %"25", %"23", %"8", %entry
253*9880d681SAndroid Build Coastguard Worker  %memtmp1.1.0 = phi i32 [ 0, %"99" ], [ 10000000, %entry ], [ 10000000, %"8" ], [ 10000000, %"23" ], [ 10000000, %"25" ], [ undef, %"62" ], [ undef, %"67" ], [ 10000000, %"93" ] ; <i32> [#uses=1]
254*9880d681SAndroid Build Coastguard Worker  %memtmp1.0.0 = phi i32 [ %4, %"99" ], [ 10000000, %entry ], [ 10000000, %"8" ], [ 10000000, %"23" ], [ 10000000, %"25" ], [ undef, %"62" ], [ undef, %"67" ], [ 10000000, %"93" ] ; <i32> [#uses=1]
255*9880d681SAndroid Build Coastguard Worker  %5 = zext i32 %memtmp1.0.0 to i64               ; <i64> [#uses=1]
256*9880d681SAndroid Build Coastguard Worker  %6 = zext i32 %memtmp1.1.0 to i64               ; <i64> [#uses=1]
257*9880d681SAndroid Build Coastguard Worker  %7 = shl i64 %6, 32                             ; <i64> [#uses=1]
258*9880d681SAndroid Build Coastguard Worker  %8 = or i64 %7, %5                              ; <i64> [#uses=1]
259*9880d681SAndroid Build Coastguard Worker  ret i64 %8
260*9880d681SAndroid Build Coastguard Worker}
261