blob: ac08be60e229b730724fad7ecec59e730e3a4bb9 [file] [log] [blame]
Tanya Lattner3f7706b2004-11-07 06:08:43 +00001; RUN: llvm-as %s -o - | llvm-dis > %t1.ll
2; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
3; RUN: diff %t1.ll %t2.ll
4
Vikram S. Adve71de0ce2001-07-21 12:46:12 +00005%inners = type {float, {ubyte } }
6%struct = type { int , {float, {ubyte } } , ulong }
7
8implementation
9
Chris Lattner740d3cd2002-05-22 22:28:27 +000010int %testfunction(int %i0, int %j0)
Vikram S. Adve71de0ce2001-07-21 12:46:12 +000011begin
Chris Lattnerf493a562001-12-14 16:46:53 +000012 alloca ubyte, uint 5
Vikram S. Adve71de0ce2001-07-21 12:46:12 +000013 %ptr = alloca int ; yields {int*}:ptr
14 store int 3, int* %ptr ; yields {void}
15 %val = load int* %ptr ; yields {int}:val = int %3
16
17 %sptr = alloca %struct ; yields {%struct*}:sptr
Chris Lattner7209bff2002-10-06 22:43:49 +000018 %nsptr = getelementptr %struct * %sptr, long 0, ubyte 1 ; yields {inners*}:nsptr
19 %ubsptr = getelementptr %inners * %nsptr, long 0, ubyte 1 ; yields {{ubyte}*}:ubsptr
20 %idx = getelementptr {ubyte} * %ubsptr, long 0, ubyte 0
Chris Lattner6458c312002-08-22 16:04:03 +000021 store ubyte 4, ubyte* %idx
Vikram S. Adve71de0ce2001-07-21 12:46:12 +000022
Chris Lattner7209bff2002-10-06 22:43:49 +000023 %fptr = getelementptr %struct * %sptr, long 0, ubyte 1, ubyte 0 ; yields {float*}:fptr
Vikram S. Adve71de0ce2001-07-21 12:46:12 +000024 store float 4.0, float * %fptr
25
26 ret int 3
27end
28