mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-15 06:29:05 +00:00
This really only affects pointers in high memory, and only llvm 1.9, but make a regression for it anyway
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34014 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
28
test/Transforms/InstCombine/2007-02-07-PointerCast.ll
Normal file
28
test/Transforms/InstCombine/2007-02-07-PointerCast.ll
Normal file
@@ -0,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
|
||||||
|
}
|
Reference in New Issue
Block a user