; This file takes about 48 __MINUTES__ to assemble using as.  This is WAY too
; long.  The type resolution code needs to be sped up a lot.	

; RUN: ulimit -t 20; llvm-as < %s

	%ALL_INTERSECTIONS_METHOD = type int (%OBJECT*, %RAY*, %ISTACK*)*
	%BBOX = type { %BBOX_VECT, %BBOX_VECT }
	%BBOX_TREE = type { short, short, %BBOX, %BBOX_TREE** }
	%BBOX_VECT = type [3 x float]
	%BLEND_MAP = type { short, short, short, int, %BLEND_MAP_ENTRY* }
	%BLEND_MAP_ENTRY = type { float, ubyte, { %COLOUR, %PIGMENT*, %TNORMAL*, %TEXTURE*, %UV_VECT } }
	%CAMERA = type { %VECTOR, %VECTOR, %VECTOR, %VECTOR, %VECTOR, %VECTOR, double, double, int, double, double, int, double, %TNORMAL* }
	%COLOUR = type [5 x float]
	%COPY_METHOD = type sbyte* (%OBJECT*)*
	%COUNTER = type { uint, uint }
	%DENSITY_FILE = type { int, %DENSITY_FILE_DATA* }
	%DENSITY_FILE_DATA = type { int, sbyte*, int, int, int, ubyte*** }
	%DESTROY_METHOD = type void (%OBJECT*)*
	%FILE = type { int, ubyte*, ubyte*, ubyte, ubyte, uint, uint, uint }
	%FILE_HANDLE = type { sbyte*, int, int, int, int, sbyte*, %FILE*, int, int (%FILE_HANDLE*, sbyte*, int*, int*, int, int)*, void (%FILE_HANDLE*, %COLOUR*, int)*, int (%FILE_HANDLE*, %COLOUR*, int*)*, void (%IMAGE*, sbyte*)*, void (%FILE_HANDLE*)* }
	%FINISH = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, %BBOX_VECT, %BBOX_VECT }
	%FOG = type { int, double, double, double, %COLOUR, %VECTOR, %TURB*, float, %FOG* }
	%FRAME = type { %CAMERA*, int, int, int, %LIGHT_SOURCE*, %OBJECT*, double, double, %COLOUR, %COLOUR, %COLOUR, %IMEDIA*, %FOG*, %RAINBOW*, %SKYSPHERE* }
	%FRAMESEQ = type { int, double, int, int, double, int, int, double, int, double, int, double, uint, uint }
	%IMAGE = type { int, int, int, int, int, short, short, %VECTOR, float, float, int, int, short, %IMAGE_COLOUR*, { %IMAGE_LINE*, ubyte** } }
	%IMAGE_COLOUR = type { ushort, ushort, ushort, ushort, ushort }
	%IMAGE_LINE = type { ubyte*, ubyte*, ubyte*, ubyte* }
	%IMEDIA = type { int, int, int, int, int, double, double, int, int, int, int, %COLOUR, %COLOUR, %COLOUR, %COLOUR, double, double, double, double*, %PIGMENT*, %IMEDIA* }
	%INSIDE_METHOD = type int (double*, %OBJECT*)*
	%INTERIOR = type { int, int, float, float, float, float, float, %IMEDIA* }
	%INTERSECTION = type { double, %VECTOR, %VECTOR, %OBJECT*, int, int, double, double, sbyte* }
	%INVERT_METHOD = type void (%OBJECT*)*
	%ISTACK = type { %ISTACK*, %INTERSECTION*, uint }
	%LIGHT_SOURCE = type { %METHODS*, int, %OBJECT*, %TEXTURE*, %INTERIOR*, %OBJECT*, %OBJECT*, %BBOX, uint, %OBJECT*, %COLOUR, %VECTOR, %VECTOR, %VECTOR, %VECTOR, %VECTOR, double, double, double, double, double, %LIGHT_SOURCE*, ubyte, ubyte, ubyte, ubyte, int, int, int, int, int, %COLOUR**, %OBJECT*, [6 x %PROJECT_TREE_NODE*] }
	%MATRIX = type [4 x %VECTOR_4D]
	%METHODS = type { %ALL_INTERSECTIONS_METHOD, %INSIDE_METHOD, %NORMAL_METHOD, %COPY_METHOD, %ROTATE_METHOD, %ROTATE_METHOD, %ROTATE_METHOD, %TRANSFORM_METHOD, %DESTROY_METHOD, %DESTROY_METHOD }
	%NORMAL_METHOD = type void (double*, %OBJECT*, %INTERSECTION*)*
	%OBJECT = type { %METHODS*, int, %OBJECT*, %TEXTURE*, %INTERIOR*, %OBJECT*, %OBJECT*, %BBOX, uint }
	%Opts = type { int, uint, sbyte, sbyte, sbyte, int, [150 x sbyte], [150 x sbyte], [150 x sbyte], [150 x sbyte], [150 x sbyte], double, double, uint, int, double, double, int, [25 x sbyte*], int, int, int, double, double, int, int, double, double, double, uint, int, int, int, int, %FRAMESEQ, double, int, double, double, double, double, double, int, int, int, int, int, int, int, int, int, int, int, int, int, [150 x sbyte], %SHELLDATA*, [150 x sbyte], int, int }
	%PIGMENT = type { ushort, ushort, ushort, int, float, float, float, %WARP*, %TPATTERN*, %BLEND_MAP*, { %DENSITY_FILE*, %IMAGE*, %VECTOR, float, short, short, short, { float, %VECTOR }, %complex.float }, %COLOUR }
	%PRIORITY_QUEUE = type { uint, uint, %QELEM* }
	%PROJECT = type { int, int, int, int }
	%PROJECT_QUEUE = type { uint, uint, %PROJECT_TREE_NODE** }
	%PROJECT_TREE_NODE = type { ushort, %BBOX_TREE*, %PROJECT, ushort, %PROJECT_TREE_NODE** }
	%QELEM = type { double, %BBOX_TREE* }
	%RAINBOW = type { double, double, double, double, double, double, double, %VECTOR, %VECTOR, %VECTOR, %PIGMENT*, %RAINBOW* }
	%RAY = type { %VECTOR, %VECTOR, int, [100 x %INTERIOR*] }
	%RAYINFO = type { %VECTOR, %VECTOR, %VECTORI, %VECTORI }
	%RGB = type [3 x float]
	%ROTATE_METHOD = type void (%OBJECT*, double*, %TRANSFORM*)*
	%SCALE_METHOD = type void (%OBJECT*, double*, %TRANSFORM*)*
	%SHELLDATA = type { int, int, [250 x sbyte] }
	%SKYSPHERE = type { int, %PIGMENT**, %TRANSFORM* }
	%SNGL_VECT = type [3 x float]
	%TEXTURE = type { ushort, ushort, ushort, int, float, float, float, %WARP*, %TPATTERN*, %BLEND_MAP*, { %DENSITY_FILE*, %IMAGE*, %VECTOR, float, short, short, short, { float, %VECTOR }, %complex.float }, %TEXTURE*, %PIGMENT*, %TNORMAL*, %FINISH*, %TEXTURE*, int }
	%TNORMAL = type { ushort, ushort, ushort, int, float, float, float, %WARP*, %TPATTERN*, %BLEND_MAP*, { %DENSITY_FILE*, %IMAGE*, %VECTOR, float, short, short, short, { float, %VECTOR }, %complex.float }, float }
	%TPATTERN = type { ushort, ushort, ushort, int, float, float, float, %WARP*, %TPATTERN*, %BLEND_MAP*, { %DENSITY_FILE*, %IMAGE*, %VECTOR, float, short, short, short, { float, %VECTOR }, %complex.float } }
	%TRANSFORM = type { %MATRIX, %MATRIX }
	%TRANSFORM_METHOD = type void (%OBJECT*, %TRANSFORM*)*
	%TRANSLATE_METHOD = type void (%OBJECT*, double*, %TRANSFORM*)*
	%TURB = type { ushort, %WARP*, %VECTOR, int, float, float }
	%UV_VECT = type [2 x double]
	%VECTOR = type [3 x double]
	%VECTORI = type [3 x int]
	%VECTOR_4D = type [4 x double]
	%WARP = type { ushort, %WARP* }
	%__FILE = type { int, ubyte*, ubyte*, ubyte, ubyte, uint, uint, uint }
	%_h_val = type { [2 x uint], double }
	%complex.float = type { float, float }
