| OpCapability Shader |
| %1 = OpExtInstImport "GLSL.std.450" |
| OpMemoryModel Logical GLSL450 |
| OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise |
| OpExecutionMode %_entrypoint_v OriginUpperLeft |
| OpName %sk_FragColor "sk_FragColor" |
| OpName %sk_Clockwise "sk_Clockwise" |
| OpName %_UniformBuffer "_UniformBuffer" |
| OpMemberName %_UniformBuffer 0 "colorGreen" |
| OpMemberName %_UniformBuffer 1 "colorRed" |
| OpName %_entrypoint_v "_entrypoint_v" |
| OpName %test_half_b "test_half_b" |
| OpName %ok "ok" |
| OpName %m1 "m1" |
| OpName %m3 "m3" |
| OpName %m4 "m4" |
| OpName %m5 "m5" |
| OpName %m7 "m7" |
| OpName %m9 "m9" |
| OpName %m10 "m10" |
| OpName %m11 "m11" |
| OpName %test_comma_b "test_comma_b" |
| OpName %x "x" |
| OpName %y "y" |
| OpName %main "main" |
| OpName %_0_ok "_0_ok" |
| OpName %_1_m1 "_1_m1" |
| OpName %_2_m3 "_2_m3" |
| OpName %_3_m4 "_3_m4" |
| OpName %_4_m5 "_4_m5" |
| OpName %_5_m7 "_5_m7" |
| OpName %_6_m9 "_6_m9" |
| OpName %_7_m10 "_7_m10" |
| OpName %_8_m11 "_8_m11" |
| OpDecorate %sk_FragColor RelaxedPrecision |
| OpDecorate %sk_FragColor Location 0 |
| OpDecorate %sk_FragColor Index 0 |
| OpDecorate %sk_Clockwise BuiltIn FrontFacing |
| OpMemberDecorate %_UniformBuffer 0 Offset 0 |
| OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision |
| OpMemberDecorate %_UniformBuffer 1 Offset 16 |
| OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision |
| OpDecorate %_UniformBuffer Block |
| OpDecorate %12 Binding 0 |
| OpDecorate %12 DescriptorSet 0 |
| OpDecorate %m1 RelaxedPrecision |
| OpDecorate %37 RelaxedPrecision |
| OpDecorate %38 RelaxedPrecision |
| OpDecorate %39 RelaxedPrecision |
| OpDecorate %41 RelaxedPrecision |
| OpDecorate %44 RelaxedPrecision |
| OpDecorate %45 RelaxedPrecision |
| OpDecorate %46 RelaxedPrecision |
| OpDecorate %47 RelaxedPrecision |
| OpDecorate %m3 RelaxedPrecision |
| OpDecorate %60 RelaxedPrecision |
| OpDecorate %61 RelaxedPrecision |
| OpDecorate %64 RelaxedPrecision |
| OpDecorate %65 RelaxedPrecision |
| OpDecorate %66 RelaxedPrecision |
| OpDecorate %67 RelaxedPrecision |
| OpDecorate %m4 RelaxedPrecision |
| OpDecorate %80 RelaxedPrecision |
| OpDecorate %81 RelaxedPrecision |
| OpDecorate %82 RelaxedPrecision |
| OpDecorate %83 RelaxedPrecision |
| OpDecorate %86 RelaxedPrecision |
| OpDecorate %87 RelaxedPrecision |
| OpDecorate %88 RelaxedPrecision |
| OpDecorate %89 RelaxedPrecision |
| OpDecorate %100 RelaxedPrecision |
| OpDecorate %101 RelaxedPrecision |
| OpDecorate %102 RelaxedPrecision |
| OpDecorate %103 RelaxedPrecision |
| OpDecorate %106 RelaxedPrecision |
| OpDecorate %110 RelaxedPrecision |
| OpDecorate %111 RelaxedPrecision |
| OpDecorate %112 RelaxedPrecision |
| OpDecorate %m5 RelaxedPrecision |
| OpDecorate %127 RelaxedPrecision |
| OpDecorate %128 RelaxedPrecision |
| OpDecorate %129 RelaxedPrecision |
| OpDecorate %130 RelaxedPrecision |
| OpDecorate %131 RelaxedPrecision |
| OpDecorate %132 RelaxedPrecision |
| OpDecorate %135 RelaxedPrecision |
| OpDecorate %136 RelaxedPrecision |
| OpDecorate %137 RelaxedPrecision |
| OpDecorate %138 RelaxedPrecision |
| OpDecorate %149 RelaxedPrecision |
| OpDecorate %150 RelaxedPrecision |
| OpDecorate %151 RelaxedPrecision |
| OpDecorate %152 RelaxedPrecision |
| OpDecorate %153 RelaxedPrecision |
| OpDecorate %154 RelaxedPrecision |
| OpDecorate %155 RelaxedPrecision |
| OpDecorate %156 RelaxedPrecision |
| OpDecorate %157 RelaxedPrecision |
| OpDecorate %158 RelaxedPrecision |
| OpDecorate %161 RelaxedPrecision |
| OpDecorate %164 RelaxedPrecision |
| OpDecorate %165 RelaxedPrecision |
| OpDecorate %166 RelaxedPrecision |
| OpDecorate %m7 RelaxedPrecision |
| OpDecorate %179 RelaxedPrecision |
| OpDecorate %180 RelaxedPrecision |
| OpDecorate %181 RelaxedPrecision |
| OpDecorate %182 RelaxedPrecision |
| OpDecorate %185 RelaxedPrecision |
| OpDecorate %186 RelaxedPrecision |
| OpDecorate %187 RelaxedPrecision |
| OpDecorate %188 RelaxedPrecision |
| OpDecorate %m9 RelaxedPrecision |
| OpDecorate %204 RelaxedPrecision |
| OpDecorate %205 RelaxedPrecision |
| OpDecorate %206 RelaxedPrecision |
| OpDecorate %207 RelaxedPrecision |
| OpDecorate %208 RelaxedPrecision |
| OpDecorate %211 RelaxedPrecision |
| OpDecorate %212 RelaxedPrecision |
| OpDecorate %213 RelaxedPrecision |
| OpDecorate %214 RelaxedPrecision |
| OpDecorate %215 RelaxedPrecision |
| OpDecorate %m10 RelaxedPrecision |
| OpDecorate %236 RelaxedPrecision |
| OpDecorate %237 RelaxedPrecision |
| OpDecorate %238 RelaxedPrecision |
| OpDecorate %239 RelaxedPrecision |
| OpDecorate %240 RelaxedPrecision |
| OpDecorate %241 RelaxedPrecision |
| OpDecorate %244 RelaxedPrecision |
| OpDecorate %245 RelaxedPrecision |
| OpDecorate %246 RelaxedPrecision |
| OpDecorate %247 RelaxedPrecision |
| OpDecorate %248 RelaxedPrecision |
| OpDecorate %249 RelaxedPrecision |
| OpDecorate %m11 RelaxedPrecision |
| OpDecorate %273 RelaxedPrecision |
| OpDecorate %274 RelaxedPrecision |
| OpDecorate %275 RelaxedPrecision |
| OpDecorate %276 RelaxedPrecision |
| OpDecorate %277 RelaxedPrecision |
| OpDecorate %278 RelaxedPrecision |
| OpDecorate %279 RelaxedPrecision |
| OpDecorate %280 RelaxedPrecision |
| OpDecorate %281 RelaxedPrecision |
| OpDecorate %282 RelaxedPrecision |
| OpDecorate %283 RelaxedPrecision |
| OpDecorate %284 RelaxedPrecision |
| OpDecorate %285 RelaxedPrecision |
| OpDecorate %286 RelaxedPrecision |
| OpDecorate %287 RelaxedPrecision |
| OpDecorate %288 RelaxedPrecision |
| OpDecorate %289 RelaxedPrecision |
| OpDecorate %290 RelaxedPrecision |
| OpDecorate %291 RelaxedPrecision |
| OpDecorate %292 RelaxedPrecision |
| OpDecorate %293 RelaxedPrecision |
| OpDecorate %296 RelaxedPrecision |
| OpDecorate %297 RelaxedPrecision |
| OpDecorate %298 RelaxedPrecision |
| OpDecorate %299 RelaxedPrecision |
| OpDecorate %300 RelaxedPrecision |
| OpDecorate %301 RelaxedPrecision |
| OpDecorate %322 RelaxedPrecision |
| OpDecorate %351 RelaxedPrecision |
| OpDecorate %370 RelaxedPrecision |
| OpDecorate %391 RelaxedPrecision |
| OpDecorate %411 RelaxedPrecision |
| OpDecorate %435 RelaxedPrecision |
| OpDecorate %461 RelaxedPrecision |
| OpDecorate %482 RelaxedPrecision |
| OpDecorate %504 RelaxedPrecision |
| OpDecorate %533 RelaxedPrecision |
| OpDecorate %583 RelaxedPrecision |
| OpDecorate %612 RelaxedPrecision |
| OpDecorate %629 RelaxedPrecision |
| OpDecorate %631 RelaxedPrecision |
| OpDecorate %632 RelaxedPrecision |
| %float = OpTypeFloat 32 |
| %v4float = OpTypeVector %float 4 |
| %_ptr_Output_v4float = OpTypePointer Output %v4float |
| %sk_FragColor = OpVariable %_ptr_Output_v4float Output |
| %bool = OpTypeBool |
| %_ptr_Input_bool = OpTypePointer Input %bool |
| %sk_Clockwise = OpVariable %_ptr_Input_bool Input |
| %_UniformBuffer = OpTypeStruct %v4float %v4float |
| %_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer |
| %12 = OpVariable %_ptr_Uniform__UniformBuffer Uniform |
| %void = OpTypeVoid |
| %17 = OpTypeFunction %void |
| %v2float = OpTypeVector %float 2 |
| %float_0 = OpConstant %float 0 |
| %21 = OpConstantComposite %v2float %float_0 %float_0 |
| %_ptr_Function_v2float = OpTypePointer Function %v2float |
| %25 = OpTypeFunction %bool |
| %_ptr_Function_bool = OpTypePointer Function %bool |
| %true = OpConstantTrue %bool |
| %mat2v2float = OpTypeMatrix %v2float 2 |
| %_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float |
| %float_1 = OpConstant %float 1 |
| %float_2 = OpConstant %float 2 |
| %float_3 = OpConstant %float 3 |
| %float_4 = OpConstant %float 4 |
| %false = OpConstantFalse %bool |
| %v2bool = OpTypeVector %bool 2 |
| %float_6 = OpConstant %float 6 |
| %float_12 = OpConstant %float 12 |
| %float_18 = OpConstant %float 18 |
| %float_24 = OpConstant %float 24 |
| %int = OpTypeInt 32 1 |
| %int_1 = OpConstant %int 1 |
| %float_5 = OpConstant %float 5 |
| %float_8 = OpConstant %float 8 |
| %float_7 = OpConstant %float 7 |
| %v3float = OpTypeVector %float 3 |
| %mat3v3float = OpTypeMatrix %v3float 3 |
| %_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float |
| %float_9 = OpConstant %float 9 |
| %v3bool = OpTypeVector %bool 3 |
| %mat4v4float = OpTypeMatrix %v4float 4 |
| %_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float |
| %float_11 = OpConstant %float 11 |
| %v4bool = OpTypeVector %bool 4 |
| %float_20 = OpConstant %float 20 |
| %343 = OpTypeFunction %v4float %_ptr_Function_v2float |
| %_ptr_Function_v4float = OpTypePointer Function %v4float |
| %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float |
| %int_0 = OpConstant %int 0 |
| %_entrypoint_v = OpFunction %void None %17 |
| %18 = OpLabel |
| %22 = OpVariable %_ptr_Function_v2float Function |
| OpStore %22 %21 |
| %24 = OpFunctionCall %v4float %main %22 |
| OpStore %sk_FragColor %24 |
| OpReturn |
| OpFunctionEnd |
| %test_half_b = OpFunction %bool None %25 |
| %26 = OpLabel |
| %ok = OpVariable %_ptr_Function_bool Function |
| %m1 = OpVariable %_ptr_Function_mat2v2float Function |
| %m3 = OpVariable %_ptr_Function_mat2v2float Function |
| %m4 = OpVariable %_ptr_Function_mat2v2float Function |
| %m5 = OpVariable %_ptr_Function_mat2v2float Function |
| %m7 = OpVariable %_ptr_Function_mat2v2float Function |
| %m9 = OpVariable %_ptr_Function_mat3v3float Function |
| %m10 = OpVariable %_ptr_Function_mat4v4float Function |
| %m11 = OpVariable %_ptr_Function_mat4v4float Function |
| OpStore %ok %true |
| %37 = OpCompositeConstruct %v2float %float_1 %float_2 |
| %38 = OpCompositeConstruct %v2float %float_3 %float_4 |
| %39 = OpCompositeConstruct %mat2v2float %37 %38 |
| OpStore %m1 %39 |
| %41 = OpLoad %bool %ok |
| OpSelectionMerge %43 None |
| OpBranchConditional %41 %42 %43 |
| %42 = OpLabel |
| %44 = OpLoad %mat2v2float %m1 |
| %45 = OpCompositeConstruct %v2float %float_1 %float_2 |
| %46 = OpCompositeConstruct %v2float %float_3 %float_4 |
| %47 = OpCompositeConstruct %mat2v2float %45 %46 |
| %49 = OpCompositeExtract %v2float %44 0 |
| %50 = OpCompositeExtract %v2float %47 0 |
| %51 = OpFOrdEqual %v2bool %49 %50 |
| %52 = OpAll %bool %51 |
| %53 = OpCompositeExtract %v2float %44 1 |
| %54 = OpCompositeExtract %v2float %47 1 |
| %55 = OpFOrdEqual %v2bool %53 %54 |
| %56 = OpAll %bool %55 |
| %57 = OpLogicalAnd %bool %52 %56 |
| OpBranch %43 |
| %43 = OpLabel |
| %58 = OpPhi %bool %false %26 %57 %42 |
| OpStore %ok %58 |
| %60 = OpLoad %mat2v2float %m1 |
| OpStore %m3 %60 |
| %61 = OpLoad %bool %ok |
| OpSelectionMerge %63 None |
| OpBranchConditional %61 %62 %63 |
| %62 = OpLabel |
| %64 = OpLoad %mat2v2float %m3 |
| %65 = OpCompositeConstruct %v2float %float_1 %float_2 |
| %66 = OpCompositeConstruct %v2float %float_3 %float_4 |
| %67 = OpCompositeConstruct %mat2v2float %65 %66 |
| %68 = OpCompositeExtract %v2float %64 0 |
| %69 = OpCompositeExtract %v2float %67 0 |
| %70 = OpFOrdEqual %v2bool %68 %69 |
| %71 = OpAll %bool %70 |
| %72 = OpCompositeExtract %v2float %64 1 |
| %73 = OpCompositeExtract %v2float %67 1 |
| %74 = OpFOrdEqual %v2bool %72 %73 |
| %75 = OpAll %bool %74 |
| %76 = OpLogicalAnd %bool %71 %75 |
| OpBranch %63 |
| %63 = OpLabel |
| %77 = OpPhi %bool %false %43 %76 %62 |
| OpStore %ok %77 |
| %81 = OpCompositeConstruct %v2float %float_6 %float_0 |
| %82 = OpCompositeConstruct %v2float %float_0 %float_6 |
| %80 = OpCompositeConstruct %mat2v2float %81 %82 |
| OpStore %m4 %80 |
| %83 = OpLoad %bool %ok |
| OpSelectionMerge %85 None |
| OpBranchConditional %83 %84 %85 |
| %84 = OpLabel |
| %86 = OpLoad %mat2v2float %m4 |
| %87 = OpCompositeConstruct %v2float %float_6 %float_0 |
| %88 = OpCompositeConstruct %v2float %float_0 %float_6 |
| %89 = OpCompositeConstruct %mat2v2float %87 %88 |
| %90 = OpCompositeExtract %v2float %86 0 |
| %91 = OpCompositeExtract %v2float %89 0 |
| %92 = OpFOrdEqual %v2bool %90 %91 |
| %93 = OpAll %bool %92 |
| %94 = OpCompositeExtract %v2float %86 1 |
| %95 = OpCompositeExtract %v2float %89 1 |
| %96 = OpFOrdEqual %v2bool %94 %95 |
| %97 = OpAll %bool %96 |
| %98 = OpLogicalAnd %bool %93 %97 |
| OpBranch %85 |
| %85 = OpLabel |
| %99 = OpPhi %bool %false %63 %98 %84 |
| OpStore %ok %99 |
| %100 = OpLoad %mat2v2float %m3 |
| %101 = OpLoad %mat2v2float %m4 |
| %102 = OpMatrixTimesMatrix %mat2v2float %100 %101 |
| OpStore %m3 %102 |
| %103 = OpLoad %bool %ok |
| OpSelectionMerge %105 None |
| OpBranchConditional %103 %104 %105 |
| %104 = OpLabel |
| %106 = OpLoad %mat2v2float %m3 |
| %110 = OpCompositeConstruct %v2float %float_6 %float_12 |
| %111 = OpCompositeConstruct %v2float %float_18 %float_24 |
| %112 = OpCompositeConstruct %mat2v2float %110 %111 |
| %113 = OpCompositeExtract %v2float %106 0 |
| %114 = OpCompositeExtract %v2float %112 0 |
| %115 = OpFOrdEqual %v2bool %113 %114 |
| %116 = OpAll %bool %115 |
| %117 = OpCompositeExtract %v2float %106 1 |
| %118 = OpCompositeExtract %v2float %112 1 |
| %119 = OpFOrdEqual %v2bool %117 %118 |
| %120 = OpAll %bool %119 |
| %121 = OpLogicalAnd %bool %116 %120 |
| OpBranch %105 |
| %105 = OpLabel |
| %122 = OpPhi %bool %false %85 %121 %104 |
| OpStore %ok %122 |
| %126 = OpAccessChain %_ptr_Function_v2float %m1 %int_1 |
| %127 = OpLoad %v2float %126 |
| %128 = OpCompositeExtract %float %127 1 |
| %130 = OpCompositeConstruct %v2float %128 %float_0 |
| %131 = OpCompositeConstruct %v2float %float_0 %128 |
| %129 = OpCompositeConstruct %mat2v2float %130 %131 |
| OpStore %m5 %129 |
| %132 = OpLoad %bool %ok |
| OpSelectionMerge %134 None |
| OpBranchConditional %132 %133 %134 |
| %133 = OpLabel |
| %135 = OpLoad %mat2v2float %m5 |
| %136 = OpCompositeConstruct %v2float %float_4 %float_0 |
| %137 = OpCompositeConstruct %v2float %float_0 %float_4 |
| %138 = OpCompositeConstruct %mat2v2float %136 %137 |
| %139 = OpCompositeExtract %v2float %135 0 |
| %140 = OpCompositeExtract %v2float %138 0 |
| %141 = OpFOrdEqual %v2bool %139 %140 |
| %142 = OpAll %bool %141 |
| %143 = OpCompositeExtract %v2float %135 1 |
| %144 = OpCompositeExtract %v2float %138 1 |
| %145 = OpFOrdEqual %v2bool %143 %144 |
| %146 = OpAll %bool %145 |
| %147 = OpLogicalAnd %bool %142 %146 |
| OpBranch %134 |
| %134 = OpLabel |
| %148 = OpPhi %bool %false %105 %147 %133 |
| OpStore %ok %148 |
| %149 = OpLoad %mat2v2float %m1 |
| %150 = OpLoad %mat2v2float %m5 |
| %151 = OpCompositeExtract %v2float %149 0 |
| %152 = OpCompositeExtract %v2float %150 0 |
| %153 = OpFAdd %v2float %151 %152 |
| %154 = OpCompositeExtract %v2float %149 1 |
| %155 = OpCompositeExtract %v2float %150 1 |
| %156 = OpFAdd %v2float %154 %155 |
| %157 = OpCompositeConstruct %mat2v2float %153 %156 |
| OpStore %m1 %157 |
| %158 = OpLoad %bool %ok |
| OpSelectionMerge %160 None |
| OpBranchConditional %158 %159 %160 |
| %159 = OpLabel |
| %161 = OpLoad %mat2v2float %m1 |
| %164 = OpCompositeConstruct %v2float %float_5 %float_2 |
| %165 = OpCompositeConstruct %v2float %float_3 %float_8 |
| %166 = OpCompositeConstruct %mat2v2float %164 %165 |
| %167 = OpCompositeExtract %v2float %161 0 |
| %168 = OpCompositeExtract %v2float %166 0 |
| %169 = OpFOrdEqual %v2bool %167 %168 |
| %170 = OpAll %bool %169 |
| %171 = OpCompositeExtract %v2float %161 1 |
| %172 = OpCompositeExtract %v2float %166 1 |
| %173 = OpFOrdEqual %v2bool %171 %172 |
| %174 = OpAll %bool %173 |
| %175 = OpLogicalAnd %bool %170 %174 |
| OpBranch %160 |
| %160 = OpLabel |
| %176 = OpPhi %bool %false %134 %175 %159 |
| OpStore %ok %176 |
| %179 = OpCompositeConstruct %v2float %float_5 %float_6 |
| %180 = OpCompositeConstruct %v2float %float_7 %float_8 |
| %181 = OpCompositeConstruct %mat2v2float %179 %180 |
| OpStore %m7 %181 |
| %182 = OpLoad %bool %ok |
| OpSelectionMerge %184 None |
| OpBranchConditional %182 %183 %184 |
| %183 = OpLabel |
| %185 = OpLoad %mat2v2float %m7 |
| %186 = OpCompositeConstruct %v2float %float_5 %float_6 |
| %187 = OpCompositeConstruct %v2float %float_7 %float_8 |
| %188 = OpCompositeConstruct %mat2v2float %186 %187 |
| %189 = OpCompositeExtract %v2float %185 0 |
| %190 = OpCompositeExtract %v2float %188 0 |
| %191 = OpFOrdEqual %v2bool %189 %190 |
| %192 = OpAll %bool %191 |
| %193 = OpCompositeExtract %v2float %185 1 |
| %194 = OpCompositeExtract %v2float %188 1 |
| %195 = OpFOrdEqual %v2bool %193 %194 |
| %196 = OpAll %bool %195 |
| %197 = OpLogicalAnd %bool %192 %196 |
| OpBranch %184 |
| %184 = OpLabel |
| %198 = OpPhi %bool %false %160 %197 %183 |
| OpStore %ok %198 |
| %205 = OpCompositeConstruct %v3float %float_9 %float_0 %float_0 |
| %206 = OpCompositeConstruct %v3float %float_0 %float_9 %float_0 |
| %207 = OpCompositeConstruct %v3float %float_0 %float_0 %float_9 |
| %204 = OpCompositeConstruct %mat3v3float %205 %206 %207 |
| OpStore %m9 %204 |
| %208 = OpLoad %bool %ok |
| OpSelectionMerge %210 None |
| OpBranchConditional %208 %209 %210 |
| %209 = OpLabel |
| %211 = OpLoad %mat3v3float %m9 |
| %212 = OpCompositeConstruct %v3float %float_9 %float_0 %float_0 |
| %213 = OpCompositeConstruct %v3float %float_0 %float_9 %float_0 |
| %214 = OpCompositeConstruct %v3float %float_0 %float_0 %float_9 |
| %215 = OpCompositeConstruct %mat3v3float %212 %213 %214 |
| %217 = OpCompositeExtract %v3float %211 0 |
| %218 = OpCompositeExtract %v3float %215 0 |
| %219 = OpFOrdEqual %v3bool %217 %218 |
| %220 = OpAll %bool %219 |
| %221 = OpCompositeExtract %v3float %211 1 |
| %222 = OpCompositeExtract %v3float %215 1 |
| %223 = OpFOrdEqual %v3bool %221 %222 |
| %224 = OpAll %bool %223 |
| %225 = OpLogicalAnd %bool %220 %224 |
| %226 = OpCompositeExtract %v3float %211 2 |
| %227 = OpCompositeExtract %v3float %215 2 |
| %228 = OpFOrdEqual %v3bool %226 %227 |
| %229 = OpAll %bool %228 |
| %230 = OpLogicalAnd %bool %225 %229 |
| OpBranch %210 |
| %210 = OpLabel |
| %231 = OpPhi %bool %false %184 %230 %209 |
| OpStore %ok %231 |
| %237 = OpCompositeConstruct %v4float %float_11 %float_0 %float_0 %float_0 |
| %238 = OpCompositeConstruct %v4float %float_0 %float_11 %float_0 %float_0 |
| %239 = OpCompositeConstruct %v4float %float_0 %float_0 %float_11 %float_0 |
| %240 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_11 |
| %236 = OpCompositeConstruct %mat4v4float %237 %238 %239 %240 |
| OpStore %m10 %236 |
| %241 = OpLoad %bool %ok |
| OpSelectionMerge %243 None |
| OpBranchConditional %241 %242 %243 |
| %242 = OpLabel |
| %244 = OpLoad %mat4v4float %m10 |
| %245 = OpCompositeConstruct %v4float %float_11 %float_0 %float_0 %float_0 |
| %246 = OpCompositeConstruct %v4float %float_0 %float_11 %float_0 %float_0 |
| %247 = OpCompositeConstruct %v4float %float_0 %float_0 %float_11 %float_0 |
| %248 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_11 |
| %249 = OpCompositeConstruct %mat4v4float %245 %246 %247 %248 |
| %251 = OpCompositeExtract %v4float %244 0 |
| %252 = OpCompositeExtract %v4float %249 0 |
| %253 = OpFOrdEqual %v4bool %251 %252 |
| %254 = OpAll %bool %253 |
| %255 = OpCompositeExtract %v4float %244 1 |
| %256 = OpCompositeExtract %v4float %249 1 |
| %257 = OpFOrdEqual %v4bool %255 %256 |
| %258 = OpAll %bool %257 |
| %259 = OpLogicalAnd %bool %254 %258 |
| %260 = OpCompositeExtract %v4float %244 2 |
| %261 = OpCompositeExtract %v4float %249 2 |
| %262 = OpFOrdEqual %v4bool %260 %261 |
| %263 = OpAll %bool %262 |
| %264 = OpLogicalAnd %bool %259 %263 |
| %265 = OpCompositeExtract %v4float %244 3 |
| %266 = OpCompositeExtract %v4float %249 3 |
| %267 = OpFOrdEqual %v4bool %265 %266 |
| %268 = OpAll %bool %267 |
| %269 = OpLogicalAnd %bool %264 %268 |
| OpBranch %243 |
| %243 = OpLabel |
| %270 = OpPhi %bool %false %210 %269 %242 |
| OpStore %ok %270 |
| %273 = OpCompositeConstruct %v4float %float_20 %float_20 %float_20 %float_20 |
| %274 = OpCompositeConstruct %v4float %float_20 %float_20 %float_20 %float_20 |
| %275 = OpCompositeConstruct %v4float %float_20 %float_20 %float_20 %float_20 |
| %276 = OpCompositeConstruct %v4float %float_20 %float_20 %float_20 %float_20 |
| %277 = OpCompositeConstruct %mat4v4float %273 %274 %275 %276 |
| OpStore %m11 %277 |
| %278 = OpLoad %mat4v4float %m11 |
| %279 = OpLoad %mat4v4float %m10 |
| %280 = OpCompositeExtract %v4float %278 0 |
| %281 = OpCompositeExtract %v4float %279 0 |
| %282 = OpFSub %v4float %280 %281 |
| %283 = OpCompositeExtract %v4float %278 1 |
| %284 = OpCompositeExtract %v4float %279 1 |
| %285 = OpFSub %v4float %283 %284 |
| %286 = OpCompositeExtract %v4float %278 2 |
| %287 = OpCompositeExtract %v4float %279 2 |
| %288 = OpFSub %v4float %286 %287 |
| %289 = OpCompositeExtract %v4float %278 3 |
| %290 = OpCompositeExtract %v4float %279 3 |
| %291 = OpFSub %v4float %289 %290 |
| %292 = OpCompositeConstruct %mat4v4float %282 %285 %288 %291 |
| OpStore %m11 %292 |
| %293 = OpLoad %bool %ok |
| OpSelectionMerge %295 None |
| OpBranchConditional %293 %294 %295 |
| %294 = OpLabel |
| %296 = OpLoad %mat4v4float %m11 |
| %297 = OpCompositeConstruct %v4float %float_9 %float_20 %float_20 %float_20 |
| %298 = OpCompositeConstruct %v4float %float_20 %float_9 %float_20 %float_20 |
| %299 = OpCompositeConstruct %v4float %float_20 %float_20 %float_9 %float_20 |
| %300 = OpCompositeConstruct %v4float %float_20 %float_20 %float_20 %float_9 |
| %301 = OpCompositeConstruct %mat4v4float %297 %298 %299 %300 |
| %302 = OpCompositeExtract %v4float %296 0 |
| %303 = OpCompositeExtract %v4float %301 0 |
| %304 = OpFOrdEqual %v4bool %302 %303 |
| %305 = OpAll %bool %304 |
| %306 = OpCompositeExtract %v4float %296 1 |
| %307 = OpCompositeExtract %v4float %301 1 |
| %308 = OpFOrdEqual %v4bool %306 %307 |
| %309 = OpAll %bool %308 |
| %310 = OpLogicalAnd %bool %305 %309 |
| %311 = OpCompositeExtract %v4float %296 2 |
| %312 = OpCompositeExtract %v4float %301 2 |
| %313 = OpFOrdEqual %v4bool %311 %312 |
| %314 = OpAll %bool %313 |
| %315 = OpLogicalAnd %bool %310 %314 |
| %316 = OpCompositeExtract %v4float %296 3 |
| %317 = OpCompositeExtract %v4float %301 3 |
| %318 = OpFOrdEqual %v4bool %316 %317 |
| %319 = OpAll %bool %318 |
| %320 = OpLogicalAnd %bool %315 %319 |
| OpBranch %295 |
| %295 = OpLabel |
| %321 = OpPhi %bool %false %243 %320 %294 |
| OpStore %ok %321 |
| %322 = OpLoad %bool %ok |
| OpReturnValue %322 |
| OpFunctionEnd |
| %test_comma_b = OpFunction %bool None %25 |
| %323 = OpLabel |
| %x = OpVariable %_ptr_Function_mat2v2float Function |
| %y = OpVariable %_ptr_Function_mat2v2float Function |
| %326 = OpCompositeConstruct %v2float %float_1 %float_2 |
| %327 = OpCompositeConstruct %v2float %float_3 %float_4 |
| %328 = OpCompositeConstruct %mat2v2float %326 %327 |
| OpStore %x %328 |
| %329 = OpCompositeConstruct %v2float %float_1 %float_2 |
| %330 = OpCompositeConstruct %v2float %float_3 %float_4 |
| %331 = OpCompositeConstruct %mat2v2float %329 %330 |
| OpStore %y %331 |
| %332 = OpLoad %mat2v2float %x |
| %333 = OpLoad %mat2v2float %y |
| %334 = OpCompositeExtract %v2float %332 0 |
| %335 = OpCompositeExtract %v2float %333 0 |
| %336 = OpFOrdEqual %v2bool %334 %335 |
| %337 = OpAll %bool %336 |
| %338 = OpCompositeExtract %v2float %332 1 |
| %339 = OpCompositeExtract %v2float %333 1 |
| %340 = OpFOrdEqual %v2bool %338 %339 |
| %341 = OpAll %bool %340 |
| %342 = OpLogicalAnd %bool %337 %341 |
| OpReturnValue %342 |
| OpFunctionEnd |
| %main = OpFunction %v4float None %343 |
| %344 = OpFunctionParameter %_ptr_Function_v2float |
| %345 = OpLabel |
| %_0_ok = OpVariable %_ptr_Function_bool Function |
| %_1_m1 = OpVariable %_ptr_Function_mat2v2float Function |
| %_2_m3 = OpVariable %_ptr_Function_mat2v2float Function |
| %_3_m4 = OpVariable %_ptr_Function_mat2v2float Function |
| %_4_m5 = OpVariable %_ptr_Function_mat2v2float Function |
| %_5_m7 = OpVariable %_ptr_Function_mat2v2float Function |
| %_6_m9 = OpVariable %_ptr_Function_mat3v3float Function |
| %_7_m10 = OpVariable %_ptr_Function_mat4v4float Function |
| %_8_m11 = OpVariable %_ptr_Function_mat4v4float Function |
| %621 = OpVariable %_ptr_Function_v4float Function |
| OpStore %_0_ok %true |
| %348 = OpCompositeConstruct %v2float %float_1 %float_2 |
| %349 = OpCompositeConstruct %v2float %float_3 %float_4 |
| %350 = OpCompositeConstruct %mat2v2float %348 %349 |
| OpStore %_1_m1 %350 |
| %351 = OpLoad %bool %_0_ok |
| OpSelectionMerge %353 None |
| OpBranchConditional %351 %352 %353 |
| %352 = OpLabel |
| %354 = OpLoad %mat2v2float %_1_m1 |
| %355 = OpCompositeConstruct %v2float %float_1 %float_2 |
| %356 = OpCompositeConstruct %v2float %float_3 %float_4 |
| %357 = OpCompositeConstruct %mat2v2float %355 %356 |
| %358 = OpCompositeExtract %v2float %354 0 |
| %359 = OpCompositeExtract %v2float %357 0 |
| %360 = OpFOrdEqual %v2bool %358 %359 |
| %361 = OpAll %bool %360 |
| %362 = OpCompositeExtract %v2float %354 1 |
| %363 = OpCompositeExtract %v2float %357 1 |
| %364 = OpFOrdEqual %v2bool %362 %363 |
| %365 = OpAll %bool %364 |
| %366 = OpLogicalAnd %bool %361 %365 |
| OpBranch %353 |
| %353 = OpLabel |
| %367 = OpPhi %bool %false %345 %366 %352 |
| OpStore %_0_ok %367 |
| %369 = OpLoad %mat2v2float %_1_m1 |
| OpStore %_2_m3 %369 |
| %370 = OpLoad %bool %_0_ok |
| OpSelectionMerge %372 None |
| OpBranchConditional %370 %371 %372 |
| %371 = OpLabel |
| %373 = OpLoad %mat2v2float %_2_m3 |
| %374 = OpCompositeConstruct %v2float %float_1 %float_2 |
| %375 = OpCompositeConstruct %v2float %float_3 %float_4 |
| %376 = OpCompositeConstruct %mat2v2float %374 %375 |
| %377 = OpCompositeExtract %v2float %373 0 |
| %378 = OpCompositeExtract %v2float %376 0 |
| %379 = OpFOrdEqual %v2bool %377 %378 |
| %380 = OpAll %bool %379 |
| %381 = OpCompositeExtract %v2float %373 1 |
| %382 = OpCompositeExtract %v2float %376 1 |
| %383 = OpFOrdEqual %v2bool %381 %382 |
| %384 = OpAll %bool %383 |
| %385 = OpLogicalAnd %bool %380 %384 |
| OpBranch %372 |
| %372 = OpLabel |
| %386 = OpPhi %bool %false %353 %385 %371 |
| OpStore %_0_ok %386 |
| %389 = OpCompositeConstruct %v2float %float_6 %float_0 |
| %390 = OpCompositeConstruct %v2float %float_0 %float_6 |
| %388 = OpCompositeConstruct %mat2v2float %389 %390 |
| OpStore %_3_m4 %388 |
| %391 = OpLoad %bool %_0_ok |
| OpSelectionMerge %393 None |
| OpBranchConditional %391 %392 %393 |
| %392 = OpLabel |
| %394 = OpLoad %mat2v2float %_3_m4 |
| %395 = OpCompositeConstruct %v2float %float_6 %float_0 |
| %396 = OpCompositeConstruct %v2float %float_0 %float_6 |
| %397 = OpCompositeConstruct %mat2v2float %395 %396 |
| %398 = OpCompositeExtract %v2float %394 0 |
| %399 = OpCompositeExtract %v2float %397 0 |
| %400 = OpFOrdEqual %v2bool %398 %399 |
| %401 = OpAll %bool %400 |
| %402 = OpCompositeExtract %v2float %394 1 |
| %403 = OpCompositeExtract %v2float %397 1 |
| %404 = OpFOrdEqual %v2bool %402 %403 |
| %405 = OpAll %bool %404 |
| %406 = OpLogicalAnd %bool %401 %405 |
| OpBranch %393 |
| %393 = OpLabel |
| %407 = OpPhi %bool %false %372 %406 %392 |
| OpStore %_0_ok %407 |
| %408 = OpLoad %mat2v2float %_2_m3 |
| %409 = OpLoad %mat2v2float %_3_m4 |
| %410 = OpMatrixTimesMatrix %mat2v2float %408 %409 |
| OpStore %_2_m3 %410 |
| %411 = OpLoad %bool %_0_ok |
| OpSelectionMerge %413 None |
| OpBranchConditional %411 %412 %413 |
| %412 = OpLabel |
| %414 = OpLoad %mat2v2float %_2_m3 |
| %415 = OpCompositeConstruct %v2float %float_6 %float_12 |
| %416 = OpCompositeConstruct %v2float %float_18 %float_24 |
| %417 = OpCompositeConstruct %mat2v2float %415 %416 |
| %418 = OpCompositeExtract %v2float %414 0 |
| %419 = OpCompositeExtract %v2float %417 0 |
| %420 = OpFOrdEqual %v2bool %418 %419 |
| %421 = OpAll %bool %420 |
| %422 = OpCompositeExtract %v2float %414 1 |
| %423 = OpCompositeExtract %v2float %417 1 |
| %424 = OpFOrdEqual %v2bool %422 %423 |
| %425 = OpAll %bool %424 |
| %426 = OpLogicalAnd %bool %421 %425 |
| OpBranch %413 |
| %413 = OpLabel |
| %427 = OpPhi %bool %false %393 %426 %412 |
| OpStore %_0_ok %427 |
| %429 = OpAccessChain %_ptr_Function_v2float %_1_m1 %int_1 |
| %430 = OpLoad %v2float %429 |
| %431 = OpCompositeExtract %float %430 1 |
| %433 = OpCompositeConstruct %v2float %431 %float_0 |
| %434 = OpCompositeConstruct %v2float %float_0 %431 |
| %432 = OpCompositeConstruct %mat2v2float %433 %434 |
| OpStore %_4_m5 %432 |
| %435 = OpLoad %bool %_0_ok |
| OpSelectionMerge %437 None |
| OpBranchConditional %435 %436 %437 |
| %436 = OpLabel |
| %438 = OpLoad %mat2v2float %_4_m5 |
| %439 = OpCompositeConstruct %v2float %float_4 %float_0 |
| %440 = OpCompositeConstruct %v2float %float_0 %float_4 |
| %441 = OpCompositeConstruct %mat2v2float %439 %440 |
| %442 = OpCompositeExtract %v2float %438 0 |
| %443 = OpCompositeExtract %v2float %441 0 |
| %444 = OpFOrdEqual %v2bool %442 %443 |
| %445 = OpAll %bool %444 |
| %446 = OpCompositeExtract %v2float %438 1 |
| %447 = OpCompositeExtract %v2float %441 1 |
| %448 = OpFOrdEqual %v2bool %446 %447 |
| %449 = OpAll %bool %448 |
| %450 = OpLogicalAnd %bool %445 %449 |
| OpBranch %437 |
| %437 = OpLabel |
| %451 = OpPhi %bool %false %413 %450 %436 |
| OpStore %_0_ok %451 |
| %452 = OpLoad %mat2v2float %_1_m1 |
| %453 = OpLoad %mat2v2float %_4_m5 |
| %454 = OpCompositeExtract %v2float %452 0 |
| %455 = OpCompositeExtract %v2float %453 0 |
| %456 = OpFAdd %v2float %454 %455 |
| %457 = OpCompositeExtract %v2float %452 1 |
| %458 = OpCompositeExtract %v2float %453 1 |
| %459 = OpFAdd %v2float %457 %458 |
| %460 = OpCompositeConstruct %mat2v2float %456 %459 |
| OpStore %_1_m1 %460 |
| %461 = OpLoad %bool %_0_ok |
| OpSelectionMerge %463 None |
| OpBranchConditional %461 %462 %463 |
| %462 = OpLabel |
| %464 = OpLoad %mat2v2float %_1_m1 |
| %465 = OpCompositeConstruct %v2float %float_5 %float_2 |
| %466 = OpCompositeConstruct %v2float %float_3 %float_8 |
| %467 = OpCompositeConstruct %mat2v2float %465 %466 |
| %468 = OpCompositeExtract %v2float %464 0 |
| %469 = OpCompositeExtract %v2float %467 0 |
| %470 = OpFOrdEqual %v2bool %468 %469 |
| %471 = OpAll %bool %470 |
| %472 = OpCompositeExtract %v2float %464 1 |
| %473 = OpCompositeExtract %v2float %467 1 |
| %474 = OpFOrdEqual %v2bool %472 %473 |
| %475 = OpAll %bool %474 |
| %476 = OpLogicalAnd %bool %471 %475 |
| OpBranch %463 |
| %463 = OpLabel |
| %477 = OpPhi %bool %false %437 %476 %462 |
| OpStore %_0_ok %477 |
| %479 = OpCompositeConstruct %v2float %float_5 %float_6 |
| %480 = OpCompositeConstruct %v2float %float_7 %float_8 |
| %481 = OpCompositeConstruct %mat2v2float %479 %480 |
| OpStore %_5_m7 %481 |
| %482 = OpLoad %bool %_0_ok |
| OpSelectionMerge %484 None |
| OpBranchConditional %482 %483 %484 |
| %483 = OpLabel |
| %485 = OpLoad %mat2v2float %_5_m7 |
| %486 = OpCompositeConstruct %v2float %float_5 %float_6 |
| %487 = OpCompositeConstruct %v2float %float_7 %float_8 |
| %488 = OpCompositeConstruct %mat2v2float %486 %487 |
| %489 = OpCompositeExtract %v2float %485 0 |
| %490 = OpCompositeExtract %v2float %488 0 |
| %491 = OpFOrdEqual %v2bool %489 %490 |
| %492 = OpAll %bool %491 |
| %493 = OpCompositeExtract %v2float %485 1 |
| %494 = OpCompositeExtract %v2float %488 1 |
| %495 = OpFOrdEqual %v2bool %493 %494 |
| %496 = OpAll %bool %495 |
| %497 = OpLogicalAnd %bool %492 %496 |
| OpBranch %484 |
| %484 = OpLabel |
| %498 = OpPhi %bool %false %463 %497 %483 |
| OpStore %_0_ok %498 |
| %501 = OpCompositeConstruct %v3float %float_9 %float_0 %float_0 |
| %502 = OpCompositeConstruct %v3float %float_0 %float_9 %float_0 |
| %503 = OpCompositeConstruct %v3float %float_0 %float_0 %float_9 |
| %500 = OpCompositeConstruct %mat3v3float %501 %502 %503 |
| OpStore %_6_m9 %500 |
| %504 = OpLoad %bool %_0_ok |
| OpSelectionMerge %506 None |
| OpBranchConditional %504 %505 %506 |
| %505 = OpLabel |
| %507 = OpLoad %mat3v3float %_6_m9 |
| %508 = OpCompositeConstruct %v3float %float_9 %float_0 %float_0 |
| %509 = OpCompositeConstruct %v3float %float_0 %float_9 %float_0 |
| %510 = OpCompositeConstruct %v3float %float_0 %float_0 %float_9 |
| %511 = OpCompositeConstruct %mat3v3float %508 %509 %510 |
| %512 = OpCompositeExtract %v3float %507 0 |
| %513 = OpCompositeExtract %v3float %511 0 |
| %514 = OpFOrdEqual %v3bool %512 %513 |
| %515 = OpAll %bool %514 |
| %516 = OpCompositeExtract %v3float %507 1 |
| %517 = OpCompositeExtract %v3float %511 1 |
| %518 = OpFOrdEqual %v3bool %516 %517 |
| %519 = OpAll %bool %518 |
| %520 = OpLogicalAnd %bool %515 %519 |
| %521 = OpCompositeExtract %v3float %507 2 |
| %522 = OpCompositeExtract %v3float %511 2 |
| %523 = OpFOrdEqual %v3bool %521 %522 |
| %524 = OpAll %bool %523 |
| %525 = OpLogicalAnd %bool %520 %524 |
| OpBranch %506 |
| %506 = OpLabel |
| %526 = OpPhi %bool %false %484 %525 %505 |
| OpStore %_0_ok %526 |
| %529 = OpCompositeConstruct %v4float %float_11 %float_0 %float_0 %float_0 |
| %530 = OpCompositeConstruct %v4float %float_0 %float_11 %float_0 %float_0 |
| %531 = OpCompositeConstruct %v4float %float_0 %float_0 %float_11 %float_0 |
| %532 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_11 |
| %528 = OpCompositeConstruct %mat4v4float %529 %530 %531 %532 |
| OpStore %_7_m10 %528 |
| %533 = OpLoad %bool %_0_ok |
| OpSelectionMerge %535 None |
| OpBranchConditional %533 %534 %535 |
| %534 = OpLabel |
| %536 = OpLoad %mat4v4float %_7_m10 |
| %537 = OpCompositeConstruct %v4float %float_11 %float_0 %float_0 %float_0 |
| %538 = OpCompositeConstruct %v4float %float_0 %float_11 %float_0 %float_0 |
| %539 = OpCompositeConstruct %v4float %float_0 %float_0 %float_11 %float_0 |
| %540 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_11 |
| %541 = OpCompositeConstruct %mat4v4float %537 %538 %539 %540 |
| %542 = OpCompositeExtract %v4float %536 0 |
| %543 = OpCompositeExtract %v4float %541 0 |
| %544 = OpFOrdEqual %v4bool %542 %543 |
| %545 = OpAll %bool %544 |
| %546 = OpCompositeExtract %v4float %536 1 |
| %547 = OpCompositeExtract %v4float %541 1 |
| %548 = OpFOrdEqual %v4bool %546 %547 |
| %549 = OpAll %bool %548 |
| %550 = OpLogicalAnd %bool %545 %549 |
| %551 = OpCompositeExtract %v4float %536 2 |
| %552 = OpCompositeExtract %v4float %541 2 |
| %553 = OpFOrdEqual %v4bool %551 %552 |
| %554 = OpAll %bool %553 |
| %555 = OpLogicalAnd %bool %550 %554 |
| %556 = OpCompositeExtract %v4float %536 3 |
| %557 = OpCompositeExtract %v4float %541 3 |
| %558 = OpFOrdEqual %v4bool %556 %557 |
| %559 = OpAll %bool %558 |
| %560 = OpLogicalAnd %bool %555 %559 |
| OpBranch %535 |
| %535 = OpLabel |
| %561 = OpPhi %bool %false %506 %560 %534 |
| OpStore %_0_ok %561 |
| %563 = OpCompositeConstruct %v4float %float_20 %float_20 %float_20 %float_20 |
| %564 = OpCompositeConstruct %v4float %float_20 %float_20 %float_20 %float_20 |
| %565 = OpCompositeConstruct %v4float %float_20 %float_20 %float_20 %float_20 |
| %566 = OpCompositeConstruct %v4float %float_20 %float_20 %float_20 %float_20 |
| %567 = OpCompositeConstruct %mat4v4float %563 %564 %565 %566 |
| OpStore %_8_m11 %567 |
| %568 = OpLoad %mat4v4float %_8_m11 |
| %569 = OpLoad %mat4v4float %_7_m10 |
| %570 = OpCompositeExtract %v4float %568 0 |
| %571 = OpCompositeExtract %v4float %569 0 |
| %572 = OpFSub %v4float %570 %571 |
| %573 = OpCompositeExtract %v4float %568 1 |
| %574 = OpCompositeExtract %v4float %569 1 |
| %575 = OpFSub %v4float %573 %574 |
| %576 = OpCompositeExtract %v4float %568 2 |
| %577 = OpCompositeExtract %v4float %569 2 |
| %578 = OpFSub %v4float %576 %577 |
| %579 = OpCompositeExtract %v4float %568 3 |
| %580 = OpCompositeExtract %v4float %569 3 |
| %581 = OpFSub %v4float %579 %580 |
| %582 = OpCompositeConstruct %mat4v4float %572 %575 %578 %581 |
| OpStore %_8_m11 %582 |
| %583 = OpLoad %bool %_0_ok |
| OpSelectionMerge %585 None |
| OpBranchConditional %583 %584 %585 |
| %584 = OpLabel |
| %586 = OpLoad %mat4v4float %_8_m11 |
| %587 = OpCompositeConstruct %v4float %float_9 %float_20 %float_20 %float_20 |
| %588 = OpCompositeConstruct %v4float %float_20 %float_9 %float_20 %float_20 |
| %589 = OpCompositeConstruct %v4float %float_20 %float_20 %float_9 %float_20 |
| %590 = OpCompositeConstruct %v4float %float_20 %float_20 %float_20 %float_9 |
| %591 = OpCompositeConstruct %mat4v4float %587 %588 %589 %590 |
| %592 = OpCompositeExtract %v4float %586 0 |
| %593 = OpCompositeExtract %v4float %591 0 |
| %594 = OpFOrdEqual %v4bool %592 %593 |
| %595 = OpAll %bool %594 |
| %596 = OpCompositeExtract %v4float %586 1 |
| %597 = OpCompositeExtract %v4float %591 1 |
| %598 = OpFOrdEqual %v4bool %596 %597 |
| %599 = OpAll %bool %598 |
| %600 = OpLogicalAnd %bool %595 %599 |
| %601 = OpCompositeExtract %v4float %586 2 |
| %602 = OpCompositeExtract %v4float %591 2 |
| %603 = OpFOrdEqual %v4bool %601 %602 |
| %604 = OpAll %bool %603 |
| %605 = OpLogicalAnd %bool %600 %604 |
| %606 = OpCompositeExtract %v4float %586 3 |
| %607 = OpCompositeExtract %v4float %591 3 |
| %608 = OpFOrdEqual %v4bool %606 %607 |
| %609 = OpAll %bool %608 |
| %610 = OpLogicalAnd %bool %605 %609 |
| OpBranch %585 |
| %585 = OpLabel |
| %611 = OpPhi %bool %false %535 %610 %584 |
| OpStore %_0_ok %611 |
| %612 = OpLoad %bool %_0_ok |
| OpSelectionMerge %614 None |
| OpBranchConditional %612 %613 %614 |
| %613 = OpLabel |
| %615 = OpFunctionCall %bool %test_half_b |
| OpBranch %614 |
| %614 = OpLabel |
| %616 = OpPhi %bool %false %585 %615 %613 |
| OpSelectionMerge %618 None |
| OpBranchConditional %616 %617 %618 |
| %617 = OpLabel |
| %619 = OpFunctionCall %bool %test_comma_b |
| OpBranch %618 |
| %618 = OpLabel |
| %620 = OpPhi %bool %false %614 %619 %617 |
| OpSelectionMerge %625 None |
| OpBranchConditional %620 %623 %624 |
| %623 = OpLabel |
| %626 = OpAccessChain %_ptr_Uniform_v4float %12 %int_0 |
| %629 = OpLoad %v4float %626 |
| OpStore %621 %629 |
| OpBranch %625 |
| %624 = OpLabel |
| %630 = OpAccessChain %_ptr_Uniform_v4float %12 %int_1 |
| %631 = OpLoad %v4float %630 |
| OpStore %621 %631 |
| OpBranch %625 |
| %625 = OpLabel |
| %632 = OpLoad %v4float %621 |
| OpReturnValue %632 |
| OpFunctionEnd |