llvm-6502/test/Feature/testmemory.ll
Reid Spencer e5d4efa63e Promote GEP ubyte indices to uint. Backwards compatibility for 1.2 and
older features will be dropped soon and these test cases must not rely
on the upgrade capability.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31896 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-23 15:14:52 +00:00

46 lines
1.4 KiB
LLVM

; RUN: llvm-as %s -o - | llvm-dis > %t1.ll
; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
; RUN: diff %t1.ll %t2.ll
%struct = type { int , {float, {ubyte } } , ulong }
%complexty = type {int, {[4 x sbyte *], float}, double}
implementation
int "main"()
begin
call int %testfunction(long 0, long 1)
ret int 0
end
int "testfunction"(long %i0, long %j0)
begin
%array0 = malloc [4 x ubyte] ; yields {[4 x ubyte]*}:array0
%size = add uint 2, 2 ; yields {uint}:size = uint %4
%array1 = malloc ubyte, uint 4 ; yields {ubyte*}:array1
%array2 = malloc ubyte, uint %size ; yields {ubyte*}:array2
%idx = getelementptr [4 x ubyte]* %array0, long 0, long 2
store ubyte 123, ubyte* %idx
free [4x ubyte]* %array0
free ubyte* %array1
free ubyte* %array2
%aa = alloca %complexty, uint 5
%idx2 = getelementptr %complexty* %aa, long %i0, uint 1, uint 0, long %j0
store sbyte *null, sbyte** %idx2
%ptr = alloca int ; yields {int*}:ptr
store int 3, int* %ptr ; yields {void}
%val = load int* %ptr ; yields {int}:val = int %3
%sptr = alloca %struct ; yields {%struct*}:sptr
%ubsptr = getelementptr %struct * %sptr, long 0, uint 1, uint 1 ; yields {{ubyte}*}:ubsptr
%idx3 = getelementptr {ubyte} * %ubsptr, long 0, uint 0
store ubyte 4, ubyte* %idx3
ret int 3
end