[llvm-commits] CVS: llvm/test/Transforms/InstCombine/2007-02-07-PointerCast.ll
Andrew Lenharth
alenhar2 at cs.uiuc.edu
Wed Feb 7 14:24:06 PST 2007
Changes in directory llvm/test/Transforms/InstCombine:
2007-02-07-PointerCast.ll added (r1.1)
---
Log message:
This really only affects pointers in high memory, and only llvm 1.9, but make a regression for it anyway
---
Diffs of the changes: (+28 -0)
2007-02-07-PointerCast.ll | 28 ++++++++++++++++++++++++++++
1 files changed, 28 insertions(+)
Index: llvm/test/Transforms/InstCombine/2007-02-07-PointerCast.ll
diff -c /dev/null llvm/test/Transforms/InstCombine/2007-02-07-PointerCast.ll:1.1
*** /dev/null Wed Feb 7 16:23:57 2007
--- llvm/test/Transforms/InstCombine/2007-02-07-PointerCast.ll Wed Feb 7 16:23:47 2007
***************
*** 0 ****
--- 1,28 ----
+ ;RUN: llvm-upgrade < %s | llvm-as | opt -instcombine |llvm-dis |grep zext
+
+ ;Make sure the uint isn't removed.
+ ;instcombine in llvm 1.9 was dropping the uint cast which was causing a sign
+ ;extend
+ ;this only affected code with pointers in the high half of memory, so it wasn't
+ ;noticed much :)
+ ;compile a kernel though...
+
+ target datalayout = "e-p:32:32"
+ target endian = little
+ target pointersize = 32
+
+ %str = internal constant [6 x sbyte] c"%llx\0A\00"
+
+ implementation ; Functions:
+
+ declare int %printf(sbyte*, ...)
+
+ int %main(int %x, sbyte** %a) {
+ entry:
+ %tmp = getelementptr [6 x sbyte]* %str, int 0, uint 0
+ %tmp1 = load sbyte** %a
+ %tmp2 = cast sbyte* %tmp1 to uint ; <uint> [#uses=1]
+ %tmp3 = cast uint %tmp2 to long ; <long> [#uses=1]
+ %tmp = call int (sbyte*, ...)* %printf( sbyte* %tmp, long %tmp3 )
+ ret int 0
+ }
More information about the llvm-commits
mailing list