Use the llvm-upgrade program to upgrade llvm assembly.
[oota-llvm.git] / test / Transforms / DSAnalysis / physicalsubtype.ll
1 ; A test for "physical subtyping" used in some C programs...
2 ;
3 ; RUN: llvm-upgrade < %s | llvm-as | opt -analyze -tddatastructure
4 ;
5 %ST = type { int, int* }            ; "Subtype"
6 %DT = type { int, int*, int }       ; "derived type"
7
8 int %test(%DT* %DT) {
9         %DTp = getelementptr %DT* %DT, long 0, uint 0
10         %A = load int* %DTp
11         %ST = cast %DT* %DT to %ST*
12         %STp = getelementptr %ST* %ST, long 0, uint 0
13         %B = load int* %STp
14         %C = sub int %A, %B         ; A & B are equal, %C = 0
15         ret int %C
16 }