blob: b96e05ed7de0c9ebf7dd7714dbc9463ab52771a5 [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 "testMatrix2x2"
OpMemberName %_UniformBuffer 3 "testMatrix3x3"
OpName %_entrypoint_v "_entrypoint_v"
OpName %main "main"
OpName %_0_ok "_0_ok"
OpName %_1_zero "_1_zero"
OpName %_2_one "_2_one"
OpName %_3_two "_3_two"
OpName %_4_nine "_4_nine"
OpName %_5_m "_5_m"
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 ColMajor
OpMemberDecorate %_UniformBuffer 2 MatrixStride 16
OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision
OpMemberDecorate %_UniformBuffer 3 Offset 64
OpMemberDecorate %_UniformBuffer 3 ColMajor
OpMemberDecorate %_UniformBuffer 3 MatrixStride 16
OpMemberDecorate %_UniformBuffer 3 RelaxedPrecision
OpDecorate %_UniformBuffer Block
OpDecorate %7 Binding 0
OpDecorate %7 DescriptorSet 0
OpDecorate %37 RelaxedPrecision
OpDecorate %46 RelaxedPrecision
OpDecorate %47 RelaxedPrecision
OpDecorate %49 RelaxedPrecision
OpDecorate %50 RelaxedPrecision
OpDecorate %59 RelaxedPrecision
OpDecorate %70 RelaxedPrecision
OpDecorate %71 RelaxedPrecision
OpDecorate %73 RelaxedPrecision
OpDecorate %74 RelaxedPrecision
OpDecorate %77 RelaxedPrecision
OpDecorate %78 RelaxedPrecision
OpDecorate %85 RelaxedPrecision
OpDecorate %90 RelaxedPrecision
OpDecorate %91 RelaxedPrecision
OpDecorate %93 RelaxedPrecision
OpDecorate %94 RelaxedPrecision
OpDecorate %101 RelaxedPrecision
OpDecorate %106 RelaxedPrecision
OpDecorate %107 RelaxedPrecision
OpDecorate %109 RelaxedPrecision
OpDecorate %110 RelaxedPrecision
OpDecorate %113 RelaxedPrecision
OpDecorate %114 RelaxedPrecision
OpDecorate %123 RelaxedPrecision
OpDecorate %124 RelaxedPrecision
OpDecorate %127 RelaxedPrecision
OpDecorate %128 RelaxedPrecision
OpDecorate %421 RelaxedPrecision
OpDecorate %422 RelaxedPrecision
OpDecorate %423 RelaxedPrecision
OpDecorate %424 RelaxedPrecision
OpDecorate %425 RelaxedPrecision
OpDecorate %426 RelaxedPrecision
OpDecorate %437 RelaxedPrecision
OpDecorate %438 RelaxedPrecision
OpDecorate %439 RelaxedPrecision
OpDecorate %440 RelaxedPrecision
OpDecorate %441 RelaxedPrecision
OpDecorate %442 RelaxedPrecision
OpDecorate %446 RelaxedPrecision
OpDecorate %447 RelaxedPrecision
OpDecorate %448 RelaxedPrecision
OpDecorate %449 RelaxedPrecision
OpDecorate %450 RelaxedPrecision
OpDecorate %451 RelaxedPrecision
OpDecorate %458 RelaxedPrecision
OpDecorate %459 RelaxedPrecision
OpDecorate %460 RelaxedPrecision
OpDecorate %461 RelaxedPrecision
OpDecorate %462 RelaxedPrecision
OpDecorate %463 RelaxedPrecision
OpDecorate %567 RelaxedPrecision
OpDecorate %569 RelaxedPrecision
OpDecorate %570 RelaxedPrecision
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%sk_FragColor = OpVariable %_ptr_Output_v4float Output
%v2float = OpTypeVector %float 2
%mat2v2float = OpTypeMatrix %v2float 2
%v3float = OpTypeVector %float 3
%mat3v3float = OpTypeMatrix %v3float 3
%_UniformBuffer = OpTypeStruct %v4float %v4float %mat2v2float %mat3v3float
%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
%7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
%void = OpTypeVoid
%16 = OpTypeFunction %void
%float_0 = OpConstant %float 0
%19 = OpConstantComposite %v2float %float_0 %float_0
%_ptr_Function_v2float = OpTypePointer Function %v2float
%23 = OpTypeFunction %v4float %_ptr_Function_v2float
%bool = OpTypeBool
%_ptr_Function_bool = OpTypePointer Function %bool
%true = OpConstantTrue %bool
%false = OpConstantFalse %bool
%_ptr_Uniform_mat2v2float = OpTypePointer Uniform %mat2v2float
%int = OpTypeInt 32 1
%int_2 = OpConstant %int 2
%float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
%float_4 = OpConstant %float 4
%42 = OpConstantComposite %v2float %float_1 %float_2
%43 = OpConstantComposite %v2float %float_3 %float_4
%44 = OpConstantComposite %mat2v2float %42 %43
%v2bool = OpTypeVector %bool 2
%_ptr_Uniform_mat3v3float = OpTypePointer Uniform %mat3v3float
%int_3 = OpConstant %int 3
%float_5 = OpConstant %float 5
%float_6 = OpConstant %float 6
%float_7 = OpConstant %float 7
%float_8 = OpConstant %float 8
%float_9 = OpConstant %float 9
%65 = OpConstantComposite %v3float %float_1 %float_2 %float_3
%66 = OpConstantComposite %v3float %float_4 %float_5 %float_6
%67 = OpConstantComposite %v3float %float_7 %float_8 %float_9
%68 = OpConstantComposite %mat3v3float %65 %66 %67
%v3bool = OpTypeVector %bool 3
%float_100 = OpConstant %float 100
%87 = OpConstantComposite %v2float %float_100 %float_0
%88 = OpConstantComposite %v2float %float_0 %float_100
%89 = OpConstantComposite %mat2v2float %87 %88
%102 = OpConstantComposite %v3float %float_9 %float_8 %float_7
%103 = OpConstantComposite %v3float %float_6 %float_5 %float_4
%104 = OpConstantComposite %v3float %float_3 %float_2 %float_1
%105 = OpConstantComposite %mat3v3float %102 %103 %104
%_ptr_Function_float = OpTypePointer Function %float
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
%int_0 = OpConstant %int 0
%138 = OpConstantComposite %v2float %float_1 %float_0
%139 = OpConstantComposite %v2float %float_0 %float_1
%140 = OpConstantComposite %mat2v2float %138 %139
%174 = OpConstantComposite %mat2v2float %19 %19
%float_n1 = OpConstant %float -1
%188 = OpConstantComposite %v2float %float_n1 %float_0
%189 = OpConstantComposite %v2float %float_0 %float_n1
%190 = OpConstantComposite %mat2v2float %188 %189
%float_n0 = OpConstant %float -0
%203 = OpConstantComposite %v2float %float_n0 %float_0
%204 = OpConstantComposite %v2float %float_0 %float_n0
%205 = OpConstantComposite %mat2v2float %203 %204
%291 = OpConstantComposite %v3float %float_1 %float_0 %float_0
%292 = OpConstantComposite %v3float %float_0 %float_1 %float_0
%293 = OpConstantComposite %v3float %float_0 %float_0 %float_1
%294 = OpConstantComposite %mat3v3float %291 %292 %293
%310 = OpConstantComposite %v2float %float_9 %float_0
%311 = OpConstantComposite %v2float %float_0 %float_9
%312 = OpConstantComposite %mat2v2float %310 %311
%313 = OpConstantComposite %v3float %float_9 %float_0 %float_0
%314 = OpConstantComposite %v3float %float_0 %float_9 %float_0
%315 = OpConstantComposite %mat3v3float %313 %314 %293
%429 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%v4bool = OpTypeVector %bool 4
%466 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float
%_ptr_Function_v3float = OpTypePointer Function %v3float
%int_1 = OpConstant %int 1
%_ptr_Function_v4float = OpTypePointer Function %v4float
%_entrypoint_v = OpFunction %void None %16
%17 = OpLabel
%20 = OpVariable %_ptr_Function_v2float Function
OpStore %20 %19
%22 = OpFunctionCall %v4float %main %20
OpStore %sk_FragColor %22
OpReturn
OpFunctionEnd
%main = OpFunction %v4float None %23
%24 = OpFunctionParameter %_ptr_Function_v2float
%25 = OpLabel
%_0_ok = OpVariable %_ptr_Function_bool Function
%_1_zero = OpVariable %_ptr_Function_float Function
%_2_one = OpVariable %_ptr_Function_float Function
%_3_two = OpVariable %_ptr_Function_float Function
%_4_nine = OpVariable %_ptr_Function_float Function
%_5_m = OpVariable %_ptr_Function_mat3v3float Function
%561 = OpVariable %_ptr_Function_v4float Function
OpStore %_0_ok %true
OpSelectionMerge %32 None
OpBranchConditional %true %31 %32
%31 = OpLabel
%33 = OpAccessChain %_ptr_Uniform_mat2v2float %7 %int_2
%37 = OpLoad %mat2v2float %33
%46 = OpCompositeExtract %v2float %37 0
%47 = OpFOrdEqual %v2bool %46 %42
%48 = OpAll %bool %47
%49 = OpCompositeExtract %v2float %37 1
%50 = OpFOrdEqual %v2bool %49 %43
%51 = OpAll %bool %50
%52 = OpLogicalAnd %bool %48 %51
OpBranch %32
%32 = OpLabel
%53 = OpPhi %bool %false %25 %52 %31
OpStore %_0_ok %53
OpSelectionMerge %55 None
OpBranchConditional %53 %54 %55
%54 = OpLabel
%56 = OpAccessChain %_ptr_Uniform_mat3v3float %7 %int_3
%59 = OpLoad %mat3v3float %56
%70 = OpCompositeExtract %v3float %59 0
%71 = OpFOrdEqual %v3bool %70 %65
%72 = OpAll %bool %71
%73 = OpCompositeExtract %v3float %59 1
%74 = OpFOrdEqual %v3bool %73 %66
%75 = OpAll %bool %74
%76 = OpLogicalAnd %bool %72 %75
%77 = OpCompositeExtract %v3float %59 2
%78 = OpFOrdEqual %v3bool %77 %67
%79 = OpAll %bool %78
%80 = OpLogicalAnd %bool %76 %79
OpBranch %55
%55 = OpLabel
%81 = OpPhi %bool %false %32 %80 %54
OpStore %_0_ok %81
OpSelectionMerge %83 None
OpBranchConditional %81 %82 %83
%82 = OpLabel
%84 = OpAccessChain %_ptr_Uniform_mat2v2float %7 %int_2
%85 = OpLoad %mat2v2float %84
%90 = OpCompositeExtract %v2float %85 0
%91 = OpFUnordNotEqual %v2bool %90 %87
%92 = OpAny %bool %91
%93 = OpCompositeExtract %v2float %85 1
%94 = OpFUnordNotEqual %v2bool %93 %88
%95 = OpAny %bool %94
%96 = OpLogicalOr %bool %92 %95
OpBranch %83
%83 = OpLabel
%97 = OpPhi %bool %false %55 %96 %82
OpStore %_0_ok %97
OpSelectionMerge %99 None
OpBranchConditional %97 %98 %99
%98 = OpLabel
%100 = OpAccessChain %_ptr_Uniform_mat3v3float %7 %int_3
%101 = OpLoad %mat3v3float %100
%106 = OpCompositeExtract %v3float %101 0
%107 = OpFUnordNotEqual %v3bool %106 %102
%108 = OpAny %bool %107
%109 = OpCompositeExtract %v3float %101 1
%110 = OpFUnordNotEqual %v3bool %109 %103
%111 = OpAny %bool %110
%112 = OpLogicalOr %bool %108 %111
%113 = OpCompositeExtract %v3float %101 2
%114 = OpFUnordNotEqual %v3bool %113 %104
%115 = OpAny %bool %114
%116 = OpLogicalOr %bool %112 %115
OpBranch %99
%99 = OpLabel
%117 = OpPhi %bool %false %83 %116 %98
OpStore %_0_ok %117
%120 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%123 = OpLoad %v4float %120
%124 = OpCompositeExtract %float %123 0
OpStore %_1_zero %124
%126 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%127 = OpLoad %v4float %126
%128 = OpCompositeExtract %float %127 1
OpStore %_2_one %128
%130 = OpFMul %float %float_2 %128
OpStore %_3_two %130
%132 = OpFMul %float %float_9 %128
OpStore %_4_nine %132
OpSelectionMerge %134 None
OpBranchConditional %117 %133 %134
%133 = OpLabel
%135 = OpCompositeConstruct %v2float %128 %124
%136 = OpCompositeConstruct %v2float %124 %128
%137 = OpCompositeConstruct %mat2v2float %135 %136
%141 = OpFOrdEqual %v2bool %135 %138
%142 = OpAll %bool %141
%143 = OpFOrdEqual %v2bool %136 %139
%144 = OpAll %bool %143
%145 = OpLogicalAnd %bool %142 %144
OpBranch %134
%134 = OpLabel
%146 = OpPhi %bool %false %99 %145 %133
OpStore %_0_ok %146
OpSelectionMerge %148 None
OpBranchConditional %146 %147 %148
%147 = OpLabel
%149 = OpCompositeConstruct %v2float %128 %128
%150 = OpCompositeConstruct %v2float %128 %124
%151 = OpCompositeConstruct %mat2v2float %150 %149
%152 = OpFUnordNotEqual %v2bool %150 %138
%153 = OpAny %bool %152
%154 = OpFUnordNotEqual %v2bool %149 %139
%155 = OpAny %bool %154
%156 = OpLogicalOr %bool %153 %155
OpBranch %148
%148 = OpLabel
%157 = OpPhi %bool %false %134 %156 %147
OpStore %_0_ok %157
OpSelectionMerge %159 None
OpBranchConditional %157 %158 %159
%158 = OpLabel
%160 = OpCompositeConstruct %v2float %128 %float_0
%161 = OpCompositeConstruct %v2float %float_0 %128
%162 = OpCompositeConstruct %mat2v2float %160 %161
%163 = OpFOrdEqual %v2bool %160 %138
%164 = OpAll %bool %163
%165 = OpFOrdEqual %v2bool %161 %139
%166 = OpAll %bool %165
%167 = OpLogicalAnd %bool %164 %166
OpBranch %159
%159 = OpLabel
%168 = OpPhi %bool %false %148 %167 %158
OpStore %_0_ok %168
OpSelectionMerge %170 None
OpBranchConditional %168 %169 %170
%169 = OpLabel
%171 = OpCompositeConstruct %v2float %128 %float_0
%172 = OpCompositeConstruct %v2float %float_0 %128
%173 = OpCompositeConstruct %mat2v2float %171 %172
%175 = OpFUnordNotEqual %v2bool %171 %19
%176 = OpAny %bool %175
%177 = OpFUnordNotEqual %v2bool %172 %19
%178 = OpAny %bool %177
%179 = OpLogicalOr %bool %176 %178
OpBranch %170
%170 = OpLabel
%180 = OpPhi %bool %false %159 %179 %169
OpStore %_0_ok %180
OpSelectionMerge %182 None
OpBranchConditional %180 %181 %182
%181 = OpLabel
%183 = OpFNegate %float %128
%184 = OpCompositeConstruct %v2float %183 %float_0
%185 = OpCompositeConstruct %v2float %float_0 %183
%186 = OpCompositeConstruct %mat2v2float %184 %185
%191 = OpFOrdEqual %v2bool %184 %188
%192 = OpAll %bool %191
%193 = OpFOrdEqual %v2bool %185 %189
%194 = OpAll %bool %193
%195 = OpLogicalAnd %bool %192 %194
OpBranch %182
%182 = OpLabel
%196 = OpPhi %bool %false %170 %195 %181
OpStore %_0_ok %196
OpSelectionMerge %198 None
OpBranchConditional %196 %197 %198
%197 = OpLabel
%199 = OpCompositeConstruct %v2float %124 %float_0
%200 = OpCompositeConstruct %v2float %float_0 %124
%201 = OpCompositeConstruct %mat2v2float %199 %200
%206 = OpFOrdEqual %v2bool %199 %203
%207 = OpAll %bool %206
%208 = OpFOrdEqual %v2bool %200 %204
%209 = OpAll %bool %208
%210 = OpLogicalAnd %bool %207 %209
OpBranch %198
%198 = OpLabel
%211 = OpPhi %bool %false %182 %210 %197
OpStore %_0_ok %211
OpSelectionMerge %213 None
OpBranchConditional %211 %212 %213
%212 = OpLabel
%214 = OpFNegate %float %128
%215 = OpCompositeConstruct %v2float %214 %float_0
%216 = OpCompositeConstruct %v2float %float_0 %214
%217 = OpCompositeConstruct %mat2v2float %215 %216
%218 = OpFNegate %v2float %215
%219 = OpFNegate %v2float %216
%220 = OpCompositeConstruct %mat2v2float %218 %219
%221 = OpFOrdEqual %v2bool %218 %138
%222 = OpAll %bool %221
%223 = OpFOrdEqual %v2bool %219 %139
%224 = OpAll %bool %223
%225 = OpLogicalAnd %bool %222 %224
OpBranch %213
%213 = OpLabel
%226 = OpPhi %bool %false %198 %225 %212
OpStore %_0_ok %226
OpSelectionMerge %228 None
OpBranchConditional %226 %227 %228
%227 = OpLabel
%229 = OpCompositeConstruct %v2float %124 %float_0
%230 = OpCompositeConstruct %v2float %float_0 %124
%231 = OpCompositeConstruct %mat2v2float %229 %230
%232 = OpFNegate %v2float %229
%233 = OpFNegate %v2float %230
%234 = OpCompositeConstruct %mat2v2float %232 %233
%235 = OpFOrdEqual %v2bool %232 %203
%236 = OpAll %bool %235
%237 = OpFOrdEqual %v2bool %233 %204
%238 = OpAll %bool %237
%239 = OpLogicalAnd %bool %236 %238
OpBranch %228
%228 = OpLabel
%240 = OpPhi %bool %false %213 %239 %227
OpStore %_0_ok %240
OpSelectionMerge %242 None
OpBranchConditional %240 %241 %242
%241 = OpLabel
%243 = OpCompositeConstruct %v2float %128 %float_0
%244 = OpCompositeConstruct %v2float %float_0 %128
%245 = OpCompositeConstruct %mat2v2float %243 %244
%246 = OpFOrdEqual %v2bool %243 %138
%247 = OpAll %bool %246
%248 = OpFOrdEqual %v2bool %244 %139
%249 = OpAll %bool %248
%250 = OpLogicalAnd %bool %247 %249
OpBranch %242
%242 = OpLabel
%251 = OpPhi %bool %false %228 %250 %241
OpStore %_0_ok %251
OpSelectionMerge %253 None
OpBranchConditional %251 %252 %253
%252 = OpLabel
%254 = OpCompositeConstruct %v2float %130 %float_0
%255 = OpCompositeConstruct %v2float %float_0 %130
%256 = OpCompositeConstruct %mat2v2float %254 %255
%257 = OpFUnordNotEqual %v2bool %254 %138
%258 = OpAny %bool %257
%259 = OpFUnordNotEqual %v2bool %255 %139
%260 = OpAny %bool %259
%261 = OpLogicalOr %bool %258 %260
OpBranch %253
%253 = OpLabel
%262 = OpPhi %bool %false %242 %261 %252
OpStore %_0_ok %262
OpSelectionMerge %264 None
OpBranchConditional %262 %263 %264
%263 = OpLabel
%265 = OpCompositeConstruct %v2float %128 %float_0
%266 = OpCompositeConstruct %v2float %float_0 %128
%267 = OpCompositeConstruct %mat2v2float %265 %266
%268 = OpFOrdEqual %v2bool %265 %138
%269 = OpAll %bool %268
%270 = OpFOrdEqual %v2bool %266 %139
%271 = OpAll %bool %270
%272 = OpLogicalAnd %bool %269 %271
OpBranch %264
%264 = OpLabel
%273 = OpPhi %bool %false %253 %272 %263
OpStore %_0_ok %273
OpSelectionMerge %275 None
OpBranchConditional %273 %274 %275
%274 = OpLabel
%276 = OpCompositeConstruct %v2float %128 %float_0
%277 = OpCompositeConstruct %v2float %float_0 %128
%278 = OpCompositeConstruct %mat2v2float %276 %277
%279 = OpFUnordNotEqual %v2bool %276 %19
%280 = OpAny %bool %279
%281 = OpFUnordNotEqual %v2bool %277 %19
%282 = OpAny %bool %281
%283 = OpLogicalOr %bool %280 %282
OpBranch %275
%275 = OpLabel
%284 = OpPhi %bool %false %264 %283 %274
OpStore %_0_ok %284
OpSelectionMerge %286 None
OpBranchConditional %284 %285 %286
%285 = OpLabel
%287 = OpCompositeConstruct %v3float %128 %124 %124
%288 = OpCompositeConstruct %v3float %124 %128 %124
%289 = OpCompositeConstruct %v3float %124 %124 %128
%290 = OpCompositeConstruct %mat3v3float %287 %288 %289
%295 = OpFOrdEqual %v3bool %287 %291
%296 = OpAll %bool %295
%297 = OpFOrdEqual %v3bool %288 %292
%298 = OpAll %bool %297
%299 = OpLogicalAnd %bool %296 %298
%300 = OpFOrdEqual %v3bool %289 %293
%301 = OpAll %bool %300
%302 = OpLogicalAnd %bool %299 %301
OpBranch %286
%286 = OpLabel
%303 = OpPhi %bool %false %275 %302 %285
OpStore %_0_ok %303
OpSelectionMerge %305 None
OpBranchConditional %303 %304 %305
%304 = OpLabel
%306 = OpCompositeConstruct %v3float %132 %124 %124
%307 = OpCompositeConstruct %v3float %124 %132 %124
%308 = OpCompositeConstruct %v3float %124 %124 %128
%309 = OpCompositeConstruct %mat3v3float %306 %307 %308
%316 = OpFOrdEqual %v3bool %306 %313
%317 = OpAll %bool %316
%318 = OpFOrdEqual %v3bool %307 %314
%319 = OpAll %bool %318
%320 = OpLogicalAnd %bool %317 %319
%321 = OpFOrdEqual %v3bool %308 %293
%322 = OpAll %bool %321
%323 = OpLogicalAnd %bool %320 %322
OpBranch %305
%305 = OpLabel
%324 = OpPhi %bool %false %286 %323 %304
OpStore %_0_ok %324
OpSelectionMerge %326 None
OpBranchConditional %324 %325 %326
%325 = OpLabel
%327 = OpCompositeConstruct %v3float %128 %float_0 %float_0
%328 = OpCompositeConstruct %v3float %float_0 %128 %float_0
%329 = OpCompositeConstruct %v3float %float_0 %float_0 %128
%330 = OpCompositeConstruct %mat3v3float %327 %328 %329
%331 = OpFOrdEqual %v3bool %327 %291
%332 = OpAll %bool %331
%333 = OpFOrdEqual %v3bool %328 %292
%334 = OpAll %bool %333
%335 = OpLogicalAnd %bool %332 %334
%336 = OpFOrdEqual %v3bool %329 %293
%337 = OpAll %bool %336
%338 = OpLogicalAnd %bool %335 %337
OpBranch %326
%326 = OpLabel
%339 = OpPhi %bool %false %305 %338 %325
OpStore %_0_ok %339
OpSelectionMerge %341 None
OpBranchConditional %339 %340 %341
%340 = OpLabel
%342 = OpCompositeConstruct %v3float %132 %float_0 %float_0
%343 = OpCompositeConstruct %v3float %float_0 %132 %float_0
%344 = OpCompositeConstruct %v3float %float_0 %float_0 %128
%345 = OpCompositeConstruct %mat3v3float %342 %343 %344
%346 = OpFOrdEqual %v3bool %342 %313
%347 = OpAll %bool %346
%348 = OpFOrdEqual %v3bool %343 %314
%349 = OpAll %bool %348
%350 = OpLogicalAnd %bool %347 %349
%351 = OpFOrdEqual %v3bool %344 %293
%352 = OpAll %bool %351
%353 = OpLogicalAnd %bool %350 %352
OpBranch %341
%341 = OpLabel
%354 = OpPhi %bool %false %326 %353 %340
OpStore %_0_ok %354
OpSelectionMerge %356 None
OpBranchConditional %354 %355 %356
%355 = OpLabel
%357 = OpCompositeConstruct %v3float %128 %float_0 %float_0
%358 = OpCompositeConstruct %v3float %float_0 %128 %float_0
%359 = OpCompositeConstruct %v3float %float_0 %float_0 %128
%360 = OpCompositeConstruct %mat3v3float %357 %358 %359
%361 = OpVectorShuffle %v2float %357 %357 0 1
%362 = OpVectorShuffle %v2float %358 %358 0 1
%363 = OpCompositeConstruct %mat2v2float %361 %362
%364 = OpFOrdEqual %v2bool %361 %138
%365 = OpAll %bool %364
%366 = OpFOrdEqual %v2bool %362 %139
%367 = OpAll %bool %366
%368 = OpLogicalAnd %bool %365 %367
OpBranch %356
%356 = OpLabel
%369 = OpPhi %bool %false %341 %368 %355
OpStore %_0_ok %369
OpSelectionMerge %371 None
OpBranchConditional %369 %370 %371
%370 = OpLabel
%372 = OpCompositeConstruct %v3float %128 %float_0 %float_0
%373 = OpCompositeConstruct %v3float %float_0 %128 %float_0
%374 = OpCompositeConstruct %v3float %float_0 %float_0 %128
%375 = OpCompositeConstruct %mat3v3float %372 %373 %374
%376 = OpVectorShuffle %v2float %372 %372 0 1
%377 = OpVectorShuffle %v2float %373 %373 0 1
%378 = OpCompositeConstruct %mat2v2float %376 %377
%379 = OpFOrdEqual %v2bool %376 %138
%380 = OpAll %bool %379
%381 = OpFOrdEqual %v2bool %377 %139
%382 = OpAll %bool %381
%383 = OpLogicalAnd %bool %380 %382
OpBranch %371
%371 = OpLabel
%384 = OpPhi %bool %false %356 %383 %370
OpStore %_0_ok %384
OpSelectionMerge %386 None
OpBranchConditional %384 %385 %386
%385 = OpLabel
%387 = OpCompositeConstruct %v2float %128 %124
%388 = OpCompositeConstruct %v2float %124 %128
%389 = OpCompositeConstruct %mat2v2float %387 %388
%390 = OpFOrdEqual %v2bool %387 %138
%391 = OpAll %bool %390
%392 = OpFOrdEqual %v2bool %388 %139
%393 = OpAll %bool %392
%394 = OpLogicalAnd %bool %391 %393
OpBranch %386
%386 = OpLabel
%395 = OpPhi %bool %false %371 %394 %385
OpStore %_0_ok %395
OpSelectionMerge %397 None
OpBranchConditional %395 %396 %397
%396 = OpLabel
%398 = OpCompositeConstruct %v2float %128 %124
%399 = OpCompositeConstruct %v2float %124 %128
%400 = OpCompositeConstruct %mat2v2float %398 %399
%401 = OpFOrdEqual %v2bool %398 %138
%402 = OpAll %bool %401
%403 = OpFOrdEqual %v2bool %399 %139
%404 = OpAll %bool %403
%405 = OpLogicalAnd %bool %402 %404
OpBranch %397
%397 = OpLabel
%406 = OpPhi %bool %false %386 %405 %396
OpStore %_0_ok %406
OpSelectionMerge %408 None
OpBranchConditional %406 %407 %408
%407 = OpLabel
%409 = OpCompositeConstruct %v2float %128 %124
%410 = OpCompositeConstruct %v2float %124 %128
%411 = OpCompositeConstruct %mat2v2float %409 %410
%412 = OpFOrdEqual %v2bool %409 %138
%413 = OpAll %bool %412
%414 = OpFOrdEqual %v2bool %410 %139
%415 = OpAll %bool %414
%416 = OpLogicalAnd %bool %413 %415
OpBranch %408
%408 = OpLabel
%417 = OpPhi %bool %false %397 %416 %407
OpStore %_0_ok %417
OpSelectionMerge %419 None
OpBranchConditional %417 %418 %419
%418 = OpLabel
%420 = OpAccessChain %_ptr_Uniform_mat2v2float %7 %int_2
%421 = OpLoad %mat2v2float %420
%422 = OpCompositeExtract %float %421 0 0
%423 = OpCompositeExtract %float %421 0 1
%424 = OpCompositeExtract %float %421 1 0
%425 = OpCompositeExtract %float %421 1 1
%426 = OpCompositeConstruct %v4float %422 %423 %424 %425
%427 = OpCompositeConstruct %v4float %128 %128 %128 %128
%428 = OpFMul %v4float %426 %427
%430 = OpFOrdEqual %v4bool %428 %429
%432 = OpAll %bool %430
OpBranch %419
%419 = OpLabel
%433 = OpPhi %bool %false %408 %432 %418
OpStore %_0_ok %433
OpSelectionMerge %435 None
OpBranchConditional %433 %434 %435
%434 = OpLabel
%436 = OpAccessChain %_ptr_Uniform_mat2v2float %7 %int_2
%437 = OpLoad %mat2v2float %436
%438 = OpCompositeExtract %float %437 0 0
%439 = OpCompositeExtract %float %437 0 1
%440 = OpCompositeExtract %float %437 1 0
%441 = OpCompositeExtract %float %437 1 1
%442 = OpCompositeConstruct %v4float %438 %439 %440 %441
%443 = OpCompositeConstruct %v4float %128 %128 %128 %128
%444 = OpFMul %v4float %442 %443
%445 = OpAccessChain %_ptr_Uniform_mat2v2float %7 %int_2
%446 = OpLoad %mat2v2float %445
%447 = OpCompositeExtract %float %446 0 0
%448 = OpCompositeExtract %float %446 0 1
%449 = OpCompositeExtract %float %446 1 0
%450 = OpCompositeExtract %float %446 1 1
%451 = OpCompositeConstruct %v4float %447 %448 %449 %450
%452 = OpFOrdEqual %v4bool %444 %451
%453 = OpAll %bool %452
OpBranch %435
%435 = OpLabel
%454 = OpPhi %bool %false %419 %453 %434
OpStore %_0_ok %454
OpSelectionMerge %456 None
OpBranchConditional %454 %455 %456
%455 = OpLabel
%457 = OpAccessChain %_ptr_Uniform_mat2v2float %7 %int_2
%458 = OpLoad %mat2v2float %457
%459 = OpCompositeExtract %float %458 0 0
%460 = OpCompositeExtract %float %458 0 1
%461 = OpCompositeExtract %float %458 1 0
%462 = OpCompositeExtract %float %458 1 1
%463 = OpCompositeConstruct %v4float %459 %460 %461 %462
%464 = OpCompositeConstruct %v4float %124 %124 %124 %124
%465 = OpFMul %v4float %463 %464
%467 = OpFOrdEqual %v4bool %465 %466
%468 = OpAll %bool %467
OpBranch %456
%456 = OpLabel
%469 = OpPhi %bool %false %435 %468 %455
OpStore %_0_ok %469
%472 = OpCompositeConstruct %v3float %128 %130 %float_3
%473 = OpCompositeConstruct %v3float %float_7 %float_8 %132
%474 = OpCompositeConstruct %mat3v3float %472 %66 %473
OpStore %_5_m %474
OpSelectionMerge %476 None
OpBranchConditional %469 %475 %476
%475 = OpLabel
%477 = OpAccessChain %_ptr_Function_v3float %_5_m %int_0
%479 = OpLoad %v3float %477
%480 = OpFOrdEqual %v3bool %479 %65
%481 = OpAll %bool %480
OpBranch %476
%476 = OpLabel
%482 = OpPhi %bool %false %456 %481 %475
OpStore %_0_ok %482
OpSelectionMerge %484 None
OpBranchConditional %482 %483 %484
%483 = OpLabel
%486 = OpAccessChain %_ptr_Function_v3float %_5_m %int_1
%487 = OpLoad %v3float %486
%488 = OpFOrdEqual %v3bool %487 %66
%489 = OpAll %bool %488
OpBranch %484
%484 = OpLabel
%490 = OpPhi %bool %false %476 %489 %483
OpStore %_0_ok %490
OpSelectionMerge %492 None
OpBranchConditional %490 %491 %492
%491 = OpLabel
%493 = OpAccessChain %_ptr_Function_v3float %_5_m %int_2
%494 = OpLoad %v3float %493
%495 = OpFOrdEqual %v3bool %494 %67
%496 = OpAll %bool %495
OpBranch %492
%492 = OpLabel
%497 = OpPhi %bool %false %484 %496 %491
OpStore %_0_ok %497
OpSelectionMerge %499 None
OpBranchConditional %497 %498 %499
%498 = OpLabel
%500 = OpAccessChain %_ptr_Function_v3float %_5_m %int_0
%501 = OpLoad %v3float %500
%502 = OpCompositeExtract %float %501 0
%503 = OpFOrdEqual %bool %502 %float_1
OpBranch %499
%499 = OpLabel
%504 = OpPhi %bool %false %492 %503 %498
OpStore %_0_ok %504
OpSelectionMerge %506 None
OpBranchConditional %504 %505 %506
%505 = OpLabel
%507 = OpAccessChain %_ptr_Function_v3float %_5_m %int_0
%508 = OpLoad %v3float %507
%509 = OpCompositeExtract %float %508 1
%510 = OpFOrdEqual %bool %509 %float_2
OpBranch %506
%506 = OpLabel
%511 = OpPhi %bool %false %499 %510 %505
OpStore %_0_ok %511
OpSelectionMerge %513 None
OpBranchConditional %511 %512 %513
%512 = OpLabel
%514 = OpAccessChain %_ptr_Function_v3float %_5_m %int_0
%515 = OpLoad %v3float %514
%516 = OpCompositeExtract %float %515 2
%517 = OpFOrdEqual %bool %516 %float_3
OpBranch %513
%513 = OpLabel
%518 = OpPhi %bool %false %506 %517 %512
OpStore %_0_ok %518
OpSelectionMerge %520 None
OpBranchConditional %518 %519 %520
%519 = OpLabel
%521 = OpAccessChain %_ptr_Function_v3float %_5_m %int_1
%522 = OpLoad %v3float %521
%523 = OpCompositeExtract %float %522 0
%524 = OpFOrdEqual %bool %523 %float_4
OpBranch %520
%520 = OpLabel
%525 = OpPhi %bool %false %513 %524 %519
OpStore %_0_ok %525
OpSelectionMerge %527 None
OpBranchConditional %525 %526 %527
%526 = OpLabel
%528 = OpAccessChain %_ptr_Function_v3float %_5_m %int_1
%529 = OpLoad %v3float %528
%530 = OpCompositeExtract %float %529 1
%531 = OpFOrdEqual %bool %530 %float_5
OpBranch %527
%527 = OpLabel
%532 = OpPhi %bool %false %520 %531 %526
OpStore %_0_ok %532
OpSelectionMerge %534 None
OpBranchConditional %532 %533 %534
%533 = OpLabel
%535 = OpAccessChain %_ptr_Function_v3float %_5_m %int_1
%536 = OpLoad %v3float %535
%537 = OpCompositeExtract %float %536 2
%538 = OpFOrdEqual %bool %537 %float_6
OpBranch %534
%534 = OpLabel
%539 = OpPhi %bool %false %527 %538 %533
OpStore %_0_ok %539
OpSelectionMerge %541 None
OpBranchConditional %539 %540 %541
%540 = OpLabel
%542 = OpAccessChain %_ptr_Function_v3float %_5_m %int_2
%543 = OpLoad %v3float %542
%544 = OpCompositeExtract %float %543 0
%545 = OpFOrdEqual %bool %544 %float_7
OpBranch %541
%541 = OpLabel
%546 = OpPhi %bool %false %534 %545 %540
OpStore %_0_ok %546
OpSelectionMerge %548 None
OpBranchConditional %546 %547 %548
%547 = OpLabel
%549 = OpAccessChain %_ptr_Function_v3float %_5_m %int_2
%550 = OpLoad %v3float %549
%551 = OpCompositeExtract %float %550 1
%552 = OpFOrdEqual %bool %551 %float_8
OpBranch %548
%548 = OpLabel
%553 = OpPhi %bool %false %541 %552 %547
OpStore %_0_ok %553
OpSelectionMerge %555 None
OpBranchConditional %553 %554 %555
%554 = OpLabel
%556 = OpAccessChain %_ptr_Function_v3float %_5_m %int_2
%557 = OpLoad %v3float %556
%558 = OpCompositeExtract %float %557 2
%559 = OpFOrdEqual %bool %558 %float_9
OpBranch %555
%555 = OpLabel
%560 = OpPhi %bool %false %548 %559 %554
OpStore %_0_ok %560
OpSelectionMerge %565 None
OpBranchConditional %560 %563 %564
%563 = OpLabel
%566 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%567 = OpLoad %v4float %566
OpStore %561 %567
OpBranch %565
%564 = OpLabel
%568 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%569 = OpLoad %v4float %568
OpStore %561 %569
OpBranch %565
%565 = OpLabel
%570 = OpLoad %v4float %561
OpReturnValue %570
OpFunctionEnd