diff options
author | Tanya Lattner <tonic@nondot.org> | 2008-02-19 01:41:04 +0000 |
---|---|---|
committer | Tanya Lattner <tonic@nondot.org> | 2008-02-19 01:41:04 +0000 |
commit | 53a66d10f01ebfeac7b8e59ca677f2cf2d4a3b26 (patch) | |
tree | 896c6dee3a55f268ea98656237c7954799fd8ec7 /test/CodeGen/Generic/2006-03-01-dagcombineinfloop.ll | |
parent | efec751a1b786724862ceff52748df94873a807e (diff) | |
download | external_llvm-53a66d10f01ebfeac7b8e59ca677f2cf2d4a3b26.zip external_llvm-53a66d10f01ebfeac7b8e59ca677f2cf2d4a3b26.tar.gz external_llvm-53a66d10f01ebfeac7b8e59ca677f2cf2d4a3b26.tar.bz2 |
Remove llvm-upgrade and update tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47296 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/Generic/2006-03-01-dagcombineinfloop.ll')
-rw-r--r-- | test/CodeGen/Generic/2006-03-01-dagcombineinfloop.ll | 139 |
1 files changed, 68 insertions, 71 deletions
diff --git a/test/CodeGen/Generic/2006-03-01-dagcombineinfloop.ll b/test/CodeGen/Generic/2006-03-01-dagcombineinfloop.ll index 797af74..9607ebe 100644 --- a/test/CodeGen/Generic/2006-03-01-dagcombineinfloop.ll +++ b/test/CodeGen/Generic/2006-03-01-dagcombineinfloop.ll @@ -1,98 +1,95 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc -; Infinite loop in the dag combiner, reduced from 176.gcc. - - %struct._obstack_chunk = type { sbyte*, %struct._obstack_chunk*, [4 x sbyte] } - %struct.anon = type { int } +; RUN: llvm-as < %s | llc +; Infinite loop in the dag combiner, reduced from 176.gcc. +%struct._obstack_chunk = type { i8*, %struct._obstack_chunk*, [4 x i8] } + %struct.anon = type { i32 } %struct.lang_decl = type opaque - %struct.lang_type = type { int, [1 x %struct.tree_node*] } - %struct.obstack = type { int, %struct._obstack_chunk*, sbyte*, sbyte*, sbyte*, int, int, %struct._obstack_chunk* (...)*, void (...)*, sbyte*, ubyte } - %struct.rtx_def = type { ushort, ubyte, ubyte, [1 x %struct.anon] } - %struct.tree_common = type { %struct.tree_node*, %struct.tree_node*, ubyte, ubyte, ubyte, ubyte } - %struct.tree_decl = type { [12 x sbyte], sbyte*, int, %struct.tree_node*, uint, ubyte, ubyte, ubyte, ubyte, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.rtx_def*, %struct.anon, { %struct.rtx_def* }, %struct.tree_node*, %struct.lang_decl* } - %struct.tree_list = type { [12 x sbyte], %struct.tree_node*, %struct.tree_node* } + %struct.lang_type = type { i32, [1 x %struct.tree_node*] } + %struct.obstack = type { i32, %struct._obstack_chunk*, i8*, i8*, i8*, i32, i32, %struct._obstack_chunk* (...)*, void (...)*, i8*, i8 } + %struct.rtx_def = type { i16, i8, i8, [1 x %struct.anon] } + %struct.tree_common = type { %struct.tree_node*, %struct.tree_node*, i8, i8, i8, i8 } + %struct.tree_decl = type { [12 x i8], i8*, i32, %struct.tree_node*, i32, i8, i8, i8, i8, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.rtx_def*, %struct.anon, { %struct.rtx_def* }, %struct.tree_node*, %struct.lang_decl* } + %struct.tree_list = type { [12 x i8], %struct.tree_node*, %struct.tree_node* } %struct.tree_node = type { %struct.tree_decl } - %struct.tree_type = type { [12 x sbyte], %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, uint, ubyte, ubyte, ubyte, ubyte, uint, %struct.tree_node*, %struct.tree_node*, %struct.anon, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.obstack*, %struct.lang_type* } -%void_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] -%char_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] -%short_integer_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] -%short_unsigned_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] -%float_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] -%signed_char_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] -%unsigned_char_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] - -implementation ; Functions: + %struct.tree_type = type { [12 x i8], %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, i32, i8, i8, i8, i8, i32, %struct.tree_node*, %struct.tree_node*, %struct.anon, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.obstack*, %struct.lang_type* } +@void_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] +@char_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] +@short_integer_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] +@short_unsigned_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] +@float_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] +@signed_char_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] +@unsigned_char_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] -fastcc int %self_promoting_args_p(%struct.tree_node* %parms) { +define fastcc i32 @self_promoting_args_p(%struct.tree_node* %parms) { entry: - %tmp915 = seteq %struct.tree_node* %parms, null ; <bool> [#uses=1] - br bool %tmp915, label %return, label %cond_true92.preheader + %tmp915 = icmp eq %struct.tree_node* %parms, null ; <i1> [#uses=1] + br i1 %tmp915, label %return, label %cond_true92.preheader cond_true: ; preds = %cond_true92 - %tmp9.not = setne %struct.tree_node* %tmp2, %tmp7 ; <bool> [#uses=1] - %tmp14 = seteq %struct.tree_node* %tmp2, null ; <bool> [#uses=1] - %bothcond = or bool %tmp9.not, %tmp14 ; <bool> [#uses=1] - br bool %bothcond, label %return, label %cond_next18 + %tmp9.not = icmp ne %struct.tree_node* %tmp2, %tmp7 ; <i1> [#uses=1] + %tmp14 = icmp eq %struct.tree_node* %tmp2, null ; <i1> [#uses=1] + %bothcond = or i1 %tmp9.not, %tmp14 ; <i1> [#uses=1] + br i1 %bothcond, label %return, label %cond_next18 cond_next12: ; preds = %cond_true92 - %tmp14.old = seteq %struct.tree_node* %tmp2, null ; <bool> [#uses=1] - br bool %tmp14.old, label %return, label %cond_next18 + %tmp14.old = icmp eq %struct.tree_node* %tmp2, null ; <i1> [#uses=1] + br i1 %tmp14.old, label %return, label %cond_next18 cond_next18: ; preds = %cond_next12, %cond_true - %tmp20 = cast %struct.tree_node* %tmp2 to %struct.tree_type* ; <%struct.tree_type*> [#uses=1] - %tmp21 = getelementptr %struct.tree_type* %tmp20, int 0, uint 17 ; <%struct.tree_node**> [#uses=1] + %tmp20 = bitcast %struct.tree_node* %tmp2 to %struct.tree_type* ; <%struct.tree_type*> [#uses=1] + %tmp21 = getelementptr %struct.tree_type* %tmp20, i32 0, i32 17 ; <%struct.tree_node**> [#uses=1] %tmp22 = load %struct.tree_node** %tmp21 ; <%struct.tree_node*> [#uses=6] - %tmp24 = seteq %struct.tree_node* %tmp22, %tmp23 ; <bool> [#uses=1] - br bool %tmp24, label %return, label %cond_next28 + %tmp24 = icmp eq %struct.tree_node* %tmp22, %tmp23 ; <i1> [#uses=1] + br i1 %tmp24, label %return, label %cond_next28 cond_next28: ; preds = %cond_next18 - %tmp30 = cast %struct.tree_node* %tmp2 to %struct.tree_common* ; <%struct.tree_common*> [#uses=1] - %tmp = getelementptr %struct.tree_common* %tmp30, int 0, uint 2 ; <ubyte*> [#uses=1] - %tmp = cast ubyte* %tmp to uint* ; <uint*> [#uses=1] - %tmp = load uint* %tmp ; <uint> [#uses=1] - %tmp32 = cast uint %tmp to ubyte ; <ubyte> [#uses=1] - %tmp33 = seteq ubyte %tmp32, 7 ; <bool> [#uses=1] - br bool %tmp33, label %cond_true34, label %cond_next84 + %tmp30 = bitcast %struct.tree_node* %tmp2 to %struct.tree_common* ; <%struct.tree_common*> [#uses=1] + %tmp = getelementptr %struct.tree_common* %tmp30, i32 0, i32 2 ; <i8*> [#uses=1] + %tmp.upgrd.1 = bitcast i8* %tmp to i32* ; <i32*> [#uses=1] + %tmp.upgrd.2 = load i32* %tmp.upgrd.1 ; <i32> [#uses=1] + %tmp32 = trunc i32 %tmp.upgrd.2 to i8 ; <i8> [#uses=1] + %tmp33 = icmp eq i8 %tmp32, 7 ; <i1> [#uses=1] + br i1 %tmp33, label %cond_true34, label %cond_next84 cond_true34: ; preds = %cond_next28 - %tmp40 = seteq %struct.tree_node* %tmp22, %tmp39 ; <bool> [#uses=1] - %tmp49 = seteq %struct.tree_node* %tmp22, %tmp48 ; <bool> [#uses=1] - %bothcond6 = or bool %tmp40, %tmp49 ; <bool> [#uses=1] - %tmp58 = seteq %struct.tree_node* %tmp22, %tmp57 ; <bool> [#uses=1] - %bothcond7 = or bool %bothcond6, %tmp58 ; <bool> [#uses=1] - %tmp67 = seteq %struct.tree_node* %tmp22, %tmp66 ; <bool> [#uses=1] - %bothcond8 = or bool %bothcond7, %tmp67 ; <bool> [#uses=1] - %tmp76 = seteq %struct.tree_node* %tmp22, %tmp75 ; <bool> [#uses=1] - %bothcond9 = or bool %bothcond8, %tmp76 ; <bool> [#uses=2] - %brmerge = or bool %bothcond9, %tmp ; <bool> [#uses=1] - %bothcond9 = cast bool %bothcond9 to int ; <int> [#uses=1] - %.mux = xor int %bothcond9, 1 ; <int> [#uses=1] - br bool %brmerge, label %return, label %cond_true92 + %tmp40 = icmp eq %struct.tree_node* %tmp22, %tmp39 ; <i1> [#uses=1] + %tmp49 = icmp eq %struct.tree_node* %tmp22, %tmp48 ; <i1> [#uses=1] + %bothcond6 = or i1 %tmp40, %tmp49 ; <i1> [#uses=1] + %tmp58 = icmp eq %struct.tree_node* %tmp22, %tmp57 ; <i1> [#uses=1] + %bothcond7 = or i1 %bothcond6, %tmp58 ; <i1> [#uses=1] + %tmp67 = icmp eq %struct.tree_node* %tmp22, %tmp66 ; <i1> [#uses=1] + %bothcond8 = or i1 %bothcond7, %tmp67 ; <i1> [#uses=1] + %tmp76 = icmp eq %struct.tree_node* %tmp22, %tmp75 ; <i1> [#uses=1] + %bothcond9 = or i1 %bothcond8, %tmp76 ; <i1> [#uses=2] + %brmerge = or i1 %bothcond9, %tmp.upgrd.6 ; <i1> [#uses=1] + %bothcond9.upgrd.3 = zext i1 %bothcond9 to i32 ; <i32> [#uses=1] + %.mux = xor i32 %bothcond9.upgrd.3, 1 ; <i32> [#uses=1] + br i1 %brmerge, label %return, label %cond_true92 cond_next84: ; preds = %cond_next28 - br bool %tmp, label %return, label %cond_true92 + br i1 %tmp.upgrd.6, label %return, label %cond_true92 cond_true92.preheader: ; preds = %entry - %tmp7 = load %struct.tree_node** %void_type_node ; <%struct.tree_node*> [#uses=1] - %tmp23 = load %struct.tree_node** %float_type_node ; <%struct.tree_node*> [#uses=1] - %tmp39 = load %struct.tree_node** %char_type_node ; <%struct.tree_node*> [#uses=1] - %tmp48 = load %struct.tree_node** %signed_char_type_node ; <%struct.tree_node*> [#uses=1] - %tmp57 = load %struct.tree_node** %unsigned_char_type_node ; <%struct.tree_node*> [#uses=1] - %tmp66 = load %struct.tree_node** %short_integer_type_node ; <%struct.tree_node*> [#uses=1] - %tmp75 = load %struct.tree_node** %short_unsigned_type_node ; <%struct.tree_node*> [#uses=1] + %tmp7 = load %struct.tree_node** @void_type_node ; <%struct.tree_node*> [#uses=1] + %tmp23 = load %struct.tree_node** @float_type_node ; <%struct.tree_node*> [#uses=1] + %tmp39 = load %struct.tree_node** @char_type_node ; <%struct.tree_node*> [#uses=1] + %tmp48 = load %struct.tree_node** @signed_char_type_node ; <%struct.tree_node*> [#uses=1] + %tmp57 = load %struct.tree_node** @unsigned_char_type_node ; <%struct.tree_node*> [#uses=1] + %tmp66 = load %struct.tree_node** @short_integer_type_node ; <%struct.tree_node*> [#uses=1] + %tmp75 = load %struct.tree_node** @short_unsigned_type_node ; <%struct.tree_node*> [#uses=1] br label %cond_true92 cond_true92: ; preds = %cond_true92.preheader, %cond_next84, %cond_true34 %t.0.0 = phi %struct.tree_node* [ %parms, %cond_true92.preheader ], [ %tmp6, %cond_true34 ], [ %tmp6, %cond_next84 ] ; <%struct.tree_node*> [#uses=2] - %tmp = cast %struct.tree_node* %t.0.0 to %struct.tree_list* ; <%struct.tree_list*> [#uses=1] - %tmp = getelementptr %struct.tree_list* %tmp, int 0, uint 2 ; <%struct.tree_node**> [#uses=1] - %tmp2 = load %struct.tree_node** %tmp ; <%struct.tree_node*> [#uses=5] - %tmp4 = cast %struct.tree_node* %t.0.0 to %struct.tree_common* ; <%struct.tree_common*> [#uses=1] - %tmp5 = getelementptr %struct.tree_common* %tmp4, int 0, uint 0 ; <%struct.tree_node**> [#uses=1] + %tmp.upgrd.4 = bitcast %struct.tree_node* %t.0.0 to %struct.tree_list* ; <%struct.tree_list*> [#uses=1] + %tmp.upgrd.5 = getelementptr %struct.tree_list* %tmp.upgrd.4, i32 0, i32 2 ; <%struct.tree_node**> [#uses=1] + %tmp2 = load %struct.tree_node** %tmp.upgrd.5 ; <%struct.tree_node*> [#uses=5] + %tmp4 = bitcast %struct.tree_node* %t.0.0 to %struct.tree_common* ; <%struct.tree_common*> [#uses=1] + %tmp5 = getelementptr %struct.tree_common* %tmp4, i32 0, i32 0 ; <%struct.tree_node**> [#uses=1] %tmp6 = load %struct.tree_node** %tmp5 ; <%struct.tree_node*> [#uses=3] - %tmp = seteq %struct.tree_node* %tmp6, null ; <bool> [#uses=3] - br bool %tmp, label %cond_true, label %cond_next12 + %tmp.upgrd.6 = icmp eq %struct.tree_node* %tmp6, null ; <i1> [#uses=3] + br i1 %tmp.upgrd.6, label %cond_true, label %cond_next12 return: ; preds = %cond_next84, %cond_true34, %cond_next18, %cond_next12, %cond_true, %entry - %retval.0 = phi int [ 1, %entry ], [ 1, %cond_next84 ], [ %.mux, %cond_true34 ], [ 0, %cond_next18 ], [ 0, %cond_next12 ], [ 0, %cond_true ] ; <int> [#uses=1] - ret int %retval.0 + %retval.0 = phi i32 [ 1, %entry ], [ 1, %cond_next84 ], [ %.mux, %cond_true34 ], [ 0, %cond_next18 ], [ 0, %cond_next12 ], [ 0, %cond_true ] ; <i32> [#uses=1] + ret i32 %retval.0 } |