| 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 %353 RelaxedPrecision |
| OpDecorate %372 RelaxedPrecision |
| OpDecorate %393 RelaxedPrecision |
| OpDecorate %413 RelaxedPrecision |
| OpDecorate %437 RelaxedPrecision |
| OpDecorate %463 RelaxedPrecision |
| OpDecorate %484 RelaxedPrecision |
| OpDecorate %506 RelaxedPrecision |
| OpDecorate %535 RelaxedPrecision |
| OpDecorate %585 RelaxedPrecision |
| OpDecorate %614 RelaxedPrecision |
| OpDecorate %631 RelaxedPrecision |
| OpDecorate %633 RelaxedPrecision |
| OpDecorate %634 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 |
| %float_0_5 = OpConstant %float 0.5 |
| %345 = 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 |
| %330 = OpCompositeConstruct %v2float %float_2 %float_4 |
| %331 = OpCompositeConstruct %v2float %float_6 %float_8 |
| %332 = OpCompositeConstruct %mat2v2float %330 %331 |
| %333 = OpMatrixTimesScalar %mat2v2float %332 %float_0_5 |
| OpStore %y %333 |
| %334 = OpLoad %mat2v2float %x |
| %335 = OpLoad %mat2v2float %y |
| %336 = OpCompositeExtract %v2float %334 0 |
| %337 = OpCompositeExtract %v2float %335 0 |
| %338 = OpFOrdEqual %v2bool %336 %337 |
| %339 = OpAll %bool %338 |
| %340 = OpCompositeExtract %v2float %334 1 |
| %341 = OpCompositeExtract %v2float %335 1 |
| %342 = OpFOrdEqual %v2bool %340 %341 |
| %343 = OpAll %bool %342 |
| %344 = OpLogicalAnd %bool %339 %343 |
| OpReturnValue %344 |
| OpFunctionEnd |
| %main = OpFunction %v4float None %345 |
| %346 = OpFunctionParameter %_ptr_Function_v2float |
| %347 = 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 |
| %623 = OpVariable %_ptr_Function_v4float Function |
| OpStore %_0_ok %true |
| %350 = OpCompositeConstruct %v2float %float_1 %float_2 |
| %351 = OpCompositeConstruct %v2float %float_3 %float_4 |
| %352 = OpCompositeConstruct %mat2v2float %350 %351 |
| OpStore %_1_m1 %352 |
| %353 = OpLoad %bool %_0_ok |
| OpSelectionMerge %355 None |
| OpBranchConditional %353 %354 %355 |
| %354 = OpLabel |
| %356 = OpLoad %mat2v2float %_1_m1 |
| %357 = OpCompositeConstruct %v2float %float_1 %float_2 |
| %358 = OpCompositeConstruct %v2float %float_3 %float_4 |
| %359 = OpCompositeConstruct %mat2v2float %357 %358 |
| %360 = OpCompositeExtract %v2float %356 0 |
| %361 = OpCompositeExtract %v2float %359 0 |
| %362 = OpFOrdEqual %v2bool %360 %361 |
| %363 = OpAll %bool %362 |
| %364 = OpCompositeExtract %v2float %356 1 |
| %365 = OpCompositeExtract %v2float %359 1 |
| %366 = OpFOrdEqual %v2bool %364 %365 |
| %367 = OpAll %bool %366 |
| %368 = OpLogicalAnd %bool %363 %367 |
| OpBranch %355 |
| %355 = OpLabel |
| %369 = OpPhi %bool %false %347 %368 %354 |
| OpStore %_0_ok %369 |
| %371 = OpLoad %mat2v2float %_1_m1 |
| OpStore %_2_m3 %371 |
| %372 = OpLoad %bool %_0_ok |
| OpSelectionMerge %374 None |
| OpBranchConditional %372 %373 %374 |
| %373 = OpLabel |
| %375 = OpLoad %mat2v2float %_2_m3 |
| %376 = OpCompositeConstruct %v2float %float_1 %float_2 |
| %377 = OpCompositeConstruct %v2float %float_3 %float_4 |
| %378 = OpCompositeConstruct %mat2v2float %376 %377 |
| %379 = OpCompositeExtract %v2float %375 0 |
| %380 = OpCompositeExtract %v2float %378 0 |
| %381 = OpFOrdEqual %v2bool %379 %380 |
| %382 = OpAll %bool %381 |
| %383 = OpCompositeExtract %v2float %375 1 |
| %384 = OpCompositeExtract %v2float %378 1 |
| %385 = OpFOrdEqual %v2bool %383 %384 |
| %386 = OpAll %bool %385 |
| %387 = OpLogicalAnd %bool %382 %386 |
| OpBranch %374 |
| %374 = OpLabel |
| %388 = OpPhi %bool %false %355 %387 %373 |
| OpStore %_0_ok %388 |
| %391 = OpCompositeConstruct %v2float %float_6 %float_0 |
| %392 = OpCompositeConstruct %v2float %float_0 %float_6 |
| %390 = OpCompositeConstruct %mat2v2float %391 %392 |
| OpStore %_3_m4 %390 |
| %393 = OpLoad %bool %_0_ok |
| OpSelectionMerge %395 None |
| OpBranchConditional %393 %394 %395 |
| %394 = OpLabel |
| %396 = OpLoad %mat2v2float %_3_m4 |
| %397 = OpCompositeConstruct %v2float %float_6 %float_0 |
| %398 = OpCompositeConstruct %v2float %float_0 %float_6 |
| %399 = OpCompositeConstruct %mat2v2float %397 %398 |
| %400 = OpCompositeExtract %v2float %396 0 |
| %401 = OpCompositeExtract %v2float %399 0 |
| %402 = OpFOrdEqual %v2bool %400 %401 |
| %403 = OpAll %bool %402 |
| %404 = OpCompositeExtract %v2float %396 1 |
| %405 = OpCompositeExtract %v2float %399 1 |
| %406 = OpFOrdEqual %v2bool %404 %405 |
| %407 = OpAll %bool %406 |
| %408 = OpLogicalAnd %bool %403 %407 |
| OpBranch %395 |
| %395 = OpLabel |
| %409 = OpPhi %bool %false %374 %408 %394 |
| OpStore %_0_ok %409 |
| %410 = OpLoad %mat2v2float %_2_m3 |
| %411 = OpLoad %mat2v2float %_3_m4 |
| %412 = OpMatrixTimesMatrix %mat2v2float %410 %411 |
| OpStore %_2_m3 %412 |
| %413 = OpLoad %bool %_0_ok |
| OpSelectionMerge %415 None |
| OpBranchConditional %413 %414 %415 |
| %414 = OpLabel |
| %416 = OpLoad %mat2v2float %_2_m3 |
| %417 = OpCompositeConstruct %v2float %float_6 %float_12 |
| %418 = OpCompositeConstruct %v2float %float_18 %float_24 |
| %419 = OpCompositeConstruct %mat2v2float %417 %418 |
| %420 = OpCompositeExtract %v2float %416 0 |
| %421 = OpCompositeExtract %v2float %419 0 |
| %422 = OpFOrdEqual %v2bool %420 %421 |
| %423 = OpAll %bool %422 |
| %424 = OpCompositeExtract %v2float %416 1 |
| %425 = OpCompositeExtract %v2float %419 1 |
| %426 = OpFOrdEqual %v2bool %424 %425 |
| %427 = OpAll %bool %426 |
| %428 = OpLogicalAnd %bool %423 %427 |
| OpBranch %415 |
| %415 = OpLabel |
| %429 = OpPhi %bool %false %395 %428 %414 |
| OpStore %_0_ok %429 |
| %431 = OpAccessChain %_ptr_Function_v2float %_1_m1 %int_1 |
| %432 = OpLoad %v2float %431 |
| %433 = OpCompositeExtract %float %432 1 |
| %435 = OpCompositeConstruct %v2float %433 %float_0 |
| %436 = OpCompositeConstruct %v2float %float_0 %433 |
| %434 = OpCompositeConstruct %mat2v2float %435 %436 |
| OpStore %_4_m5 %434 |
| %437 = OpLoad %bool %_0_ok |
| OpSelectionMerge %439 None |
| OpBranchConditional %437 %438 %439 |
| %438 = OpLabel |
| %440 = OpLoad %mat2v2float %_4_m5 |
| %441 = OpCompositeConstruct %v2float %float_4 %float_0 |
| %442 = OpCompositeConstruct %v2float %float_0 %float_4 |
| %443 = OpCompositeConstruct %mat2v2float %441 %442 |
| %444 = OpCompositeExtract %v2float %440 0 |
| %445 = OpCompositeExtract %v2float %443 0 |
| %446 = OpFOrdEqual %v2bool %444 %445 |
| %447 = OpAll %bool %446 |
| %448 = OpCompositeExtract %v2float %440 1 |
| %449 = OpCompositeExtract %v2float %443 1 |
| %450 = OpFOrdEqual %v2bool %448 %449 |
| %451 = OpAll %bool %450 |
| %452 = OpLogicalAnd %bool %447 %451 |
| OpBranch %439 |
| %439 = OpLabel |
| %453 = OpPhi %bool %false %415 %452 %438 |
| OpStore %_0_ok %453 |
| %454 = OpLoad %mat2v2float %_1_m1 |
| %455 = OpLoad %mat2v2float %_4_m5 |
| %456 = OpCompositeExtract %v2float %454 0 |
| %457 = OpCompositeExtract %v2float %455 0 |
| %458 = OpFAdd %v2float %456 %457 |
| %459 = OpCompositeExtract %v2float %454 1 |
| %460 = OpCompositeExtract %v2float %455 1 |
| %461 = OpFAdd %v2float %459 %460 |
| %462 = OpCompositeConstruct %mat2v2float %458 %461 |
| OpStore %_1_m1 %462 |
| %463 = OpLoad %bool %_0_ok |
| OpSelectionMerge %465 None |
| OpBranchConditional %463 %464 %465 |
| %464 = OpLabel |
| %466 = OpLoad %mat2v2float %_1_m1 |
| %467 = OpCompositeConstruct %v2float %float_5 %float_2 |
| %468 = OpCompositeConstruct %v2float %float_3 %float_8 |
| %469 = OpCompositeConstruct %mat2v2float %467 %468 |
| %470 = OpCompositeExtract %v2float %466 0 |
| %471 = OpCompositeExtract %v2float %469 0 |
| %472 = OpFOrdEqual %v2bool %470 %471 |
| %473 = OpAll %bool %472 |
| %474 = OpCompositeExtract %v2float %466 1 |
| %475 = OpCompositeExtract %v2float %469 1 |
| %476 = OpFOrdEqual %v2bool %474 %475 |
| %477 = OpAll %bool %476 |
| %478 = OpLogicalAnd %bool %473 %477 |
| OpBranch %465 |
| %465 = OpLabel |
| %479 = OpPhi %bool %false %439 %478 %464 |
| OpStore %_0_ok %479 |
| %481 = OpCompositeConstruct %v2float %float_5 %float_6 |
| %482 = OpCompositeConstruct %v2float %float_7 %float_8 |
| %483 = OpCompositeConstruct %mat2v2float %481 %482 |
| OpStore %_5_m7 %483 |
| %484 = OpLoad %bool %_0_ok |
| OpSelectionMerge %486 None |
| OpBranchConditional %484 %485 %486 |
| %485 = OpLabel |
| %487 = OpLoad %mat2v2float %_5_m7 |
| %488 = OpCompositeConstruct %v2float %float_5 %float_6 |
| %489 = OpCompositeConstruct %v2float %float_7 %float_8 |
| %490 = OpCompositeConstruct %mat2v2float %488 %489 |
| %491 = OpCompositeExtract %v2float %487 0 |
| %492 = OpCompositeExtract %v2float %490 0 |
| %493 = OpFOrdEqual %v2bool %491 %492 |
| %494 = OpAll %bool %493 |
| %495 = OpCompositeExtract %v2float %487 1 |
| %496 = OpCompositeExtract %v2float %490 1 |
| %497 = OpFOrdEqual %v2bool %495 %496 |
| %498 = OpAll %bool %497 |
| %499 = OpLogicalAnd %bool %494 %498 |
| OpBranch %486 |
| %486 = OpLabel |
| %500 = OpPhi %bool %false %465 %499 %485 |
| OpStore %_0_ok %500 |
| %503 = OpCompositeConstruct %v3float %float_9 %float_0 %float_0 |
| %504 = OpCompositeConstruct %v3float %float_0 %float_9 %float_0 |
| %505 = OpCompositeConstruct %v3float %float_0 %float_0 %float_9 |
| %502 = OpCompositeConstruct %mat3v3float %503 %504 %505 |
| OpStore %_6_m9 %502 |
| %506 = OpLoad %bool %_0_ok |
| OpSelectionMerge %508 None |
| OpBranchConditional %506 %507 %508 |
| %507 = OpLabel |
| %509 = OpLoad %mat3v3float %_6_m9 |
| %510 = OpCompositeConstruct %v3float %float_9 %float_0 %float_0 |
| %511 = OpCompositeConstruct %v3float %float_0 %float_9 %float_0 |
| %512 = OpCompositeConstruct %v3float %float_0 %float_0 %float_9 |
| %513 = OpCompositeConstruct %mat3v3float %510 %511 %512 |
| %514 = OpCompositeExtract %v3float %509 0 |
| %515 = OpCompositeExtract %v3float %513 0 |
| %516 = OpFOrdEqual %v3bool %514 %515 |
| %517 = OpAll %bool %516 |
| %518 = OpCompositeExtract %v3float %509 1 |
| %519 = OpCompositeExtract %v3float %513 1 |
| %520 = OpFOrdEqual %v3bool %518 %519 |
| %521 = OpAll %bool %520 |
| %522 = OpLogicalAnd %bool %517 %521 |
| %523 = OpCompositeExtract %v3float %509 2 |
| %524 = OpCompositeExtract %v3float %513 2 |
| %525 = OpFOrdEqual %v3bool %523 %524 |
| %526 = OpAll %bool %525 |
| %527 = OpLogicalAnd %bool %522 %526 |
| OpBranch %508 |
| %508 = OpLabel |
| %528 = OpPhi %bool %false %486 %527 %507 |
| OpStore %_0_ok %528 |
| %531 = OpCompositeConstruct %v4float %float_11 %float_0 %float_0 %float_0 |
| %532 = OpCompositeConstruct %v4float %float_0 %float_11 %float_0 %float_0 |
| %533 = OpCompositeConstruct %v4float %float_0 %float_0 %float_11 %float_0 |
| %534 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_11 |
| %530 = OpCompositeConstruct %mat4v4float %531 %532 %533 %534 |
| OpStore %_7_m10 %530 |
| %535 = OpLoad %bool %_0_ok |
| OpSelectionMerge %537 None |
| OpBranchConditional %535 %536 %537 |
| %536 = OpLabel |
| %538 = OpLoad %mat4v4float %_7_m10 |
| %539 = OpCompositeConstruct %v4float %float_11 %float_0 %float_0 %float_0 |
| %540 = OpCompositeConstruct %v4float %float_0 %float_11 %float_0 %float_0 |
| %541 = OpCompositeConstruct %v4float %float_0 %float_0 %float_11 %float_0 |
| %542 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_11 |
| %543 = OpCompositeConstruct %mat4v4float %539 %540 %541 %542 |
| %544 = OpCompositeExtract %v4float %538 0 |
| %545 = OpCompositeExtract %v4float %543 0 |
| %546 = OpFOrdEqual %v4bool %544 %545 |
| %547 = OpAll %bool %546 |
| %548 = OpCompositeExtract %v4float %538 1 |
| %549 = OpCompositeExtract %v4float %543 1 |
| %550 = OpFOrdEqual %v4bool %548 %549 |
| %551 = OpAll %bool %550 |
| %552 = OpLogicalAnd %bool %547 %551 |
| %553 = OpCompositeExtract %v4float %538 2 |
| %554 = OpCompositeExtract %v4float %543 2 |
| %555 = OpFOrdEqual %v4bool %553 %554 |
| %556 = OpAll %bool %555 |
| %557 = OpLogicalAnd %bool %552 %556 |
| %558 = OpCompositeExtract %v4float %538 3 |
| %559 = OpCompositeExtract %v4float %543 3 |
| %560 = OpFOrdEqual %v4bool %558 %559 |
| %561 = OpAll %bool %560 |
| %562 = OpLogicalAnd %bool %557 %561 |
| OpBranch %537 |
| %537 = OpLabel |
| %563 = OpPhi %bool %false %508 %562 %536 |
| OpStore %_0_ok %563 |
| %565 = OpCompositeConstruct %v4float %float_20 %float_20 %float_20 %float_20 |
| %566 = OpCompositeConstruct %v4float %float_20 %float_20 %float_20 %float_20 |
| %567 = OpCompositeConstruct %v4float %float_20 %float_20 %float_20 %float_20 |
| %568 = OpCompositeConstruct %v4float %float_20 %float_20 %float_20 %float_20 |
| %569 = OpCompositeConstruct %mat4v4float %565 %566 %567 %568 |
| OpStore %_8_m11 %569 |
| %570 = OpLoad %mat4v4float %_8_m11 |
| %571 = OpLoad %mat4v4float %_7_m10 |
| %572 = OpCompositeExtract %v4float %570 0 |
| %573 = OpCompositeExtract %v4float %571 0 |
| %574 = OpFSub %v4float %572 %573 |
| %575 = OpCompositeExtract %v4float %570 1 |
| %576 = OpCompositeExtract %v4float %571 1 |
| %577 = OpFSub %v4float %575 %576 |
| %578 = OpCompositeExtract %v4float %570 2 |
| %579 = OpCompositeExtract %v4float %571 2 |
| %580 = OpFSub %v4float %578 %579 |
| %581 = OpCompositeExtract %v4float %570 3 |
| %582 = OpCompositeExtract %v4float %571 3 |
| %583 = OpFSub %v4float %581 %582 |
| %584 = OpCompositeConstruct %mat4v4float %574 %577 %580 %583 |
| OpStore %_8_m11 %584 |
| %585 = OpLoad %bool %_0_ok |
| OpSelectionMerge %587 None |
| OpBranchConditional %585 %586 %587 |
| %586 = OpLabel |
| %588 = OpLoad %mat4v4float %_8_m11 |
| %589 = OpCompositeConstruct %v4float %float_9 %float_20 %float_20 %float_20 |
| %590 = OpCompositeConstruct %v4float %float_20 %float_9 %float_20 %float_20 |
| %591 = OpCompositeConstruct %v4float %float_20 %float_20 %float_9 %float_20 |
| %592 = OpCompositeConstruct %v4float %float_20 %float_20 %float_20 %float_9 |
| %593 = OpCompositeConstruct %mat4v4float %589 %590 %591 %592 |
| %594 = OpCompositeExtract %v4float %588 0 |
| %595 = OpCompositeExtract %v4float %593 0 |
| %596 = OpFOrdEqual %v4bool %594 %595 |
| %597 = OpAll %bool %596 |
| %598 = OpCompositeExtract %v4float %588 1 |
| %599 = OpCompositeExtract %v4float %593 1 |
| %600 = OpFOrdEqual %v4bool %598 %599 |
| %601 = OpAll %bool %600 |
| %602 = OpLogicalAnd %bool %597 %601 |
| %603 = OpCompositeExtract %v4float %588 2 |
| %604 = OpCompositeExtract %v4float %593 2 |
| %605 = OpFOrdEqual %v4bool %603 %604 |
| %606 = OpAll %bool %605 |
| %607 = OpLogicalAnd %bool %602 %606 |
| %608 = OpCompositeExtract %v4float %588 3 |
| %609 = OpCompositeExtract %v4float %593 3 |
| %610 = OpFOrdEqual %v4bool %608 %609 |
| %611 = OpAll %bool %610 |
| %612 = OpLogicalAnd %bool %607 %611 |
| OpBranch %587 |
| %587 = OpLabel |
| %613 = OpPhi %bool %false %537 %612 %586 |
| OpStore %_0_ok %613 |
| %614 = OpLoad %bool %_0_ok |
| OpSelectionMerge %616 None |
| OpBranchConditional %614 %615 %616 |
| %615 = OpLabel |
| %617 = OpFunctionCall %bool %test_half_b |
| OpBranch %616 |
| %616 = OpLabel |
| %618 = OpPhi %bool %false %587 %617 %615 |
| OpSelectionMerge %620 None |
| OpBranchConditional %618 %619 %620 |
| %619 = OpLabel |
| %621 = OpFunctionCall %bool %test_comma_b |
| OpBranch %620 |
| %620 = OpLabel |
| %622 = OpPhi %bool %false %616 %621 %619 |
| OpSelectionMerge %627 None |
| OpBranchConditional %622 %625 %626 |
| %625 = OpLabel |
| %628 = OpAccessChain %_ptr_Uniform_v4float %12 %int_0 |
| %631 = OpLoad %v4float %628 |
| OpStore %623 %631 |
| OpBranch %627 |
| %626 = OpLabel |
| %632 = OpAccessChain %_ptr_Uniform_v4float %12 %int_1 |
| %633 = OpLoad %v4float %632 |
| OpStore %623 %633 |
| OpBranch %627 |
| %627 = OpLabel |
| %634 = OpLoad %v4float %623 |
| OpReturnValue %634 |
| OpFunctionEnd |