blob: 0b24b8c611c7282c5a6f5b6c5060947736ce12b6 [file] [log] [blame]
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor
OpExecutionMode %_entrypoint_v OriginUpperLeft
OpName %sk_FragColor "sk_FragColor"
OpName %_UniformBuffer "_UniformBuffer"
OpMemberName %_UniformBuffer 0 "colorGreen"
OpMemberName %_UniformBuffer 1 "colorRed"
OpMemberName %_UniformBuffer 2 "colorBlack"
OpMemberName %_UniformBuffer 3 "colorWhite"
OpMemberName %_UniformBuffer 4 "testInputs"
OpName %_entrypoint_v "_entrypoint_v"
OpName %main "main"
OpName %intGreen "intGreen"
OpName %intRed "intRed"
OpDecorate %sk_FragColor RelaxedPrecision
OpDecorate %sk_FragColor Location 0
OpDecorate %sk_FragColor Index 0
OpMemberDecorate %_UniformBuffer 0 Offset 0
OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
OpMemberDecorate %_UniformBuffer 1 Offset 16
OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
OpMemberDecorate %_UniformBuffer 2 Offset 32
OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision
OpMemberDecorate %_UniformBuffer 3 Offset 48
OpMemberDecorate %_UniformBuffer 3 RelaxedPrecision
OpMemberDecorate %_UniformBuffer 4 Offset 64
OpMemberDecorate %_UniformBuffer 4 RelaxedPrecision
OpDecorate %_UniformBuffer Block
OpDecorate %7 Binding 0
OpDecorate %7 DescriptorSet 0
OpDecorate %30 RelaxedPrecision
OpDecorate %32 RelaxedPrecision
OpDecorate %33 RelaxedPrecision
OpDecorate %35 RelaxedPrecision
OpDecorate %37 RelaxedPrecision
OpDecorate %39 RelaxedPrecision
OpDecorate %45 RelaxedPrecision
OpDecorate %46 RelaxedPrecision
OpDecorate %47 RelaxedPrecision
OpDecorate %49 RelaxedPrecision
OpDecorate %51 RelaxedPrecision
OpDecorate %53 RelaxedPrecision
OpDecorate %188 RelaxedPrecision
OpDecorate %189 RelaxedPrecision
OpDecorate %191 RelaxedPrecision
OpDecorate %192 RelaxedPrecision
OpDecorate %194 RelaxedPrecision
OpDecorate %195 RelaxedPrecision
OpDecorate %197 RelaxedPrecision
OpDecorate %198 RelaxedPrecision
OpDecorate %200 RelaxedPrecision
OpDecorate %201 RelaxedPrecision
OpDecorate %208 RelaxedPrecision
OpDecorate %209 RelaxedPrecision
OpDecorate %211 RelaxedPrecision
OpDecorate %212 RelaxedPrecision
OpDecorate %214 RelaxedPrecision
OpDecorate %215 RelaxedPrecision
OpDecorate %217 RelaxedPrecision
OpDecorate %218 RelaxedPrecision
OpDecorate %220 RelaxedPrecision
OpDecorate %221 RelaxedPrecision
OpDecorate %229 RelaxedPrecision
OpDecorate %230 RelaxedPrecision
OpDecorate %233 RelaxedPrecision
OpDecorate %234 RelaxedPrecision
OpDecorate %236 RelaxedPrecision
OpDecorate %237 RelaxedPrecision
OpDecorate %239 RelaxedPrecision
OpDecorate %240 RelaxedPrecision
OpDecorate %242 RelaxedPrecision
OpDecorate %243 RelaxedPrecision
OpDecorate %251 RelaxedPrecision
OpDecorate %253 RelaxedPrecision
OpDecorate %255 RelaxedPrecision
OpDecorate %257 RelaxedPrecision
OpDecorate %259 RelaxedPrecision
OpDecorate %267 RelaxedPrecision
OpDecorate %268 RelaxedPrecision
OpDecorate %270 RelaxedPrecision
OpDecorate %271 RelaxedPrecision
OpDecorate %273 RelaxedPrecision
OpDecorate %274 RelaxedPrecision
OpDecorate %276 RelaxedPrecision
OpDecorate %277 RelaxedPrecision
OpDecorate %279 RelaxedPrecision
OpDecorate %280 RelaxedPrecision
OpDecorate %287 RelaxedPrecision
OpDecorate %288 RelaxedPrecision
OpDecorate %290 RelaxedPrecision
OpDecorate %291 RelaxedPrecision
OpDecorate %293 RelaxedPrecision
OpDecorate %294 RelaxedPrecision
OpDecorate %296 RelaxedPrecision
OpDecorate %297 RelaxedPrecision
OpDecorate %299 RelaxedPrecision
OpDecorate %300 RelaxedPrecision
OpDecorate %308 RelaxedPrecision
OpDecorate %309 RelaxedPrecision
OpDecorate %311 RelaxedPrecision
OpDecorate %312 RelaxedPrecision
OpDecorate %314 RelaxedPrecision
OpDecorate %315 RelaxedPrecision
OpDecorate %317 RelaxedPrecision
OpDecorate %318 RelaxedPrecision
OpDecorate %320 RelaxedPrecision
OpDecorate %321 RelaxedPrecision
OpDecorate %329 RelaxedPrecision
OpDecorate %331 RelaxedPrecision
OpDecorate %333 RelaxedPrecision
OpDecorate %335 RelaxedPrecision
OpDecorate %337 RelaxedPrecision
OpDecorate %344 RelaxedPrecision
OpDecorate %345 RelaxedPrecision
OpDecorate %353 RelaxedPrecision
OpDecorate %354 RelaxedPrecision
OpDecorate %362 RelaxedPrecision
OpDecorate %363 RelaxedPrecision
OpDecorate %371 RelaxedPrecision
OpDecorate %378 RelaxedPrecision
OpDecorate %379 RelaxedPrecision
OpDecorate %386 RelaxedPrecision
OpDecorate %387 RelaxedPrecision
OpDecorate %395 RelaxedPrecision
OpDecorate %396 RelaxedPrecision
OpDecorate %404 RelaxedPrecision
OpDecorate %414 RelaxedPrecision
OpDecorate %416 RelaxedPrecision
OpDecorate %417 RelaxedPrecision
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%sk_FragColor = OpVariable %_ptr_Output_v4float Output
%_UniformBuffer = OpTypeStruct %v4float %v4float %v4float %v4float %v4float
%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
%7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
%void = OpTypeVoid
%12 = OpTypeFunction %void
%float_0 = OpConstant %float 0
%v2float = OpTypeVector %float 2
%16 = OpConstantComposite %v2float %float_0 %float_0
%_ptr_Function_v2float = OpTypePointer Function %v2float
%20 = OpTypeFunction %v4float %_ptr_Function_v2float
%int = OpTypeInt 32 1
%v4int = OpTypeVector %int 4
%_ptr_Function_v4int = OpTypePointer Function %v4int
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
%int_0 = OpConstant %int 0
%float_100 = OpConstant %float 100
%int_1 = OpConstant %int 1
%bool = OpTypeBool
%false = OpConstantFalse %bool
%v2int = OpTypeVector %int 2
%v2bool = OpTypeVector %bool 2
%69 = OpConstantComposite %v2bool %false %false
%v3int = OpTypeVector %int 3
%v3bool = OpTypeVector %bool 3
%83 = OpConstantComposite %v3bool %false %false %false
%v4bool = OpTypeVector %bool 4
%94 = OpConstantComposite %v4bool %false %false %false %false
%true = OpConstantTrue %bool
%109 = OpConstantComposite %v2bool %true %true
%121 = OpConstantComposite %v3bool %true %true %true
%131 = OpConstantComposite %v4bool %true %true %true %true
%int_100 = OpConstant %int 100
%142 = OpConstantComposite %v2int %int_0 %int_100
%149 = OpConstantComposite %v3int %int_0 %int_100 %int_0
%156 = OpConstantComposite %v4int %int_0 %int_100 %int_0 %int_100
%166 = OpConstantComposite %v2int %int_100 %int_0
%173 = OpConstantComposite %v3int %int_100 %int_0 %int_0
%180 = OpConstantComposite %v4int %int_100 %int_0 %int_0 %int_100
%v3float = OpTypeVector %float 3
%float_1 = OpConstant %float 1
%351 = OpConstantComposite %v2float %float_0 %float_1
%360 = OpConstantComposite %v3float %float_0 %float_1 %float_0
%369 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_1
%384 = OpConstantComposite %v2float %float_1 %float_0
%393 = OpConstantComposite %v3float %float_1 %float_0 %float_0
%402 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
%_ptr_Function_v4float = OpTypePointer Function %v4float
%_entrypoint_v = OpFunction %void None %12
%13 = OpLabel
%17 = OpVariable %_ptr_Function_v2float Function
OpStore %17 %16
%19 = OpFunctionCall %v4float %main %17
OpStore %sk_FragColor %19
OpReturn
OpFunctionEnd
%main = OpFunction %v4float None %20
%21 = OpFunctionParameter %_ptr_Function_v2float
%22 = OpLabel
%intGreen = OpVariable %_ptr_Function_v4int Function
%intRed = OpVariable %_ptr_Function_v4int Function
%408 = OpVariable %_ptr_Function_v4float Function
%27 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%30 = OpLoad %v4float %27
%32 = OpVectorTimesScalar %v4float %30 %float_100
%33 = OpCompositeExtract %float %32 0
%34 = OpConvertFToS %int %33
%35 = OpCompositeExtract %float %32 1
%36 = OpConvertFToS %int %35
%37 = OpCompositeExtract %float %32 2
%38 = OpConvertFToS %int %37
%39 = OpCompositeExtract %float %32 3
%40 = OpConvertFToS %int %39
%41 = OpCompositeConstruct %v4int %34 %36 %38 %40
OpStore %intGreen %41
%43 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%45 = OpLoad %v4float %43
%46 = OpVectorTimesScalar %v4float %45 %float_100
%47 = OpCompositeExtract %float %46 0
%48 = OpConvertFToS %int %47
%49 = OpCompositeExtract %float %46 1
%50 = OpConvertFToS %int %49
%51 = OpCompositeExtract %float %46 2
%52 = OpConvertFToS %int %51
%53 = OpCompositeExtract %float %46 3
%54 = OpConvertFToS %int %53
%55 = OpCompositeConstruct %v4int %48 %50 %52 %54
OpStore %intRed %55
%59 = OpCompositeExtract %int %41 0
%60 = OpCompositeExtract %int %55 0
%58 = OpSelect %int %false %60 %59
%61 = OpIEqual %bool %58 %59
OpSelectionMerge %63 None
OpBranchConditional %61 %62 %63
%62 = OpLabel
%65 = OpVectorShuffle %v2int %41 %41 0 1
%67 = OpVectorShuffle %v2int %55 %55 0 1
%70 = OpVectorShuffle %v2int %41 %41 0 1
%71 = OpVectorShuffle %v2int %55 %55 0 1
%64 = OpSelect %v2int %69 %71 %70
%72 = OpVectorShuffle %v2int %41 %41 0 1
%73 = OpIEqual %v2bool %64 %72
%74 = OpAll %bool %73
OpBranch %63
%63 = OpLabel
%75 = OpPhi %bool %false %22 %74 %62
OpSelectionMerge %77 None
OpBranchConditional %75 %76 %77
%76 = OpLabel
%79 = OpVectorShuffle %v3int %41 %41 0 1 2
%81 = OpVectorShuffle %v3int %55 %55 0 1 2
%84 = OpVectorShuffle %v3int %41 %41 0 1 2
%85 = OpVectorShuffle %v3int %55 %55 0 1 2
%78 = OpSelect %v3int %83 %85 %84
%86 = OpVectorShuffle %v3int %41 %41 0 1 2
%87 = OpIEqual %v3bool %78 %86
%88 = OpAll %bool %87
OpBranch %77
%77 = OpLabel
%89 = OpPhi %bool %false %63 %88 %76
OpSelectionMerge %91 None
OpBranchConditional %89 %90 %91
%90 = OpLabel
%92 = OpSelect %v4int %94 %55 %41
%95 = OpIEqual %v4bool %92 %41
%96 = OpAll %bool %95
OpBranch %91
%91 = OpLabel
%97 = OpPhi %bool %false %77 %96 %90
OpSelectionMerge %99 None
OpBranchConditional %97 %98 %99
%98 = OpLabel
%100 = OpSelect %int %true %60 %59
%102 = OpIEqual %bool %100 %60
OpBranch %99
%99 = OpLabel
%103 = OpPhi %bool %false %91 %102 %98
OpSelectionMerge %105 None
OpBranchConditional %103 %104 %105
%104 = OpLabel
%107 = OpVectorShuffle %v2int %41 %41 0 1
%108 = OpVectorShuffle %v2int %55 %55 0 1
%110 = OpVectorShuffle %v2int %41 %41 0 1
%111 = OpVectorShuffle %v2int %55 %55 0 1
%106 = OpSelect %v2int %109 %111 %110
%112 = OpVectorShuffle %v2int %55 %55 0 1
%113 = OpIEqual %v2bool %106 %112
%114 = OpAll %bool %113
OpBranch %105
%105 = OpLabel
%115 = OpPhi %bool %false %99 %114 %104
OpSelectionMerge %117 None
OpBranchConditional %115 %116 %117
%116 = OpLabel
%119 = OpVectorShuffle %v3int %41 %41 0 1 2
%120 = OpVectorShuffle %v3int %55 %55 0 1 2
%122 = OpVectorShuffle %v3int %41 %41 0 1 2
%123 = OpVectorShuffle %v3int %55 %55 0 1 2
%118 = OpSelect %v3int %121 %123 %122
%124 = OpVectorShuffle %v3int %55 %55 0 1 2
%125 = OpIEqual %v3bool %118 %124
%126 = OpAll %bool %125
OpBranch %117
%117 = OpLabel
%127 = OpPhi %bool %false %105 %126 %116
OpSelectionMerge %129 None
OpBranchConditional %127 %128 %129
%128 = OpLabel
%130 = OpSelect %v4int %131 %55 %41
%132 = OpIEqual %v4bool %130 %55
%133 = OpAll %bool %132
OpBranch %129
%129 = OpLabel
%134 = OpPhi %bool %false %117 %133 %128
OpSelectionMerge %136 None
OpBranchConditional %134 %135 %136
%135 = OpLabel
%137 = OpIEqual %bool %int_0 %59
OpBranch %136
%136 = OpLabel
%138 = OpPhi %bool %false %129 %137 %135
OpSelectionMerge %140 None
OpBranchConditional %138 %139 %140
%139 = OpLabel
%143 = OpVectorShuffle %v2int %41 %41 0 1
%144 = OpIEqual %v2bool %142 %143
%145 = OpAll %bool %144
OpBranch %140
%140 = OpLabel
%146 = OpPhi %bool %false %136 %145 %139
OpSelectionMerge %148 None
OpBranchConditional %146 %147 %148
%147 = OpLabel
%150 = OpVectorShuffle %v3int %41 %41 0 1 2
%151 = OpIEqual %v3bool %149 %150
%152 = OpAll %bool %151
OpBranch %148
%148 = OpLabel
%153 = OpPhi %bool %false %140 %152 %147
OpSelectionMerge %155 None
OpBranchConditional %153 %154 %155
%154 = OpLabel
%157 = OpIEqual %v4bool %156 %41
%158 = OpAll %bool %157
OpBranch %155
%155 = OpLabel
%159 = OpPhi %bool %false %148 %158 %154
OpSelectionMerge %161 None
OpBranchConditional %159 %160 %161
%160 = OpLabel
%162 = OpIEqual %bool %int_100 %60
OpBranch %161
%161 = OpLabel
%163 = OpPhi %bool %false %155 %162 %160
OpSelectionMerge %165 None
OpBranchConditional %163 %164 %165
%164 = OpLabel
%167 = OpVectorShuffle %v2int %55 %55 0 1
%168 = OpIEqual %v2bool %166 %167
%169 = OpAll %bool %168
OpBranch %165
%165 = OpLabel
%170 = OpPhi %bool %false %161 %169 %164
OpSelectionMerge %172 None
OpBranchConditional %170 %171 %172
%171 = OpLabel
%174 = OpVectorShuffle %v3int %55 %55 0 1 2
%175 = OpIEqual %v3bool %173 %174
%176 = OpAll %bool %175
OpBranch %172
%172 = OpLabel
%177 = OpPhi %bool %false %165 %176 %171
OpSelectionMerge %179 None
OpBranchConditional %177 %178 %179
%178 = OpLabel
%181 = OpIEqual %v4bool %180 %55
%182 = OpAll %bool %181
OpBranch %179
%179 = OpLabel
%183 = OpPhi %bool %false %172 %182 %178
OpSelectionMerge %185 None
OpBranchConditional %183 %184 %185
%184 = OpLabel
%187 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%188 = OpLoad %v4float %187
%189 = OpCompositeExtract %float %188 0
%190 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%191 = OpLoad %v4float %190
%192 = OpCompositeExtract %float %191 0
%193 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%194 = OpLoad %v4float %193
%195 = OpCompositeExtract %float %194 0
%196 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%197 = OpLoad %v4float %196
%198 = OpCompositeExtract %float %197 0
%186 = OpSelect %float %false %198 %195
%199 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%200 = OpLoad %v4float %199
%201 = OpCompositeExtract %float %200 0
%202 = OpFOrdEqual %bool %186 %201
OpBranch %185
%185 = OpLabel
%203 = OpPhi %bool %false %179 %202 %184
OpSelectionMerge %205 None
OpBranchConditional %203 %204 %205
%204 = OpLabel
%207 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%208 = OpLoad %v4float %207
%209 = OpVectorShuffle %v2float %208 %208 0 1
%210 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%211 = OpLoad %v4float %210
%212 = OpVectorShuffle %v2float %211 %211 0 1
%213 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%214 = OpLoad %v4float %213
%215 = OpVectorShuffle %v2float %214 %214 0 1
%216 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%217 = OpLoad %v4float %216
%218 = OpVectorShuffle %v2float %217 %217 0 1
%206 = OpSelect %v2float %69 %218 %215
%219 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%220 = OpLoad %v4float %219
%221 = OpVectorShuffle %v2float %220 %220 0 1
%222 = OpFOrdEqual %v2bool %206 %221
%223 = OpAll %bool %222
OpBranch %205
%205 = OpLabel
%224 = OpPhi %bool %false %185 %223 %204
OpSelectionMerge %226 None
OpBranchConditional %224 %225 %226
%225 = OpLabel
%228 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%229 = OpLoad %v4float %228
%230 = OpVectorShuffle %v3float %229 %229 0 1 2
%232 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%233 = OpLoad %v4float %232
%234 = OpVectorShuffle %v3float %233 %233 0 1 2
%235 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%236 = OpLoad %v4float %235
%237 = OpVectorShuffle %v3float %236 %236 0 1 2
%238 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%239 = OpLoad %v4float %238
%240 = OpVectorShuffle %v3float %239 %239 0 1 2
%227 = OpSelect %v3float %83 %240 %237
%241 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%242 = OpLoad %v4float %241
%243 = OpVectorShuffle %v3float %242 %242 0 1 2
%244 = OpFOrdEqual %v3bool %227 %243
%245 = OpAll %bool %244
OpBranch %226
%226 = OpLabel
%246 = OpPhi %bool %false %205 %245 %225
OpSelectionMerge %248 None
OpBranchConditional %246 %247 %248
%247 = OpLabel
%250 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%251 = OpLoad %v4float %250
%252 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%253 = OpLoad %v4float %252
%254 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%255 = OpLoad %v4float %254
%256 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%257 = OpLoad %v4float %256
%249 = OpSelect %v4float %94 %257 %255
%258 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%259 = OpLoad %v4float %258
%260 = OpFOrdEqual %v4bool %249 %259
%261 = OpAll %bool %260
OpBranch %248
%248 = OpLabel
%262 = OpPhi %bool %false %226 %261 %247
OpSelectionMerge %264 None
OpBranchConditional %262 %263 %264
%263 = OpLabel
%266 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%267 = OpLoad %v4float %266
%268 = OpCompositeExtract %float %267 0
%269 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%270 = OpLoad %v4float %269
%271 = OpCompositeExtract %float %270 0
%272 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%273 = OpLoad %v4float %272
%274 = OpCompositeExtract %float %273 0
%275 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%276 = OpLoad %v4float %275
%277 = OpCompositeExtract %float %276 0
%265 = OpSelect %float %true %277 %274
%278 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%279 = OpLoad %v4float %278
%280 = OpCompositeExtract %float %279 0
%281 = OpFOrdEqual %bool %265 %280
OpBranch %264
%264 = OpLabel
%282 = OpPhi %bool %false %248 %281 %263
OpSelectionMerge %284 None
OpBranchConditional %282 %283 %284
%283 = OpLabel
%286 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%287 = OpLoad %v4float %286
%288 = OpVectorShuffle %v2float %287 %287 0 1
%289 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%290 = OpLoad %v4float %289
%291 = OpVectorShuffle %v2float %290 %290 0 1
%292 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%293 = OpLoad %v4float %292
%294 = OpVectorShuffle %v2float %293 %293 0 1
%295 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%296 = OpLoad %v4float %295
%297 = OpVectorShuffle %v2float %296 %296 0 1
%285 = OpSelect %v2float %109 %297 %294
%298 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%299 = OpLoad %v4float %298
%300 = OpVectorShuffle %v2float %299 %299 0 1
%301 = OpFOrdEqual %v2bool %285 %300
%302 = OpAll %bool %301
OpBranch %284
%284 = OpLabel
%303 = OpPhi %bool %false %264 %302 %283
OpSelectionMerge %305 None
OpBranchConditional %303 %304 %305
%304 = OpLabel
%307 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%308 = OpLoad %v4float %307
%309 = OpVectorShuffle %v3float %308 %308 0 1 2
%310 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%311 = OpLoad %v4float %310
%312 = OpVectorShuffle %v3float %311 %311 0 1 2
%313 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%314 = OpLoad %v4float %313
%315 = OpVectorShuffle %v3float %314 %314 0 1 2
%316 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%317 = OpLoad %v4float %316
%318 = OpVectorShuffle %v3float %317 %317 0 1 2
%306 = OpSelect %v3float %121 %318 %315
%319 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%320 = OpLoad %v4float %319
%321 = OpVectorShuffle %v3float %320 %320 0 1 2
%322 = OpFOrdEqual %v3bool %306 %321
%323 = OpAll %bool %322
OpBranch %305
%305 = OpLabel
%324 = OpPhi %bool %false %284 %323 %304
OpSelectionMerge %326 None
OpBranchConditional %324 %325 %326
%325 = OpLabel
%328 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%329 = OpLoad %v4float %328
%330 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%331 = OpLoad %v4float %330
%332 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%333 = OpLoad %v4float %332
%334 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%335 = OpLoad %v4float %334
%327 = OpSelect %v4float %131 %335 %333
%336 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%337 = OpLoad %v4float %336
%338 = OpFOrdEqual %v4bool %327 %337
%339 = OpAll %bool %338
OpBranch %326
%326 = OpLabel
%340 = OpPhi %bool %false %305 %339 %325
OpSelectionMerge %342 None
OpBranchConditional %340 %341 %342
%341 = OpLabel
%343 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%344 = OpLoad %v4float %343
%345 = OpCompositeExtract %float %344 0
%346 = OpFOrdEqual %bool %float_0 %345
OpBranch %342
%342 = OpLabel
%347 = OpPhi %bool %false %326 %346 %341
OpSelectionMerge %349 None
OpBranchConditional %347 %348 %349
%348 = OpLabel
%352 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%353 = OpLoad %v4float %352
%354 = OpVectorShuffle %v2float %353 %353 0 1
%355 = OpFOrdEqual %v2bool %351 %354
%356 = OpAll %bool %355
OpBranch %349
%349 = OpLabel
%357 = OpPhi %bool %false %342 %356 %348
OpSelectionMerge %359 None
OpBranchConditional %357 %358 %359
%358 = OpLabel
%361 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%362 = OpLoad %v4float %361
%363 = OpVectorShuffle %v3float %362 %362 0 1 2
%364 = OpFOrdEqual %v3bool %360 %363
%365 = OpAll %bool %364
OpBranch %359
%359 = OpLabel
%366 = OpPhi %bool %false %349 %365 %358
OpSelectionMerge %368 None
OpBranchConditional %366 %367 %368
%367 = OpLabel
%370 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%371 = OpLoad %v4float %370
%372 = OpFOrdEqual %v4bool %369 %371
%373 = OpAll %bool %372
OpBranch %368
%368 = OpLabel
%374 = OpPhi %bool %false %359 %373 %367
OpSelectionMerge %376 None
OpBranchConditional %374 %375 %376
%375 = OpLabel
%377 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%378 = OpLoad %v4float %377
%379 = OpCompositeExtract %float %378 0
%380 = OpFOrdEqual %bool %float_1 %379
OpBranch %376
%376 = OpLabel
%381 = OpPhi %bool %false %368 %380 %375
OpSelectionMerge %383 None
OpBranchConditional %381 %382 %383
%382 = OpLabel
%385 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%386 = OpLoad %v4float %385
%387 = OpVectorShuffle %v2float %386 %386 0 1
%388 = OpFOrdEqual %v2bool %384 %387
%389 = OpAll %bool %388
OpBranch %383
%383 = OpLabel
%390 = OpPhi %bool %false %376 %389 %382
OpSelectionMerge %392 None
OpBranchConditional %390 %391 %392
%391 = OpLabel
%394 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%395 = OpLoad %v4float %394
%396 = OpVectorShuffle %v3float %395 %395 0 1 2
%397 = OpFOrdEqual %v3bool %393 %396
%398 = OpAll %bool %397
OpBranch %392
%392 = OpLabel
%399 = OpPhi %bool %false %383 %398 %391
OpSelectionMerge %401 None
OpBranchConditional %399 %400 %401
%400 = OpLabel
%403 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%404 = OpLoad %v4float %403
%405 = OpFOrdEqual %v4bool %402 %404
%406 = OpAll %bool %405
OpBranch %401
%401 = OpLabel
%407 = OpPhi %bool %false %392 %406 %400
OpSelectionMerge %412 None
OpBranchConditional %407 %410 %411
%410 = OpLabel
%413 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%414 = OpLoad %v4float %413
OpStore %408 %414
OpBranch %412
%411 = OpLabel
%415 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%416 = OpLoad %v4float %415
OpStore %408 %416
OpBranch %412
%412 = OpLabel
%417 = OpLoad %v4float %408
OpReturnValue %417
OpFunctionEnd