blob: cf54743dc70282923031d591c713cf2bf07dd826 [file] [log] [blame]
Vikram S. Adve71de0ce2001-07-21 12:46:12 +00001%inners = type {float, {ubyte } }
2%struct = type { int , {float, {ubyte } } , ulong }
3
4implementation
5
Chris Lattner740d3cd2002-05-22 22:28:27 +00006int %testfunction(int %i0, int %j0)
Vikram S. Adve71de0ce2001-07-21 12:46:12 +00007begin
Chris Lattnerf493a562001-12-14 16:46:53 +00008 alloca ubyte, uint 5
Vikram S. Adve71de0ce2001-07-21 12:46:12 +00009 %ptr = alloca int ; yields {int*}:ptr
10 store int 3, int* %ptr ; yields {void}
11 %val = load int* %ptr ; yields {int}:val = int %3
12
13 %sptr = alloca %struct ; yields {%struct*}:sptr
Chris Lattnerf493a562001-12-14 16:46:53 +000014 %nsptr = getelementptr %struct * %sptr, uint 0, ubyte 1 ; yields {inners*}:nsptr
15 %ubsptr = getelementptr %inners * %nsptr, uint 0, ubyte 1 ; yields {{ubyte}*}:ubsptr
Chris Lattner6458c312002-08-22 16:04:03 +000016 %idx = getelementptr {ubyte} * %ubsptr, uint 0, ubyte 0
17 store ubyte 4, ubyte* %idx
Vikram S. Adve71de0ce2001-07-21 12:46:12 +000018
Chris Lattnerf493a562001-12-14 16:46:53 +000019 %fptr = getelementptr %struct * %sptr, uint 0, ubyte 1, ubyte 0 ; yields {float*}:fptr
Vikram S. Adve71de0ce2001-07-21 12:46:12 +000020 store float 4.0, float * %fptr
21
22 ret int 3
23end
24