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 00000000000..588c77dc188 --- /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 +}