Testcase for a missed level raise opportunity
authorChris Lattner <sabre@nondot.org>
Thu, 21 Mar 2002 21:20:04 +0000 (21:20 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 21 Mar 2002 21:20:04 +0000 (21:20 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1932 91177308-0d34-0410-b5e6-96231b3b80d8

test/Transforms/LevelRaise/2002-03-21-MissedRaise.ll [new file with mode: 0644]

diff --git a/test/Transforms/LevelRaise/2002-03-21-MissedRaise.ll b/test/Transforms/LevelRaise/2002-03-21-MissedRaise.ll
new file mode 100644 (file)
index 0000000..8478036
--- /dev/null
@@ -0,0 +1,25 @@
+; This example should be raised to return a Hash directly without casting.  To
+; successful, all cast instructions should be eliminated from this testcase.
+;
+
+; RUN: if as < %s | opt -raise | dis | grep cast 
+; RUN: then exit 1
+; RUN: else exit 0
+; RUN: fi
+
+       %Hash = type { { uint, sbyte *, \2 } * *, int (uint) *, int } *
+       %hash = type { { uint, sbyte *, \2 } * *, int (uint) *, int }
+       %hash_el = type { uint, sbyte *, \2 } *
+implementation
+
+%Hash "MakeHash"(int %size, int (uint) * %map)
+begin
+       %reg112 = malloc sbyte, uint 24         ; <sbyte *> [#uses=5]
+       %reg115 = malloc sbyte, uint 96         ; <sbyte *> [#uses=1]
+       %cast237 = cast sbyte * %reg112 to sbyte * *            ; <sbyte * *> [#uses=1]
+       store sbyte * %reg115, sbyte * * %cast237
+
+       %cast246 = cast sbyte * %reg112 to %Hash                ; <%Hash> [#uses=1]
+       ret %Hash %cast246
+end
+