aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/Transforms/LevelRaise/2002-05-23-MissedRaise.ll16
1 files changed, 12 insertions, 4 deletions
diff --git a/test/Transforms/LevelRaise/2002-05-23-MissedRaise.ll b/test/Transforms/LevelRaise/2002-05-23-MissedRaise.ll
index 74d580489a..8708d86b9a 100644
--- a/test/Transforms/LevelRaise/2002-05-23-MissedRaise.ll
+++ b/test/Transforms/LevelRaise/2002-05-23-MissedRaise.ll
@@ -6,9 +6,17 @@
%FILE = type { int, ubyte*, ubyte*, ubyte, ubyte, uint, uint, uint }
uint %addfile(%FILE* %f) {
- %cast255 = cast %FILE* %f to sbyte* ; <sbyte*> [#uses=1]
- %reg2421 = getelementptr sbyte* %cast255, long 24 ; <sbyte*> [#uses=1]
- %reg130 = load sbyte* %reg2421 ; <sbyte> [#uses=1]
- %cast250 = cast sbyte %reg130 to uint ; <uint> [#uses=1]
+ %cast255 = cast %FILE* %f to sbyte*
+
+ ; Addreses a ubyte member in memory...
+ %reg2421 = getelementptr sbyte* %cast255, long 24
+
+ ; Loads the ubyte
+ %reg130 = load sbyte* %reg2421
+
+ ; Error, cast cannot convert the source operand to ubyte because then
+ ; the sign extension would not be performed. Need to insert a cast.
+ ;
+ %cast250 = cast sbyte %reg130 to uint ; This is a sign extension instruction
ret uint %cast250
}