aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/Transforms/LevelRaise/2002-11-13-PointerFunction.ll13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/Transforms/LevelRaise/2002-11-13-PointerFunction.ll b/test/Transforms/LevelRaise/2002-11-13-PointerFunction.ll
new file mode 100644
index 0000000000..588c77dc18
--- /dev/null
+++ b/test/Transforms/LevelRaise/2002-11-13-PointerFunction.ll
@@ -0,0 +1,13 @@
+; This testcase should be able to eliminate at least one of the casts.
+;
+; RUN: if as < %s | opt -raise | dis | grep 'REMOVE'
+; RUN: then exit 1
+; RUN: else exit 0
+; RUN: fi
+
+int %foo(sbyte * %PF) {
+ %UPF = cast sbyte* %PF to uint()*
+ %Ret = call uint %UPF()
+ %REMOVE = cast uint %Ret to int
+ ret int %REMOVE
+}