diff options
author | Chris Lattner <sabre@nondot.org> | 2002-07-16 17:32:17 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-07-16 17:32:17 +0000 |
commit | 4b933a253feb3e767e44600ea5e35654eefaec23 (patch) | |
tree | 2facb7dc6f2f5664ca1222c35104e4e986a4a729 | |
parent | 768846af415213e5bac8d5793e3195efd80e6d47 (diff) | |
download | bcm5719-llvm-4b933a253feb3e767e44600ea5e35654eefaec23.tar.gz bcm5719-llvm-4b933a253feb3e767e44600ea5e35654eefaec23.zip |
New testcase distilled from olden-tsp.
llvm-svn: 2919
-rw-r--r-- | llvm/test/Regression/Transforms/LevelRaise/2002-07-16-RaiseCrash.ll | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/llvm/test/Regression/Transforms/LevelRaise/2002-07-16-RaiseCrash.ll b/llvm/test/Regression/Transforms/LevelRaise/2002-07-16-RaiseCrash.ll new file mode 100644 index 00000000000..51afae355bc --- /dev/null +++ b/llvm/test/Regression/Transforms/LevelRaise/2002-07-16-RaiseCrash.ll @@ -0,0 +1,53 @@ +; as < %s | opt -raise + + %Tree = type %struct.tree* + %struct.tree = type { int, double, double, %Tree, %Tree, %Tree, %Tree } + +implementation ; Functions: + +void %reverse(%Tree %t) { +bb0: ;[#uses=0] + %cast219 = cast %Tree %t to sbyte*** ; <sbyte***> [#uses=7] + %cond220 = seteq sbyte*** %cast219, null ; <bool> [#uses=1] + br bool %cond220, label %bb5, label %bb2 + +bb2: ;[#uses=3] + %reg2221 = getelementptr sbyte*** %cast219, uint 6 ; <sbyte***> [#uses=1] + %reg108 = load sbyte*** %reg2221 ; <sbyte**> [#uses=3] + %reg2251 = getelementptr sbyte** %reg108, uint 5 ; <sbyte**> [#uses=1] + store sbyte* null, sbyte** %reg2251 + %reg2281 = getelementptr sbyte*** %cast219, uint 6 ; <sbyte***> [#uses=1] + store sbyte** null, sbyte*** %reg2281 + %reg2311 = getelementptr sbyte*** %cast219, uint 5 ; <sbyte***> [#uses=1] + %reg114 = load sbyte*** %reg2311, uint 0 ; <sbyte**> [#uses=2] + %cond234 = seteq sbyte** %reg114, null ; <bool> [#uses=1] + br bool %cond234, label %bb4, label %bb3 + +bb3: ;[#uses=4] + %reg115 = phi sbyte*** [ %cast117, %bb3 ], [ %cast219, %bb2 ] ; <sbyte***> [#uses=2] + %reg116 = phi sbyte** [ %cast118, %bb3 ], [ %reg114, %bb2 ] ; <sbyte**> [#uses=4] + %reg236 = getelementptr sbyte** %reg116, uint 5 ; <sbyte**> [#uses=1] + %reg110 = load sbyte** %reg236 ; <sbyte*> [#uses=1] + %reg239 = getelementptr sbyte** %reg116, uint 5 ; <sbyte**> [#uses=1] + %cast241 = cast sbyte*** %reg115 to sbyte* ; <sbyte*> [#uses=1] + store sbyte* %cast241, sbyte** %reg239 + %reg242 = getelementptr sbyte*** %reg115, uint 6 ; <sbyte***> [#uses=1] + store sbyte** %reg116, sbyte*** %reg242 + %cast117 = cast sbyte** %reg116 to sbyte*** ; <sbyte***> [#uses=1] + %cast118 = cast sbyte* %reg110 to sbyte** ; <sbyte**> [#uses=2] + %cond245 = setne sbyte** %cast118, null ; <bool> [#uses=1] + br bool %cond245, label %bb3, label %bb4 + +bb4: ;[#uses=2] + %reg247 = getelementptr sbyte*** %cast219, uint 5 ; <sbyte***> [#uses=1] + store sbyte** %reg108, sbyte*** %reg247 + %reg250 = getelementptr sbyte** %reg108, uint 6 ; <sbyte**> [#uses=2] + cast sbyte** %reg250 to sbyte**** ; <sbyte****>:0 [#uses=0] + %cast252 = cast sbyte*** %cast219 to sbyte* ; <sbyte*> [#uses=1] + store sbyte* %cast252, sbyte** %reg250 + br label %bb5 + +bb5: ;[#uses=2] + ret void +} + |