1 ; 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
5 ; This test case is used to test opaque type processing, forward references,
6 ; and recursive types. Oh my.
16 %BBB = type { \2*, \2 * }
17 %AAA = type { \2*, {\2*}, [12x{\2*}], {[1x{\2*}]} }
22 %Composite = type { %0, %1 }
24 ; Test simple opaque type resolution...
28 ; Perform a simple forward reference...
29 %ty1 = type { %ty2, int }
32 ; Do a recursive type...
33 %list = type { %list * }
34 %listp = type { %listp } *
36 ; Do two mutually recursive types...
37 %TyA = type { %ty2, %TyB * }
38 %TyB = type { double, %TyA * }
40 ; A complex recursive type...
41 %Y = type { {%Y*}, %Y* }
42 %Z = type { { %Z * }, [12x%Z] *, {{{ %Z * }}} }
44 ; More ridiculous test cases...
46 %M = type %M (%M, %M) *
53 ; Test the parser for unnamed recursive types...
55 %Y1 = type { { \3 * }, \2 * }
56 %Z1 = type { { \3 * }, [12x\3] *, { { { \5 * } } } }