1 ; RUN: llc -O0 -march=x86 -mattr=+sse3 %s
2 ; Formerly crashed - PR 7191 / 8023512
4 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128-n8:16:32"
5 target triple = "i386-apple-darwin11.0"
7 %0 = type { i16, i16, i32 }
8 %1 = type { i32, i32, i16, i16, i16, i16 }
9 %2 = type { i16, i16, %struct.GLTColor4, %struct.GLTColor4 }
10 %3 = type { void (i8*, i8*, i32, i8*)*, i32 (i8*, ...)*, i8* (%struct.GLDContextRec*, %struct.GLDFramebufferRec*, i8, i32, i32)* }
11 %struct.GLDActiveTextureTargets = type { i64, i64, i64, i64, i64, i64 }
12 %struct.GLDAlphaTest = type { float, i16, i8, i8 }
13 %struct.GLDArrayRange = type { i8, i8, i8, i8 }
14 %struct.GLDBlendMode = type { i16, i16, i16, i16, %struct.GLTColor4, i16, i16, i8, i8, i8, i8 }
15 %struct.GLDBufferData = type { i8*, i32, i32, i16, i16, i8, i8, i8, i8 }
16 %struct.GLDBufferRec = type { %struct.GLDBufferData*, %struct.GLDPluginBufferData* }
17 %struct.GLDBufferstate = type { %struct.GLTDimensions, %struct.GLTDimensions, %struct.GLTFixedColor4, %struct.GLTFixedColor4, i8, i8, i8, i8, [0 x i32], %union.GLSBuffer, %union.GLSBuffer, %union.GLSBuffer, [8 x %union.GLSBuffer], %union.GLSBuffer }
18 %struct.GLDClearColor = type { double, %struct.GLTColor4, %struct.GLTColor4, float, i32 }
19 %struct.GLDClipPlane = type { i32, [6 x %struct.GLTColor4] }
20 %struct.GLDColorBuffer = type { i16, i8, i8, [8 x i16], i8, i8, i8, i8 }
21 %struct.GLDColorMatrix = type { [16 x float]*, %struct.GLDImagingColorScale }
22 %struct.GLDConfig = type { i32, float, %struct.GLTDimensions, %struct.GLTDimensions, i8, i8, i8, i8, i8, i8, i16, i32, i32, i32, %struct.GLDPixelFormatInfo, %struct.GLDPointLineLimits, %struct.GLDPointLineLimits, %struct.GLDRenderFeatures, i32, i32, i32, i32, i32, i32, i32, i32, %struct.GLDMultisamplePositions, %struct.GLDTextureLimits, [3 x %struct.GLDPipelineProgramLimits], %struct.GLDFragmentProgramLimits, %struct.GLDVertexProgramLimits, %struct.GLDGeometryShaderLimits, %struct.GLDGeometryShaderLimits, %struct.GLDTransformFeedbackLimits, i16, i8, i8, %struct.GLDVertexDescriptor*, %struct.GLDVertexDescriptor*, [4 x i32], [8 x i32], %struct.GLDMultisamplePositions* }
23 %struct.GLDContextRec = type { float, float, float, float, float, float, float, float, %struct.GLTColor4, %struct.GLTColor4, %struct.GLVMFPContext, [16 x [2 x %union.PPStreamToken]], %struct.GLGProcessor, %struct._GLVMConstants*, void (%struct.GLDContextRec*, i32, i32, %struct.GLVMFragmentAttribRec*, %struct.GLVMFragmentAttribRec*, i32)*, %struct._GLVMFunction*, %union.PPStreamToken*, void (%struct.GLDContextRec*, %struct.GLDVertex*)*, void (%struct.GLDContextRec*, %struct.GLDVertex*, %struct.GLDVertex*)*, void (%struct.GLDContextRec*, %struct.GLDVertex*, %struct.GLDVertex*, %struct.GLDVertex*)*, %struct._GLVMFunction*, %struct._GLVMFunction*, %struct._GLVMFunction*, [4 x i32], [3 x i32], [3 x i32], %union.PPStreamToken, %struct.GLDConfig*, %struct.GLDFramebufferRec*, %struct.GLDFramebufferRec*, %struct.GLDBufferstate, %struct.GLDReadBufferstate, %struct.GLDLayeredBufferstate, [64 x %struct.GLTColor4*], %struct.GLDSharedRec*, %struct.GLDState*, %struct.GLDPluginState*, %struct.GLDVertex*, %struct.GLVMFragmentAttribRec*, %struct.GLVMFragmentAttribRec*, %struct.GLVMFragmentAttribRec*, %struct.GLDProgramRec*, %struct.GLDPipelineProgramRec*, %struct.GLVMTextures, %struct.GLDQueryRec*, %struct.GLDQueryRec*, %struct.GLDQueryRec*, %struct.GLTDimensions, i64 ()*, %struct.GLDFallback, %3, %union.GLSDrawable, i32, float, float, %struct.GLDRect, %struct.GLDFormat, %struct.GLDFormat, %struct.GLDFormat, %struct.GLDStippleData, i32, i32, i32, i32, i16, i8, i8, i8, i8, [2 x i8], [0 x i32] }
24 %struct.GLDConvolution = type { %struct.GLTColor4, %struct.GLDImagingColorScale, i16, i16, [0 x i32], float*, i32, i32 }
25 %struct.GLDCurrent = type { [8 x %struct.GLTColor4], [16 x %struct.GLTColor4], %struct.GLTColor4, %struct.GLDPointLineLimits, float, %struct.GLDPointLineLimits, float, [4 x float], float, float, float, i8, i8, i8, i8, i32, i32, i32, i32 }
26 %struct.GLDDepthTest = type { i16, i16, i8, i8, i8, i8, double, double }
27 %struct.GLDDitherMode = type { i8, i8, i8, i8 }
28 %struct.GLDDrawableOffscreen = type { i32, i32, i32, [0 x i32], i8* }
29 %struct.GLDDrawableWindow = type { i32, i32, i32 }
30 %struct.GLDFallback = type { float*, %struct.GLDRenderDispatch*, %struct.GLDConfig*, i8*, i8*, i32, i32 }
31 %struct.GLDFixedFunction = type { %union.PPStreamToken* }
32 %struct.GLDFogMode = type { %struct.GLTColor4, float, float, float, float, float, i16, i16, i16, i8, i8 }
33 %struct.GLDFormat = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i32, i32, i32 }
34 %struct.GLDFragmentProgramLimits = type { i32, i32, i32, i16, i16, i32, i16, i16, i16, i16 }
35 %struct.GLDFramebufferAttachment = type { i16, i16, i32, i32, i32 }
36 %struct.GLDFramebufferData = type { [10 x %struct.GLDFramebufferAttachment], [8 x i16], i16, i16, i16, i8, i8, i32, i32, i32 }
37 %struct.GLDFramebufferRec = type { %struct.GLDFramebufferData*, %struct.GLDPluginFramebufferData*, [10 x %struct.GLDFormat], i8, i8, i16, [0 x i32] }
38 %struct.GLDGeometryShaderLimits = type { i32, i32, i32, i32, i32, i16, i16 }
39 %struct.GLDHintMode = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 }
40 %struct.GLDHistogram = type { %struct.GLTFixedColor4*, i32, i16, i8, i8 }
41 %struct.GLDImagingColorScale = type { %struct.GLDMultisamplePositions, %struct.GLDMultisamplePositions, %struct.GLDMultisamplePositions, %struct.GLDMultisamplePositions }
42 %struct.GLDImagingSubset = type { %struct.GLDConvolution, %struct.GLDConvolution, %struct.GLDConvolution, %struct.GLDColorMatrix, %struct.GLDMinmax, %struct.GLDHistogram, %struct.GLDImagingColorScale, %struct.GLDImagingColorScale, %struct.GLDImagingColorScale, %struct.GLDImagingColorScale, i32, [0 x i32] }
43 %struct.GLDLayeredBufferstate = type { %union.GLSBuffer, %union.GLSBuffer, [8 x %union.GLSBuffer] }
44 %struct.GLDLight = type { %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, %struct.GLDPointLineLimits, float, float, float, float, float, %struct.GLDPointLineLimits, float, %struct.GLDPointLineLimits, float, %struct.GLDPointLineLimits, float, float, float, float, float }
45 %struct.GLDLightModel = type { %struct.GLTColor4, [8 x %struct.GLDLight], [2 x %struct.GLDMaterial], i32, i16, i16, i16, i8, i8, i8, i8, i8, i8 }
46 %struct.GLDLightProduct = type { %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4 }
47 %struct.GLDLineMode = type { float, i32, i16, i16, i8, i8, i8, i8 }
48 %struct.GLDLogicOp = type { i16, i8, i8 }
49 %struct.GLDMaskMode = type { i32, [3 x i32], i8, i8, i8, i8, i8, i8, i8, i8 }
50 %struct.GLDMaterial = type { %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, float, float, float, float, [8 x %struct.GLDLightProduct], %struct.GLTColor4, [8 x i32] }
51 %struct.GLDMinmax = type { %struct.GLDMinmaxTable*, i16, i8, i8, [0 x i32] }
52 %struct.GLDMinmaxTable = type { %struct.GLTColor4, %struct.GLTColor4 }
53 %struct.GLDMipmaplevel = type { [4 x i32], [4 x i32], [4 x float], [4 x i32], i32, i32, float*, i8*, i16, i16, i16, i16, [2 x float] }
54 %struct.GLDMultisample = type { float, [1 x i32], [0 x i32], i8, i8, i8, i8, i8, i8, i8, i8 }
55 %struct.GLDMultisamplePositions = type { float, float }
56 %struct.GLDPipelineProgramData = type { i16, i8, i8, i32, %union.PPStreamToken*, i64, %struct.GLTColor4*, i32, [0 x i32] }
57 %struct.GLDPipelineProgramLimits = type { i32, i16, i16, i32, i16, i16, i32, i32 }
58 %struct.GLDPipelineProgramRec = type { %struct.GLDPipelineProgramData*, %union.PPStreamToken*, %struct.GLDContextRec*, %struct.GLVMProgramData*, i32, i32 }
59 %struct.GLDPipelineProgramState = type { i8, i8, i8, i8, [0 x i32], %struct.GLTColor4* }
60 %struct.GLDPixelFormatInfo = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }
61 %struct.GLDPixelMap = type { i32*, float*, float*, float*, float*, float*, float*, float*, float*, i32*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
62 %struct.GLDPixelMode = type { float, float, %struct.GLDPixelStore, %struct.GLDPixelTransfer, %struct.GLDPixelMap, %struct.GLDImagingSubset, i32, [0 x i32] }
63 %struct.GLDPixelPack = type { i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8 }
64 %struct.GLDPixelStore = type { %struct.GLDPixelPack, %struct.GLDPixelPack }
65 %struct.GLDPixelTransfer = type { float, float, float, float, float, float, float, float, float, float, i32, i32 }
66 %struct.GLDPluginBufferData = type { i32 }
67 %struct.GLDPluginFramebufferData = type { [10 x %struct.GLDTextureRec*], i8, i8, i8, i8 }
68 %struct.GLDPluginProgramData = type { [3 x %struct.GLDPipelineProgramRec*], %struct.GLDBufferRec**, i32, [0 x i32] }
69 %struct.GLDPluginState = type { [16 x [11 x %struct.GLDTextureRec*]], [3 x %struct.GLDTextureRec*], [3 x %struct.GLDPipelineProgramRec*], [3 x %struct.GLDPipelineProgramRec*], %struct.GLDProgramRec*, %struct.GLDVertexArrayRec*, [16 x %struct.GLDBufferRec*], %struct.GLDFramebufferRec*, %struct.GLDFramebufferRec*, [6 x %struct.GLDQueryRec*], [64 x %struct.GLDBufferRec*] }
70 %struct.GLDPluginTextureState = type { %struct.GLDBufferRec*, [6 x i16], i8, i8, i16 }
71 %struct.GLDPointLineLimits = type { float, float, float }
72 %struct.GLDPointMode = type { float, float, float, float, %struct.GLDPointLineLimits, float, i8, i8, i8, i8, i16, i16, i32, i16, i16 }
73 %struct.GLDPolygonMode = type { [128 x i8], float, float, i16, i16, i16, i16, i8, i8, i8, i8, i8, i8, i8, i8 }
74 %struct.GLDPolygonOffset = type { float, float }
75 %struct.GLDPrimitiveRestart = type { i8, i8, i8, i8, i32 }
76 %struct.GLDProgramData = type { i32, i32, i32, i32, %union.PPStreamToken*, i32*, i32, i32, i32, i32, i8, i8, i8, i8, i32, [64 x i32] }
77 %struct.GLDProgramLimits = type { i32, i32, i32, i32, i32, i16, i16 }
78 %struct.GLDProgramRec = type { %struct.GLDProgramData*, %struct.GLDPluginProgramData*, i32, [0 x i32] }
79 %struct.GLDProgramState = type { i8, i8, i8, i8 }
80 %struct.GLDQueryRec = type { i64, i64, i64 }
81 %struct.GLDQueryState = type { i16, i16 }
82 %struct.GLDReadBufferstate = type { %struct.GLTDimensions, %struct.GLTDimensions, %union.GLSBuffer, %union.GLSBuffer, %union.GLSBuffer, %union.GLSBuffer }
83 %struct.GLDRect = type { i32, i32, i32, i32, i32, i32 }
84 %struct.GLDRenderDispatch = type { void (%struct.GLDContextRec*, i32, float)*, void (%struct.GLDContextRec*, i32)*, i32 (%struct.GLDContextRec*, %struct.GLDMultisamplePositions*, i32, i32, i32, i32, i8*, i32, %struct.GLDBufferRec*)*, void (%struct.GLDContextRec*, %struct.GLDMultisamplePositions*, i32, i32, i32, i32, i32)*, void (%struct.GLDContextRec*, %struct.GLDVertex*, i32, i32)*, void (%struct.GLDContextRec*, %struct.GLDVertex*, i32, i32)*, void (%struct.GLDContextRec*, %struct.GLDVertex*, i32, i32)*, void (%struct.GLDContextRec*, %struct.GLDVertex*, i32, i32)*, void (%struct.GLDContextRec*, %struct.GLDVertex*, i32, i32)*, void (%struct.GLDContextRec*, %struct.GLDVertex*, i32, i32)*, void (%struct.GLDContextRec*, %struct.GLDVertex*, %struct.GLDVertex*, i32, i32)*, void (%struct.GLDContextRec*, %struct.GLDVertex*, i32, i32)*, void (%struct.GLDContextRec*, %struct.GLDVertex*, i32, i32)*, void (%struct.GLDContextRec*, %struct.GLDVertex*, i32, i32)*, void (%struct.GLDContextRec*, %struct.GLDVertex*, i32, i32)*, void (%struct.GLDContextRec*, %struct.GLDVertex*, i32, i32)*, void (%struct.GLDContextRec*, %struct.GLDVertex*, i32, i32)*, void (%struct.GLDContextRec*, %struct.GLDVertex*, i32, i32)*, void (%struct.GLDContextRec*, %struct.GLDVertex**, i32)*, void (%struct.GLDContextRec*, %struct.GLDVertex**, i32, i32)*, void (%struct.GLDContextRec*, %struct.GLDVertex**, i32, i32)*, i8* (%struct.GLDContextRec*, i32, i32*)*, void (%struct.GLDContextRec*, i32, i32, i32)*, i8* (%struct.GLDContextRec*, i32, i32, i32, i32, i32)*, void (%struct.GLDContextRec*, i32, i32, i32, i32, i32, i8*)*, void (%struct.GLDContextRec*)*, void (%struct.GLDContextRec*)*, void (%struct.GLDContextRec*)*, i32 (%struct.GLDContextRec*, i32, i32, i32, i32, i32, i8*, %struct.GLTColor4*, i32)*, i32 (%struct.GLDContextRec*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32)* }
85 %struct.GLDRenderFeatures = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }
86 %struct.GLDScissorTest = type { %struct.GLTFixedColor4, i8, i8, i8, i8 }
87 %struct.GLDSeamlessCubemap = type { i8, i8, i16 }
88 %struct.GLDSharedData = type {}
89 %struct.GLDSharedRec = type { %struct.pthread_mutex_t, %struct.GLDSharedData*, %struct.GLGProcessor, i32, i16, i16, i8, i8, i8, i8, [0 x i32] }
90 %struct.GLDState = type <{ i16, i16, i16, i16, i32, i32, [256 x %struct.GLTColor4], [128 x %struct.GLTColor4], %struct.GLDCurrent, %struct.GLDViewport, %struct.GLDTransform, %struct.GLDLightModel, %struct.GLDActiveTextureTargets, %struct.GLDAlphaTest, %struct.GLDBlendMode, %struct.GLDClearColor, %struct.GLDColorBuffer, %struct.GLDDepthTest, %struct.GLDArrayRange, %struct.GLDFogMode, %struct.GLDHintMode, %struct.GLDLineMode, %struct.GLDLogicOp, %struct.GLDMaskMode, %struct.GLDPixelMode, %struct.GLDPointMode, %struct.GLDPolygonMode, %struct.GLDScissorTest, i32, %struct.GLDStencilTest, [8 x %struct.GLDTextureMode], [16 x %struct.GLDTextureImageMode], [8 x %struct.GLDTextureCoordGen], %struct.GLDClipPlane, %struct.GLDMultisample, %struct.GLDArrayRange, %struct.GLDArrayRange, [3 x %struct.GLDPipelineProgramState], %struct.GLDArrayRange, %struct.GLDTransformFeedback, %struct.GLDUniformBuffer, i32*, %struct.GLDFixedFunction, i32, %struct.GLDQueryState, %struct.GLDSeamlessCubemap, %struct.GLDPrimitiveRestart, [2 x i32] }>
91 %struct.GLDStencilTest = type { [3 x %1], i32, [4 x i8] }
92 %struct.GLDStippleData = type { i32, i16, i16, [32 x [32 x i8]] }
93 %struct.GLDTextureCoordGen = type { %2, %2, %2, %2, i8, i8, i8, i8 }
94 %struct.GLDTextureGeomState = type { i16, i16, i16, i16, i16, i8, i8, i8, i8, i16, i16, i16, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i16, [6 x i16], [6 x i16] }
95 %struct.GLDTextureImageMode = type { float }
96 %struct.GLDTextureLevel = type { i32, i32, i16, i16, i16, i8, i8, i16, i16, i16, i16, i8* }
97 %struct.GLDTextureLimits = type { float, float, i16, i16, i16, i16, i16, i16, i16, i16, i16, i8, i8, i8, i8, i8, i8, i32, i32 }
98 %struct.GLDTextureMode = type { %struct.GLTColor4, i32, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, float, float }
99 %struct.GLDTextureParamState = type { i16, i16, i16, i16, i16, i16, %struct.GLTColor4, float, float, float, float, i16, i16, i16, i16, float, i16, i16, i32, i8* }
100 %struct.GLDTextureRec = type { [4 x float], %struct.GLDTextureState*, %struct.GLDPluginTextureState*, %struct.GLDMipmaplevel*, %struct.GLDMipmaplevel*, float, float, float, float, i8, i8, i8, i8, i16, i16, i16, i16, i32, float, [0 x i32], [2 x %union.PPStreamToken] }
101 %struct.GLDTextureState = type { i16, i8, i8, i16, i16, float, i32, %struct.GLISWRSurface*, %struct.GLDTextureParamState, %struct.GLDTextureGeomState, i16, i16, i8*, %struct.GLDTextureLevel, [1 x [15 x %struct.GLDTextureLevel]] }
102 %struct.GLDTransform = type <{ [24 x [16 x float]], [24 x [16 x float]], [16 x float], float, float, float, float, float, i8, i8, i8, i8, i32, i32, i32, i16, i16, i8, i8, i8, i8, i32 }>
103 %struct.GLDTransformFeedback = type { i8, i8, i16, [0 x i32], [16 x i32], [16 x i32] }
104 %struct.GLDTransformFeedbackLimits = type { i32, i32, i32, i32, i32 }
105 %struct.GLDUniformBuffer = type { [64 x %struct.GLTDimensions] }
106 %struct.GLDVertex = type { %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, %struct.GLDPointLineLimits, float, %struct.GLTColor4, float, i8, i8, i8, i8, float, float, i32, i32, i32, [4 x i8], [4 x float], [2 x %struct.GLDMaterial*], [2 x i32], [16 x %struct.GLTColor4] }
107 %struct.GLDVertexArrayRec = type opaque
108 %struct.GLDVertexBlend = type { i8, i8, i8, i8 }
109 %struct.GLDVertexDescriptor = type { i8, i8, i8, i8, [0 x i32] }
110 %struct.GLDVertexProgramLimits = type { i16, i16, i32, i32, i16, i16 }
111 %struct.GLDViewport = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, double, double, i32, i32, i32, i32, float, float, float, float }
112 %struct.GLGColorTable = type { i32, i32, i32, i8* }
113 %struct.GLGOperation = type { i8*, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, float, %struct.GLGColorTable, %struct.GLGColorTable, %struct.GLGColorTable }
114 %struct.GLGProcessor = type { void (%struct.GLDPixelMode*, %struct.GLGOperation*, %struct._GLGProcessorData*, %union._GLGFunctionKey*)*, %struct._GLVMFunction*, %union._GLGFunctionKey*, %struct._GLGProcessorData* }
115 %struct.GLISWRSurface = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8*, i8*, i8*, [4 x i8*], i32 }
116 %struct.GLSGenericRec = type { %struct.GLTDimensions, %struct.GLTDimensions, i32, i32, %union.GLSDrawable, i8*, i8*, i8*, i8*, i8*, [4 x i8*], i32, i16, i16, i16, i16, i8, i8, i8, i8, i8, i8, i8, i8 }
117 %struct.GLSOffScreenRec = type { %struct.GLTDimensions, %struct.GLTDimensions, i32, i32, %union.GLSDrawable, i8*, i8*, i8*, i8*, i8*, [4 x i8*], i32, i16, i16, i16, i16, i8, i8, i8, i8, i8, i8, i8, i8, %struct.GLDDrawableOffscreen }
118 %struct.GLSSWRSurfaceRec = type { %struct.GLTDimensions, %struct.GLTDimensions, i32, i32, %union.GLSDrawable, i8*, i8*, i8*, i8*, i8*, [4 x i8*], i32, i16, i16, i16, i16, i8, i8, i8, i8, i8, i8, i8, i8, %struct.GLISWRSurface*, i32, i32 }
119 %struct.GLSWindowRec = type { %struct.GLTDimensions, %struct.GLTDimensions, i32, i32, %union.GLSDrawable, i8*, i8*, i8*, i8*, i8*, [4 x i8*], i32, i16, i16, i16, i16, i8, i8, i8, i8, i8, i8, i8, i8, %struct.GLDDrawableWindow, i32, i32, [0 x i32], i8*, i8* }
120 %struct.GLTColor3 = type { float, float, float }
121 %struct.GLTColor4 = type { float, float, float, float }
122 %struct.GLTCoord2 = type { float, float }
123 %struct.GLTCoord3 = type { float, float, float }
124 %struct.GLTCoord4 = type { float, float, float, float }
125 %struct.GLTDimensions = type { i32, i32 }
126 %struct.GLTFixedColor4 = type { i32, i32, i32, i32 }
127 %struct.GLTPlane = type { float, float, float, float }
128 %struct.GLTRectangle = type { i32, i32, i32, i32 }
129 %struct.GLTTexCoord4 = type { float, float, float, float }
130 %struct.GLVMFPContext = type { float, i32, i32, i32, i32, [3 x i32] }
131 %struct.GLVMFragmentAttribRec = type opaque
132 %struct.GLVMProgramData = type { %struct._GLVMFunction*, %struct.GLVMProgramData*, %struct.GLVMProgramData*, [42 x i32], [64 x i32], i32, i32, i32, [0 x i32] }
133 %struct.GLVMTextures = type { [16 x %struct.GLDTextureRec*] }
134 %struct._GLGProcessorData = type opaque
135 %struct._GLVMConstants = type opaque
136 %struct._GLVMFunction = type opaque
137 %struct.anon = type { float, float, float, float }
138 %struct.mach_timebase_info_data_t = type { i32, i32 }
139 %struct.pthread_mutex_t = type { i32, [40 x i8] }
140 %union.GLSBuffer = type { i8* }
141 %union.GLSDrawable = type { %struct.GLSWindowRec* }
142 %union.PPStreamToken = type { %0 }
143 %union._GLGFunctionKey = type opaque
144 %union.anon = type { %struct.GLTDimensions }
146 declare i16 @_OSSwapInt16(i16 zeroext %_data) nounwind inlinehint ssp
148 declare i32 @_OSSwapInt32(i32 %_data) nounwind inlinehint ssp
150 declare i32 @llvm.bswap.i32(i32) nounwind readnone
152 define void @gldAccumReturn(%struct.GLDContextRec* %ctx, %struct.GLDState* %state, float %value) nounwind ssp {
154 %ctx_addr = alloca %struct.GLDContextRec* ; <%struct.GLDContextRec**> [#uses=99]
155 %state_addr = alloca %struct.GLDState* ; <%struct.GLDState**> [#uses=21]
156 %value_addr = alloca float ; <float*> [#uses=33]
157 %iftmp.210 = alloca float ; <float*> [#uses=3]
158 %iftmp.209 = alloca float ; <float*> [#uses=3]
159 %iftmp.208 = alloca float ; <float*> [#uses=3]
160 %iftmp.207 = alloca float ; <float*> [#uses=3]
161 %iftmp.206 = alloca float ; <float*> [#uses=3]
162 %iftmp.205 = alloca float ; <float*> [#uses=3]
163 %iftmp.204 = alloca float ; <float*> [#uses=3]
164 %iftmp.203 = alloca float ; <float*> [#uses=3]
165 %iftmp.202 = alloca float ; <float*> [#uses=3]
166 %iftmp.201 = alloca float ; <float*> [#uses=3]
167 %iftmp.200 = alloca float ; <float*> [#uses=3]
168 %iftmp.199 = alloca float ; <float*> [#uses=3]
169 %iftmp.198 = alloca float ; <float*> [#uses=3]
170 %iftmp.197 = alloca float ; <float*> [#uses=3]
171 %iftmp.196 = alloca float ; <float*> [#uses=3]
172 %iftmp.195 = alloca float ; <float*> [#uses=3]
173 %iftmp.192 = alloca i8 ; <i8*> [#uses=3]
174 %iftmp.190 = alloca i32 ; <i32*> [#uses=3]
175 %iftmp.189 = alloca i32 ; <i32*> [#uses=3]
176 %iftmp.188 = alloca i32 ; <i32*> [#uses=3]
177 %iftmp.187 = alloca i32 ; <i32*> [#uses=3]
178 %iftmp.186 = alloca i32 ; <i32*> [#uses=3]
179 %iftmp.185 = alloca i32 ; <i32*> [#uses=3]
180 %iftmp.184 = alloca i32 ; <i32*> [#uses=3]
181 %iftmp.183 = alloca i32 ; <i32*> [#uses=3]
182 %iftmp.182 = alloca i8 ; <i8*> [#uses=3]
183 %iftmp.181 = alloca i8 ; <i8*> [#uses=3]
184 %iftmp.180 = alloca i8 ; <i8*> [#uses=3]
185 %iftmp.179 = alloca i8 ; <i8*> [#uses=3]
186 %iftmp.178 = alloca i8 ; <i8*> [#uses=3]
187 %iftmp.177 = alloca i8 ; <i8*> [#uses=3]
188 %iftmp.176 = alloca i8 ; <i8*> [#uses=3]
189 %iftmp.175 = alloca i8 ; <i8*> [#uses=3]
190 %iftmp.174 = alloca i8 ; <i8*> [#uses=3]
191 %iftmp.173 = alloca i8 ; <i8*> [#uses=3]
192 %iftmp.172 = alloca i8 ; <i8*> [#uses=3]
193 %iftmp.171 = alloca i8 ; <i8*> [#uses=3]
194 %iftmp.170 = alloca i8 ; <i8*> [#uses=3]
195 %iftmp.169 = alloca i8 ; <i8*> [#uses=3]
196 %iftmp.168 = alloca i8 ; <i8*> [#uses=3]
197 %iftmp.167 = alloca i8 ; <i8*> [#uses=3]
198 %iftmp.164 = alloca i8 ; <i8*> [#uses=3]
199 %iftmp.163 = alloca float ; <float*> [#uses=3]
200 %iftmp.162 = alloca float ; <float*> [#uses=3]
201 %iftmp.161 = alloca float ; <float*> [#uses=3]
202 %iftmp.160 = alloca float ; <float*> [#uses=3]
203 %iftmp.159 = alloca float ; <float*> [#uses=3]
204 %iftmp.158 = alloca float ; <float*> [#uses=3]
205 %iftmp.157 = alloca float ; <float*> [#uses=3]
206 %iftmp.156 = alloca float ; <float*> [#uses=3]
207 %iftmp.155 = alloca float ; <float*> [#uses=3]
208 %iftmp.154 = alloca float ; <float*> [#uses=3]
209 %iftmp.153 = alloca float ; <float*> [#uses=3]
210 %iftmp.152 = alloca float ; <float*> [#uses=3]
211 %iftmp.151 = alloca float ; <float*> [#uses=3]
212 %iftmp.150 = alloca float ; <float*> [#uses=3]
213 %iftmp.149 = alloca float ; <float*> [#uses=3]
214 %iftmp.148 = alloca float ; <float*> [#uses=3]
215 %iftmp.145 = alloca i8 ; <i8*> [#uses=3]
216 %iftmp.144 = alloca i8 ; <i8*> [#uses=3]
217 %iftmp.141 = alloca i8 ; <i8*> [#uses=3]
218 %iftmp.140 = alloca i32 ; <i32*> [#uses=3]
219 %accum = alloca double* ; <double**> [#uses=56]
220 %accum_end = alloca double* ; <double**> [#uses=9]
221 %y = alloca i32 ; <i32*> [#uses=12]
222 %yl = alloca i32 ; <i32*> [#uses=4]
223 %cw4 = alloca i32 ; <i32*> [#uses=4]
224 %cx = alloca i32 ; <i32*> [#uses=2]
225 %cy = alloca i32 ; <i32*> [#uses=7]
226 %ch = alloca i32 ; <i32*> [#uses=3]
227 %cw = alloca i32 ; <i32*> [#uses=3]
228 %offset = alloca i32 ; <i32*> [#uses=19]
229 %y_inc = alloca i32 ; <i32*> [#uses=6]
230 %swap = alloca i8 ; <i8*> [#uses=6]
231 %draw_buffer = alloca i32 ; <i32*> [#uses=21]
232 %all_bits_mask = alloca i32 ; <i32*> [#uses=9]
233 %color_mask_enabled = alloca i8 ; <i8*> [#uses=4]
234 %color_ptr = alloca i16* ; <i16**> [#uses=8]
235 %thirtyOne = alloca float ; <float*> [#uses=23]
236 %start_offset = alloca i32 ; <i32*> [#uses=2]
237 %cur_draw_buffer_mask_bit = alloca i32 ; <i32*> [#uses=5]
238 %r = alloca float ; <float*> [#uses=12]
239 %g = alloca float ; <float*> [#uses=12]
240 %b = alloca float ; <float*> [#uses=12]
241 %a = alloca float ; <float*> [#uses=12]
242 %pixl = alloca i16 ; <i16*> [#uses=24]
243 %color_ptr111 = alloca i8* ; <i8**> [#uses=14]
244 %twoFiftyFive = alloca float ; <float*> [#uses=17]
245 %start_offset112 = alloca i32 ; <i32*> [#uses=2]
246 %cur_draw_buffer_mask_bit115 = alloca i32 ; <i32*> [#uses=9]
247 %r119 = alloca float ; <float*> [#uses=7]
248 %g120 = alloca float ; <float*> [#uses=7]
249 %b121 = alloca float ; <float*> [#uses=7]
250 %a122 = alloca float ; <float*> [#uses=7]
251 %r193 = alloca i32 ; <i32*> [#uses=2]
252 %g194 = alloca i32 ; <i32*> [#uses=2]
253 %b195 = alloca i32 ; <i32*> [#uses=2]
254 %a196 = alloca i32 ; <i32*> [#uses=2]
255 %color = alloca i32 ; <i32*> [#uses=4]
256 %color_ptr235 = alloca float* ; <float**> [#uses=13]
257 %start_offset236 = alloca i32 ; <i32*> [#uses=2]
258 %cur_draw_buffer_mask_bit239 = alloca i32 ; <i32*> [#uses=5]
259 %r243 = alloca float ; <float*> [#uses=4]
260 %g244 = alloca float ; <float*> [#uses=4]
261 %b245 = alloca float ; <float*> [#uses=4]
262 %a246 = alloca float ; <float*> [#uses=4]
263 %r283 = alloca float ; <float*> [#uses=4]
264 %g284 = alloca float ; <float*> [#uses=4]
265 %b285 = alloca float ; <float*> [#uses=4]
266 %a286 = alloca float ; <float*> [#uses=4]
267 %"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
268 store %struct.GLDContextRec* %ctx, %struct.GLDContextRec** %ctx_addr
269 store %struct.GLDState* %state, %struct.GLDState** %state_addr
270 store float %value, float* %value_addr
271 %0 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
272 %1 = getelementptr inbounds %struct.GLDContextRec* %0, i32 0, i32 51 ; <%union.GLSDrawable*> [#uses=1]
273 %2 = getelementptr inbounds %union.GLSDrawable* %1, i32 0, i32 0 ; <%struct.GLSWindowRec**> [#uses=1]
274 %3 = bitcast %struct.GLSWindowRec** %2 to %struct.GLSGenericRec** ; <%struct.GLSGenericRec**> [#uses=1]
275 %4 = load %struct.GLSGenericRec** %3, align 4 ; <%struct.GLSGenericRec*> [#uses=1]
276 %5 = getelementptr inbounds %struct.GLSGenericRec* %4, i32 0, i32 16 ; <i8*> [#uses=1]
277 %6 = load i8* %5, align 4 ; <i8> [#uses=1]
278 store i8 %6, i8* %swap, align 1
279 store i32 255, i32* %all_bits_mask, align 4
280 %7 = load %struct.GLDState** %state_addr, align 4 ; <%struct.GLDState*> [#uses=1]
281 %8 = getelementptr inbounds %struct.GLDState* %7, i32 0, i32 23 ; <%struct.GLDMaskMode*> [#uses=1]
282 %9 = getelementptr inbounds %struct.GLDMaskMode* %8, i32 0, i32 5 ; <i8*> [#uses=1]
283 %10 = load i8* %9, align 1 ; <i8> [#uses=1]
284 %11 = zext i8 %10 to i32 ; <i32> [#uses=1]
285 %12 = load i32* %all_bits_mask, align 4 ; <i32> [#uses=1]
286 %13 = and i32 %11, %12 ; <i32> [#uses=1]
287 %14 = load i32* %all_bits_mask, align 4 ; <i32> [#uses=1]
288 %15 = icmp ne i32 %13, %14 ; <i1> [#uses=1]
289 %16 = zext i1 %15 to i8 ; <i8> [#uses=1]
290 %17 = load %struct.GLDState** %state_addr, align 4 ; <%struct.GLDState*> [#uses=1]
291 %18 = getelementptr inbounds %struct.GLDState* %17, i32 0, i32 23 ; <%struct.GLDMaskMode*> [#uses=1]
292 %19 = getelementptr inbounds %struct.GLDMaskMode* %18, i32 0, i32 2 ; <i8*> [#uses=1]
293 %20 = load i8* %19, align 16 ; <i8> [#uses=1]
294 %21 = zext i8 %20 to i32 ; <i32> [#uses=1]
295 %22 = load i32* %all_bits_mask, align 4 ; <i32> [#uses=1]
296 %23 = and i32 %21, %22 ; <i32> [#uses=1]
297 %24 = load i32* %all_bits_mask, align 4 ; <i32> [#uses=1]
298 %25 = icmp ne i32 %23, %24 ; <i1> [#uses=1]
299 %26 = zext i1 %25 to i8 ; <i8> [#uses=1]
300 %toBool = icmp ne i8 %16, 0 ; <i1> [#uses=1]
301 %toBool1 = icmp ne i8 %26, 0 ; <i1> [#uses=1]
302 %27 = or i1 %toBool, %toBool1 ; <i1> [#uses=1]
303 %28 = zext i1 %27 to i8 ; <i8> [#uses=1]
304 %29 = load %struct.GLDState** %state_addr, align 4 ; <%struct.GLDState*> [#uses=1]
305 %30 = getelementptr inbounds %struct.GLDState* %29, i32 0, i32 23 ; <%struct.GLDMaskMode*> [#uses=1]
306 %31 = getelementptr inbounds %struct.GLDMaskMode* %30, i32 0, i32 4 ; <i8*> [#uses=1]
307 %32 = load i8* %31, align 2 ; <i8> [#uses=1]
308 %33 = zext i8 %32 to i32 ; <i32> [#uses=1]
309 %34 = load i32* %all_bits_mask, align 4 ; <i32> [#uses=1]
310 %35 = and i32 %33, %34 ; <i32> [#uses=1]
311 %36 = load i32* %all_bits_mask, align 4 ; <i32> [#uses=1]
312 %37 = icmp ne i32 %35, %36 ; <i1> [#uses=1]
313 %38 = zext i1 %37 to i8 ; <i8> [#uses=1]
314 %toBool2 = icmp ne i8 %28, 0 ; <i1> [#uses=1]
315 %toBool3 = icmp ne i8 %38, 0 ; <i1> [#uses=1]
316 %39 = or i1 %toBool2, %toBool3 ; <i1> [#uses=1]
317 %40 = zext i1 %39 to i8 ; <i8> [#uses=1]
318 %41 = load %struct.GLDState** %state_addr, align 4 ; <%struct.GLDState*> [#uses=1]
319 %42 = getelementptr inbounds %struct.GLDState* %41, i32 0, i32 23 ; <%struct.GLDMaskMode*> [#uses=1]
320 %43 = getelementptr inbounds %struct.GLDMaskMode* %42, i32 0, i32 3 ; <i8*> [#uses=1]
321 %44 = load i8* %43, align 1 ; <i8> [#uses=1]
322 %45 = zext i8 %44 to i32 ; <i32> [#uses=1]
323 %46 = load i32* %all_bits_mask, align 4 ; <i32> [#uses=1]
324 %47 = and i32 %45, %46 ; <i32> [#uses=1]
325 %48 = load i32* %all_bits_mask, align 4 ; <i32> [#uses=1]
326 %49 = icmp ne i32 %47, %48 ; <i1> [#uses=1]
327 %50 = zext i1 %49 to i8 ; <i8> [#uses=1]
328 %toBool4 = icmp ne i8 %40, 0 ; <i1> [#uses=1]
329 %toBool5 = icmp ne i8 %50, 0 ; <i1> [#uses=1]
330 %51 = or i1 %toBool4, %toBool5 ; <i1> [#uses=1]
331 %52 = zext i1 %51 to i8 ; <i8> [#uses=1]
332 store i8 %52, i8* %color_mask_enabled, align 1
333 %53 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
334 %54 = getelementptr inbounds %struct.GLDContextRec* %53, i32 0, i32 55 ; <%struct.GLDRect*> [#uses=1]
335 %55 = getelementptr inbounds %struct.GLDRect* %54, i32 0, i32 0 ; <i32*> [#uses=1]
336 %56 = load i32* %55, align 4 ; <i32> [#uses=1]
337 store i32 %56, i32* %cx, align 4
338 %57 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
339 %58 = getelementptr inbounds %struct.GLDContextRec* %57, i32 0, i32 55 ; <%struct.GLDRect*> [#uses=1]
340 %59 = getelementptr inbounds %struct.GLDRect* %58, i32 0, i32 1 ; <i32*> [#uses=1]
341 %60 = load i32* %59, align 4 ; <i32> [#uses=1]
342 store i32 %60, i32* %cy, align 4
343 %61 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
344 %62 = getelementptr inbounds %struct.GLDContextRec* %61, i32 0, i32 55 ; <%struct.GLDRect*> [#uses=1]
345 %63 = getelementptr inbounds %struct.GLDRect* %62, i32 0, i32 4 ; <i32*> [#uses=1]
346 %64 = load i32* %63, align 4 ; <i32> [#uses=1]
347 store i32 %64, i32* %cw, align 4
348 %65 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
349 %66 = getelementptr inbounds %struct.GLDContextRec* %65, i32 0, i32 55 ; <%struct.GLDRect*> [#uses=1]
350 %67 = getelementptr inbounds %struct.GLDRect* %66, i32 0, i32 5 ; <i32*> [#uses=1]
351 %68 = load i32* %67, align 4 ; <i32> [#uses=1]
352 store i32 %68, i32* %ch, align 4
353 %69 = load i32* %cw, align 4 ; <i32> [#uses=1]
354 %70 = icmp eq i32 %69, 0 ; <i1> [#uses=1]
355 br i1 %70, label %bb6, label %bb
358 %71 = load i32* %ch, align 4 ; <i32> [#uses=1]
359 %72 = icmp eq i32 %71, 0 ; <i1> [#uses=1]
360 br i1 %72, label %bb6, label %bb7
362 bb6: ; preds = %bb, %entry
366 %73 = load i32* %cw, align 4 ; <i32> [#uses=1]
367 %74 = mul i32 %73, 4 ; <i32> [#uses=1]
368 store i32 %74, i32* %cw4, align 4
369 %75 = load i32* %cy, align 4 ; <i32> [#uses=1]
370 %76 = load i32* %ch, align 4 ; <i32> [#uses=1]
371 %77 = add i32 %75, %76 ; <i32> [#uses=1]
372 store i32 %77, i32* %yl, align 4
373 %78 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
374 %79 = getelementptr inbounds %struct.GLDContextRec* %78, i32 0, i32 30 ; <%struct.GLDBufferstate*> [#uses=1]
375 %80 = getelementptr inbounds %struct.GLDBufferstate* %79, i32 0, i32 1 ; <%struct.GLTDimensions*> [#uses=1]
376 %81 = getelementptr inbounds %struct.GLTDimensions* %80, i32 0, i32 0 ; <i32*> [#uses=1]
377 %82 = load i32* %81, align 4 ; <i32> [#uses=1]
378 %83 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
379 %84 = getelementptr inbounds %struct.GLDContextRec* %83, i32 0, i32 28 ; <%struct.GLDFramebufferRec**> [#uses=1]
380 %85 = load %struct.GLDFramebufferRec** %84, align 4 ; <%struct.GLDFramebufferRec*> [#uses=1]
381 %86 = icmp ne %struct.GLDFramebufferRec* %85, null ; <i1> [#uses=1]
382 br i1 %86, label %bb8, label %bb9
385 %87 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
386 %88 = getelementptr inbounds %struct.GLDContextRec* %87, i32 0, i32 57 ; <%struct.GLDFormat*> [#uses=1]
387 %89 = getelementptr inbounds %struct.GLDFormat* %88, i32 0, i32 12 ; <i8*> [#uses=1]
388 %90 = load i8* %89, align 2 ; <i8> [#uses=1]
389 %91 = icmp ne i8 %90, 0 ; <i1> [#uses=1]
390 %92 = zext i1 %91 to i8 ; <i8> [#uses=1]
391 store i8 %92, i8* %iftmp.141, align 1
395 %93 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
396 %94 = getelementptr inbounds %struct.GLDContextRec* %93, i32 0, i32 56 ; <%struct.GLDFormat*> [#uses=1]
397 %95 = getelementptr inbounds %struct.GLDFormat* %94, i32 0, i32 12 ; <i8*> [#uses=1]
398 %96 = load i8* %95, align 2 ; <i8> [#uses=1]
399 %97 = icmp ne i8 %96, 0 ; <i1> [#uses=1]
400 %98 = zext i1 %97 to i8 ; <i8> [#uses=1]
401 store i8 %98, i8* %iftmp.141, align 1
404 bb10: ; preds = %bb9, %bb8
405 %99 = load i8* %iftmp.141, align 1 ; <i8> [#uses=1]
406 %toBool11 = icmp ne i8 %99, 0 ; <i1> [#uses=1]
407 br i1 %toBool11, label %bb12, label %bb13
409 bb12: ; preds = %bb10
410 %100 = load i32* %cy, align 4 ; <i32> [#uses=1]
411 store i32 %100, i32* %iftmp.140, align 4
414 bb13: ; preds = %bb10
415 %101 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
416 %102 = getelementptr inbounds %struct.GLDContextRec* %101, i32 0, i32 30 ; <%struct.GLDBufferstate*> [#uses=1]
417 %103 = getelementptr inbounds %struct.GLDBufferstate* %102, i32 0, i32 1 ; <%struct.GLTDimensions*> [#uses=1]
418 %104 = getelementptr inbounds %struct.GLTDimensions* %103, i32 0, i32 1 ; <i32*> [#uses=1]
419 %105 = load i32* %104, align 4 ; <i32> [#uses=1]
420 %106 = sub nsw i32 %105, 1 ; <i32> [#uses=1]
421 %107 = load i32* %cy, align 4 ; <i32> [#uses=1]
422 %108 = sub nsw i32 %106, %107 ; <i32> [#uses=1]
423 store i32 %108, i32* %iftmp.140, align 4
426 bb14: ; preds = %bb13, %bb12
427 %109 = load i32* %iftmp.140, align 4 ; <i32> [#uses=1]
428 %110 = mul nsw i32 %82, %109 ; <i32> [#uses=1]
429 %111 = load i32* %cx, align 4 ; <i32> [#uses=1]
430 %112 = add nsw i32 %110, %111 ; <i32> [#uses=1]
431 store i32 %112, i32* %offset, align 4
432 %113 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
433 %114 = getelementptr inbounds %struct.GLDContextRec* %113, i32 0, i32 30 ; <%struct.GLDBufferstate*> [#uses=1]
434 %115 = getelementptr inbounds %struct.GLDBufferstate* %114, i32 0, i32 1 ; <%struct.GLTDimensions*> [#uses=1]
435 %116 = getelementptr inbounds %struct.GLTDimensions* %115, i32 0, i32 0 ; <i32*> [#uses=1]
436 %117 = load i32* %116, align 4 ; <i32> [#uses=1]
437 store i32 %117, i32* %y_inc, align 4
438 %118 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
439 %119 = getelementptr inbounds %struct.GLDContextRec* %118, i32 0, i32 28 ; <%struct.GLDFramebufferRec**> [#uses=1]
440 %120 = load %struct.GLDFramebufferRec** %119, align 4 ; <%struct.GLDFramebufferRec*> [#uses=1]
441 %121 = icmp ne %struct.GLDFramebufferRec* %120, null ; <i1> [#uses=1]
442 br i1 %121, label %bb15, label %bb16
444 bb15: ; preds = %bb14
445 %122 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
446 %123 = getelementptr inbounds %struct.GLDContextRec* %122, i32 0, i32 57 ; <%struct.GLDFormat*> [#uses=1]
447 %124 = getelementptr inbounds %struct.GLDFormat* %123, i32 0, i32 12 ; <i8*> [#uses=1]
448 %125 = load i8* %124, align 2 ; <i8> [#uses=1]
449 %126 = icmp eq i8 %125, 0 ; <i1> [#uses=1]
450 %127 = zext i1 %126 to i8 ; <i8> [#uses=1]
451 store i8 %127, i8* %iftmp.144, align 1
454 bb16: ; preds = %bb14
455 %128 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
456 %129 = getelementptr inbounds %struct.GLDContextRec* %128, i32 0, i32 56 ; <%struct.GLDFormat*> [#uses=1]
457 %130 = getelementptr inbounds %struct.GLDFormat* %129, i32 0, i32 12 ; <i8*> [#uses=1]
458 %131 = load i8* %130, align 2 ; <i8> [#uses=1]
459 %132 = icmp eq i8 %131, 0 ; <i1> [#uses=1]
460 %133 = zext i1 %132 to i8 ; <i8> [#uses=1]
461 store i8 %133, i8* %iftmp.144, align 1
464 bb17: ; preds = %bb16, %bb15
465 %134 = load i8* %iftmp.144, align 1 ; <i8> [#uses=1]
466 %toBool18 = icmp ne i8 %134, 0 ; <i1> [#uses=1]
467 br i1 %toBool18, label %bb19, label %bb20
469 bb19: ; preds = %bb17
470 %135 = load i32* %y_inc, align 4 ; <i32> [#uses=1]
471 %136 = sub i32 0, %135 ; <i32> [#uses=1]
472 store i32 %136, i32* %y_inc, align 4
475 bb20: ; preds = %bb19, %bb17
476 %137 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
477 %138 = getelementptr inbounds %struct.GLDContextRec* %137, i32 0, i32 28 ; <%struct.GLDFramebufferRec**> [#uses=1]
478 %139 = load %struct.GLDFramebufferRec** %138, align 4 ; <%struct.GLDFramebufferRec*> [#uses=1]
479 %140 = icmp ne %struct.GLDFramebufferRec* %139, null ; <i1> [#uses=1]
480 br i1 %140, label %bb21, label %bb22
482 bb21: ; preds = %bb20
483 %141 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
484 %142 = getelementptr inbounds %struct.GLDContextRec* %141, i32 0, i32 28 ; <%struct.GLDFramebufferRec**> [#uses=1]
485 %143 = load %struct.GLDFramebufferRec** %142, align 4 ; <%struct.GLDFramebufferRec*> [#uses=1]
486 %144 = getelementptr inbounds %struct.GLDFramebufferRec* %143, i32 0, i32 2 ; <[10 x %struct.GLDFormat]*> [#uses=1]
487 %145 = getelementptr inbounds [10 x %struct.GLDFormat]* %144, i32 0, i32 0 ; <%struct.GLDFormat*> [#uses=1]
488 %146 = getelementptr inbounds %struct.GLDFormat* %145, i32 0, i32 7 ; <i32*> [#uses=1]
489 %147 = load i32* %146, align 4 ; <i32> [#uses=1]
490 %148 = icmp eq i32 %147, 33638 ; <i1> [#uses=1]
491 %149 = zext i1 %148 to i8 ; <i8> [#uses=1]
492 store i8 %149, i8* %iftmp.145, align 1
495 bb22: ; preds = %bb20
496 %150 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
497 %151 = getelementptr inbounds %struct.GLDContextRec* %150, i32 0, i32 56 ; <%struct.GLDFormat*> [#uses=1]
498 %152 = getelementptr inbounds %struct.GLDFormat* %151, i32 0, i32 7 ; <i32*> [#uses=1]
499 %153 = load i32* %152, align 4 ; <i32> [#uses=1]
500 %154 = icmp eq i32 %153, 33638 ; <i1> [#uses=1]
501 %155 = zext i1 %154 to i8 ; <i8> [#uses=1]
502 store i8 %155, i8* %iftmp.145, align 1
505 bb23: ; preds = %bb22, %bb21
506 %156 = load i8* %iftmp.145, align 1 ; <i8> [#uses=1]
507 %toBool24 = icmp ne i8 %156, 0 ; <i1> [#uses=1]
508 br i1 %toBool24, label %bb25, label %bb105
510 bb25: ; preds = %bb23
511 %157 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
512 %158 = getelementptr inbounds %struct.GLDContextRec* %157, i32 0, i32 6 ; <float*> [#uses=1]
513 %159 = load float* %158, align 4 ; <float> [#uses=1]
514 store float %159, float* %thirtyOne, align 4
515 %160 = load i32* %offset, align 4 ; <i32> [#uses=1]
516 store i32 %160, i32* %start_offset, align 4
517 store i32 0, i32* %draw_buffer, align 4
520 bb26: ; preds = %bb104
521 %161 = load i32* %start_offset, align 4 ; <i32> [#uses=1]
522 store i32 %161, i32* %offset, align 4
523 %162 = load i32* %draw_buffer, align 4 ; <i32> [#uses=1]
524 %163 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
525 %164 = getelementptr inbounds %struct.GLDContextRec* %163, i32 0, i32 30 ; <%struct.GLDBufferstate*> [#uses=1]
526 %165 = getelementptr inbounds %struct.GLDBufferstate* %164, i32 0, i32 12 ; <[8 x %union.GLSBuffer]*> [#uses=1]
527 %166 = getelementptr inbounds [8 x %union.GLSBuffer]* %165, i32 0, i32 %162 ; <%union.GLSBuffer*> [#uses=1]
528 %167 = getelementptr inbounds %union.GLSBuffer* %166, i32 0, i32 0 ; <i8**> [#uses=1]
529 %168 = load i8** %167, align 4 ; <i8*> [#uses=1]
530 %169 = icmp ne i8* %168, null ; <i1> [#uses=1]
531 br i1 %169, label %bb27, label %bb103
533 bb27: ; preds = %bb26
534 %170 = load i32* %draw_buffer, align 4 ; <i32> [#uses=1]
535 %171 = shl i32 1, %170 ; <i32> [#uses=1]
536 store i32 %171, i32* %cur_draw_buffer_mask_bit, align 4
537 %172 = load i32* %cy, align 4 ; <i32> [#uses=1]
538 store i32 %172, i32* %y, align 4
541 bb28: ; preds = %bb102
542 %173 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
543 %174 = getelementptr inbounds %struct.GLDContextRec* %173, i32 0, i32 30 ; <%struct.GLDBufferstate*> [#uses=1]
544 %175 = getelementptr inbounds %struct.GLDBufferstate* %174, i32 0, i32 11 ; <%union.GLSBuffer*> [#uses=1]
545 %176 = getelementptr inbounds %union.GLSBuffer* %175, i32 0, i32 0 ; <i8**> [#uses=1]
546 %177 = bitcast i8** %176 to double** ; <double**> [#uses=1]
547 %178 = load double** %177, align 4 ; <double*> [#uses=1]
548 %179 = load i32* %offset, align 4 ; <i32> [#uses=1]
549 %180 = mul i32 %179, 4 ; <i32> [#uses=1]
550 %181 = getelementptr inbounds double* %178, i32 %180 ; <double*> [#uses=1]
551 store double* %181, double** %accum, align 4
552 %182 = load double** %accum, align 4 ; <double*> [#uses=1]
553 %183 = load i32* %cw4, align 4 ; <i32> [#uses=1]
554 %184 = getelementptr inbounds double* %182, i32 %183 ; <double*> [#uses=1]
555 store double* %184, double** %accum_end, align 4
556 %185 = load i32* %draw_buffer, align 4 ; <i32> [#uses=1]
557 %186 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
558 %187 = getelementptr inbounds %struct.GLDContextRec* %186, i32 0, i32 30 ; <%struct.GLDBufferstate*> [#uses=1]
559 %188 = getelementptr inbounds %struct.GLDBufferstate* %187, i32 0, i32 12 ; <[8 x %union.GLSBuffer]*> [#uses=1]
560 %189 = getelementptr inbounds [8 x %union.GLSBuffer]* %188, i32 0, i32 %185 ; <%union.GLSBuffer*> [#uses=1]
561 %190 = getelementptr inbounds %union.GLSBuffer* %189, i32 0, i32 0 ; <i8**> [#uses=1]
562 %191 = bitcast i8** %190 to i16** ; <i16**> [#uses=1]
563 %192 = load i16** %191, align 4 ; <i16*> [#uses=1]
564 %193 = load i32* %offset, align 4 ; <i32> [#uses=1]
565 %194 = getelementptr inbounds i16* %192, i32 %193 ; <i16*> [#uses=1]
566 store i16* %194, i16** %color_ptr, align 4
567 %195 = load i8* %color_mask_enabled, align 1 ; <i8> [#uses=1]
568 %196 = icmp ne i8 %195, 0 ; <i1> [#uses=1]
569 br i1 %196, label %bb29, label %bb70
571 bb29: ; preds = %bb28
574 bb30: ; preds = %bb68
575 %197 = load double** %accum, align 4 ; <double*> [#uses=1]
576 %198 = getelementptr inbounds double* %197, i32 3 ; <double*> [#uses=1]
577 %199 = load double* %198, align 1 ; <double> [#uses=1]
578 %200 = fptrunc double %199 to float ; <float> [#uses=1]
579 %201 = load float* %value_addr, align 4 ; <float> [#uses=1]
580 %202 = fmul float %200, %201 ; <float> [#uses=1]
581 store float %202, float* %a, align 4
582 %203 = load double** %accum, align 4 ; <double*> [#uses=1]
583 %204 = getelementptr inbounds double* %203, i32 0 ; <double*> [#uses=1]
584 %205 = load double* %204, align 1 ; <double> [#uses=1]
585 %206 = fptrunc double %205 to float ; <float> [#uses=1]
586 %207 = load float* %thirtyOne, align 4 ; <float> [#uses=1]
587 %208 = fmul float %206, %207 ; <float> [#uses=1]
588 %209 = load float* %value_addr, align 4 ; <float> [#uses=1]
589 %210 = fmul float %208, %209 ; <float> [#uses=1]
590 %211 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
591 %212 = getelementptr inbounds %struct.GLDContextRec* %211, i32 0, i32 1 ; <float*> [#uses=1]
592 %213 = load float* %212, align 4 ; <float> [#uses=1]
593 %214 = fadd float %210, %213 ; <float> [#uses=1]
594 store float %214, float* %r, align 4
595 %215 = load double** %accum, align 4 ; <double*> [#uses=1]
596 %216 = getelementptr inbounds double* %215, i32 1 ; <double*> [#uses=1]
597 %217 = load double* %216, align 1 ; <double> [#uses=1]
598 %218 = fptrunc double %217 to float ; <float> [#uses=1]
599 %219 = load float* %thirtyOne, align 4 ; <float> [#uses=1]
600 %220 = fmul float %218, %219 ; <float> [#uses=1]
601 %221 = load float* %value_addr, align 4 ; <float> [#uses=1]
602 %222 = fmul float %220, %221 ; <float> [#uses=1]
603 %223 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
604 %224 = getelementptr inbounds %struct.GLDContextRec* %223, i32 0, i32 1 ; <float*> [#uses=1]
605 %225 = load float* %224, align 4 ; <float> [#uses=1]
606 %226 = fadd float %222, %225 ; <float> [#uses=1]
607 store float %226, float* %g, align 4
608 %227 = load double** %accum, align 4 ; <double*> [#uses=1]
609 %228 = getelementptr inbounds double* %227, i32 2 ; <double*> [#uses=1]
610 %229 = load double* %228, align 1 ; <double> [#uses=1]
611 %230 = fptrunc double %229 to float ; <float> [#uses=1]
612 %231 = load float* %thirtyOne, align 4 ; <float> [#uses=1]
613 %232 = fmul float %230, %231 ; <float> [#uses=1]
614 %233 = load float* %value_addr, align 4 ; <float> [#uses=1]
615 %234 = fmul float %232, %233 ; <float> [#uses=1]
616 %235 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
617 %236 = getelementptr inbounds %struct.GLDContextRec* %235, i32 0, i32 1 ; <float*> [#uses=1]
618 %237 = load float* %236, align 4 ; <float> [#uses=1]
619 %238 = fadd float %234, %237 ; <float> [#uses=1]
620 store float %238, float* %b, align 4
621 %239 = load float* %r, align 4 ; <float> [#uses=1]
622 %240 = fcmp uge float %239, 0.000000e+00 ; <i1> [#uses=1]
623 br i1 %240, label %bb31, label %bb35
625 bb31: ; preds = %bb30
626 %241 = load float* %r, align 4 ; <float> [#uses=1]
627 %242 = load float* %thirtyOne, align 4 ; <float> [#uses=1]
628 %243 = fcmp ogt float %241, %242 ; <i1> [#uses=1]
629 br i1 %243, label %bb32, label %bb33
631 bb32: ; preds = %bb31
632 %244 = load float* %thirtyOne, align 4 ; <float> [#uses=1]
633 store float %244, float* %iftmp.149, align 4
636 bb33: ; preds = %bb31
637 %245 = load float* %r, align 4 ; <float> [#uses=1]
638 store float %245, float* %iftmp.149, align 4
641 bb34: ; preds = %bb33, %bb32
642 %246 = load float* %iftmp.149, align 4 ; <float> [#uses=1]
643 store float %246, float* %iftmp.148, align 4
646 bb35: ; preds = %bb30
647 store float 0.000000e+00, float* %iftmp.148, align 4
650 bb36: ; preds = %bb35, %bb34
651 %247 = load float* %iftmp.148, align 4 ; <float> [#uses=1]
652 store float %247, float* %r, align 4
653 %248 = load float* %g, align 4 ; <float> [#uses=1]
654 %249 = fcmp uge float %248, 0.000000e+00 ; <i1> [#uses=1]
655 br i1 %249, label %bb37, label %bb41
657 bb37: ; preds = %bb36
658 %250 = load float* %g, align 4 ; <float> [#uses=1]
659 %251 = load float* %thirtyOne, align 4 ; <float> [#uses=1]
660 %252 = fcmp ogt float %250, %251 ; <i1> [#uses=1]
661 br i1 %252, label %bb38, label %bb39
663 bb38: ; preds = %bb37
664 %253 = load float* %thirtyOne, align 4 ; <float> [#uses=1]
665 store float %253, float* %iftmp.151, align 4
668 bb39: ; preds = %bb37
669 %254 = load float* %g, align 4 ; <float> [#uses=1]
670 store float %254, float* %iftmp.151, align 4
673 bb40: ; preds = %bb39, %bb38
674 %255 = load float* %iftmp.151, align 4 ; <float> [#uses=1]
675 store float %255, float* %iftmp.150, align 4
678 bb41: ; preds = %bb36
679 store float 0.000000e+00, float* %iftmp.150, align 4
682 bb42: ; preds = %bb41, %bb40
683 %256 = load float* %iftmp.150, align 4 ; <float> [#uses=1]
684 store float %256, float* %g, align 4
685 %257 = load float* %b, align 4 ; <float> [#uses=1]
686 %258 = fcmp uge float %257, 0.000000e+00 ; <i1> [#uses=1]
687 br i1 %258, label %bb43, label %bb47
689 bb43: ; preds = %bb42
690 %259 = load float* %b, align 4 ; <float> [#uses=1]
691 %260 = load float* %thirtyOne, align 4 ; <float> [#uses=1]
692 %261 = fcmp ogt float %259, %260 ; <i1> [#uses=1]
693 br i1 %261, label %bb44, label %bb45
695 bb44: ; preds = %bb43
696 %262 = load float* %thirtyOne, align 4 ; <float> [#uses=1]
697 store float %262, float* %iftmp.153, align 4
700 bb45: ; preds = %bb43
701 %263 = load float* %b, align 4 ; <float> [#uses=1]
702 store float %263, float* %iftmp.153, align 4
705 bb46: ; preds = %bb45, %bb44
706 %264 = load float* %iftmp.153, align 4 ; <float> [#uses=1]
707 store float %264, float* %iftmp.152, align 4
710 bb47: ; preds = %bb42
711 store float 0.000000e+00, float* %iftmp.152, align 4
714 bb48: ; preds = %bb47, %bb46
715 %265 = load float* %iftmp.152, align 4 ; <float> [#uses=1]
716 store float %265, float* %b, align 4
717 %266 = load float* %a, align 4 ; <float> [#uses=1]
718 %267 = fcmp uge float %266, 0.000000e+00 ; <i1> [#uses=1]
719 br i1 %267, label %bb49, label %bb53
721 bb49: ; preds = %bb48
722 %268 = load float* %a, align 4 ; <float> [#uses=1]
723 %269 = load float* %thirtyOne, align 4 ; <float> [#uses=1]
724 %270 = fcmp ogt float %268, %269 ; <i1> [#uses=1]
725 br i1 %270, label %bb50, label %bb51
727 bb50: ; preds = %bb49
728 %271 = load float* %thirtyOne, align 4 ; <float> [#uses=1]
729 store float %271, float* %iftmp.155, align 4
732 bb51: ; preds = %bb49
733 %272 = load float* %a, align 4 ; <float> [#uses=1]
734 store float %272, float* %iftmp.155, align 4
737 bb52: ; preds = %bb51, %bb50
738 %273 = load float* %iftmp.155, align 4 ; <float> [#uses=1]
739 store float %273, float* %iftmp.154, align 4
742 bb53: ; preds = %bb48
743 store float 0.000000e+00, float* %iftmp.154, align 4
746 bb54: ; preds = %bb53, %bb52
747 %274 = load float* %iftmp.154, align 4 ; <float> [#uses=1]
748 store float %274, float* %a, align 4
749 %275 = load i16** %color_ptr, align 4 ; <i16*> [#uses=1]
750 %276 = load i16* %275, align 2 ; <i16> [#uses=1]
751 store i16 %276, i16* %pixl, align 2
752 %277 = load i8* %swap, align 1 ; <i8> [#uses=1]
753 %278 = icmp ne i8 %277, 0 ; <i1> [#uses=1]
754 br i1 %278, label %bb55, label %bb56
756 bb55: ; preds = %bb54
757 %279 = load i16* %pixl, align 2 ; <i16> [#uses=1]
758 %280 = zext i16 %279 to i32 ; <i32> [#uses=1]
759 %281 = trunc i32 %280 to i16 ; <i16> [#uses=1]
760 %282 = call zeroext i16 @_OSSwapInt16(i16 zeroext %281) nounwind ; <i16> [#uses=1]
761 store i16 %282, i16* %pixl, align 2
764 bb56: ; preds = %bb55, %bb54
765 %283 = load %struct.GLDState** %state_addr, align 4 ; <%struct.GLDState*> [#uses=1]
766 %284 = getelementptr inbounds %struct.GLDState* %283, i32 0, i32 23 ; <%struct.GLDMaskMode*> [#uses=1]
767 %285 = getelementptr inbounds %struct.GLDMaskMode* %284, i32 0, i32 2 ; <i8*> [#uses=1]
768 %286 = load i8* %285, align 16 ; <i8> [#uses=1]
769 %287 = zext i8 %286 to i32 ; <i32> [#uses=1]
770 %288 = load i32* %cur_draw_buffer_mask_bit, align 4 ; <i32> [#uses=1]
771 %289 = and i32 %287, %288 ; <i32> [#uses=1]
772 %290 = icmp ne i32 %289, 0 ; <i1> [#uses=1]
773 br i1 %290, label %bb57, label %bb58
775 bb57: ; preds = %bb56
776 %291 = load i16* %pixl, align 2 ; <i16> [#uses=1]
777 %292 = and i16 %291, -32257 ; <i16> [#uses=1]
778 %293 = load float* %r, align 4 ; <float> [#uses=1]
779 %294 = fptoui float %293 to i32 ; <i32> [#uses=1]
780 %295 = trunc i32 %294 to i16 ; <i16> [#uses=1]
781 %296 = shl i16 %295, 10 ; <i16> [#uses=1]
782 %297 = and i16 %296, 31744 ; <i16> [#uses=1]
783 %298 = or i16 %292, %297 ; <i16> [#uses=1]
784 store i16 %298, i16* %pixl, align 2
787 bb58: ; preds = %bb57, %bb56
788 %299 = load %struct.GLDState** %state_addr, align 4 ; <%struct.GLDState*> [#uses=1]
789 %300 = getelementptr inbounds %struct.GLDState* %299, i32 0, i32 23 ; <%struct.GLDMaskMode*> [#uses=1]
790 %301 = getelementptr inbounds %struct.GLDMaskMode* %300, i32 0, i32 3 ; <i8*> [#uses=1]
791 %302 = load i8* %301, align 1 ; <i8> [#uses=1]
792 %303 = zext i8 %302 to i32 ; <i32> [#uses=1]
793 %304 = load i32* %cur_draw_buffer_mask_bit, align 4 ; <i32> [#uses=1]
794 %305 = and i32 %303, %304 ; <i32> [#uses=1]
795 %306 = icmp ne i32 %305, 0 ; <i1> [#uses=1]
796 br i1 %306, label %bb59, label %bb60
798 bb59: ; preds = %bb58
799 %307 = load i16* %pixl, align 2 ; <i16> [#uses=1]
800 %308 = and i16 %307, -993 ; <i16> [#uses=1]
801 %309 = load float* %g, align 4 ; <float> [#uses=1]
802 %310 = fptoui float %309 to i32 ; <i32> [#uses=1]
803 %311 = trunc i32 %310 to i16 ; <i16> [#uses=1]
804 %312 = shl i16 %311, 5 ; <i16> [#uses=1]
805 %313 = and i16 %312, 992 ; <i16> [#uses=1]
806 %314 = or i16 %308, %313 ; <i16> [#uses=1]
807 store i16 %314, i16* %pixl, align 2
810 bb60: ; preds = %bb59, %bb58
811 %315 = load %struct.GLDState** %state_addr, align 4 ; <%struct.GLDState*> [#uses=1]
812 %316 = getelementptr inbounds %struct.GLDState* %315, i32 0, i32 23 ; <%struct.GLDMaskMode*> [#uses=1]
813 %317 = getelementptr inbounds %struct.GLDMaskMode* %316, i32 0, i32 4 ; <i8*> [#uses=1]
814 %318 = load i8* %317, align 2 ; <i8> [#uses=1]
815 %319 = zext i8 %318 to i32 ; <i32> [#uses=1]
816 %320 = load i32* %cur_draw_buffer_mask_bit, align 4 ; <i32> [#uses=1]
817 %321 = and i32 %319, %320 ; <i32> [#uses=1]
818 %322 = icmp ne i32 %321, 0 ; <i1> [#uses=1]
819 br i1 %322, label %bb61, label %bb62
821 bb61: ; preds = %bb60
822 %323 = load i16* %pixl, align 2 ; <i16> [#uses=1]
823 %324 = and i16 %323, -32 ; <i16> [#uses=1]
824 %325 = load float* %b, align 4 ; <float> [#uses=1]
825 %326 = fptoui float %325 to i32 ; <i32> [#uses=1]
826 %327 = trunc i32 %326 to i16 ; <i16> [#uses=1]
827 %328 = and i16 %327, 31 ; <i16> [#uses=1]
828 %329 = or i16 %324, %328 ; <i16> [#uses=1]
829 store i16 %329, i16* %pixl, align 2
832 bb62: ; preds = %bb61, %bb60
833 %330 = load %struct.GLDState** %state_addr, align 4 ; <%struct.GLDState*> [#uses=1]
834 %331 = getelementptr inbounds %struct.GLDState* %330, i32 0, i32 23 ; <%struct.GLDMaskMode*> [#uses=1]
835 %332 = getelementptr inbounds %struct.GLDMaskMode* %331, i32 0, i32 5 ; <i8*> [#uses=1]
836 %333 = load i8* %332, align 1 ; <i8> [#uses=1]
837 %334 = zext i8 %333 to i32 ; <i32> [#uses=1]
838 %335 = load i32* %cur_draw_buffer_mask_bit, align 4 ; <i32> [#uses=1]
839 %336 = and i32 %334, %335 ; <i32> [#uses=1]
840 %337 = icmp ne i32 %336, 0 ; <i1> [#uses=1]
841 br i1 %337, label %bb63, label %bb65
843 bb63: ; preds = %bb62
844 %338 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
845 %339 = getelementptr inbounds %struct.GLDContextRec* %338, i32 0, i32 1 ; <float*> [#uses=1]
846 %340 = load float* %339, align 4 ; <float> [#uses=1]
847 %341 = load float* %a, align 4 ; <float> [#uses=1]
848 %342 = fcmp olt float %340, %341 ; <i1> [#uses=1]
849 br i1 %342, label %bb64, label %bb65
851 bb64: ; preds = %bb63
852 %343 = load i16* %pixl, align 2 ; <i16> [#uses=1]
853 %344 = or i16 %343, -32768 ; <i16> [#uses=1]
854 store i16 %344, i16* %pixl, align 2
857 bb65: ; preds = %bb64, %bb63, %bb62
858 %345 = load i8* %swap, align 1 ; <i8> [#uses=1]
859 %346 = icmp ne i8 %345, 0 ; <i1> [#uses=1]
860 br i1 %346, label %bb66, label %bb67
862 bb66: ; preds = %bb65
863 %347 = load i16* %pixl, align 2 ; <i16> [#uses=1]
864 %348 = zext i16 %347 to i32 ; <i32> [#uses=1]
865 %349 = trunc i32 %348 to i16 ; <i16> [#uses=1]
866 %350 = call zeroext i16 @_OSSwapInt16(i16 zeroext %349) nounwind ; <i16> [#uses=1]
867 store i16 %350, i16* %pixl, align 2
870 bb67: ; preds = %bb66, %bb65
871 %351 = load i16** %color_ptr, align 4 ; <i16*> [#uses=1]
872 %352 = load i16* %pixl, align 2 ; <i16> [#uses=1]
873 store i16 %352, i16* %351, align 2
874 %353 = load double** %accum, align 4 ; <double*> [#uses=1]
875 %354 = getelementptr inbounds double* %353, i32 4 ; <double*> [#uses=1]
876 store double* %354, double** %accum, align 4
877 %355 = load i16** %color_ptr, align 4 ; <i16*> [#uses=1]
878 %356 = getelementptr inbounds i16* %355, i32 1 ; <i16*> [#uses=1]
879 store i16* %356, i16** %color_ptr, align 4
882 bb68: ; preds = %bb67, %bb29
883 %357 = load double** %accum, align 4 ; <double*> [#uses=1]
884 %358 = load double** %accum_end, align 4 ; <double*> [#uses=1]
885 %359 = icmp ult double* %357, %358 ; <i1> [#uses=1]
886 br i1 %359, label %bb30, label %bb69
888 bb69: ; preds = %bb68
891 bb70: ; preds = %bb28
894 bb71: ; preds = %bb100
895 %360 = load double** %accum, align 4 ; <double*> [#uses=1]
896 %361 = getelementptr inbounds double* %360, i32 3 ; <double*> [#uses=1]
897 %362 = load double* %361, align 1 ; <double> [#uses=1]
898 %363 = fptrunc double %362 to float ; <float> [#uses=1]
899 %364 = load float* %value_addr, align 4 ; <float> [#uses=1]
900 %365 = fmul float %363, %364 ; <float> [#uses=1]
901 store float %365, float* %a, align 4
902 %366 = load double** %accum, align 4 ; <double*> [#uses=1]
903 %367 = getelementptr inbounds double* %366, i32 0 ; <double*> [#uses=1]
904 %368 = load double* %367, align 1 ; <double> [#uses=1]
905 %369 = fptrunc double %368 to float ; <float> [#uses=1]
906 %370 = load float* %thirtyOne, align 4 ; <float> [#uses=1]
907 %371 = fmul float %369, %370 ; <float> [#uses=1]
908 %372 = load float* %value_addr, align 4 ; <float> [#uses=1]
909 %373 = fmul float %371, %372 ; <float> [#uses=1]
910 %374 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
911 %375 = getelementptr inbounds %struct.GLDContextRec* %374, i32 0, i32 1 ; <float*> [#uses=1]
912 %376 = load float* %375, align 4 ; <float> [#uses=1]
913 %377 = fadd float %373, %376 ; <float> [#uses=1]
914 store float %377, float* %r, align 4
915 %378 = load double** %accum, align 4 ; <double*> [#uses=1]
916 %379 = getelementptr inbounds double* %378, i32 1 ; <double*> [#uses=1]
917 %380 = load double* %379, align 1 ; <double> [#uses=1]
918 %381 = fptrunc double %380 to float ; <float> [#uses=1]
919 %382 = load float* %thirtyOne, align 4 ; <float> [#uses=1]
920 %383 = fmul float %381, %382 ; <float> [#uses=1]
921 %384 = load float* %value_addr, align 4 ; <float> [#uses=1]
922 %385 = fmul float %383, %384 ; <float> [#uses=1]
923 %386 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
924 %387 = getelementptr inbounds %struct.GLDContextRec* %386, i32 0, i32 1 ; <float*> [#uses=1]
925 %388 = load float* %387, align 4 ; <float> [#uses=1]
926 %389 = fadd float %385, %388 ; <float> [#uses=1]
927 store float %389, float* %g, align 4
928 %390 = load double** %accum, align 4 ; <double*> [#uses=1]
929 %391 = getelementptr inbounds double* %390, i32 2 ; <double*> [#uses=1]
930 %392 = load double* %391, align 1 ; <double> [#uses=1]
931 %393 = fptrunc double %392 to float ; <float> [#uses=1]
932 %394 = load float* %thirtyOne, align 4 ; <float> [#uses=1]
933 %395 = fmul float %393, %394 ; <float> [#uses=1]
934 %396 = load float* %value_addr, align 4 ; <float> [#uses=1]
935 %397 = fmul float %395, %396 ; <float> [#uses=1]
936 %398 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
937 %399 = getelementptr inbounds %struct.GLDContextRec* %398, i32 0, i32 1 ; <float*> [#uses=1]
938 %400 = load float* %399, align 4 ; <float> [#uses=1]
939 %401 = fadd float %397, %400 ; <float> [#uses=1]
940 store float %401, float* %b, align 4
941 %402 = load float* %r, align 4 ; <float> [#uses=1]
942 %403 = fcmp uge float %402, 0.000000e+00 ; <i1> [#uses=1]
943 br i1 %403, label %bb72, label %bb76
945 bb72: ; preds = %bb71
946 %404 = load float* %r, align 4 ; <float> [#uses=1]
947 %405 = load float* %thirtyOne, align 4 ; <float> [#uses=1]
948 %406 = fcmp ogt float %404, %405 ; <i1> [#uses=1]
949 br i1 %406, label %bb73, label %bb74
951 bb73: ; preds = %bb72
952 %407 = load float* %thirtyOne, align 4 ; <float> [#uses=1]
953 store float %407, float* %iftmp.157, align 4
956 bb74: ; preds = %bb72
957 %408 = load float* %r, align 4 ; <float> [#uses=1]
958 store float %408, float* %iftmp.157, align 4
961 bb75: ; preds = %bb74, %bb73
962 %409 = load float* %iftmp.157, align 4 ; <float> [#uses=1]
963 store float %409, float* %iftmp.156, align 4
966 bb76: ; preds = %bb71
967 store float 0.000000e+00, float* %iftmp.156, align 4
970 bb77: ; preds = %bb76, %bb75
971 %410 = load float* %iftmp.156, align 4 ; <float> [#uses=1]
972 store float %410, float* %r, align 4
973 %411 = load float* %g, align 4 ; <float> [#uses=1]
974 %412 = fcmp uge float %411, 0.000000e+00 ; <i1> [#uses=1]
975 br i1 %412, label %bb78, label %bb82
977 bb78: ; preds = %bb77
978 %413 = load float* %g, align 4 ; <float> [#uses=1]
979 %414 = load float* %thirtyOne, align 4 ; <float> [#uses=1]
980 %415 = fcmp ogt float %413, %414 ; <i1> [#uses=1]
981 br i1 %415, label %bb79, label %bb80
983 bb79: ; preds = %bb78
984 %416 = load float* %thirtyOne, align 4 ; <float> [#uses=1]
985 store float %416, float* %iftmp.159, align 4
988 bb80: ; preds = %bb78
989 %417 = load float* %g, align 4 ; <float> [#uses=1]
990 store float %417, float* %iftmp.159, align 4
993 bb81: ; preds = %bb80, %bb79
994 %418 = load float* %iftmp.159, align 4 ; <float> [#uses=1]
995 store float %418, float* %iftmp.158, align 4
998 bb82: ; preds = %bb77
999 store float 0.000000e+00, float* %iftmp.158, align 4
1002 bb83: ; preds = %bb82, %bb81
1003 %419 = load float* %iftmp.158, align 4 ; <float> [#uses=1]
1004 store float %419, float* %g, align 4
1005 %420 = load float* %b, align 4 ; <float> [#uses=1]
1006 %421 = fcmp uge float %420, 0.000000e+00 ; <i1> [#uses=1]
1007 br i1 %421, label %bb84, label %bb88
1009 bb84: ; preds = %bb83
1010 %422 = load float* %b, align 4 ; <float> [#uses=1]
1011 %423 = load float* %thirtyOne, align 4 ; <float> [#uses=1]
1012 %424 = fcmp ogt float %422, %423 ; <i1> [#uses=1]
1013 br i1 %424, label %bb85, label %bb86
1015 bb85: ; preds = %bb84
1016 %425 = load float* %thirtyOne, align 4 ; <float> [#uses=1]
1017 store float %425, float* %iftmp.161, align 4
1020 bb86: ; preds = %bb84
1021 %426 = load float* %b, align 4 ; <float> [#uses=1]
1022 store float %426, float* %iftmp.161, align 4
1025 bb87: ; preds = %bb86, %bb85
1026 %427 = load float* %iftmp.161, align 4 ; <float> [#uses=1]
1027 store float %427, float* %iftmp.160, align 4
1030 bb88: ; preds = %bb83
1031 store float 0.000000e+00, float* %iftmp.160, align 4
1034 bb89: ; preds = %bb88, %bb87
1035 %428 = load float* %iftmp.160, align 4 ; <float> [#uses=1]
1036 store float %428, float* %b, align 4
1037 %429 = load float* %a, align 4 ; <float> [#uses=1]
1038 %430 = fcmp uge float %429, 0.000000e+00 ; <i1> [#uses=1]
1039 br i1 %430, label %bb90, label %bb94
1041 bb90: ; preds = %bb89
1042 %431 = load float* %a, align 4 ; <float> [#uses=1]
1043 %432 = load float* %thirtyOne, align 4 ; <float> [#uses=1]
1044 %433 = fcmp ogt float %431, %432 ; <i1> [#uses=1]
1045 br i1 %433, label %bb91, label %bb92
1047 bb91: ; preds = %bb90
1048 %434 = load float* %thirtyOne, align 4 ; <float> [#uses=1]
1049 store float %434, float* %iftmp.163, align 4
1052 bb92: ; preds = %bb90
1053 %435 = load float* %a, align 4 ; <float> [#uses=1]
1054 store float %435, float* %iftmp.163, align 4
1057 bb93: ; preds = %bb92, %bb91
1058 %436 = load float* %iftmp.163, align 4 ; <float> [#uses=1]
1059 store float %436, float* %iftmp.162, align 4
1062 bb94: ; preds = %bb89
1063 store float 0.000000e+00, float* %iftmp.162, align 4
1066 bb95: ; preds = %bb94, %bb93
1067 %437 = load float* %iftmp.162, align 4 ; <float> [#uses=1]
1068 store float %437, float* %a, align 4
1069 %438 = load float* %r, align 4 ; <float> [#uses=1]
1070 %439 = fptoui float %438 to i32 ; <i32> [#uses=1]
1071 %440 = trunc i32 %439 to i16 ; <i16> [#uses=1]
1072 %441 = shl i16 %440, 10 ; <i16> [#uses=1]
1073 %442 = and i16 %441, 31744 ; <i16> [#uses=1]
1074 store i16 %442, i16* %pixl, align 2
1075 %443 = load float* %g, align 4 ; <float> [#uses=1]
1076 %444 = fptoui float %443 to i32 ; <i32> [#uses=1]
1077 %445 = trunc i32 %444 to i16 ; <i16> [#uses=1]
1078 %446 = shl i16 %445, 5 ; <i16> [#uses=1]
1079 %447 = and i16 %446, 992 ; <i16> [#uses=1]
1080 %448 = load i16* %pixl, align 2 ; <i16> [#uses=1]
1081 %449 = or i16 %447, %448 ; <i16> [#uses=1]
1082 store i16 %449, i16* %pixl, align 2
1083 %450 = load float* %b, align 4 ; <float> [#uses=1]
1084 %451 = fptoui float %450 to i32 ; <i32> [#uses=1]
1085 %452 = trunc i32 %451 to i16 ; <i16> [#uses=1]
1086 %453 = and i16 %452, 31 ; <i16> [#uses=1]
1087 %454 = load i16* %pixl, align 2 ; <i16> [#uses=1]
1088 %455 = or i16 %453, %454 ; <i16> [#uses=1]
1089 store i16 %455, i16* %pixl, align 2
1090 %456 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1091 %457 = getelementptr inbounds %struct.GLDContextRec* %456, i32 0, i32 1 ; <float*> [#uses=1]
1092 %458 = load float* %457, align 4 ; <float> [#uses=1]
1093 %459 = load float* %a, align 4 ; <float> [#uses=1]
1094 %460 = fcmp olt float %458, %459 ; <i1> [#uses=1]
1095 br i1 %460, label %bb96, label %bb97
1097 bb96: ; preds = %bb95
1098 %461 = load i16* %pixl, align 2 ; <i16> [#uses=1]
1099 %462 = or i16 %461, -32768 ; <i16> [#uses=1]
1100 store i16 %462, i16* %pixl, align 2
1103 bb97: ; preds = %bb96, %bb95
1104 %463 = load i8* %swap, align 1 ; <i8> [#uses=1]
1105 %464 = icmp ne i8 %463, 0 ; <i1> [#uses=1]
1106 br i1 %464, label %bb98, label %bb99
1108 bb98: ; preds = %bb97
1109 %465 = load i16* %pixl, align 2 ; <i16> [#uses=1]
1110 %466 = zext i16 %465 to i32 ; <i32> [#uses=1]
1111 %467 = trunc i32 %466 to i16 ; <i16> [#uses=1]
1112 %468 = call zeroext i16 @_OSSwapInt16(i16 zeroext %467) nounwind ; <i16> [#uses=1]
1113 store i16 %468, i16* %pixl, align 2
1116 bb99: ; preds = %bb98, %bb97
1117 %469 = load i16** %color_ptr, align 4 ; <i16*> [#uses=1]
1118 %470 = load i16* %pixl, align 2 ; <i16> [#uses=1]
1119 store i16 %470, i16* %469, align 2
1120 %471 = load double** %accum, align 4 ; <double*> [#uses=1]
1121 %472 = getelementptr inbounds double* %471, i32 4 ; <double*> [#uses=1]
1122 store double* %472, double** %accum, align 4
1123 %473 = load i16** %color_ptr, align 4 ; <i16*> [#uses=1]
1124 %474 = getelementptr inbounds i16* %473, i32 1 ; <i16*> [#uses=1]
1125 store i16* %474, i16** %color_ptr, align 4
1128 bb100: ; preds = %bb99, %bb70
1129 %475 = load double** %accum, align 4 ; <double*> [#uses=1]
1130 %476 = load double** %accum_end, align 4 ; <double*> [#uses=1]
1131 %477 = icmp ult double* %475, %476 ; <i1> [#uses=1]
1132 br i1 %477, label %bb71, label %bb101
1134 bb101: ; preds = %bb100, %bb69
1135 %478 = load i32* %y, align 4 ; <i32> [#uses=1]
1136 %479 = add i32 %478, 1 ; <i32> [#uses=1]
1137 store i32 %479, i32* %y, align 4
1138 %480 = load i32* %offset, align 4 ; <i32> [#uses=1]
1139 %481 = load i32* %y_inc, align 4 ; <i32> [#uses=1]
1140 %482 = add i32 %480, %481 ; <i32> [#uses=1]
1141 store i32 %482, i32* %offset, align 4
1144 bb102: ; preds = %bb101, %bb27
1145 %483 = load i32* %y, align 4 ; <i32> [#uses=1]
1146 %484 = load i32* %yl, align 4 ; <i32> [#uses=1]
1147 %485 = icmp ult i32 %483, %484 ; <i1> [#uses=1]
1148 br i1 %485, label %bb28, label %bb103
1150 bb103: ; preds = %bb102, %bb26
1151 %486 = load i32* %draw_buffer, align 4 ; <i32> [#uses=1]
1152 %487 = add nsw i32 %486, 1 ; <i32> [#uses=1]
1153 store i32 %487, i32* %draw_buffer, align 4
1156 bb104: ; preds = %bb103, %bb25
1157 %488 = load i32* %draw_buffer, align 4 ; <i32> [#uses=1]
1158 %489 = icmp sle i32 %488, 7 ; <i1> [#uses=1]
1159 br i1 %489, label %bb26, label %bb105
1161 bb105: ; preds = %bb104, %bb23
1162 %490 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1163 %491 = getelementptr inbounds %struct.GLDContextRec* %490, i32 0, i32 28 ; <%struct.GLDFramebufferRec**> [#uses=1]
1164 %492 = load %struct.GLDFramebufferRec** %491, align 4 ; <%struct.GLDFramebufferRec*> [#uses=1]
1165 %493 = icmp ne %struct.GLDFramebufferRec* %492, null ; <i1> [#uses=1]
1166 br i1 %493, label %bb106, label %bb107
1168 bb106: ; preds = %bb105
1169 %494 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1170 %495 = getelementptr inbounds %struct.GLDContextRec* %494, i32 0, i32 28 ; <%struct.GLDFramebufferRec**> [#uses=1]
1171 %496 = load %struct.GLDFramebufferRec** %495, align 4 ; <%struct.GLDFramebufferRec*> [#uses=1]
1172 %497 = getelementptr inbounds %struct.GLDFramebufferRec* %496, i32 0, i32 2 ; <[10 x %struct.GLDFormat]*> [#uses=1]
1173 %498 = getelementptr inbounds [10 x %struct.GLDFormat]* %497, i32 0, i32 0 ; <%struct.GLDFormat*> [#uses=1]
1174 %499 = getelementptr inbounds %struct.GLDFormat* %498, i32 0, i32 7 ; <i32*> [#uses=1]
1175 %500 = load i32* %499, align 4 ; <i32> [#uses=1]
1176 %501 = icmp eq i32 %500, 33639 ; <i1> [#uses=1]
1177 %502 = zext i1 %501 to i8 ; <i8> [#uses=1]
1178 store i8 %502, i8* %iftmp.164, align 1
1181 bb107: ; preds = %bb105
1182 %503 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1183 %504 = getelementptr inbounds %struct.GLDContextRec* %503, i32 0, i32 56 ; <%struct.GLDFormat*> [#uses=1]
1184 %505 = getelementptr inbounds %struct.GLDFormat* %504, i32 0, i32 7 ; <i32*> [#uses=1]
1185 %506 = load i32* %505, align 4 ; <i32> [#uses=1]
1186 %507 = icmp eq i32 %506, 33639 ; <i1> [#uses=1]
1187 %508 = zext i1 %507 to i8 ; <i8> [#uses=1]
1188 store i8 %508, i8* %iftmp.164, align 1
1191 bb108: ; preds = %bb107, %bb106
1192 %509 = load i8* %iftmp.164, align 1 ; <i8> [#uses=1]
1193 %toBool109 = icmp ne i8 %509, 0 ; <i1> [#uses=1]
1194 br i1 %toBool109, label %bb110, label %bb229
1196 bb110: ; preds = %bb108
1197 %510 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1198 %511 = getelementptr inbounds %struct.GLDContextRec* %510, i32 0, i32 7 ; <float*> [#uses=1]
1199 %512 = load float* %511, align 4 ; <float> [#uses=1]
1200 store float %512, float* %twoFiftyFive, align 4
1201 %513 = load i32* %offset, align 4 ; <i32> [#uses=1]
1202 store i32 %513, i32* %start_offset112, align 4
1203 store i32 0, i32* %draw_buffer, align 4
1206 bb113: ; preds = %bb227
1207 %514 = load i32* %start_offset112, align 4 ; <i32> [#uses=1]
1208 store i32 %514, i32* %offset, align 4
1209 %515 = load i32* %draw_buffer, align 4 ; <i32> [#uses=1]
1210 %516 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1211 %517 = getelementptr inbounds %struct.GLDContextRec* %516, i32 0, i32 30 ; <%struct.GLDBufferstate*> [#uses=1]
1212 %518 = getelementptr inbounds %struct.GLDBufferstate* %517, i32 0, i32 12 ; <[8 x %union.GLSBuffer]*> [#uses=1]
1213 %519 = getelementptr inbounds [8 x %union.GLSBuffer]* %518, i32 0, i32 %515 ; <%union.GLSBuffer*> [#uses=1]
1214 %520 = getelementptr inbounds %union.GLSBuffer* %519, i32 0, i32 0 ; <i8**> [#uses=1]
1215 %521 = load i8** %520, align 4 ; <i8*> [#uses=1]
1216 %522 = icmp ne i8* %521, null ; <i1> [#uses=1]
1217 br i1 %522, label %bb114, label %bb226
1219 bb114: ; preds = %bb113
1220 %523 = load i32* %draw_buffer, align 4 ; <i32> [#uses=1]
1221 %524 = shl i32 1, %523 ; <i32> [#uses=1]
1222 store i32 %524, i32* %cur_draw_buffer_mask_bit115, align 4
1223 %525 = load i32* %cy, align 4 ; <i32> [#uses=1]
1224 store i32 %525, i32* %y, align 4
1227 bb116: ; preds = %bb225
1228 %526 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1229 %527 = getelementptr inbounds %struct.GLDContextRec* %526, i32 0, i32 30 ; <%struct.GLDBufferstate*> [#uses=1]
1230 %528 = getelementptr inbounds %struct.GLDBufferstate* %527, i32 0, i32 11 ; <%union.GLSBuffer*> [#uses=1]
1231 %529 = getelementptr inbounds %union.GLSBuffer* %528, i32 0, i32 0 ; <i8**> [#uses=1]
1232 %530 = bitcast i8** %529 to double** ; <double**> [#uses=1]
1233 %531 = load double** %530, align 4 ; <double*> [#uses=1]
1234 %532 = load i32* %offset, align 4 ; <i32> [#uses=1]
1235 %533 = mul i32 %532, 4 ; <i32> [#uses=1]
1236 %534 = getelementptr inbounds double* %531, i32 %533 ; <double*> [#uses=1]
1237 store double* %534, double** %accum, align 4
1238 %535 = load double** %accum, align 4 ; <double*> [#uses=1]
1239 %536 = load i32* %cw4, align 4 ; <i32> [#uses=1]
1240 %537 = getelementptr inbounds double* %535, i32 %536 ; <double*> [#uses=1]
1241 store double* %537, double** %accum_end, align 4
1242 %538 = load i32* %draw_buffer, align 4 ; <i32> [#uses=1]
1243 %539 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1244 %540 = getelementptr inbounds %struct.GLDContextRec* %539, i32 0, i32 30 ; <%struct.GLDBufferstate*> [#uses=1]
1245 %541 = getelementptr inbounds %struct.GLDBufferstate* %540, i32 0, i32 12 ; <[8 x %union.GLSBuffer]*> [#uses=1]
1246 %542 = getelementptr inbounds [8 x %union.GLSBuffer]* %541, i32 0, i32 %538 ; <%union.GLSBuffer*> [#uses=1]
1247 %543 = getelementptr inbounds %union.GLSBuffer* %542, i32 0, i32 0 ; <i8**> [#uses=1]
1248 %544 = bitcast i8** %543 to i32** ; <i32**> [#uses=1]
1249 %545 = load i32** %544, align 4 ; <i32*> [#uses=1]
1250 %546 = load i32* %offset, align 4 ; <i32> [#uses=1]
1251 %547 = getelementptr inbounds i32* %545, i32 %546 ; <i32*> [#uses=1]
1252 %548 = bitcast i32* %547 to i8* ; <i8*> [#uses=1]
1253 store i8* %548, i8** %color_ptr111, align 4
1254 %549 = load i8* %color_mask_enabled, align 1 ; <i8> [#uses=1]
1255 %550 = icmp ne i8 %549, 0 ; <i1> [#uses=1]
1256 br i1 %550, label %bb117, label %bb191
1258 bb117: ; preds = %bb116
1261 bb118: ; preds = %bb189
1262 %551 = load double** %accum, align 4 ; <double*> [#uses=1]
1263 %552 = getelementptr inbounds double* %551, i32 0 ; <double*> [#uses=1]
1264 %553 = load double* %552, align 1 ; <double> [#uses=1]
1265 %554 = fptrunc double %553 to float ; <float> [#uses=1]
1266 %555 = load float* %value_addr, align 4 ; <float> [#uses=1]
1267 %556 = fmul float %554, %555 ; <float> [#uses=1]
1268 %557 = load float* %twoFiftyFive, align 4 ; <float> [#uses=1]
1269 %558 = fmul float %556, %557 ; <float> [#uses=1]
1270 %559 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1271 %560 = getelementptr inbounds %struct.GLDContextRec* %559, i32 0, i32 1 ; <float*> [#uses=1]
1272 %561 = load float* %560, align 4 ; <float> [#uses=1]
1273 %562 = fadd float %558, %561 ; <float> [#uses=1]
1274 store float %562, float* %r119, align 4
1275 %563 = load double** %accum, align 4 ; <double*> [#uses=1]
1276 %564 = getelementptr inbounds double* %563, i32 1 ; <double*> [#uses=1]
1277 %565 = load double* %564, align 1 ; <double> [#uses=1]
1278 %566 = fptrunc double %565 to float ; <float> [#uses=1]
1279 %567 = load float* %value_addr, align 4 ; <float> [#uses=1]
1280 %568 = fmul float %566, %567 ; <float> [#uses=1]
1281 %569 = load float* %twoFiftyFive, align 4 ; <float> [#uses=1]
1282 %570 = fmul float %568, %569 ; <float> [#uses=1]
1283 %571 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1284 %572 = getelementptr inbounds %struct.GLDContextRec* %571, i32 0, i32 1 ; <float*> [#uses=1]
1285 %573 = load float* %572, align 4 ; <float> [#uses=1]
1286 %574 = fadd float %570, %573 ; <float> [#uses=1]
1287 store float %574, float* %g120, align 4
1288 %575 = load double** %accum, align 4 ; <double*> [#uses=1]
1289 %576 = getelementptr inbounds double* %575, i32 2 ; <double*> [#uses=1]
1290 %577 = load double* %576, align 1 ; <double> [#uses=1]
1291 %578 = fptrunc double %577 to float ; <float> [#uses=1]
1292 %579 = load float* %value_addr, align 4 ; <float> [#uses=1]
1293 %580 = fmul float %578, %579 ; <float> [#uses=1]
1294 %581 = load float* %twoFiftyFive, align 4 ; <float> [#uses=1]
1295 %582 = fmul float %580, %581 ; <float> [#uses=1]
1296 %583 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1297 %584 = getelementptr inbounds %struct.GLDContextRec* %583, i32 0, i32 1 ; <float*> [#uses=1]
1298 %585 = load float* %584, align 4 ; <float> [#uses=1]
1299 %586 = fadd float %582, %585 ; <float> [#uses=1]
1300 store float %586, float* %b121, align 4
1301 %587 = load double** %accum, align 4 ; <double*> [#uses=1]
1302 %588 = getelementptr inbounds double* %587, i32 3 ; <double*> [#uses=1]
1303 %589 = load double* %588, align 1 ; <double> [#uses=1]
1304 %590 = fptrunc double %589 to float ; <float> [#uses=1]
1305 %591 = load float* %value_addr, align 4 ; <float> [#uses=1]
1306 %592 = fmul float %590, %591 ; <float> [#uses=1]
1307 %593 = load float* %twoFiftyFive, align 4 ; <float> [#uses=1]
1308 %594 = fmul float %592, %593 ; <float> [#uses=1]
1309 %595 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1310 %596 = getelementptr inbounds %struct.GLDContextRec* %595, i32 0, i32 1 ; <float*> [#uses=1]
1311 %597 = load float* %596, align 4 ; <float> [#uses=1]
1312 %598 = fadd float %594, %597 ; <float> [#uses=1]
1313 store float %598, float* %a122, align 4
1314 %599 = load i8* %swap, align 1 ; <i8> [#uses=1]
1315 %600 = icmp ne i8 %599, 0 ; <i1> [#uses=1]
1316 br i1 %600, label %bb123, label %bb156
1318 bb123: ; preds = %bb118
1319 %601 = load %struct.GLDState** %state_addr, align 4 ; <%struct.GLDState*> [#uses=1]
1320 %602 = getelementptr inbounds %struct.GLDState* %601, i32 0, i32 23 ; <%struct.GLDMaskMode*> [#uses=1]
1321 %603 = getelementptr inbounds %struct.GLDMaskMode* %602, i32 0, i32 5 ; <i8*> [#uses=1]
1322 %604 = load i8* %603, align 1 ; <i8> [#uses=1]
1323 %605 = zext i8 %604 to i32 ; <i32> [#uses=1]
1324 %606 = load i32* %cur_draw_buffer_mask_bit115, align 4 ; <i32> [#uses=1]
1325 %607 = and i32 %605, %606 ; <i32> [#uses=1]
1326 %608 = icmp ne i32 %607, 0 ; <i1> [#uses=1]
1327 br i1 %608, label %bb124, label %bb131
1329 bb124: ; preds = %bb123
1330 %609 = load float* %a122, align 4 ; <float> [#uses=1]
1331 %610 = fcmp uge float %609, 0.000000e+00 ; <i1> [#uses=1]
1332 br i1 %610, label %bb125, label %bb129
1334 bb125: ; preds = %bb124
1335 %611 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1336 %612 = getelementptr inbounds %struct.GLDContextRec* %611, i32 0, i32 7 ; <float*> [#uses=1]
1337 %613 = load float* %612, align 4 ; <float> [#uses=1]
1338 %614 = load float* %a122, align 4 ; <float> [#uses=1]
1339 %615 = fcmp olt float %613, %614 ; <i1> [#uses=1]
1340 br i1 %615, label %bb126, label %bb127
1342 bb126: ; preds = %bb125
1343 %616 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1344 %617 = getelementptr inbounds %struct.GLDContextRec* %616, i32 0, i32 7 ; <float*> [#uses=1]
1345 %618 = load float* %617, align 4 ; <float> [#uses=1]
1346 %619 = fptoui float %618 to i8 ; <i8> [#uses=1]
1347 store i8 %619, i8* %iftmp.168, align 1
1350 bb127: ; preds = %bb125
1351 %620 = load float* %a122, align 4 ; <float> [#uses=1]
1352 %621 = fptoui float %620 to i8 ; <i8> [#uses=1]
1353 store i8 %621, i8* %iftmp.168, align 1
1356 bb128: ; preds = %bb127, %bb126
1357 %622 = load i8* %iftmp.168, align 1 ; <i8> [#uses=1]
1358 store i8 %622, i8* %iftmp.167, align 1
1361 bb129: ; preds = %bb124
1362 store i8 0, i8* %iftmp.167, align 1
1365 bb130: ; preds = %bb129, %bb128
1366 %623 = load i8** %color_ptr111, align 4 ; <i8*> [#uses=1]
1367 %624 = getelementptr inbounds i8* %623, i32 0 ; <i8*> [#uses=1]
1368 %625 = load i8* %iftmp.167, align 1 ; <i8> [#uses=1]
1369 store i8 %625, i8* %624, align 1
1372 bb131: ; preds = %bb130, %bb123
1373 %626 = load %struct.GLDState** %state_addr, align 4 ; <%struct.GLDState*> [#uses=1]
1374 %627 = getelementptr inbounds %struct.GLDState* %626, i32 0, i32 23 ; <%struct.GLDMaskMode*> [#uses=1]
1375 %628 = getelementptr inbounds %struct.GLDMaskMode* %627, i32 0, i32 2 ; <i8*> [#uses=1]
1376 %629 = load i8* %628, align 16 ; <i8> [#uses=1]
1377 %630 = zext i8 %629 to i32 ; <i32> [#uses=1]
1378 %631 = load i32* %cur_draw_buffer_mask_bit115, align 4 ; <i32> [#uses=1]
1379 %632 = and i32 %630, %631 ; <i32> [#uses=1]
1380 %633 = icmp ne i32 %632, 0 ; <i1> [#uses=1]
1381 br i1 %633, label %bb132, label %bb139
1383 bb132: ; preds = %bb131
1384 %634 = load float* %r119, align 4 ; <float> [#uses=1]
1385 %635 = fcmp uge float %634, 0.000000e+00 ; <i1> [#uses=1]
1386 br i1 %635, label %bb133, label %bb137
1388 bb133: ; preds = %bb132
1389 %636 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1390 %637 = getelementptr inbounds %struct.GLDContextRec* %636, i32 0, i32 7 ; <float*> [#uses=1]
1391 %638 = load float* %637, align 4 ; <float> [#uses=1]
1392 %639 = load float* %r119, align 4 ; <float> [#uses=1]
1393 %640 = fcmp olt float %638, %639 ; <i1> [#uses=1]
1394 br i1 %640, label %bb134, label %bb135
1396 bb134: ; preds = %bb133
1397 %641 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1398 %642 = getelementptr inbounds %struct.GLDContextRec* %641, i32 0, i32 7 ; <float*> [#uses=1]
1399 %643 = load float* %642, align 4 ; <float> [#uses=1]
1400 %644 = fptoui float %643 to i8 ; <i8> [#uses=1]
1401 store i8 %644, i8* %iftmp.170, align 1
1404 bb135: ; preds = %bb133
1405 %645 = load float* %r119, align 4 ; <float> [#uses=1]
1406 %646 = fptoui float %645 to i8 ; <i8> [#uses=1]
1407 store i8 %646, i8* %iftmp.170, align 1
1410 bb136: ; preds = %bb135, %bb134
1411 %647 = load i8* %iftmp.170, align 1 ; <i8> [#uses=1]
1412 store i8 %647, i8* %iftmp.169, align 1
1415 bb137: ; preds = %bb132
1416 store i8 0, i8* %iftmp.169, align 1
1419 bb138: ; preds = %bb137, %bb136
1420 %648 = load i8** %color_ptr111, align 4 ; <i8*> [#uses=1]
1421 %649 = getelementptr inbounds i8* %648, i32 1 ; <i8*> [#uses=1]
1422 %650 = load i8* %iftmp.169, align 1 ; <i8> [#uses=1]
1423 store i8 %650, i8* %649, align 1
1426 bb139: ; preds = %bb138, %bb131
1427 %651 = load %struct.GLDState** %state_addr, align 4 ; <%struct.GLDState*> [#uses=1]
1428 %652 = getelementptr inbounds %struct.GLDState* %651, i32 0, i32 23 ; <%struct.GLDMaskMode*> [#uses=1]
1429 %653 = getelementptr inbounds %struct.GLDMaskMode* %652, i32 0, i32 3 ; <i8*> [#uses=1]
1430 %654 = load i8* %653, align 1 ; <i8> [#uses=1]
1431 %655 = zext i8 %654 to i32 ; <i32> [#uses=1]
1432 %656 = load i32* %cur_draw_buffer_mask_bit115, align 4 ; <i32> [#uses=1]
1433 %657 = and i32 %655, %656 ; <i32> [#uses=1]
1434 %658 = icmp ne i32 %657, 0 ; <i1> [#uses=1]
1435 br i1 %658, label %bb140, label %bb147
1437 bb140: ; preds = %bb139
1438 %659 = load float* %g120, align 4 ; <float> [#uses=1]
1439 %660 = fcmp uge float %659, 0.000000e+00 ; <i1> [#uses=1]
1440 br i1 %660, label %bb141, label %bb145
1442 bb141: ; preds = %bb140
1443 %661 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1444 %662 = getelementptr inbounds %struct.GLDContextRec* %661, i32 0, i32 7 ; <float*> [#uses=1]
1445 %663 = load float* %662, align 4 ; <float> [#uses=1]
1446 %664 = load float* %g120, align 4 ; <float> [#uses=1]
1447 %665 = fcmp olt float %663, %664 ; <i1> [#uses=1]
1448 br i1 %665, label %bb142, label %bb143
1450 bb142: ; preds = %bb141
1451 %666 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1452 %667 = getelementptr inbounds %struct.GLDContextRec* %666, i32 0, i32 7 ; <float*> [#uses=1]
1453 %668 = load float* %667, align 4 ; <float> [#uses=1]
1454 %669 = fptoui float %668 to i8 ; <i8> [#uses=1]
1455 store i8 %669, i8* %iftmp.172, align 1
1458 bb143: ; preds = %bb141
1459 %670 = load float* %g120, align 4 ; <float> [#uses=1]
1460 %671 = fptoui float %670 to i8 ; <i8> [#uses=1]
1461 store i8 %671, i8* %iftmp.172, align 1
1464 bb144: ; preds = %bb143, %bb142
1465 %672 = load i8* %iftmp.172, align 1 ; <i8> [#uses=1]
1466 store i8 %672, i8* %iftmp.171, align 1
1469 bb145: ; preds = %bb140
1470 store i8 0, i8* %iftmp.171, align 1
1473 bb146: ; preds = %bb145, %bb144
1474 %673 = load i8** %color_ptr111, align 4 ; <i8*> [#uses=1]
1475 %674 = getelementptr inbounds i8* %673, i32 2 ; <i8*> [#uses=1]
1476 %675 = load i8* %iftmp.171, align 1 ; <i8> [#uses=1]
1477 store i8 %675, i8* %674, align 1
1480 bb147: ; preds = %bb146, %bb139
1481 %676 = load %struct.GLDState** %state_addr, align 4 ; <%struct.GLDState*> [#uses=1]
1482 %677 = getelementptr inbounds %struct.GLDState* %676, i32 0, i32 23 ; <%struct.GLDMaskMode*> [#uses=1]
1483 %678 = getelementptr inbounds %struct.GLDMaskMode* %677, i32 0, i32 4 ; <i8*> [#uses=1]
1484 %679 = load i8* %678, align 2 ; <i8> [#uses=1]
1485 %680 = zext i8 %679 to i32 ; <i32> [#uses=1]
1486 %681 = load i32* %cur_draw_buffer_mask_bit115, align 4 ; <i32> [#uses=1]
1487 %682 = and i32 %680, %681 ; <i32> [#uses=1]
1488 %683 = icmp ne i32 %682, 0 ; <i1> [#uses=1]
1489 br i1 %683, label %bb148, label %bb155
1491 bb148: ; preds = %bb147
1492 %684 = load float* %b121, align 4 ; <float> [#uses=1]
1493 %685 = fcmp uge float %684, 0.000000e+00 ; <i1> [#uses=1]
1494 br i1 %685, label %bb149, label %bb153
1496 bb149: ; preds = %bb148
1497 %686 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1498 %687 = getelementptr inbounds %struct.GLDContextRec* %686, i32 0, i32 7 ; <float*> [#uses=1]
1499 %688 = load float* %687, align 4 ; <float> [#uses=1]
1500 %689 = load float* %b121, align 4 ; <float> [#uses=1]
1501 %690 = fcmp olt float %688, %689 ; <i1> [#uses=1]
1502 br i1 %690, label %bb150, label %bb151
1504 bb150: ; preds = %bb149
1505 %691 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1506 %692 = getelementptr inbounds %struct.GLDContextRec* %691, i32 0, i32 7 ; <float*> [#uses=1]
1507 %693 = load float* %692, align 4 ; <float> [#uses=1]
1508 %694 = fptoui float %693 to i8 ; <i8> [#uses=1]
1509 store i8 %694, i8* %iftmp.174, align 1
1512 bb151: ; preds = %bb149
1513 %695 = load float* %b121, align 4 ; <float> [#uses=1]
1514 %696 = fptoui float %695 to i8 ; <i8> [#uses=1]
1515 store i8 %696, i8* %iftmp.174, align 1
1518 bb152: ; preds = %bb151, %bb150
1519 %697 = load i8* %iftmp.174, align 1 ; <i8> [#uses=1]
1520 store i8 %697, i8* %iftmp.173, align 1
1523 bb153: ; preds = %bb148
1524 store i8 0, i8* %iftmp.173, align 1
1527 bb154: ; preds = %bb153, %bb152
1528 %698 = load i8** %color_ptr111, align 4 ; <i8*> [#uses=1]
1529 %699 = getelementptr inbounds i8* %698, i32 3 ; <i8*> [#uses=1]
1530 %700 = load i8* %iftmp.173, align 1 ; <i8> [#uses=1]
1531 store i8 %700, i8* %699, align 1
1534 bb155: ; preds = %bb154, %bb147
1537 bb156: ; preds = %bb118
1538 %701 = load %struct.GLDState** %state_addr, align 4 ; <%struct.GLDState*> [#uses=1]
1539 %702 = getelementptr inbounds %struct.GLDState* %701, i32 0, i32 23 ; <%struct.GLDMaskMode*> [#uses=1]
1540 %703 = getelementptr inbounds %struct.GLDMaskMode* %702, i32 0, i32 5 ; <i8*> [#uses=1]
1541 %704 = load i8* %703, align 1 ; <i8> [#uses=1]
1542 %705 = zext i8 %704 to i32 ; <i32> [#uses=1]
1543 %706 = load i32* %cur_draw_buffer_mask_bit115, align 4 ; <i32> [#uses=1]
1544 %707 = and i32 %705, %706 ; <i32> [#uses=1]
1545 %708 = icmp ne i32 %707, 0 ; <i1> [#uses=1]
1546 br i1 %708, label %bb157, label %bb164
1548 bb157: ; preds = %bb156
1549 %709 = load float* %a122, align 4 ; <float> [#uses=1]
1550 %710 = fcmp uge float %709, 0.000000e+00 ; <i1> [#uses=1]
1551 br i1 %710, label %bb158, label %bb162
1553 bb158: ; preds = %bb157
1554 %711 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1555 %712 = getelementptr inbounds %struct.GLDContextRec* %711, i32 0, i32 7 ; <float*> [#uses=1]
1556 %713 = load float* %712, align 4 ; <float> [#uses=1]
1557 %714 = load float* %a122, align 4 ; <float> [#uses=1]
1558 %715 = fcmp olt float %713, %714 ; <i1> [#uses=1]
1559 br i1 %715, label %bb159, label %bb160
1561 bb159: ; preds = %bb158
1562 %716 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1563 %717 = getelementptr inbounds %struct.GLDContextRec* %716, i32 0, i32 7 ; <float*> [#uses=1]
1564 %718 = load float* %717, align 4 ; <float> [#uses=1]
1565 %719 = fptoui float %718 to i8 ; <i8> [#uses=1]
1566 store i8 %719, i8* %iftmp.176, align 1
1569 bb160: ; preds = %bb158
1570 %720 = load float* %a122, align 4 ; <float> [#uses=1]
1571 %721 = fptoui float %720 to i8 ; <i8> [#uses=1]
1572 store i8 %721, i8* %iftmp.176, align 1
1575 bb161: ; preds = %bb160, %bb159
1576 %722 = load i8* %iftmp.176, align 1 ; <i8> [#uses=1]
1577 store i8 %722, i8* %iftmp.175, align 1
1580 bb162: ; preds = %bb157
1581 store i8 0, i8* %iftmp.175, align 1
1584 bb163: ; preds = %bb162, %bb161
1585 %723 = load i8** %color_ptr111, align 4 ; <i8*> [#uses=1]
1586 %724 = getelementptr inbounds i8* %723, i32 3 ; <i8*> [#uses=1]
1587 %725 = load i8* %iftmp.175, align 1 ; <i8> [#uses=1]
1588 store i8 %725, i8* %724, align 1
1591 bb164: ; preds = %bb163, %bb156
1592 %726 = load %struct.GLDState** %state_addr, align 4 ; <%struct.GLDState*> [#uses=1]
1593 %727 = getelementptr inbounds %struct.GLDState* %726, i32 0, i32 23 ; <%struct.GLDMaskMode*> [#uses=1]
1594 %728 = getelementptr inbounds %struct.GLDMaskMode* %727, i32 0, i32 2 ; <i8*> [#uses=1]
1595 %729 = load i8* %728, align 16 ; <i8> [#uses=1]
1596 %730 = zext i8 %729 to i32 ; <i32> [#uses=1]
1597 %731 = load i32* %cur_draw_buffer_mask_bit115, align 4 ; <i32> [#uses=1]
1598 %732 = and i32 %730, %731 ; <i32> [#uses=1]
1599 %733 = icmp ne i32 %732, 0 ; <i1> [#uses=1]
1600 br i1 %733, label %bb165, label %bb172
1602 bb165: ; preds = %bb164
1603 %734 = load float* %r119, align 4 ; <float> [#uses=1]
1604 %735 = fcmp uge float %734, 0.000000e+00 ; <i1> [#uses=1]
1605 br i1 %735, label %bb166, label %bb170
1607 bb166: ; preds = %bb165
1608 %736 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1609 %737 = getelementptr inbounds %struct.GLDContextRec* %736, i32 0, i32 7 ; <float*> [#uses=1]
1610 %738 = load float* %737, align 4 ; <float> [#uses=1]
1611 %739 = load float* %r119, align 4 ; <float> [#uses=1]
1612 %740 = fcmp olt float %738, %739 ; <i1> [#uses=1]
1613 br i1 %740, label %bb167, label %bb168
1615 bb167: ; preds = %bb166
1616 %741 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1617 %742 = getelementptr inbounds %struct.GLDContextRec* %741, i32 0, i32 7 ; <float*> [#uses=1]
1618 %743 = load float* %742, align 4 ; <float> [#uses=1]
1619 %744 = fptoui float %743 to i8 ; <i8> [#uses=1]
1620 store i8 %744, i8* %iftmp.178, align 1
1623 bb168: ; preds = %bb166
1624 %745 = load float* %r119, align 4 ; <float> [#uses=1]
1625 %746 = fptoui float %745 to i8 ; <i8> [#uses=1]
1626 store i8 %746, i8* %iftmp.178, align 1
1629 bb169: ; preds = %bb168, %bb167
1630 %747 = load i8* %iftmp.178, align 1 ; <i8> [#uses=1]
1631 store i8 %747, i8* %iftmp.177, align 1
1634 bb170: ; preds = %bb165
1635 store i8 0, i8* %iftmp.177, align 1
1638 bb171: ; preds = %bb170, %bb169
1639 %748 = load i8** %color_ptr111, align 4 ; <i8*> [#uses=1]
1640 %749 = getelementptr inbounds i8* %748, i32 2 ; <i8*> [#uses=1]
1641 %750 = load i8* %iftmp.177, align 1 ; <i8> [#uses=1]
1642 store i8 %750, i8* %749, align 1
1645 bb172: ; preds = %bb171, %bb164
1646 %751 = load %struct.GLDState** %state_addr, align 4 ; <%struct.GLDState*> [#uses=1]
1647 %752 = getelementptr inbounds %struct.GLDState* %751, i32 0, i32 23 ; <%struct.GLDMaskMode*> [#uses=1]
1648 %753 = getelementptr inbounds %struct.GLDMaskMode* %752, i32 0, i32 3 ; <i8*> [#uses=1]
1649 %754 = load i8* %753, align 1 ; <i8> [#uses=1]
1650 %755 = zext i8 %754 to i32 ; <i32> [#uses=1]
1651 %756 = load i32* %cur_draw_buffer_mask_bit115, align 4 ; <i32> [#uses=1]
1652 %757 = and i32 %755, %756 ; <i32> [#uses=1]
1653 %758 = icmp ne i32 %757, 0 ; <i1> [#uses=1]
1654 br i1 %758, label %bb173, label %bb180
1656 bb173: ; preds = %bb172
1657 %759 = load float* %g120, align 4 ; <float> [#uses=1]
1658 %760 = fcmp uge float %759, 0.000000e+00 ; <i1> [#uses=1]
1659 br i1 %760, label %bb174, label %bb178
1661 bb174: ; preds = %bb173
1662 %761 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1663 %762 = getelementptr inbounds %struct.GLDContextRec* %761, i32 0, i32 7 ; <float*> [#uses=1]
1664 %763 = load float* %762, align 4 ; <float> [#uses=1]
1665 %764 = load float* %g120, align 4 ; <float> [#uses=1]
1666 %765 = fcmp olt float %763, %764 ; <i1> [#uses=1]
1667 br i1 %765, label %bb175, label %bb176
1669 bb175: ; preds = %bb174
1670 %766 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1671 %767 = getelementptr inbounds %struct.GLDContextRec* %766, i32 0, i32 7 ; <float*> [#uses=1]
1672 %768 = load float* %767, align 4 ; <float> [#uses=1]
1673 %769 = fptoui float %768 to i8 ; <i8> [#uses=1]
1674 store i8 %769, i8* %iftmp.180, align 1
1677 bb176: ; preds = %bb174
1678 %770 = load float* %g120, align 4 ; <float> [#uses=1]
1679 %771 = fptoui float %770 to i8 ; <i8> [#uses=1]
1680 store i8 %771, i8* %iftmp.180, align 1
1683 bb177: ; preds = %bb176, %bb175
1684 %772 = load i8* %iftmp.180, align 1 ; <i8> [#uses=1]
1685 store i8 %772, i8* %iftmp.179, align 1
1688 bb178: ; preds = %bb173
1689 store i8 0, i8* %iftmp.179, align 1
1692 bb179: ; preds = %bb178, %bb177
1693 %773 = load i8** %color_ptr111, align 4 ; <i8*> [#uses=1]
1694 %774 = getelementptr inbounds i8* %773, i32 1 ; <i8*> [#uses=1]
1695 %775 = load i8* %iftmp.179, align 1 ; <i8> [#uses=1]
1696 store i8 %775, i8* %774, align 1
1699 bb180: ; preds = %bb179, %bb172
1700 %776 = load %struct.GLDState** %state_addr, align 4 ; <%struct.GLDState*> [#uses=1]
1701 %777 = getelementptr inbounds %struct.GLDState* %776, i32 0, i32 23 ; <%struct.GLDMaskMode*> [#uses=1]
1702 %778 = getelementptr inbounds %struct.GLDMaskMode* %777, i32 0, i32 4 ; <i8*> [#uses=1]
1703 %779 = load i8* %778, align 2 ; <i8> [#uses=1]
1704 %780 = zext i8 %779 to i32 ; <i32> [#uses=1]
1705 %781 = load i32* %cur_draw_buffer_mask_bit115, align 4 ; <i32> [#uses=1]
1706 %782 = and i32 %780, %781 ; <i32> [#uses=1]
1707 %783 = icmp ne i32 %782, 0 ; <i1> [#uses=1]
1708 br i1 %783, label %bb181, label %bb188
1710 bb181: ; preds = %bb180
1711 %784 = load float* %b121, align 4 ; <float> [#uses=1]
1712 %785 = fcmp uge float %784, 0.000000e+00 ; <i1> [#uses=1]
1713 br i1 %785, label %bb182, label %bb186
1715 bb182: ; preds = %bb181
1716 %786 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1717 %787 = getelementptr inbounds %struct.GLDContextRec* %786, i32 0, i32 7 ; <float*> [#uses=1]
1718 %788 = load float* %787, align 4 ; <float> [#uses=1]
1719 %789 = load float* %b121, align 4 ; <float> [#uses=1]
1720 %790 = fcmp olt float %788, %789 ; <i1> [#uses=1]
1721 br i1 %790, label %bb183, label %bb184
1723 bb183: ; preds = %bb182
1724 %791 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1725 %792 = getelementptr inbounds %struct.GLDContextRec* %791, i32 0, i32 7 ; <float*> [#uses=1]
1726 %793 = load float* %792, align 4 ; <float> [#uses=1]
1727 %794 = fptoui float %793 to i8 ; <i8> [#uses=1]
1728 store i8 %794, i8* %iftmp.182, align 1
1731 bb184: ; preds = %bb182
1732 %795 = load float* %b121, align 4 ; <float> [#uses=1]
1733 %796 = fptoui float %795 to i8 ; <i8> [#uses=1]
1734 store i8 %796, i8* %iftmp.182, align 1
1737 bb185: ; preds = %bb184, %bb183
1738 %797 = load i8* %iftmp.182, align 1 ; <i8> [#uses=1]
1739 store i8 %797, i8* %iftmp.181, align 1
1742 bb186: ; preds = %bb181
1743 store i8 0, i8* %iftmp.181, align 1
1746 bb187: ; preds = %bb186, %bb185
1747 %798 = load i8** %color_ptr111, align 4 ; <i8*> [#uses=1]
1748 %799 = getelementptr inbounds i8* %798, i32 0 ; <i8*> [#uses=1]
1749 %800 = load i8* %iftmp.181, align 1 ; <i8> [#uses=1]
1750 store i8 %800, i8* %799, align 1
1753 bb188: ; preds = %bb187, %bb180, %bb155
1754 %801 = load double** %accum, align 4 ; <double*> [#uses=1]
1755 %802 = getelementptr inbounds double* %801, i32 4 ; <double*> [#uses=1]
1756 store double* %802, double** %accum, align 4
1757 %803 = load i8** %color_ptr111, align 4 ; <i8*> [#uses=1]
1758 %804 = getelementptr inbounds i8* %803, i32 4 ; <i8*> [#uses=1]
1759 store i8* %804, i8** %color_ptr111, align 4
1762 bb189: ; preds = %bb188, %bb117
1763 %805 = load double** %accum, align 4 ; <double*> [#uses=1]
1764 %806 = load double** %accum_end, align 4 ; <double*> [#uses=1]
1765 %807 = icmp ult double* %805, %806 ; <i1> [#uses=1]
1766 br i1 %807, label %bb118, label %bb190
1768 bb190: ; preds = %bb189
1771 bb191: ; preds = %bb116
1774 bb192: ; preds = %bb223
1775 %808 = load double** %accum, align 4 ; <double*> [#uses=1]
1776 %809 = getelementptr inbounds double* %808, i32 0 ; <double*> [#uses=1]
1777 %810 = load double* %809, align 1 ; <double> [#uses=1]
1778 %811 = fptrunc double %810 to float ; <float> [#uses=1]
1779 %812 = load float* %value_addr, align 4 ; <float> [#uses=1]
1780 %813 = fmul float %811, %812 ; <float> [#uses=1]
1781 %814 = load float* %twoFiftyFive, align 4 ; <float> [#uses=1]
1782 %815 = fmul float %813, %814 ; <float> [#uses=1]
1783 %816 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1784 %817 = getelementptr inbounds %struct.GLDContextRec* %816, i32 0, i32 1 ; <float*> [#uses=1]
1785 %818 = load float* %817, align 4 ; <float> [#uses=1]
1786 %819 = fadd float %815, %818 ; <float> [#uses=1]
1787 %820 = fcmp uge float %819, 0.000000e+00 ; <i1> [#uses=1]
1788 br i1 %820, label %bb197, label %bb201
1790 bb197: ; preds = %bb192
1791 %821 = load double** %accum, align 4 ; <double*> [#uses=1]
1792 %822 = getelementptr inbounds double* %821, i32 0 ; <double*> [#uses=1]
1793 %823 = load double* %822, align 1 ; <double> [#uses=1]
1794 %824 = fptrunc double %823 to float ; <float> [#uses=1]
1795 %825 = load float* %value_addr, align 4 ; <float> [#uses=1]
1796 %826 = fmul float %824, %825 ; <float> [#uses=1]
1797 %827 = load float* %twoFiftyFive, align 4 ; <float> [#uses=1]
1798 %828 = fmul float %826, %827 ; <float> [#uses=1]
1799 %829 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1800 %830 = getelementptr inbounds %struct.GLDContextRec* %829, i32 0, i32 1 ; <float*> [#uses=1]
1801 %831 = load float* %830, align 4 ; <float> [#uses=1]
1802 %832 = fadd float %828, %831 ; <float> [#uses=1]
1803 %833 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1804 %834 = getelementptr inbounds %struct.GLDContextRec* %833, i32 0, i32 7 ; <float*> [#uses=1]
1805 %835 = load float* %834, align 4 ; <float> [#uses=1]
1806 %836 = fcmp ogt float %832, %835 ; <i1> [#uses=1]
1807 br i1 %836, label %bb198, label %bb199
1809 bb198: ; preds = %bb197
1810 %837 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1811 %838 = getelementptr inbounds %struct.GLDContextRec* %837, i32 0, i32 7 ; <float*> [#uses=1]
1812 %839 = load float* %838, align 4 ; <float> [#uses=1]
1813 %840 = fptoui float %839 to i8 ; <i8> [#uses=1]
1814 %841 = zext i8 %840 to i32 ; <i32> [#uses=1]
1815 store i32 %841, i32* %iftmp.184, align 4
1818 bb199: ; preds = %bb197
1819 %842 = load double** %accum, align 4 ; <double*> [#uses=1]
1820 %843 = getelementptr inbounds double* %842, i32 0 ; <double*> [#uses=1]
1821 %844 = load double* %843, align 1 ; <double> [#uses=1]
1822 %845 = fptrunc double %844 to float ; <float> [#uses=1]
1823 %846 = load float* %value_addr, align 4 ; <float> [#uses=1]
1824 %847 = fmul float %845, %846 ; <float> [#uses=1]
1825 %848 = load float* %twoFiftyFive, align 4 ; <float> [#uses=1]
1826 %849 = fmul float %847, %848 ; <float> [#uses=1]
1827 %850 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1828 %851 = getelementptr inbounds %struct.GLDContextRec* %850, i32 0, i32 1 ; <float*> [#uses=1]
1829 %852 = load float* %851, align 4 ; <float> [#uses=1]
1830 %853 = fadd float %849, %852 ; <float> [#uses=1]
1831 %854 = fptoui float %853 to i8 ; <i8> [#uses=1]
1832 %855 = zext i8 %854 to i32 ; <i32> [#uses=1]
1833 store i32 %855, i32* %iftmp.184, align 4
1836 bb200: ; preds = %bb199, %bb198
1837 %856 = load i32* %iftmp.184, align 4 ; <i32> [#uses=1]
1838 store i32 %856, i32* %iftmp.183, align 4
1841 bb201: ; preds = %bb192
1842 store i32 0, i32* %iftmp.183, align 4
1845 bb202: ; preds = %bb201, %bb200
1846 %857 = load i32* %iftmp.183, align 4 ; <i32> [#uses=1]
1847 store i32 %857, i32* %r193, align 4
1848 %858 = load double** %accum, align 4 ; <double*> [#uses=1]
1849 %859 = getelementptr inbounds double* %858, i32 1 ; <double*> [#uses=1]
1850 %860 = load double* %859, align 1 ; <double> [#uses=1]
1851 %861 = fptrunc double %860 to float ; <float> [#uses=1]
1852 %862 = load float* %value_addr, align 4 ; <float> [#uses=1]
1853 %863 = fmul float %861, %862 ; <float> [#uses=1]
1854 %864 = load float* %twoFiftyFive, align 4 ; <float> [#uses=1]
1855 %865 = fmul float %863, %864 ; <float> [#uses=1]
1856 %866 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1857 %867 = getelementptr inbounds %struct.GLDContextRec* %866, i32 0, i32 1 ; <float*> [#uses=1]
1858 %868 = load float* %867, align 4 ; <float> [#uses=1]
1859 %869 = fadd float %865, %868 ; <float> [#uses=1]
1860 %870 = fcmp uge float %869, 0.000000e+00 ; <i1> [#uses=1]
1861 br i1 %870, label %bb203, label %bb207
1863 bb203: ; preds = %bb202
1864 %871 = load double** %accum, align 4 ; <double*> [#uses=1]
1865 %872 = getelementptr inbounds double* %871, i32 1 ; <double*> [#uses=1]
1866 %873 = load double* %872, align 1 ; <double> [#uses=1]
1867 %874 = fptrunc double %873 to float ; <float> [#uses=1]
1868 %875 = load float* %value_addr, align 4 ; <float> [#uses=1]
1869 %876 = fmul float %874, %875 ; <float> [#uses=1]
1870 %877 = load float* %twoFiftyFive, align 4 ; <float> [#uses=1]
1871 %878 = fmul float %876, %877 ; <float> [#uses=1]
1872 %879 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1873 %880 = getelementptr inbounds %struct.GLDContextRec* %879, i32 0, i32 1 ; <float*> [#uses=1]
1874 %881 = load float* %880, align 4 ; <float> [#uses=1]
1875 %882 = fadd float %878, %881 ; <float> [#uses=1]
1876 %883 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1877 %884 = getelementptr inbounds %struct.GLDContextRec* %883, i32 0, i32 7 ; <float*> [#uses=1]
1878 %885 = load float* %884, align 4 ; <float> [#uses=1]
1879 %886 = fcmp ogt float %882, %885 ; <i1> [#uses=1]
1880 br i1 %886, label %bb204, label %bb205
1882 bb204: ; preds = %bb203
1883 %887 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1884 %888 = getelementptr inbounds %struct.GLDContextRec* %887, i32 0, i32 7 ; <float*> [#uses=1]
1885 %889 = load float* %888, align 4 ; <float> [#uses=1]
1886 %890 = fptoui float %889 to i8 ; <i8> [#uses=1]
1887 %891 = zext i8 %890 to i32 ; <i32> [#uses=1]
1888 store i32 %891, i32* %iftmp.186, align 4
1891 bb205: ; preds = %bb203
1892 %892 = load double** %accum, align 4 ; <double*> [#uses=1]
1893 %893 = getelementptr inbounds double* %892, i32 1 ; <double*> [#uses=1]
1894 %894 = load double* %893, align 1 ; <double> [#uses=1]
1895 %895 = fptrunc double %894 to float ; <float> [#uses=1]
1896 %896 = load float* %value_addr, align 4 ; <float> [#uses=1]
1897 %897 = fmul float %895, %896 ; <float> [#uses=1]
1898 %898 = load float* %twoFiftyFive, align 4 ; <float> [#uses=1]
1899 %899 = fmul float %897, %898 ; <float> [#uses=1]
1900 %900 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1901 %901 = getelementptr inbounds %struct.GLDContextRec* %900, i32 0, i32 1 ; <float*> [#uses=1]
1902 %902 = load float* %901, align 4 ; <float> [#uses=1]
1903 %903 = fadd float %899, %902 ; <float> [#uses=1]
1904 %904 = fptoui float %903 to i8 ; <i8> [#uses=1]
1905 %905 = zext i8 %904 to i32 ; <i32> [#uses=1]
1906 store i32 %905, i32* %iftmp.186, align 4
1909 bb206: ; preds = %bb205, %bb204
1910 %906 = load i32* %iftmp.186, align 4 ; <i32> [#uses=1]
1911 store i32 %906, i32* %iftmp.185, align 4
1914 bb207: ; preds = %bb202
1915 store i32 0, i32* %iftmp.185, align 4
1918 bb208: ; preds = %bb207, %bb206
1919 %907 = load i32* %iftmp.185, align 4 ; <i32> [#uses=1]
1920 store i32 %907, i32* %g194, align 4
1921 %908 = load double** %accum, align 4 ; <double*> [#uses=1]
1922 %909 = getelementptr inbounds double* %908, i32 2 ; <double*> [#uses=1]
1923 %910 = load double* %909, align 1 ; <double> [#uses=1]
1924 %911 = fptrunc double %910 to float ; <float> [#uses=1]
1925 %912 = load float* %value_addr, align 4 ; <float> [#uses=1]
1926 %913 = fmul float %911, %912 ; <float> [#uses=1]
1927 %914 = load float* %twoFiftyFive, align 4 ; <float> [#uses=1]
1928 %915 = fmul float %913, %914 ; <float> [#uses=1]
1929 %916 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1930 %917 = getelementptr inbounds %struct.GLDContextRec* %916, i32 0, i32 1 ; <float*> [#uses=1]
1931 %918 = load float* %917, align 4 ; <float> [#uses=1]
1932 %919 = fadd float %915, %918 ; <float> [#uses=1]
1933 %920 = fcmp uge float %919, 0.000000e+00 ; <i1> [#uses=1]
1934 br i1 %920, label %bb209, label %bb213
1936 bb209: ; preds = %bb208
1937 %921 = load double** %accum, align 4 ; <double*> [#uses=1]
1938 %922 = getelementptr inbounds double* %921, i32 2 ; <double*> [#uses=1]
1939 %923 = load double* %922, align 1 ; <double> [#uses=1]
1940 %924 = fptrunc double %923 to float ; <float> [#uses=1]
1941 %925 = load float* %value_addr, align 4 ; <float> [#uses=1]
1942 %926 = fmul float %924, %925 ; <float> [#uses=1]
1943 %927 = load float* %twoFiftyFive, align 4 ; <float> [#uses=1]
1944 %928 = fmul float %926, %927 ; <float> [#uses=1]
1945 %929 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1946 %930 = getelementptr inbounds %struct.GLDContextRec* %929, i32 0, i32 1 ; <float*> [#uses=1]
1947 %931 = load float* %930, align 4 ; <float> [#uses=1]
1948 %932 = fadd float %928, %931 ; <float> [#uses=1]
1949 %933 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1950 %934 = getelementptr inbounds %struct.GLDContextRec* %933, i32 0, i32 7 ; <float*> [#uses=1]
1951 %935 = load float* %934, align 4 ; <float> [#uses=1]
1952 %936 = fcmp ogt float %932, %935 ; <i1> [#uses=1]
1953 br i1 %936, label %bb210, label %bb211
1955 bb210: ; preds = %bb209
1956 %937 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1957 %938 = getelementptr inbounds %struct.GLDContextRec* %937, i32 0, i32 7 ; <float*> [#uses=1]
1958 %939 = load float* %938, align 4 ; <float> [#uses=1]
1959 %940 = fptoui float %939 to i8 ; <i8> [#uses=1]
1960 %941 = zext i8 %940 to i32 ; <i32> [#uses=1]
1961 store i32 %941, i32* %iftmp.188, align 4
1964 bb211: ; preds = %bb209
1965 %942 = load double** %accum, align 4 ; <double*> [#uses=1]
1966 %943 = getelementptr inbounds double* %942, i32 2 ; <double*> [#uses=1]
1967 %944 = load double* %943, align 1 ; <double> [#uses=1]
1968 %945 = fptrunc double %944 to float ; <float> [#uses=1]
1969 %946 = load float* %value_addr, align 4 ; <float> [#uses=1]
1970 %947 = fmul float %945, %946 ; <float> [#uses=1]
1971 %948 = load float* %twoFiftyFive, align 4 ; <float> [#uses=1]
1972 %949 = fmul float %947, %948 ; <float> [#uses=1]
1973 %950 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
1974 %951 = getelementptr inbounds %struct.GLDContextRec* %950, i32 0, i32 1 ; <float*> [#uses=1]
1975 %952 = load float* %951, align 4 ; <float> [#uses=1]
1976 %953 = fadd float %949, %952 ; <float> [#uses=1]
1977 %954 = fptoui float %953 to i8 ; <i8> [#uses=1]
1978 %955 = zext i8 %954 to i32 ; <i32> [#uses=1]
1979 store i32 %955, i32* %iftmp.188, align 4
1982 bb212: ; preds = %bb211, %bb210
1983 %956 = load i32* %iftmp.188, align 4 ; <i32> [#uses=1]
1984 store i32 %956, i32* %iftmp.187, align 4
1987 bb213: ; preds = %bb208
1988 store i32 0, i32* %iftmp.187, align 4
1991 bb214: ; preds = %bb213, %bb212
1992 %957 = load i32* %iftmp.187, align 4 ; <i32> [#uses=1]
1993 store i32 %957, i32* %b195, align 4
1994 %958 = load double** %accum, align 4 ; <double*> [#uses=1]
1995 %959 = getelementptr inbounds double* %958, i32 3 ; <double*> [#uses=1]
1996 %960 = load double* %959, align 1 ; <double> [#uses=1]
1997 %961 = fptrunc double %960 to float ; <float> [#uses=1]
1998 %962 = load float* %value_addr, align 4 ; <float> [#uses=1]
1999 %963 = fmul float %961, %962 ; <float> [#uses=1]
2000 %964 = load float* %twoFiftyFive, align 4 ; <float> [#uses=1]
2001 %965 = fmul float %963, %964 ; <float> [#uses=1]
2002 %966 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2003 %967 = getelementptr inbounds %struct.GLDContextRec* %966, i32 0, i32 1 ; <float*> [#uses=1]
2004 %968 = load float* %967, align 4 ; <float> [#uses=1]
2005 %969 = fadd float %965, %968 ; <float> [#uses=1]
2006 %970 = fcmp uge float %969, 0.000000e+00 ; <i1> [#uses=1]
2007 br i1 %970, label %bb215, label %bb219
2009 bb215: ; preds = %bb214
2010 %971 = load double** %accum, align 4 ; <double*> [#uses=1]
2011 %972 = getelementptr inbounds double* %971, i32 3 ; <double*> [#uses=1]
2012 %973 = load double* %972, align 1 ; <double> [#uses=1]
2013 %974 = fptrunc double %973 to float ; <float> [#uses=1]
2014 %975 = load float* %value_addr, align 4 ; <float> [#uses=1]
2015 %976 = fmul float %974, %975 ; <float> [#uses=1]
2016 %977 = load float* %twoFiftyFive, align 4 ; <float> [#uses=1]
2017 %978 = fmul float %976, %977 ; <float> [#uses=1]
2018 %979 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2019 %980 = getelementptr inbounds %struct.GLDContextRec* %979, i32 0, i32 1 ; <float*> [#uses=1]
2020 %981 = load float* %980, align 4 ; <float> [#uses=1]
2021 %982 = fadd float %978, %981 ; <float> [#uses=1]
2022 %983 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2023 %984 = getelementptr inbounds %struct.GLDContextRec* %983, i32 0, i32 7 ; <float*> [#uses=1]
2024 %985 = load float* %984, align 4 ; <float> [#uses=1]
2025 %986 = fcmp ogt float %982, %985 ; <i1> [#uses=1]
2026 br i1 %986, label %bb216, label %bb217
2028 bb216: ; preds = %bb215
2029 %987 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2030 %988 = getelementptr inbounds %struct.GLDContextRec* %987, i32 0, i32 7 ; <float*> [#uses=1]
2031 %989 = load float* %988, align 4 ; <float> [#uses=1]
2032 %990 = fptoui float %989 to i8 ; <i8> [#uses=1]
2033 %991 = zext i8 %990 to i32 ; <i32> [#uses=1]
2034 store i32 %991, i32* %iftmp.190, align 4
2037 bb217: ; preds = %bb215
2038 %992 = load double** %accum, align 4 ; <double*> [#uses=1]
2039 %993 = getelementptr inbounds double* %992, i32 3 ; <double*> [#uses=1]
2040 %994 = load double* %993, align 1 ; <double> [#uses=1]
2041 %995 = fptrunc double %994 to float ; <float> [#uses=1]
2042 %996 = load float* %value_addr, align 4 ; <float> [#uses=1]
2043 %997 = fmul float %995, %996 ; <float> [#uses=1]
2044 %998 = load float* %twoFiftyFive, align 4 ; <float> [#uses=1]
2045 %999 = fmul float %997, %998 ; <float> [#uses=1]
2046 %1000 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2047 %1001 = getelementptr inbounds %struct.GLDContextRec* %1000, i32 0, i32 1 ; <float*> [#uses=1]
2048 %1002 = load float* %1001, align 4 ; <float> [#uses=1]
2049 %1003 = fadd float %999, %1002 ; <float> [#uses=1]
2050 %1004 = fptoui float %1003 to i8 ; <i8> [#uses=1]
2051 %1005 = zext i8 %1004 to i32 ; <i32> [#uses=1]
2052 store i32 %1005, i32* %iftmp.190, align 4
2055 bb218: ; preds = %bb217, %bb216
2056 %1006 = load i32* %iftmp.190, align 4 ; <i32> [#uses=1]
2057 store i32 %1006, i32* %iftmp.189, align 4
2060 bb219: ; preds = %bb214
2061 store i32 0, i32* %iftmp.189, align 4
2064 bb220: ; preds = %bb219, %bb218
2065 %1007 = load i32* %iftmp.189, align 4 ; <i32> [#uses=1]
2066 store i32 %1007, i32* %a196, align 4
2067 %1008 = load i32* %a196, align 4 ; <i32> [#uses=1]
2068 %1009 = shl i32 %1008, 24 ; <i32> [#uses=1]
2069 %1010 = load i32* %r193, align 4 ; <i32> [#uses=1]
2070 %1011 = shl i32 %1010, 16 ; <i32> [#uses=1]
2071 %1012 = or i32 %1009, %1011 ; <i32> [#uses=1]
2072 %1013 = load i32* %g194, align 4 ; <i32> [#uses=1]
2073 %1014 = shl i32 %1013, 8 ; <i32> [#uses=1]
2074 %1015 = or i32 %1012, %1014 ; <i32> [#uses=1]
2075 %1016 = load i32* %b195, align 4 ; <i32> [#uses=1]
2076 %1017 = or i32 %1015, %1016 ; <i32> [#uses=1]
2077 store i32 %1017, i32* %color, align 4
2078 %1018 = load i8* %swap, align 1 ; <i8> [#uses=1]
2079 %1019 = icmp ne i8 %1018, 0 ; <i1> [#uses=1]
2080 br i1 %1019, label %bb221, label %bb222
2082 bb221: ; preds = %bb220
2083 %1020 = load i32* %color, align 4 ; <i32> [#uses=1]
2084 %1021 = call i32 @_OSSwapInt32(i32 %1020) nounwind inlinehint ssp ; <i32> [#uses=1]
2085 store i32 %1021, i32* %color, align 4
2088 bb222: ; preds = %bb221, %bb220
2089 %1022 = load i8** %color_ptr111, align 4 ; <i8*> [#uses=1]
2090 %1023 = bitcast i8* %1022 to i32* ; <i32*> [#uses=1]
2091 %1024 = getelementptr inbounds i32* %1023, i32 0 ; <i32*> [#uses=1]
2092 %1025 = load i32* %color, align 4 ; <i32> [#uses=1]
2093 store i32 %1025, i32* %1024, align 1
2094 %1026 = load double** %accum, align 4 ; <double*> [#uses=1]
2095 %1027 = getelementptr inbounds double* %1026, i32 4 ; <double*> [#uses=1]
2096 store double* %1027, double** %accum, align 4
2097 %1028 = load i8** %color_ptr111, align 4 ; <i8*> [#uses=1]
2098 %1029 = getelementptr inbounds i8* %1028, i32 4 ; <i8*> [#uses=1]
2099 store i8* %1029, i8** %color_ptr111, align 4
2102 bb223: ; preds = %bb222, %bb191
2103 %1030 = load double** %accum, align 4 ; <double*> [#uses=1]
2104 %1031 = load double** %accum_end, align 4 ; <double*> [#uses=1]
2105 %1032 = icmp ult double* %1030, %1031 ; <i1> [#uses=1]
2106 br i1 %1032, label %bb192, label %bb224
2108 bb224: ; preds = %bb223, %bb190
2109 %1033 = load i32* %y, align 4 ; <i32> [#uses=1]
2110 %1034 = add i32 %1033, 1 ; <i32> [#uses=1]
2111 store i32 %1034, i32* %y, align 4
2112 %1035 = load i32* %offset, align 4 ; <i32> [#uses=1]
2113 %1036 = load i32* %y_inc, align 4 ; <i32> [#uses=1]
2114 %1037 = add i32 %1035, %1036 ; <i32> [#uses=1]
2115 store i32 %1037, i32* %offset, align 4
2118 bb225: ; preds = %bb224, %bb114
2119 %1038 = load i32* %y, align 4 ; <i32> [#uses=1]
2120 %1039 = load i32* %yl, align 4 ; <i32> [#uses=1]
2121 %1040 = icmp ult i32 %1038, %1039 ; <i1> [#uses=1]
2122 br i1 %1040, label %bb116, label %bb226
2124 bb226: ; preds = %bb225, %bb113
2125 %1041 = load i32* %draw_buffer, align 4 ; <i32> [#uses=1]
2126 %1042 = add nsw i32 %1041, 1 ; <i32> [#uses=1]
2127 store i32 %1042, i32* %draw_buffer, align 4
2130 bb227: ; preds = %bb226, %bb110
2131 %1043 = load i32* %draw_buffer, align 4 ; <i32> [#uses=1]
2132 %1044 = icmp sle i32 %1043, 7 ; <i1> [#uses=1]
2133 br i1 %1044, label %bb113, label %bb228
2135 bb228: ; preds = %bb227
2138 bb229: ; preds = %bb108
2139 %1045 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2140 %1046 = getelementptr inbounds %struct.GLDContextRec* %1045, i32 0, i32 28 ; <%struct.GLDFramebufferRec**> [#uses=1]
2141 %1047 = load %struct.GLDFramebufferRec** %1046, align 4 ; <%struct.GLDFramebufferRec*> [#uses=1]
2142 %1048 = icmp ne %struct.GLDFramebufferRec* %1047, null ; <i1> [#uses=1]
2143 br i1 %1048, label %bb230, label %bb231
2145 bb230: ; preds = %bb229
2146 %1049 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2147 %1050 = getelementptr inbounds %struct.GLDContextRec* %1049, i32 0, i32 28 ; <%struct.GLDFramebufferRec**> [#uses=1]
2148 %1051 = load %struct.GLDFramebufferRec** %1050, align 4 ; <%struct.GLDFramebufferRec*> [#uses=1]
2149 %1052 = getelementptr inbounds %struct.GLDFramebufferRec* %1051, i32 0, i32 2 ; <[10 x %struct.GLDFormat]*> [#uses=1]
2150 %1053 = getelementptr inbounds [10 x %struct.GLDFormat]* %1052, i32 0, i32 0 ; <%struct.GLDFormat*> [#uses=1]
2151 %1054 = getelementptr inbounds %struct.GLDFormat* %1053, i32 0, i32 7 ; <i32*> [#uses=1]
2152 %1055 = load i32* %1054, align 4 ; <i32> [#uses=1]
2153 %1056 = icmp eq i32 %1055, 5123 ; <i1> [#uses=1]
2154 %1057 = zext i1 %1056 to i8 ; <i8> [#uses=1]
2155 store i8 %1057, i8* %iftmp.192, align 1
2158 bb231: ; preds = %bb229
2159 %1058 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2160 %1059 = getelementptr inbounds %struct.GLDContextRec* %1058, i32 0, i32 56 ; <%struct.GLDFormat*> [#uses=1]
2161 %1060 = getelementptr inbounds %struct.GLDFormat* %1059, i32 0, i32 7 ; <i32*> [#uses=1]
2162 %1061 = load i32* %1060, align 4 ; <i32> [#uses=1]
2163 %1062 = icmp eq i32 %1061, 5123 ; <i1> [#uses=1]
2164 %1063 = zext i1 %1062 to i8 ; <i8> [#uses=1]
2165 store i8 %1063, i8* %iftmp.192, align 1
2168 bb232: ; preds = %bb231, %bb230
2169 %1064 = load i8* %iftmp.192, align 1 ; <i8> [#uses=1]
2170 %toBool233 = icmp ne i8 %1064, 0 ; <i1> [#uses=1]
2171 br i1 %toBool233, label %bb316, label %bb234
2173 bb234: ; preds = %bb232
2174 %1065 = load i32* %offset, align 4 ; <i32> [#uses=1]
2175 store i32 %1065, i32* %start_offset236, align 4
2176 store i32 0, i32* %draw_buffer, align 4
2179 bb237: ; preds = %bb315
2180 %1066 = load i32* %draw_buffer, align 4 ; <i32> [#uses=1]
2181 %1067 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2182 %1068 = getelementptr inbounds %struct.GLDContextRec* %1067, i32 0, i32 30 ; <%struct.GLDBufferstate*> [#uses=1]
2183 %1069 = getelementptr inbounds %struct.GLDBufferstate* %1068, i32 0, i32 12 ; <[8 x %union.GLSBuffer]*> [#uses=1]
2184 %1070 = getelementptr inbounds [8 x %union.GLSBuffer]* %1069, i32 0, i32 %1066 ; <%union.GLSBuffer*> [#uses=1]
2185 %1071 = getelementptr inbounds %union.GLSBuffer* %1070, i32 0, i32 0 ; <i8**> [#uses=1]
2186 %1072 = load i8** %1071, align 4 ; <i8*> [#uses=1]
2187 %1073 = icmp ne i8* %1072, null ; <i1> [#uses=1]
2188 br i1 %1073, label %bb238, label %bb314
2190 bb238: ; preds = %bb237
2191 %1074 = load i32* %draw_buffer, align 4 ; <i32> [#uses=1]
2192 %1075 = shl i32 1, %1074 ; <i32> [#uses=1]
2193 store i32 %1075, i32* %cur_draw_buffer_mask_bit239, align 4
2194 %1076 = load i32* %start_offset236, align 4 ; <i32> [#uses=1]
2195 store i32 %1076, i32* %offset, align 4
2196 %1077 = load i32* %cy, align 4 ; <i32> [#uses=1]
2197 store i32 %1077, i32* %y, align 4
2200 bb240: ; preds = %bb313
2201 %1078 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2202 %1079 = getelementptr inbounds %struct.GLDContextRec* %1078, i32 0, i32 30 ; <%struct.GLDBufferstate*> [#uses=1]
2203 %1080 = getelementptr inbounds %struct.GLDBufferstate* %1079, i32 0, i32 11 ; <%union.GLSBuffer*> [#uses=1]
2204 %1081 = getelementptr inbounds %union.GLSBuffer* %1080, i32 0, i32 0 ; <i8**> [#uses=1]
2205 %1082 = bitcast i8** %1081 to double** ; <double**> [#uses=1]
2206 %1083 = load double** %1082, align 4 ; <double*> [#uses=1]
2207 %1084 = load i32* %offset, align 4 ; <i32> [#uses=1]
2208 %1085 = mul i32 %1084, 4 ; <i32> [#uses=1]
2209 %1086 = getelementptr inbounds double* %1083, i32 %1085 ; <double*> [#uses=1]
2210 store double* %1086, double** %accum, align 4
2211 %1087 = load double** %accum, align 4 ; <double*> [#uses=1]
2212 %1088 = load i32* %cw4, align 4 ; <i32> [#uses=1]
2213 %1089 = getelementptr inbounds double* %1087, i32 %1088 ; <double*> [#uses=1]
2214 store double* %1089, double** %accum_end, align 4
2215 %1090 = load i32* %draw_buffer, align 4 ; <i32> [#uses=1]
2216 %1091 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2217 %1092 = getelementptr inbounds %struct.GLDContextRec* %1091, i32 0, i32 30 ; <%struct.GLDBufferstate*> [#uses=1]
2218 %1093 = getelementptr inbounds %struct.GLDBufferstate* %1092, i32 0, i32 12 ; <[8 x %union.GLSBuffer]*> [#uses=1]
2219 %1094 = getelementptr inbounds [8 x %union.GLSBuffer]* %1093, i32 0, i32 %1090 ; <%union.GLSBuffer*> [#uses=1]
2220 %1095 = getelementptr inbounds %union.GLSBuffer* %1094, i32 0, i32 0 ; <i8**> [#uses=1]
2221 %1096 = bitcast i8** %1095 to float** ; <float**> [#uses=1]
2222 %1097 = load float** %1096, align 4 ; <float*> [#uses=1]
2223 %1098 = load i32* %offset, align 4 ; <i32> [#uses=1]
2224 %1099 = mul i32 %1098, 4 ; <i32> [#uses=1]
2225 %1100 = getelementptr inbounds float* %1097, i32 %1099 ; <float*> [#uses=1]
2226 store float* %1100, float** %color_ptr235, align 4
2227 %1101 = load i8* %color_mask_enabled, align 1 ; <i8> [#uses=1]
2228 %1102 = icmp ne i8 %1101, 0 ; <i1> [#uses=1]
2229 br i1 %1102, label %bb241, label %bb281
2231 bb241: ; preds = %bb240
2234 bb242: ; preds = %bb279
2235 %1103 = load double** %accum, align 4 ; <double*> [#uses=1]
2236 %1104 = getelementptr inbounds double* %1103, i32 0 ; <double*> [#uses=1]
2237 %1105 = load double* %1104, align 1 ; <double> [#uses=1]
2238 %1106 = fptrunc double %1105 to float ; <float> [#uses=1]
2239 %1107 = load float* %value_addr, align 4 ; <float> [#uses=1]
2240 %1108 = fmul float %1106, %1107 ; <float> [#uses=1]
2241 store float %1108, float* %r243, align 4
2242 %1109 = load double** %accum, align 4 ; <double*> [#uses=1]
2243 %1110 = getelementptr inbounds double* %1109, i32 1 ; <double*> [#uses=1]
2244 %1111 = load double* %1110, align 1 ; <double> [#uses=1]
2245 %1112 = fptrunc double %1111 to float ; <float> [#uses=1]
2246 %1113 = load float* %value_addr, align 4 ; <float> [#uses=1]
2247 %1114 = fmul float %1112, %1113 ; <float> [#uses=1]
2248 store float %1114, float* %g244, align 4
2249 %1115 = load double** %accum, align 4 ; <double*> [#uses=1]
2250 %1116 = getelementptr inbounds double* %1115, i32 2 ; <double*> [#uses=1]
2251 %1117 = load double* %1116, align 1 ; <double> [#uses=1]
2252 %1118 = fptrunc double %1117 to float ; <float> [#uses=1]
2253 %1119 = load float* %value_addr, align 4 ; <float> [#uses=1]
2254 %1120 = fmul float %1118, %1119 ; <float> [#uses=1]
2255 store float %1120, float* %b245, align 4
2256 %1121 = load double** %accum, align 4 ; <double*> [#uses=1]
2257 %1122 = getelementptr inbounds double* %1121, i32 3 ; <double*> [#uses=1]
2258 %1123 = load double* %1122, align 1 ; <double> [#uses=1]
2259 %1124 = fptrunc double %1123 to float ; <float> [#uses=1]
2260 %1125 = load float* %value_addr, align 4 ; <float> [#uses=1]
2261 %1126 = fmul float %1124, %1125 ; <float> [#uses=1]
2262 store float %1126, float* %a246, align 4
2263 %1127 = load %struct.GLDState** %state_addr, align 4 ; <%struct.GLDState*> [#uses=1]
2264 %1128 = getelementptr inbounds %struct.GLDState* %1127, i32 0, i32 23 ; <%struct.GLDMaskMode*> [#uses=1]
2265 %1129 = getelementptr inbounds %struct.GLDMaskMode* %1128, i32 0, i32 2 ; <i8*> [#uses=1]
2266 %1130 = load i8* %1129, align 16 ; <i8> [#uses=1]
2267 %1131 = zext i8 %1130 to i32 ; <i32> [#uses=1]
2268 %1132 = load i32* %cur_draw_buffer_mask_bit239, align 4 ; <i32> [#uses=1]
2269 %1133 = and i32 %1131, %1132 ; <i32> [#uses=1]
2270 %1134 = icmp ne i32 %1133, 0 ; <i1> [#uses=1]
2271 br i1 %1134, label %bb247, label %bb254
2273 bb247: ; preds = %bb242
2274 %1135 = load float* %r243, align 4 ; <float> [#uses=1]
2275 %1136 = fcmp uge float %1135, 0.000000e+00 ; <i1> [#uses=1]
2276 br i1 %1136, label %bb248, label %bb252
2278 bb248: ; preds = %bb247
2279 %1137 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2280 %1138 = getelementptr inbounds %struct.GLDContextRec* %1137, i32 0, i32 2 ; <float*> [#uses=1]
2281 %1139 = load float* %1138, align 4 ; <float> [#uses=1]
2282 %1140 = load float* %r243, align 4 ; <float> [#uses=1]
2283 %1141 = fcmp olt float %1139, %1140 ; <i1> [#uses=1]
2284 br i1 %1141, label %bb249, label %bb250
2286 bb249: ; preds = %bb248
2287 %1142 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2288 %1143 = getelementptr inbounds %struct.GLDContextRec* %1142, i32 0, i32 2 ; <float*> [#uses=1]
2289 %1144 = load float* %1143, align 4 ; <float> [#uses=1]
2290 store float %1144, float* %iftmp.196, align 4
2293 bb250: ; preds = %bb248
2294 %1145 = load float* %r243, align 4 ; <float> [#uses=1]
2295 store float %1145, float* %iftmp.196, align 4
2298 bb251: ; preds = %bb250, %bb249
2299 %1146 = load float* %iftmp.196, align 4 ; <float> [#uses=1]
2300 store float %1146, float* %iftmp.195, align 4
2303 bb252: ; preds = %bb247
2304 store float 0.000000e+00, float* %iftmp.195, align 4
2307 bb253: ; preds = %bb252, %bb251
2308 %1147 = load float** %color_ptr235, align 4 ; <float*> [#uses=1]
2309 %1148 = getelementptr inbounds float* %1147, i32 0 ; <float*> [#uses=1]
2310 %1149 = load float* %iftmp.195, align 4 ; <float> [#uses=1]
2311 store float %1149, float* %1148, align 1
2314 bb254: ; preds = %bb253, %bb242
2315 %1150 = load %struct.GLDState** %state_addr, align 4 ; <%struct.GLDState*> [#uses=1]
2316 %1151 = getelementptr inbounds %struct.GLDState* %1150, i32 0, i32 23 ; <%struct.GLDMaskMode*> [#uses=1]
2317 %1152 = getelementptr inbounds %struct.GLDMaskMode* %1151, i32 0, i32 3 ; <i8*> [#uses=1]
2318 %1153 = load i8* %1152, align 1 ; <i8> [#uses=1]
2319 %1154 = zext i8 %1153 to i32 ; <i32> [#uses=1]
2320 %1155 = load i32* %cur_draw_buffer_mask_bit239, align 4 ; <i32> [#uses=1]
2321 %1156 = and i32 %1154, %1155 ; <i32> [#uses=1]
2322 %1157 = icmp ne i32 %1156, 0 ; <i1> [#uses=1]
2323 br i1 %1157, label %bb255, label %bb262
2325 bb255: ; preds = %bb254
2326 %1158 = load float* %g244, align 4 ; <float> [#uses=1]
2327 %1159 = fcmp uge float %1158, 0.000000e+00 ; <i1> [#uses=1]
2328 br i1 %1159, label %bb256, label %bb260
2330 bb256: ; preds = %bb255
2331 %1160 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2332 %1161 = getelementptr inbounds %struct.GLDContextRec* %1160, i32 0, i32 2 ; <float*> [#uses=1]
2333 %1162 = load float* %1161, align 4 ; <float> [#uses=1]
2334 %1163 = load float* %g244, align 4 ; <float> [#uses=1]
2335 %1164 = fcmp olt float %1162, %1163 ; <i1> [#uses=1]
2336 br i1 %1164, label %bb257, label %bb258
2338 bb257: ; preds = %bb256
2339 %1165 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2340 %1166 = getelementptr inbounds %struct.GLDContextRec* %1165, i32 0, i32 2 ; <float*> [#uses=1]
2341 %1167 = load float* %1166, align 4 ; <float> [#uses=1]
2342 store float %1167, float* %iftmp.198, align 4
2345 bb258: ; preds = %bb256
2346 %1168 = load float* %g244, align 4 ; <float> [#uses=1]
2347 store float %1168, float* %iftmp.198, align 4
2350 bb259: ; preds = %bb258, %bb257
2351 %1169 = load float* %iftmp.198, align 4 ; <float> [#uses=1]
2352 store float %1169, float* %iftmp.197, align 4
2355 bb260: ; preds = %bb255
2356 store float 0.000000e+00, float* %iftmp.197, align 4
2359 bb261: ; preds = %bb260, %bb259
2360 %1170 = load float** %color_ptr235, align 4 ; <float*> [#uses=1]
2361 %1171 = getelementptr inbounds float* %1170, i32 1 ; <float*> [#uses=1]
2362 %1172 = load float* %iftmp.197, align 4 ; <float> [#uses=1]
2363 store float %1172, float* %1171, align 1
2366 bb262: ; preds = %bb261, %bb254
2367 %1173 = load %struct.GLDState** %state_addr, align 4 ; <%struct.GLDState*> [#uses=1]
2368 %1174 = getelementptr inbounds %struct.GLDState* %1173, i32 0, i32 23 ; <%struct.GLDMaskMode*> [#uses=1]
2369 %1175 = getelementptr inbounds %struct.GLDMaskMode* %1174, i32 0, i32 4 ; <i8*> [#uses=1]
2370 %1176 = load i8* %1175, align 2 ; <i8> [#uses=1]
2371 %1177 = zext i8 %1176 to i32 ; <i32> [#uses=1]
2372 %1178 = load i32* %cur_draw_buffer_mask_bit239, align 4 ; <i32> [#uses=1]
2373 %1179 = and i32 %1177, %1178 ; <i32> [#uses=1]
2374 %1180 = icmp ne i32 %1179, 0 ; <i1> [#uses=1]
2375 br i1 %1180, label %bb263, label %bb270
2377 bb263: ; preds = %bb262
2378 %1181 = load float* %b245, align 4 ; <float> [#uses=1]
2379 %1182 = fcmp uge float %1181, 0.000000e+00 ; <i1> [#uses=1]
2380 br i1 %1182, label %bb264, label %bb268
2382 bb264: ; preds = %bb263
2383 %1183 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2384 %1184 = getelementptr inbounds %struct.GLDContextRec* %1183, i32 0, i32 2 ; <float*> [#uses=1]
2385 %1185 = load float* %1184, align 4 ; <float> [#uses=1]
2386 %1186 = load float* %b245, align 4 ; <float> [#uses=1]
2387 %1187 = fcmp olt float %1185, %1186 ; <i1> [#uses=1]
2388 br i1 %1187, label %bb265, label %bb266
2390 bb265: ; preds = %bb264
2391 %1188 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2392 %1189 = getelementptr inbounds %struct.GLDContextRec* %1188, i32 0, i32 2 ; <float*> [#uses=1]
2393 %1190 = load float* %1189, align 4 ; <float> [#uses=1]
2394 store float %1190, float* %iftmp.200, align 4
2397 bb266: ; preds = %bb264
2398 %1191 = load float* %b245, align 4 ; <float> [#uses=1]
2399 store float %1191, float* %iftmp.200, align 4
2402 bb267: ; preds = %bb266, %bb265
2403 %1192 = load float* %iftmp.200, align 4 ; <float> [#uses=1]
2404 store float %1192, float* %iftmp.199, align 4
2407 bb268: ; preds = %bb263
2408 store float 0.000000e+00, float* %iftmp.199, align 4
2411 bb269: ; preds = %bb268, %bb267
2412 %1193 = load float** %color_ptr235, align 4 ; <float*> [#uses=1]
2413 %1194 = getelementptr inbounds float* %1193, i32 2 ; <float*> [#uses=1]
2414 %1195 = load float* %iftmp.199, align 4 ; <float> [#uses=1]
2415 store float %1195, float* %1194, align 1
2418 bb270: ; preds = %bb269, %bb262
2419 %1196 = load %struct.GLDState** %state_addr, align 4 ; <%struct.GLDState*> [#uses=1]
2420 %1197 = getelementptr inbounds %struct.GLDState* %1196, i32 0, i32 23 ; <%struct.GLDMaskMode*> [#uses=1]
2421 %1198 = getelementptr inbounds %struct.GLDMaskMode* %1197, i32 0, i32 5 ; <i8*> [#uses=1]
2422 %1199 = load i8* %1198, align 1 ; <i8> [#uses=1]
2423 %1200 = zext i8 %1199 to i32 ; <i32> [#uses=1]
2424 %1201 = load i32* %cur_draw_buffer_mask_bit239, align 4 ; <i32> [#uses=1]
2425 %1202 = and i32 %1200, %1201 ; <i32> [#uses=1]
2426 %1203 = icmp ne i32 %1202, 0 ; <i1> [#uses=1]
2427 br i1 %1203, label %bb271, label %bb278
2429 bb271: ; preds = %bb270
2430 %1204 = load float* %a246, align 4 ; <float> [#uses=1]
2431 %1205 = fcmp uge float %1204, 0.000000e+00 ; <i1> [#uses=1]
2432 br i1 %1205, label %bb272, label %bb276
2434 bb272: ; preds = %bb271
2435 %1206 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2436 %1207 = getelementptr inbounds %struct.GLDContextRec* %1206, i32 0, i32 2 ; <float*> [#uses=1]
2437 %1208 = load float* %1207, align 4 ; <float> [#uses=1]
2438 %1209 = load float* %a246, align 4 ; <float> [#uses=1]
2439 %1210 = fcmp olt float %1208, %1209 ; <i1> [#uses=1]
2440 br i1 %1210, label %bb273, label %bb274
2442 bb273: ; preds = %bb272
2443 %1211 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2444 %1212 = getelementptr inbounds %struct.GLDContextRec* %1211, i32 0, i32 2 ; <float*> [#uses=1]
2445 %1213 = load float* %1212, align 4 ; <float> [#uses=1]
2446 store float %1213, float* %iftmp.202, align 4
2449 bb274: ; preds = %bb272
2450 %1214 = load float* %a246, align 4 ; <float> [#uses=1]
2451 store float %1214, float* %iftmp.202, align 4
2454 bb275: ; preds = %bb274, %bb273
2455 %1215 = load float* %iftmp.202, align 4 ; <float> [#uses=1]
2456 store float %1215, float* %iftmp.201, align 4
2459 bb276: ; preds = %bb271
2460 store float 0.000000e+00, float* %iftmp.201, align 4
2463 bb277: ; preds = %bb276, %bb275
2464 %1216 = load float** %color_ptr235, align 4 ; <float*> [#uses=1]
2465 %1217 = getelementptr inbounds float* %1216, i32 3 ; <float*> [#uses=1]
2466 %1218 = load float* %iftmp.201, align 4 ; <float> [#uses=1]
2467 store float %1218, float* %1217, align 1
2470 bb278: ; preds = %bb277, %bb270
2471 %1219 = load double** %accum, align 4 ; <double*> [#uses=1]
2472 %1220 = getelementptr inbounds double* %1219, i32 4 ; <double*> [#uses=1]
2473 store double* %1220, double** %accum, align 4
2474 %1221 = load float** %color_ptr235, align 4 ; <float*> [#uses=1]
2475 %1222 = getelementptr inbounds float* %1221, i32 4 ; <float*> [#uses=1]
2476 store float* %1222, float** %color_ptr235, align 4
2479 bb279: ; preds = %bb278, %bb241
2480 %1223 = load double** %accum, align 4 ; <double*> [#uses=1]
2481 %1224 = load double** %accum_end, align 4 ; <double*> [#uses=1]
2482 %1225 = icmp ult double* %1223, %1224 ; <i1> [#uses=1]
2483 br i1 %1225, label %bb242, label %bb280
2485 bb280: ; preds = %bb279
2488 bb281: ; preds = %bb240
2491 bb282: ; preds = %bb311
2492 %1226 = load double** %accum, align 4 ; <double*> [#uses=1]
2493 %1227 = getelementptr inbounds double* %1226, i32 0 ; <double*> [#uses=1]
2494 %1228 = load double* %1227, align 1 ; <double> [#uses=1]
2495 %1229 = fptrunc double %1228 to float ; <float> [#uses=1]
2496 %1230 = load float* %value_addr, align 4 ; <float> [#uses=1]
2497 %1231 = fmul float %1229, %1230 ; <float> [#uses=1]
2498 store float %1231, float* %r283, align 4
2499 %1232 = load double** %accum, align 4 ; <double*> [#uses=1]
2500 %1233 = getelementptr inbounds double* %1232, i32 1 ; <double*> [#uses=1]
2501 %1234 = load double* %1233, align 1 ; <double> [#uses=1]
2502 %1235 = fptrunc double %1234 to float ; <float> [#uses=1]
2503 %1236 = load float* %value_addr, align 4 ; <float> [#uses=1]
2504 %1237 = fmul float %1235, %1236 ; <float> [#uses=1]
2505 store float %1237, float* %g284, align 4
2506 %1238 = load double** %accum, align 4 ; <double*> [#uses=1]
2507 %1239 = getelementptr inbounds double* %1238, i32 2 ; <double*> [#uses=1]
2508 %1240 = load double* %1239, align 1 ; <double> [#uses=1]
2509 %1241 = fptrunc double %1240 to float ; <float> [#uses=1]
2510 %1242 = load float* %value_addr, align 4 ; <float> [#uses=1]
2511 %1243 = fmul float %1241, %1242 ; <float> [#uses=1]
2512 store float %1243, float* %b285, align 4
2513 %1244 = load double** %accum, align 4 ; <double*> [#uses=1]
2514 %1245 = getelementptr inbounds double* %1244, i32 3 ; <double*> [#uses=1]
2515 %1246 = load double* %1245, align 1 ; <double> [#uses=1]
2516 %1247 = fptrunc double %1246 to float ; <float> [#uses=1]
2517 %1248 = load float* %value_addr, align 4 ; <float> [#uses=1]
2518 %1249 = fmul float %1247, %1248 ; <float> [#uses=1]
2519 store float %1249, float* %a286, align 4
2520 %1250 = load float* %r283, align 4 ; <float> [#uses=1]
2521 %1251 = fcmp uge float %1250, 0.000000e+00 ; <i1> [#uses=1]
2522 br i1 %1251, label %bb287, label %bb291
2524 bb287: ; preds = %bb282
2525 %1252 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2526 %1253 = getelementptr inbounds %struct.GLDContextRec* %1252, i32 0, i32 2 ; <float*> [#uses=1]
2527 %1254 = load float* %1253, align 4 ; <float> [#uses=1]
2528 %1255 = load float* %r283, align 4 ; <float> [#uses=1]
2529 %1256 = fcmp olt float %1254, %1255 ; <i1> [#uses=1]
2530 br i1 %1256, label %bb288, label %bb289
2532 bb288: ; preds = %bb287
2533 %1257 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2534 %1258 = getelementptr inbounds %struct.GLDContextRec* %1257, i32 0, i32 2 ; <float*> [#uses=1]
2535 %1259 = load float* %1258, align 4 ; <float> [#uses=1]
2536 store float %1259, float* %iftmp.204, align 4
2539 bb289: ; preds = %bb287
2540 %1260 = load float* %r283, align 4 ; <float> [#uses=1]
2541 store float %1260, float* %iftmp.204, align 4
2544 bb290: ; preds = %bb289, %bb288
2545 %1261 = load float* %iftmp.204, align 4 ; <float> [#uses=1]
2546 store float %1261, float* %iftmp.203, align 4
2549 bb291: ; preds = %bb282
2550 store float 0.000000e+00, float* %iftmp.203, align 4
2553 bb292: ; preds = %bb291, %bb290
2554 %1262 = load float** %color_ptr235, align 4 ; <float*> [#uses=1]
2555 %1263 = getelementptr inbounds float* %1262, i32 0 ; <float*> [#uses=1]
2556 %1264 = load float* %iftmp.203, align 4 ; <float> [#uses=1]
2557 store float %1264, float* %1263, align 1
2558 %1265 = load float* %g284, align 4 ; <float> [#uses=1]
2559 %1266 = fcmp uge float %1265, 0.000000e+00 ; <i1> [#uses=1]
2560 br i1 %1266, label %bb293, label %bb297
2562 bb293: ; preds = %bb292
2563 %1267 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2564 %1268 = getelementptr inbounds %struct.GLDContextRec* %1267, i32 0, i32 2 ; <float*> [#uses=1]
2565 %1269 = load float* %1268, align 4 ; <float> [#uses=1]
2566 %1270 = load float* %g284, align 4 ; <float> [#uses=1]
2567 %1271 = fcmp olt float %1269, %1270 ; <i1> [#uses=1]
2568 br i1 %1271, label %bb294, label %bb295
2570 bb294: ; preds = %bb293
2571 %1272 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2572 %1273 = getelementptr inbounds %struct.GLDContextRec* %1272, i32 0, i32 2 ; <float*> [#uses=1]
2573 %1274 = load float* %1273, align 4 ; <float> [#uses=1]
2574 store float %1274, float* %iftmp.206, align 4
2577 bb295: ; preds = %bb293
2578 %1275 = load float* %g284, align 4 ; <float> [#uses=1]
2579 store float %1275, float* %iftmp.206, align 4
2582 bb296: ; preds = %bb295, %bb294
2583 %1276 = load float* %iftmp.206, align 4 ; <float> [#uses=1]
2584 store float %1276, float* %iftmp.205, align 4
2587 bb297: ; preds = %bb292
2588 store float 0.000000e+00, float* %iftmp.205, align 4
2591 bb298: ; preds = %bb297, %bb296
2592 %1277 = load float** %color_ptr235, align 4 ; <float*> [#uses=1]
2593 %1278 = getelementptr inbounds float* %1277, i32 1 ; <float*> [#uses=1]
2594 %1279 = load float* %iftmp.205, align 4 ; <float> [#uses=1]
2595 store float %1279, float* %1278, align 1
2596 %1280 = load float* %b285, align 4 ; <float> [#uses=1]
2597 %1281 = fcmp uge float %1280, 0.000000e+00 ; <i1> [#uses=1]
2598 br i1 %1281, label %bb299, label %bb303
2600 bb299: ; preds = %bb298
2601 %1282 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2602 %1283 = getelementptr inbounds %struct.GLDContextRec* %1282, i32 0, i32 2 ; <float*> [#uses=1]
2603 %1284 = load float* %1283, align 4 ; <float> [#uses=1]
2604 %1285 = load float* %b285, align 4 ; <float> [#uses=1]
2605 %1286 = fcmp olt float %1284, %1285 ; <i1> [#uses=1]
2606 br i1 %1286, label %bb300, label %bb301
2608 bb300: ; preds = %bb299
2609 %1287 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2610 %1288 = getelementptr inbounds %struct.GLDContextRec* %1287, i32 0, i32 2 ; <float*> [#uses=1]
2611 %1289 = load float* %1288, align 4 ; <float> [#uses=1]
2612 store float %1289, float* %iftmp.208, align 4
2615 bb301: ; preds = %bb299
2616 %1290 = load float* %b285, align 4 ; <float> [#uses=1]
2617 store float %1290, float* %iftmp.208, align 4
2620 bb302: ; preds = %bb301, %bb300
2621 %1291 = load float* %iftmp.208, align 4 ; <float> [#uses=1]
2622 store float %1291, float* %iftmp.207, align 4
2625 bb303: ; preds = %bb298
2626 store float 0.000000e+00, float* %iftmp.207, align 4
2629 bb304: ; preds = %bb303, %bb302
2630 %1292 = load float** %color_ptr235, align 4 ; <float*> [#uses=1]
2631 %1293 = getelementptr inbounds float* %1292, i32 2 ; <float*> [#uses=1]
2632 %1294 = load float* %iftmp.207, align 4 ; <float> [#uses=1]
2633 store float %1294, float* %1293, align 1
2634 %1295 = load float* %a286, align 4 ; <float> [#uses=1]
2635 %1296 = fcmp uge float %1295, 0.000000e+00 ; <i1> [#uses=1]
2636 br i1 %1296, label %bb305, label %bb309
2638 bb305: ; preds = %bb304
2639 %1297 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2640 %1298 = getelementptr inbounds %struct.GLDContextRec* %1297, i32 0, i32 2 ; <float*> [#uses=1]
2641 %1299 = load float* %1298, align 4 ; <float> [#uses=1]
2642 %1300 = load float* %a286, align 4 ; <float> [#uses=1]
2643 %1301 = fcmp olt float %1299, %1300 ; <i1> [#uses=1]
2644 br i1 %1301, label %bb306, label %bb307
2646 bb306: ; preds = %bb305
2647 %1302 = load %struct.GLDContextRec** %ctx_addr, align 4 ; <%struct.GLDContextRec*> [#uses=1]
2648 %1303 = getelementptr inbounds %struct.GLDContextRec* %1302, i32 0, i32 2 ; <float*> [#uses=1]
2649 %1304 = load float* %1303, align 4 ; <float> [#uses=1]
2650 store float %1304, float* %iftmp.210, align 4
2653 bb307: ; preds = %bb305
2654 %1305 = load float* %a286, align 4 ; <float> [#uses=1]
2655 store float %1305, float* %iftmp.210, align 4
2658 bb308: ; preds = %bb307, %bb306
2659 %1306 = load float* %iftmp.210, align 4 ; <float> [#uses=1]
2660 store float %1306, float* %iftmp.209, align 4
2663 bb309: ; preds = %bb304
2664 store float 0.000000e+00, float* %iftmp.209, align 4
2667 bb310: ; preds = %bb309, %bb308
2668 %1307 = load float** %color_ptr235, align 4 ; <float*> [#uses=1]
2669 %1308 = getelementptr inbounds float* %1307, i32 3 ; <float*> [#uses=1]
2670 %1309 = load float* %iftmp.209, align 4 ; <float> [#uses=1]
2671 store float %1309, float* %1308, align 1
2672 %1310 = load double** %accum, align 4 ; <double*> [#uses=1]
2673 %1311 = getelementptr inbounds double* %1310, i32 4 ; <double*> [#uses=1]
2674 store double* %1311, double** %accum, align 4
2675 %1312 = load float** %color_ptr235, align 4 ; <float*> [#uses=1]
2676 %1313 = getelementptr inbounds float* %1312, i32 4 ; <float*> [#uses=1]
2677 store float* %1313, float** %color_ptr235, align 4
2680 bb311: ; preds = %bb310, %bb281
2681 %1314 = load double** %accum, align 4 ; <double*> [#uses=1]
2682 %1315 = load double** %accum_end, align 4 ; <double*> [#uses=1]
2683 %1316 = icmp ult double* %1314, %1315 ; <i1> [#uses=1]
2684 br i1 %1316, label %bb282, label %bb312
2686 bb312: ; preds = %bb311, %bb280
2687 %1317 = load i32* %y, align 4 ; <i32> [#uses=1]
2688 %1318 = add i32 %1317, 1 ; <i32> [#uses=1]
2689 store i32 %1318, i32* %y, align 4
2690 %1319 = load i32* %offset, align 4 ; <i32> [#uses=1]
2691 %1320 = load i32* %y_inc, align 4 ; <i32> [#uses=1]
2692 %1321 = add i32 %1319, %1320 ; <i32> [#uses=1]
2693 store i32 %1321, i32* %offset, align 4
2696 bb313: ; preds = %bb312, %bb238
2697 %1322 = load i32* %y, align 4 ; <i32> [#uses=1]
2698 %1323 = load i32* %yl, align 4 ; <i32> [#uses=1]
2699 %1324 = icmp ult i32 %1322, %1323 ; <i1> [#uses=1]
2700 br i1 %1324, label %bb240, label %bb314
2702 bb314: ; preds = %bb313, %bb237
2703 %1325 = load i32* %draw_buffer, align 4 ; <i32> [#uses=1]
2704 %1326 = add nsw i32 %1325, 1 ; <i32> [#uses=1]
2705 store i32 %1326, i32* %draw_buffer, align 4
2708 bb315: ; preds = %bb314, %bb234
2709 %1327 = load i32* %draw_buffer, align 4 ; <i32> [#uses=1]
2710 %1328 = icmp sle i32 %1327, 7 ; <i1> [#uses=1]
2711 br i1 %1328, label %bb237, label %bb316
2713 bb316: ; preds = %bb315, %bb232, %bb228, %bb6
2716 return: ; preds = %bb316