1
; RUN: llvm-as < %s | llvm-dis > %t1.ll
2
; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
3
; RUN: diff %t1.ll %t2.ll
5
; This test case is used to test opaque type processing, forward references,
6
; and recursive types. Oh my.
15
%BBB = type { \2*, \2 * }
16
%AAA = type { \2*, {\2*}, [12x{\2*}], {[1x{\2*}]} }
21
%Composite = type { %0, %1 }
23
; Test simple opaque type resolution...
26
; Perform a simple forward reference...
27
%ty1 = type { %ty2, i32 }
30
; Do a recursive type...
31
%list = type { %list * }
32
%listp = type { %listp } *
34
; Do two mutually recursive types...
35
%TyA = type { %ty2, %TyB * }
36
%TyB = type { double, %TyA * }
38
; A complex recursive type...
39
%Y = type { {%Y*}, %Y* }
40
%Z = type { { %Z * }, [12x%Z] *, {{{ %Z * }}} }
42
; More ridiculous test cases...
44
%M = type %M (%M, %M) *
51
; Test the parser for unnamed recursive types...
53
%Y1 = type { { \3 * }, \2 * }
54
%Z1 = type { { \3 * }, [12x\3] *, { { { \5 * } } } }