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