diff --git a/test/Transforms/LevelRaise/2002-10-02-SignExtensionProblem.ll b/test/Transforms/LevelRaise/2002-10-02-SignExtensionProblem.ll new file mode 100644 index 00000000000..26949f3bd05 --- /dev/null +++ b/test/Transforms/LevelRaise/2002-10-02-SignExtensionProblem.ll @@ -0,0 +1,16 @@ +; RUN: if as < %s | opt -raise | dis | grep 4294967295 +; RUN: then exit 1 +; RUN: else exit 0 +; RUN: fi + +%length_code = uninitialized global [256 x ubyte] + +ubyte* %test(uint %length) { + %d = add uint 4294967295, %length + %e = cast uint %d to int + %g = cast int %e to ulong + %j = cast [256 x ubyte]* %length_code to ulong + %l = add ulong %j, %g + %m = cast ulong %l to ubyte* + ret ubyte* %m +}