; 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: llvm-upgrade < %s | llvm-as -o /dev/null -f
; END.

	%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 }
