brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.6 KiB · 8d406df Raw
91 lines · plain
1; RUN: llc < %s2; Infinite loop in the dag combiner, reduced from 176.gcc.	3%struct._obstack_chunk = type { ptr, ptr, [4 x i8] }4	%struct.anon = type { i32 }5	%struct.lang_decl = type opaque6	%struct.lang_type = type { i32, [1 x ptr] }7	%struct.obstack = type { i32, ptr, ptr, ptr, ptr, i32, i32, ptr, ptr, ptr, i8 }8	%struct.rtx_def = type { i16, i8, i8, [1 x %struct.anon] }9	%struct.tree_common = type { ptr, ptr, i8, i8, i8, i8 }10	%struct.tree_decl = type { [12 x i8], ptr, i32, ptr, i32, i8, i8, i8, i8, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.anon, { ptr }, ptr, ptr }11	%struct.tree_list = type { [12 x i8], ptr, ptr }12	%struct.tree_node = type { %struct.tree_decl }13	%struct.tree_type = type { [12 x i8], ptr, ptr, ptr, i32, i8, i8, i8, i8, i32, ptr, ptr, %struct.anon, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }14@void_type_node = external global ptr		; <ptr> [#uses=1]15@char_type_node = external global ptr		; <ptr> [#uses=1]16@short_integer_type_node = external global ptr		; <ptr> [#uses=1]17@short_unsigned_type_node = external global ptr		; <ptr> [#uses=1]18@float_type_node = external global ptr		; <ptr> [#uses=1]19@signed_char_type_node = external global ptr		; <ptr> [#uses=1]20@unsigned_char_type_node = external global ptr		; <ptr> [#uses=1]21 22define fastcc i32 @self_promoting_args_p(ptr %parms) {23entry:24	%tmp915 = icmp eq ptr %parms, null		; <i1> [#uses=1]25	br i1 %tmp915, label %return, label %cond_true92.preheader26 27cond_true:		; preds = %cond_true9228	%tmp9.not = icmp ne ptr %tmp2, %tmp7		; <i1> [#uses=1]29	%tmp14 = icmp eq ptr %tmp2, null		; <i1> [#uses=1]30	%bothcond = or i1 %tmp9.not, %tmp14		; <i1> [#uses=1]31	br i1 %bothcond, label %return, label %cond_next1832 33cond_next12:		; preds = %cond_true9234	%tmp14.old = icmp eq ptr %tmp2, null		; <i1> [#uses=1]35	br i1 %tmp14.old, label %return, label %cond_next1836 37cond_next18:		; preds = %cond_next12, %cond_true38	%tmp21 = getelementptr %struct.tree_type, ptr %tmp2, i32 0, i32 17		; <ptr> [#uses=1]39	%tmp22 = load ptr, ptr %tmp21		; <ptr> [#uses=6]40	%tmp24 = icmp eq ptr %tmp22, %tmp23		; <i1> [#uses=1]41	br i1 %tmp24, label %return, label %cond_next2842 43cond_next28:		; preds = %cond_next1844	%tmp = getelementptr %struct.tree_common, ptr %tmp2, i32 0, i32 2		; <ptr> [#uses=1]45	%tmp.upgrd.2 = load i32, ptr %tmp		; <i32> [#uses=1]46	%tmp32 = trunc i32 %tmp.upgrd.2 to i8		; <i8> [#uses=1]47	%tmp33 = icmp eq i8 %tmp32, 7		; <i1> [#uses=1]48	br i1 %tmp33, label %cond_true34, label %cond_next8449 50cond_true34:		; preds = %cond_next2851	%tmp40 = icmp eq ptr %tmp22, %tmp39		; <i1> [#uses=1]52	%tmp49 = icmp eq ptr %tmp22, %tmp48		; <i1> [#uses=1]53	%bothcond6 = or i1 %tmp40, %tmp49		; <i1> [#uses=1]54	%tmp58 = icmp eq ptr %tmp22, %tmp57		; <i1> [#uses=1]55	%bothcond7 = or i1 %bothcond6, %tmp58		; <i1> [#uses=1]56	%tmp67 = icmp eq ptr %tmp22, %tmp66		; <i1> [#uses=1]57	%bothcond8 = or i1 %bothcond7, %tmp67		; <i1> [#uses=1]58	%tmp76 = icmp eq ptr %tmp22, %tmp75		; <i1> [#uses=1]59	%bothcond9 = or i1 %bothcond8, %tmp76		; <i1> [#uses=2]60	%brmerge = or i1 %bothcond9, %tmp.upgrd.6		; <i1> [#uses=1]61	%bothcond9.upgrd.3 = zext i1 %bothcond9 to i32		; <i32> [#uses=1]62	%.mux = xor i32 %bothcond9.upgrd.3, 1		; <i32> [#uses=1]63	br i1 %brmerge, label %return, label %cond_true9264 65cond_next84:		; preds = %cond_next2866	br i1 %tmp.upgrd.6, label %return, label %cond_true9267 68cond_true92.preheader:		; preds = %entry69	%tmp7 = load ptr, ptr @void_type_node		; <ptr> [#uses=1]70	%tmp23 = load ptr, ptr @float_type_node		; <ptr> [#uses=1]71	%tmp39 = load ptr, ptr @char_type_node		; <ptr> [#uses=1]72	%tmp48 = load ptr, ptr @signed_char_type_node		; <ptr> [#uses=1]73	%tmp57 = load ptr, ptr @unsigned_char_type_node		; <ptr> [#uses=1]74	%tmp66 = load ptr, ptr @short_integer_type_node		; <ptr> [#uses=1]75	%tmp75 = load ptr, ptr @short_unsigned_type_node		; <ptr> [#uses=1]76	br label %cond_true9277 78cond_true92:		; preds = %cond_true92.preheader, %cond_next84, %cond_true3479	%t.0.0 = phi ptr [ %parms, %cond_true92.preheader ], [ %tmp6, %cond_true34 ], [ %tmp6, %cond_next84 ]		; <ptr> [#uses=2]80	%tmp.upgrd.5 = getelementptr %struct.tree_list, ptr %t.0.0, i32 0, i32 2		; <ptr> [#uses=1]81	%tmp2 = load ptr, ptr %tmp.upgrd.5		; <ptr> [#uses=5]82	%tmp5 = getelementptr %struct.tree_common, ptr %t.0.0, i32 0, i32 0		; <ptr> [#uses=1]83	%tmp6 = load ptr, ptr %tmp5		; <ptr> [#uses=3]84	%tmp.upgrd.6 = icmp eq ptr %tmp6, null		; <i1> [#uses=3]85	br i1 %tmp.upgrd.6, label %cond_true, label %cond_next1286 87return:		; preds = %cond_next84, %cond_true34, %cond_next18, %cond_next12, %cond_true, %entry88	%retval.0 = phi i32 [ 1, %entry ], [ 1, %cond_next84 ], [ %.mux, %cond_true34 ], [ 0, %cond_next18 ], [ 0, %cond_next12 ], [ 0, %cond_true ]		; <i32> [#uses=1]89	ret i32 %retval.090}91