llvm-6502/test/Transforms/DSAnalysis/physicalsubtype.ll
2006-08-27 22:41:58 +00:00

17 lines
477 B
LLVM

; A test for "physical subtyping" used in some C programs...
;
; RUN: llvm-as < %s | opt -analyze -tddatastructure
;
%ST = type { int, int* } ; "Subtype"
%DT = type { int, int*, int } ; "derived type"
int %test(%DT* %DT) {
%DTp = getelementptr %DT* %DT, long 0, ubyte 0
%A = load int* %DTp
%ST = cast %DT* %DT to %ST*
%STp = getelementptr %ST* %ST, long 0, ubyte 0
%B = load int* %STp
%C = sub int %A, %B ; A & B are equal, %C = 0
ret int %C
}