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
+ }



_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to