aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/Transforms/LevelRaise/2002-10-02-SignExtensionProblem.ll16
1 files changed, 16 insertions, 0 deletions
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 0000000000..26949f3bd0
--- /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
+}