Separate unrelated cases that once shared a numeric value
[oota-llvm.git] / test / CodeGen / X86 / 2010-05-25-FP_TO_INT-crash.ll
1 ; RUN: llc -O0 -march=x86 -mattr=+sse3 %s
2 ; Formerly crashed - PR 7191 / 8023512
3 ; ModuleID = '<stdin>'
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"
6
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 }
145
146 declare i16 @_OSSwapInt16(i16 zeroext %_data) nounwind inlinehint ssp
147
148 declare i32 @_OSSwapInt32(i32 %_data) nounwind inlinehint ssp
149
150 declare i32 @llvm.bswap.i32(i32) nounwind readnone
151
152 define void @gldAccumReturn(%struct.GLDContextRec* %ctx, %struct.GLDState* %state, float %value) nounwind ssp {
153 entry:
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
356
357 bb:                                               ; preds = %entry
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
361
362 bb6:                                              ; preds = %bb, %entry
363   br label %bb316
364
365 bb7:                                              ; preds = %bb
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
383
384 bb8:                                              ; preds = %bb7
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
392   br label %bb10
393
394 bb9:                                              ; preds = %bb7
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
402   br label %bb10
403
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
408
409 bb12:                                             ; preds = %bb10
410   %100 = load i32* %cy, align 4                   ; <i32> [#uses=1]
411   store i32 %100, i32* %iftmp.140, align 4
412   br label %bb14
413
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
424   br label %bb14
425
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
443
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
452   br label %bb17
453
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
462   br label %bb17
463
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
468
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
473   br label %bb20
474
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
481
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
493   br label %bb23
494
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
503   br label %bb23
504
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
509
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
518   br label %bb104
519
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
532
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
539   br label %bb102
540
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
570
571 bb29:                                             ; preds = %bb28
572   br label %bb68
573
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
624
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
630
631 bb32:                                             ; preds = %bb31
632   %244 = load float* %thirtyOne, align 4          ; <float> [#uses=1]
633   store float %244, float* %iftmp.149, align 4
634   br label %bb34
635
636 bb33:                                             ; preds = %bb31
637   %245 = load float* %r, align 4                  ; <float> [#uses=1]
638   store float %245, float* %iftmp.149, align 4
639   br label %bb34
640
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
644   br label %bb36
645
646 bb35:                                             ; preds = %bb30
647   store float 0.000000e+00, float* %iftmp.148, align 4
648   br label %bb36
649
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
656
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
662
663 bb38:                                             ; preds = %bb37
664   %253 = load float* %thirtyOne, align 4          ; <float> [#uses=1]
665   store float %253, float* %iftmp.151, align 4
666   br label %bb40
667
668 bb39:                                             ; preds = %bb37
669   %254 = load float* %g, align 4                  ; <float> [#uses=1]
670   store float %254, float* %iftmp.151, align 4
671   br label %bb40
672
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
676   br label %bb42
677
678 bb41:                                             ; preds = %bb36
679   store float 0.000000e+00, float* %iftmp.150, align 4
680   br label %bb42
681
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
688
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
694
695 bb44:                                             ; preds = %bb43
696   %262 = load float* %thirtyOne, align 4          ; <float> [#uses=1]
697   store float %262, float* %iftmp.153, align 4
698   br label %bb46
699
700 bb45:                                             ; preds = %bb43
701   %263 = load float* %b, align 4                  ; <float> [#uses=1]
702   store float %263, float* %iftmp.153, align 4
703   br label %bb46
704
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
708   br label %bb48
709
710 bb47:                                             ; preds = %bb42
711   store float 0.000000e+00, float* %iftmp.152, align 4
712   br label %bb48
713
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
720
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
726
727 bb50:                                             ; preds = %bb49
728   %271 = load float* %thirtyOne, align 4          ; <float> [#uses=1]
729   store float %271, float* %iftmp.155, align 4
730   br label %bb52
731
732 bb51:                                             ; preds = %bb49
733   %272 = load float* %a, align 4                  ; <float> [#uses=1]
734   store float %272, float* %iftmp.155, align 4
735   br label %bb52
736
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
740   br label %bb54
741
742 bb53:                                             ; preds = %bb48
743   store float 0.000000e+00, float* %iftmp.154, align 4
744   br label %bb54
745
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
755
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
762   br label %bb56
763
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
774
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
785   br label %bb58
786
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
797
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
808   br label %bb60
809
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
820
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
830   br label %bb62
831
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
842
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
850
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
855   br label %bb65
856
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
861
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
868   br label %bb67
869
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
880   br label %bb68
881
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
887
888 bb69:                                             ; preds = %bb68
889   br label %bb101
890
891 bb70:                                             ; preds = %bb28
892   br label %bb100
893
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
944
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
950
951 bb73:                                             ; preds = %bb72
952   %407 = load float* %thirtyOne, align 4          ; <float> [#uses=1]
953   store float %407, float* %iftmp.157, align 4
954   br label %bb75
955
956 bb74:                                             ; preds = %bb72
957   %408 = load float* %r, align 4                  ; <float> [#uses=1]
958   store float %408, float* %iftmp.157, align 4
959   br label %bb75
960
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
964   br label %bb77
965
966 bb76:                                             ; preds = %bb71
967   store float 0.000000e+00, float* %iftmp.156, align 4
968   br label %bb77
969
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
976
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
982
983 bb79:                                             ; preds = %bb78
984   %416 = load float* %thirtyOne, align 4          ; <float> [#uses=1]
985   store float %416, float* %iftmp.159, align 4
986   br label %bb81
987
988 bb80:                                             ; preds = %bb78
989   %417 = load float* %g, align 4                  ; <float> [#uses=1]
990   store float %417, float* %iftmp.159, align 4
991   br label %bb81
992
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
996   br label %bb83
997
998 bb82:                                             ; preds = %bb77
999   store float 0.000000e+00, float* %iftmp.158, align 4
1000   br label %bb83
1001
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
1008
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
1014
1015 bb85:                                             ; preds = %bb84
1016   %425 = load float* %thirtyOne, align 4          ; <float> [#uses=1]
1017   store float %425, float* %iftmp.161, align 4
1018   br label %bb87
1019
1020 bb86:                                             ; preds = %bb84
1021   %426 = load float* %b, align 4                  ; <float> [#uses=1]
1022   store float %426, float* %iftmp.161, align 4
1023   br label %bb87
1024
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
1028   br label %bb89
1029
1030 bb88:                                             ; preds = %bb83
1031   store float 0.000000e+00, float* %iftmp.160, align 4
1032   br label %bb89
1033
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
1040
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
1046
1047 bb91:                                             ; preds = %bb90
1048   %434 = load float* %thirtyOne, align 4          ; <float> [#uses=1]
1049   store float %434, float* %iftmp.163, align 4
1050   br label %bb93
1051
1052 bb92:                                             ; preds = %bb90
1053   %435 = load float* %a, align 4                  ; <float> [#uses=1]
1054   store float %435, float* %iftmp.163, align 4
1055   br label %bb93
1056
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
1060   br label %bb95
1061
1062 bb94:                                             ; preds = %bb89
1063   store float 0.000000e+00, float* %iftmp.162, align 4
1064   br label %bb95
1065
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
1096
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
1101   br label %bb97
1102
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
1107
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
1114   br label %bb99
1115
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
1126   br label %bb100
1127
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
1133
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
1142   br label %bb102
1143
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
1149
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
1154   br label %bb104
1155
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
1160
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
1167
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
1179   br label %bb108
1180
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
1189   br label %bb108
1190
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
1195
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
1204   br label %bb227
1205
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
1218
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
1225   br label %bb225
1226
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
1257
1258 bb117:                                            ; preds = %bb116
1259   br label %bb189
1260
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
1317
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
1328
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
1333
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
1341
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
1348   br label %bb128
1349
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
1354   br label %bb128
1355
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
1359   br label %bb130
1360
1361 bb129:                                            ; preds = %bb124
1362   store i8 0, i8* %iftmp.167, align 1
1363   br label %bb130
1364
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
1370   br label %bb131
1371
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
1382
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
1387
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
1395
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
1402   br label %bb136
1403
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
1408   br label %bb136
1409
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
1413   br label %bb138
1414
1415 bb137:                                            ; preds = %bb132
1416   store i8 0, i8* %iftmp.169, align 1
1417   br label %bb138
1418
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
1424   br label %bb139
1425
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
1436
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
1441
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
1449
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
1456   br label %bb144
1457
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
1462   br label %bb144
1463
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
1467   br label %bb146
1468
1469 bb145:                                            ; preds = %bb140
1470   store i8 0, i8* %iftmp.171, align 1
1471   br label %bb146
1472
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
1478   br label %bb147
1479
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
1490
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
1495
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
1503
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
1510   br label %bb152
1511
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
1516   br label %bb152
1517
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
1521   br label %bb154
1522
1523 bb153:                                            ; preds = %bb148
1524   store i8 0, i8* %iftmp.173, align 1
1525   br label %bb154
1526
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
1532   br label %bb155
1533
1534 bb155:                                            ; preds = %bb154, %bb147
1535   br label %bb188
1536
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
1547
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
1552
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
1560
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
1567   br label %bb161
1568
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
1573   br label %bb161
1574
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
1578   br label %bb163
1579
1580 bb162:                                            ; preds = %bb157
1581   store i8 0, i8* %iftmp.175, align 1
1582   br label %bb163
1583
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
1589   br label %bb164
1590
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
1601
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
1606
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
1614
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
1621   br label %bb169
1622
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
1627   br label %bb169
1628
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
1632   br label %bb171
1633
1634 bb170:                                            ; preds = %bb165
1635   store i8 0, i8* %iftmp.177, align 1
1636   br label %bb171
1637
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
1643   br label %bb172
1644
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
1655
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
1660
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
1668
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
1675   br label %bb177
1676
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
1681   br label %bb177
1682
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
1686   br label %bb179
1687
1688 bb178:                                            ; preds = %bb173
1689   store i8 0, i8* %iftmp.179, align 1
1690   br label %bb179
1691
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
1697   br label %bb180
1698
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
1709
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
1714
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
1722
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
1729   br label %bb185
1730
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
1735   br label %bb185
1736
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
1740   br label %bb187
1741
1742 bb186:                                            ; preds = %bb181
1743   store i8 0, i8* %iftmp.181, align 1
1744   br label %bb187
1745
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
1751   br label %bb188
1752
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
1760   br label %bb189
1761
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
1767
1768 bb190:                                            ; preds = %bb189
1769   br label %bb224
1770
1771 bb191:                                            ; preds = %bb116
1772   br label %bb223
1773
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
1789
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
1808
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
1816   br label %bb200
1817
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
1834   br label %bb200
1835
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
1839   br label %bb202
1840
1841 bb201:                                            ; preds = %bb192
1842   store i32 0, i32* %iftmp.183, align 4
1843   br label %bb202
1844
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
1862
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
1881
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
1889   br label %bb206
1890
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
1907   br label %bb206
1908
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
1912   br label %bb208
1913
1914 bb207:                                            ; preds = %bb202
1915   store i32 0, i32* %iftmp.185, align 4
1916   br label %bb208
1917
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
1935
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
1954
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
1962   br label %bb212
1963
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
1980   br label %bb212
1981
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
1985   br label %bb214
1986
1987 bb213:                                            ; preds = %bb208
1988   store i32 0, i32* %iftmp.187, align 4
1989   br label %bb214
1990
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
2008
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
2027
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
2035   br label %bb218
2036
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
2053   br label %bb218
2054
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
2058   br label %bb220
2059
2060 bb219:                                            ; preds = %bb214
2061   store i32 0, i32* %iftmp.189, align 4
2062   br label %bb220
2063
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
2081
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
2086   br label %bb222
2087
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
2100   br label %bb223
2101
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
2107
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
2116   br label %bb225
2117
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
2123
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
2128   br label %bb227
2129
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
2134
2135 bb228:                                            ; preds = %bb227
2136   br label %bb316
2137
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
2144
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
2156   br label %bb232
2157
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
2166   br label %bb232
2167
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
2172
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
2177   br label %bb315
2178
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
2189
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
2198   br label %bb313
2199
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
2230
2231 bb241:                                            ; preds = %bb240
2232   br label %bb279
2233
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
2272
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
2277
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
2285
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
2291   br label %bb251
2292
2293 bb250:                                            ; preds = %bb248
2294   %1145 = load float* %r243, align 4              ; <float> [#uses=1]
2295   store float %1145, float* %iftmp.196, align 4
2296   br label %bb251
2297
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
2301   br label %bb253
2302
2303 bb252:                                            ; preds = %bb247
2304   store float 0.000000e+00, float* %iftmp.195, align 4
2305   br label %bb253
2306
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
2312   br label %bb254
2313
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
2324
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
2329
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
2337
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
2343   br label %bb259
2344
2345 bb258:                                            ; preds = %bb256
2346   %1168 = load float* %g244, align 4              ; <float> [#uses=1]
2347   store float %1168, float* %iftmp.198, align 4
2348   br label %bb259
2349
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
2353   br label %bb261
2354
2355 bb260:                                            ; preds = %bb255
2356   store float 0.000000e+00, float* %iftmp.197, align 4
2357   br label %bb261
2358
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
2364   br label %bb262
2365
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
2376
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
2381
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
2389
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
2395   br label %bb267
2396
2397 bb266:                                            ; preds = %bb264
2398   %1191 = load float* %b245, align 4              ; <float> [#uses=1]
2399   store float %1191, float* %iftmp.200, align 4
2400   br label %bb267
2401
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
2405   br label %bb269
2406
2407 bb268:                                            ; preds = %bb263
2408   store float 0.000000e+00, float* %iftmp.199, align 4
2409   br label %bb269
2410
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
2416   br label %bb270
2417
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
2428
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
2433
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
2441
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
2447   br label %bb275
2448
2449 bb274:                                            ; preds = %bb272
2450   %1214 = load float* %a246, align 4              ; <float> [#uses=1]
2451   store float %1214, float* %iftmp.202, align 4
2452   br label %bb275
2453
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
2457   br label %bb277
2458
2459 bb276:                                            ; preds = %bb271
2460   store float 0.000000e+00, float* %iftmp.201, align 4
2461   br label %bb277
2462
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
2468   br label %bb278
2469
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
2477   br label %bb279
2478
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
2484
2485 bb280:                                            ; preds = %bb279
2486   br label %bb312
2487
2488 bb281:                                            ; preds = %bb240
2489   br label %bb311
2490
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
2523
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
2531
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
2537   br label %bb290
2538
2539 bb289:                                            ; preds = %bb287
2540   %1260 = load float* %r283, align 4              ; <float> [#uses=1]
2541   store float %1260, float* %iftmp.204, align 4
2542   br label %bb290
2543
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
2547   br label %bb292
2548
2549 bb291:                                            ; preds = %bb282
2550   store float 0.000000e+00, float* %iftmp.203, align 4
2551   br label %bb292
2552
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
2561
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
2569
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
2575   br label %bb296
2576
2577 bb295:                                            ; preds = %bb293
2578   %1275 = load float* %g284, align 4              ; <float> [#uses=1]
2579   store float %1275, float* %iftmp.206, align 4
2580   br label %bb296
2581
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
2585   br label %bb298
2586
2587 bb297:                                            ; preds = %bb292
2588   store float 0.000000e+00, float* %iftmp.205, align 4
2589   br label %bb298
2590
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
2599
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
2607
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
2613   br label %bb302
2614
2615 bb301:                                            ; preds = %bb299
2616   %1290 = load float* %b285, align 4              ; <float> [#uses=1]
2617   store float %1290, float* %iftmp.208, align 4
2618   br label %bb302
2619
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
2623   br label %bb304
2624
2625 bb303:                                            ; preds = %bb298
2626   store float 0.000000e+00, float* %iftmp.207, align 4
2627   br label %bb304
2628
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
2637
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
2645
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
2651   br label %bb308
2652
2653 bb307:                                            ; preds = %bb305
2654   %1305 = load float* %a286, align 4              ; <float> [#uses=1]
2655   store float %1305, float* %iftmp.210, align 4
2656   br label %bb308
2657
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
2661   br label %bb310
2662
2663 bb309:                                            ; preds = %bb304
2664   store float 0.000000e+00, float* %iftmp.209, align 4
2665   br label %bb310
2666
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
2678   br label %bb311
2679
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
2685
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
2694   br label %bb313
2695
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
2701
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
2706   br label %bb315
2707
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
2712
2713 bb316:                                            ; preds = %bb315, %bb232, %bb228, %bb6
2714   br label %return
2715
2716 return:                                           ; preds = %bb316
2717   ret void
2718 }