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 "colorRed" OpMemberName %_UniformBuffer 1 "colorGreen" OpMemberName %_UniformBuffer 2 "unknownInput" OpName %_entrypoint_v "_entrypoint_v" OpName %test_int_b "test_int_b" OpName %ok "ok" OpName %inputRed "inputRed" OpName %inputGreen "inputGreen" OpName %x "x" OpName %main "main" OpName %_0_ok "_0_ok" OpName %_1_inputRed "_1_inputRed" OpName %_2_inputGreen "_2_inputGreen" OpName %_3_x "_3_x" OpDecorate %sk_FragColor RelaxedPrecision OpDecorate %sk_FragColor Location 0 OpDecorate %sk_FragColor Index 0 OpMemberDecorate %_UniformBuffer 0 Offset 0 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision OpMemberDecorate %_UniformBuffer 1 Offset 16 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision OpMemberDecorate %_UniformBuffer 2 Offset 32 OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision OpDecorate %_UniformBuffer Block OpDecorate %8 Binding 0 OpDecorate %8 DescriptorSet 0 OpDecorate %34 RelaxedPrecision OpDecorate %35 RelaxedPrecision OpDecorate %37 RelaxedPrecision OpDecorate %39 RelaxedPrecision OpDecorate %41 RelaxedPrecision OpDecorate %47 RelaxedPrecision OpDecorate %48 RelaxedPrecision OpDecorate %50 RelaxedPrecision OpDecorate %52 RelaxedPrecision OpDecorate %54 RelaxedPrecision OpDecorate %_1_inputRed RelaxedPrecision OpDecorate %211 RelaxedPrecision OpDecorate %_2_inputGreen RelaxedPrecision OpDecorate %214 RelaxedPrecision OpDecorate %_3_x RelaxedPrecision OpDecorate %218 RelaxedPrecision OpDecorate %226 RelaxedPrecision OpDecorate %227 RelaxedPrecision OpDecorate %236 RelaxedPrecision OpDecorate %237 RelaxedPrecision OpDecorate %238 RelaxedPrecision OpDecorate %246 RelaxedPrecision OpDecorate %249 RelaxedPrecision OpDecorate %250 RelaxedPrecision OpDecorate %251 RelaxedPrecision OpDecorate %258 RelaxedPrecision OpDecorate %259 RelaxedPrecision OpDecorate %260 RelaxedPrecision OpDecorate %261 RelaxedPrecision OpDecorate %271 RelaxedPrecision OpDecorate %272 RelaxedPrecision OpDecorate %279 RelaxedPrecision OpDecorate %286 RelaxedPrecision OpDecorate %288 RelaxedPrecision OpDecorate %295 RelaxedPrecision OpDecorate %296 RelaxedPrecision OpDecorate %297 RelaxedPrecision OpDecorate %305 RelaxedPrecision OpDecorate %306 RelaxedPrecision OpDecorate %307 RelaxedPrecision OpDecorate %308 RelaxedPrecision OpDecorate %316 RelaxedPrecision OpDecorate %318 RelaxedPrecision OpDecorate %319 RelaxedPrecision OpDecorate %320 RelaxedPrecision OpDecorate %329 RelaxedPrecision OpDecorate %330 RelaxedPrecision OpDecorate %337 RelaxedPrecision OpDecorate %338 RelaxedPrecision OpDecorate %340 RelaxedPrecision OpDecorate %342 RelaxedPrecision OpDecorate %348 RelaxedPrecision OpDecorate %349 RelaxedPrecision OpDecorate %350 RelaxedPrecision OpDecorate %351 RelaxedPrecision OpDecorate %366 RelaxedPrecision OpDecorate %368 RelaxedPrecision OpDecorate %369 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float %sk_FragColor = OpVariable %_ptr_Output_v4float Output %_UniformBuffer = OpTypeStruct %v4float %v4float %float %_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer %8 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %13 = OpTypeFunction %void %float_0 = OpConstant %float 0 %v2float = OpTypeVector %float 2 %17 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %bool = OpTypeBool %22 = OpTypeFunction %bool %_ptr_Function_bool = OpTypePointer Function %bool %true = OpConstantTrue %bool %int = OpTypeInt 32 1 %v4int = OpTypeVector %int 4 %_ptr_Function_v4int = OpTypePointer Function %v4int %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int_0 = OpConstant %int 0 %int_1 = OpConstant %int 1 %int_2 = OpConstant %int 2 %59 = OpConstantComposite %v4int %int_2 %int_2 %int_2 %int_2 %false = OpConstantFalse %bool %int_3 = OpConstant %int 3 %65 = OpConstantComposite %v4int %int_3 %int_2 %int_2 %int_3 %v4bool = OpTypeVector %bool 4 %int_n1 = OpConstant %int -1 %int_n2 = OpConstant %int -2 %76 = OpConstantComposite %v4int %int_n1 %int_n1 %int_n2 %int_n2 %85 = OpConstantComposite %v4int %int_2 %int_1 %int_1 %int_2 %v3int = OpTypeVector %int 3 %int_9 = OpConstant %int 9 %92 = OpConstantComposite %v3int %int_9 %int_9 %int_9 %98 = OpConstantComposite %v4int %int_9 %int_9 %int_9 %int_2 %v2int = OpTypeVector %int 2 %int_4 = OpConstant %int 4 %105 = OpConstantComposite %v2int %int_4 %int_4 %111 = OpConstantComposite %v4int %int_2 %int_0 %int_9 %int_2 %int_5 = OpConstant %int 5 %116 = OpConstantComposite %v4int %int_5 %int_5 %int_5 %int_5 %121 = OpConstantComposite %v4int %int_0 %int_5 %int_5 %int_0 %int_10 = OpConstant %int 10 %133 = OpConstantComposite %v4int %int_10 %int_10 %int_10 %int_10 %137 = OpConstantComposite %v4int %int_9 %int_9 %int_10 %int_10 %146 = OpConstantComposite %v4int %int_1 %int_2 %int_1 %int_2 %int_8 = OpConstant %int 8 %152 = OpConstantComposite %v3int %int_8 %int_8 %int_8 %158 = OpConstantComposite %v4int %int_8 %int_8 %int_8 %int_2 %int_36 = OpConstant %int 36 %164 = OpConstantComposite %v2int %int_36 %int_36 %int_18 = OpConstant %int 18 %171 = OpConstantComposite %v4int %int_4 %int_18 %int_8 %int_2 %int_37 = OpConstant %int 37 %176 = OpConstantComposite %v4int %int_37 %int_37 %int_37 %int_37 %181 = OpConstantComposite %v4int %int_2 %int_9 %int_18 %int_4 %187 = OpConstantComposite %v4int %int_4 %int_4 %int_4 %int_4 %204 = OpTypeFunction %v4float %_ptr_Function_v2float %_ptr_Function_v4float = OpTypePointer Function %v4float %float_2 = OpConstant %float 2 %217 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 %float_3 = OpConstant %float 3 %222 = OpConstantComposite %v4float %float_3 %float_2 %float_2 %float_3 %float_n1 = OpConstant %float -1 %float_n2 = OpConstant %float -2 %232 = OpConstantComposite %v4float %float_n1 %float_n1 %float_n2 %float_n2 %float_1 = OpConstant %float 1 %242 = OpConstantComposite %v4float %float_2 %float_1 %float_1 %float_2 %v3float = OpTypeVector %float 3 %float_9 = OpConstant %float 9 %254 = OpConstantComposite %v4float %float_9 %float_9 %float_9 %float_2 %float_18 = OpConstant %float 18 %float_4 = OpConstant %float 4 %266 = OpConstantComposite %v4float %float_18 %float_4 %float_9 %float_2 %float_5 = OpConstant %float 5 %275 = OpConstantComposite %v4float %float_0 %float_5 %float_5 %float_0 %float_10 = OpConstant %float 10 %287 = OpConstantComposite %v4float %float_10 %float_10 %float_10 %float_10 %291 = OpConstantComposite %v4float %float_9 %float_9 %float_10 %float_10 %300 = OpConstantComposite %v4float %float_1 %float_2 %float_1 %float_2 %float_8 = OpConstant %float 8 %311 = OpConstantComposite %v4float %float_8 %float_8 %float_8 %float_2 %float_32 = OpConstant %float 32 %317 = OpConstantComposite %v2float %float_32 %float_32 %float_16 = OpConstant %float 16 %324 = OpConstantComposite %v4float %float_4 %float_16 %float_8 %float_2 %328 = OpConstantComposite %v4float %float_32 %float_32 %float_32 %float_32 %333 = OpConstantComposite %v4float %float_2 %float_8 %float_16 %float_4 %339 = OpConstantComposite %v4float %float_4 %float_4 %float_4 %float_4 %float_0_5 = OpConstant %float 0.5 %_entrypoint_v = OpFunction %void None %13 %14 = OpLabel %18 = OpVariable %_ptr_Function_v2float Function OpStore %18 %17 %20 = OpFunctionCall %v4float %main %18 OpStore %sk_FragColor %20 OpReturn OpFunctionEnd %test_int_b = OpFunction %bool None %22 %23 = OpLabel %ok = OpVariable %_ptr_Function_bool Function %inputRed = OpVariable %_ptr_Function_v4int Function %inputGreen = OpVariable %_ptr_Function_v4int Function %x = OpVariable %_ptr_Function_v4int Function OpStore %ok %true %31 = OpAccessChain %_ptr_Uniform_v4float %8 %int_0 %34 = OpLoad %v4float %31 %35 = OpCompositeExtract %float %34 0 %36 = OpConvertFToS %int %35 %37 = OpCompositeExtract %float %34 1 %38 = OpConvertFToS %int %37 %39 = OpCompositeExtract %float %34 2 %40 = OpConvertFToS %int %39 %41 = OpCompositeExtract %float %34 3 %42 = OpConvertFToS %int %41 %43 = OpCompositeConstruct %v4int %36 %38 %40 %42 OpStore %inputRed %43 %45 = OpAccessChain %_ptr_Uniform_v4float %8 %int_1 %47 = OpLoad %v4float %45 %48 = OpCompositeExtract %float %47 0 %49 = OpConvertFToS %int %48 %50 = OpCompositeExtract %float %47 1 %51 = OpConvertFToS %int %50 %52 = OpCompositeExtract %float %47 2 %53 = OpConvertFToS %int %52 %54 = OpCompositeExtract %float %47 3 %55 = OpConvertFToS %int %54 %56 = OpCompositeConstruct %v4int %49 %51 %53 %55 OpStore %inputGreen %56 %60 = OpIAdd %v4int %43 %59 OpStore %x %60 OpSelectionMerge %63 None OpBranchConditional %true %62 %63 %62 = OpLabel %66 = OpIEqual %v4bool %60 %65 %68 = OpAll %bool %66 OpBranch %63 %63 = OpLabel %69 = OpPhi %bool %false %23 %68 %62 OpStore %ok %69 %70 = OpVectorShuffle %v4int %56 %56 1 3 0 2 %71 = OpISub %v4int %70 %59 OpStore %x %71 OpSelectionMerge %73 None OpBranchConditional %69 %72 %73 %72 = OpLabel %77 = OpIEqual %v4bool %71 %76 %78 = OpAll %bool %77 OpBranch %73 %73 = OpLabel %79 = OpPhi %bool %false %63 %78 %72 OpStore %ok %79 %80 = OpCompositeExtract %int %56 1 %81 = OpCompositeConstruct %v4int %80 %80 %80 %80 %82 = OpIAdd %v4int %43 %81 OpStore %x %82 OpSelectionMerge %84 None OpBranchConditional %79 %83 %84 %83 = OpLabel %86 = OpIEqual %v4bool %82 %85 %87 = OpAll %bool %86 OpBranch %84 %84 = OpLabel %88 = OpPhi %bool %false %73 %87 %83 OpStore %ok %88 %89 = OpVectorShuffle %v3int %56 %56 3 1 3 %93 = OpIMul %v3int %89 %92 %94 = OpLoad %v4int %x %95 = OpVectorShuffle %v4int %94 %93 4 5 6 3 OpStore %x %95 OpSelectionMerge %97 None OpBranchConditional %88 %96 %97 %96 = OpLabel %99 = OpIEqual %v4bool %95 %98 %100 = OpAll %bool %99 OpBranch %97 %97 = OpLabel %101 = OpPhi %bool %false %84 %100 %96 OpStore %ok %101 %102 = OpVectorShuffle %v2int %95 %95 2 3 %106 = OpSDiv %v2int %102 %105 %107 = OpLoad %v4int %x %108 = OpVectorShuffle %v4int %107 %106 4 5 2 3 OpStore %x %108 OpSelectionMerge %110 None OpBranchConditional %101 %109 %110 %109 = OpLabel %112 = OpIEqual %v4bool %108 %111 %113 = OpAll %bool %112 OpBranch %110 %110 = OpLabel %114 = OpPhi %bool %false %97 %113 %109 OpStore %ok %114 %117 = OpIMul %v4int %43 %116 %118 = OpVectorShuffle %v4int %117 %117 1 0 3 2 OpStore %x %118 OpSelectionMerge %120 None OpBranchConditional %114 %119 %120 %119 = OpLabel %122 = OpIEqual %v4bool %118 %121 %123 = OpAll %bool %122 OpBranch %120 %120 = OpLabel %124 = OpPhi %bool %false %110 %123 %119 OpStore %ok %124 %125 = OpIAdd %v4int %59 %43 OpStore %x %125 OpSelectionMerge %127 None OpBranchConditional %124 %126 %127 %126 = OpLabel %128 = OpIEqual %v4bool %125 %65 %129 = OpAll %bool %128 OpBranch %127 %127 = OpLabel %130 = OpPhi %bool %false %120 %129 %126 OpStore %ok %130 %132 = OpVectorShuffle %v4int %56 %56 1 3 0 2 %134 = OpISub %v4int %133 %132 OpStore %x %134 OpSelectionMerge %136 None OpBranchConditional %130 %135 %136 %135 = OpLabel %138 = OpIEqual %v4bool %134 %137 %139 = OpAll %bool %138 OpBranch %136 %136 = OpLabel %140 = OpPhi %bool %false %127 %139 %135 OpStore %ok %140 %141 = OpCompositeExtract %int %43 0 %142 = OpCompositeConstruct %v4int %141 %141 %141 %141 %143 = OpIAdd %v4int %142 %56 OpStore %x %143 OpSelectionMerge %145 None OpBranchConditional %140 %144 %145 %144 = OpLabel %147 = OpIEqual %v4bool %143 %146 %148 = OpAll %bool %147 OpBranch %145 %145 = OpLabel %149 = OpPhi %bool %false %136 %148 %144 OpStore %ok %149 %151 = OpVectorShuffle %v3int %56 %56 3 1 3 %153 = OpIMul %v3int %152 %151 %154 = OpLoad %v4int %x %155 = OpVectorShuffle %v4int %154 %153 4 5 6 3 OpStore %x %155 OpSelectionMerge %157 None OpBranchConditional %149 %156 %157 %156 = OpLabel %159 = OpIEqual %v4bool %155 %158 %160 = OpAll %bool %159 OpBranch %157 %157 = OpLabel %161 = OpPhi %bool %false %145 %160 %156 OpStore %ok %161 %163 = OpVectorShuffle %v2int %155 %155 2 3 %165 = OpSDiv %v2int %164 %163 %166 = OpLoad %v4int %x %167 = OpVectorShuffle %v4int %166 %165 4 5 2 3 OpStore %x %167 OpSelectionMerge %169 None OpBranchConditional %161 %168 %169 %168 = OpLabel %172 = OpIEqual %v4bool %167 %171 %173 = OpAll %bool %172 OpBranch %169 %169 = OpLabel %174 = OpPhi %bool %false %157 %173 %168 OpStore %ok %174 %177 = OpSDiv %v4int %176 %167 %178 = OpVectorShuffle %v4int %177 %177 1 0 3 2 OpStore %x %178 OpSelectionMerge %180 None OpBranchConditional %174 %179 %180 %179 = OpLabel %182 = OpIEqual %v4bool %178 %181 %183 = OpAll %bool %182 OpBranch %180 %180 = OpLabel %184 = OpPhi %bool %false %169 %183 %179 OpStore %ok %184 %185 = OpIAdd %v4int %178 %59 OpStore %x %185 %186 = OpIMul %v4int %185 %59 OpStore %x %186 %188 = OpISub %v4int %186 %187 OpStore %x %188 %189 = OpSDiv %v4int %188 %59 OpStore %x %189 OpSelectionMerge %191 None OpBranchConditional %184 %190 %191 %190 = OpLabel %192 = OpIEqual %v4bool %189 %181 %193 = OpAll %bool %192 OpBranch %191 %191 = OpLabel %194 = OpPhi %bool %false %180 %193 %190 OpStore %ok %194 %195 = OpIAdd %v4int %189 %59 OpStore %x %195 %196 = OpIMul %v4int %195 %59 OpStore %x %196 %197 = OpISub %v4int %196 %187 OpStore %x %197 %198 = OpSDiv %v4int %197 %59 OpStore %x %198 OpSelectionMerge %200 None OpBranchConditional %194 %199 %200 %199 = OpLabel %201 = OpIEqual %v4bool %198 %181 %202 = OpAll %bool %201 OpBranch %200 %200 = OpLabel %203 = OpPhi %bool %false %191 %202 %199 OpStore %ok %203 OpReturnValue %203 OpFunctionEnd %main = OpFunction %v4float None %204 %205 = OpFunctionParameter %_ptr_Function_v2float %206 = OpLabel %_0_ok = OpVariable %_ptr_Function_bool Function %_1_inputRed = OpVariable %_ptr_Function_v4float Function %_2_inputGreen = OpVariable %_ptr_Function_v4float Function %_3_x = OpVariable %_ptr_Function_v4float Function %361 = OpVariable %_ptr_Function_v4float Function OpStore %_0_ok %true %210 = OpAccessChain %_ptr_Uniform_v4float %8 %int_0 %211 = OpLoad %v4float %210 OpStore %_1_inputRed %211 %213 = OpAccessChain %_ptr_Uniform_v4float %8 %int_1 %214 = OpLoad %v4float %213 OpStore %_2_inputGreen %214 %218 = OpFAdd %v4float %211 %217 OpStore %_3_x %218 OpSelectionMerge %220 None OpBranchConditional %true %219 %220 %219 = OpLabel %223 = OpFOrdEqual %v4bool %218 %222 %224 = OpAll %bool %223 OpBranch %220 %220 = OpLabel %225 = OpPhi %bool %false %206 %224 %219 OpStore %_0_ok %225 %226 = OpVectorShuffle %v4float %214 %214 1 3 0 2 %227 = OpFSub %v4float %226 %217 OpStore %_3_x %227 OpSelectionMerge %229 None OpBranchConditional %225 %228 %229 %228 = OpLabel %233 = OpFOrdEqual %v4bool %227 %232 %234 = OpAll %bool %233 OpBranch %229 %229 = OpLabel %235 = OpPhi %bool %false %220 %234 %228 OpStore %_0_ok %235 %236 = OpCompositeExtract %float %214 1 %237 = OpCompositeConstruct %v4float %236 %236 %236 %236 %238 = OpFAdd %v4float %211 %237 OpStore %_3_x %238 OpSelectionMerge %240 None OpBranchConditional %235 %239 %240 %239 = OpLabel %243 = OpFOrdEqual %v4bool %238 %242 %244 = OpAll %bool %243 OpBranch %240 %240 = OpLabel %245 = OpPhi %bool %false %229 %244 %239 OpStore %_0_ok %245 %246 = OpVectorShuffle %v3float %214 %214 3 1 3 %249 = OpVectorTimesScalar %v3float %246 %float_9 %250 = OpLoad %v4float %_3_x %251 = OpVectorShuffle %v4float %250 %249 4 5 6 3 OpStore %_3_x %251 OpSelectionMerge %253 None OpBranchConditional %245 %252 %253 %252 = OpLabel %255 = OpFOrdEqual %v4bool %251 %254 %256 = OpAll %bool %255 OpBranch %253 %253 = OpLabel %257 = OpPhi %bool %false %240 %256 %252 OpStore %_0_ok %257 %258 = OpVectorShuffle %v2float %251 %251 2 3 %259 = OpVectorTimesScalar %v2float %258 %float_2 %260 = OpLoad %v4float %_3_x %261 = OpVectorShuffle %v4float %260 %259 4 5 2 3 OpStore %_3_x %261 OpSelectionMerge %263 None OpBranchConditional %257 %262 %263 %262 = OpLabel %267 = OpFOrdEqual %v4bool %261 %266 %268 = OpAll %bool %267 OpBranch %263 %263 = OpLabel %269 = OpPhi %bool %false %253 %268 %262 OpStore %_0_ok %269 %271 = OpVectorTimesScalar %v4float %211 %float_5 %272 = OpVectorShuffle %v4float %271 %271 1 0 3 2 OpStore %_3_x %272 OpSelectionMerge %274 None OpBranchConditional %269 %273 %274 %273 = OpLabel %276 = OpFOrdEqual %v4bool %272 %275 %277 = OpAll %bool %276 OpBranch %274 %274 = OpLabel %278 = OpPhi %bool %false %263 %277 %273 OpStore %_0_ok %278 %279 = OpFAdd %v4float %217 %211 OpStore %_3_x %279 OpSelectionMerge %281 None OpBranchConditional %278 %280 %281 %280 = OpLabel %282 = OpFOrdEqual %v4bool %279 %222 %283 = OpAll %bool %282 OpBranch %281 %281 = OpLabel %284 = OpPhi %bool %false %274 %283 %280 OpStore %_0_ok %284 %286 = OpVectorShuffle %v4float %214 %214 1 3 0 2 %288 = OpFSub %v4float %287 %286 OpStore %_3_x %288 OpSelectionMerge %290 None OpBranchConditional %284 %289 %290 %289 = OpLabel %292 = OpFOrdEqual %v4bool %288 %291 %293 = OpAll %bool %292 OpBranch %290 %290 = OpLabel %294 = OpPhi %bool %false %281 %293 %289 OpStore %_0_ok %294 %295 = OpCompositeExtract %float %211 0 %296 = OpCompositeConstruct %v4float %295 %295 %295 %295 %297 = OpFAdd %v4float %296 %214 OpStore %_3_x %297 OpSelectionMerge %299 None OpBranchConditional %294 %298 %299 %298 = OpLabel %301 = OpFOrdEqual %v4bool %297 %300 %302 = OpAll %bool %301 OpBranch %299 %299 = OpLabel %303 = OpPhi %bool %false %290 %302 %298 OpStore %_0_ok %303 %305 = OpVectorShuffle %v3float %214 %214 3 1 3 %306 = OpVectorTimesScalar %v3float %305 %float_8 %307 = OpLoad %v4float %_3_x %308 = OpVectorShuffle %v4float %307 %306 4 5 6 3 OpStore %_3_x %308 OpSelectionMerge %310 None OpBranchConditional %303 %309 %310 %309 = OpLabel %312 = OpFOrdEqual %v4bool %308 %311 %313 = OpAll %bool %312 OpBranch %310 %310 = OpLabel %314 = OpPhi %bool %false %299 %313 %309 OpStore %_0_ok %314 %316 = OpVectorShuffle %v2float %308 %308 2 3 %318 = OpFDiv %v2float %317 %316 %319 = OpLoad %v4float %_3_x %320 = OpVectorShuffle %v4float %319 %318 4 5 2 3 OpStore %_3_x %320 OpSelectionMerge %322 None OpBranchConditional %314 %321 %322 %321 = OpLabel %325 = OpFOrdEqual %v4bool %320 %324 %326 = OpAll %bool %325 OpBranch %322 %322 = OpLabel %327 = OpPhi %bool %false %310 %326 %321 OpStore %_0_ok %327 %329 = OpFDiv %v4float %328 %320 %330 = OpVectorShuffle %v4float %329 %329 1 0 3 2 OpStore %_3_x %330 OpSelectionMerge %332 None OpBranchConditional %327 %331 %332 %331 = OpLabel %334 = OpFOrdEqual %v4bool %330 %333 %335 = OpAll %bool %334 OpBranch %332 %332 = OpLabel %336 = OpPhi %bool %false %322 %335 %331 OpStore %_0_ok %336 %337 = OpFAdd %v4float %330 %217 OpStore %_3_x %337 %338 = OpVectorTimesScalar %v4float %337 %float_2 OpStore %_3_x %338 %340 = OpFSub %v4float %338 %339 OpStore %_3_x %340 %342 = OpVectorTimesScalar %v4float %340 %float_0_5 OpStore %_3_x %342 OpSelectionMerge %344 None OpBranchConditional %336 %343 %344 %343 = OpLabel %345 = OpFOrdEqual %v4bool %342 %333 %346 = OpAll %bool %345 OpBranch %344 %344 = OpLabel %347 = OpPhi %bool %false %332 %346 %343 OpStore %_0_ok %347 %348 = OpFAdd %v4float %342 %217 OpStore %_3_x %348 %349 = OpVectorTimesScalar %v4float %348 %float_2 OpStore %_3_x %349 %350 = OpFSub %v4float %349 %339 OpStore %_3_x %350 %351 = OpVectorTimesScalar %v4float %350 %float_0_5 OpStore %_3_x %351 OpSelectionMerge %353 None OpBranchConditional %347 %352 %353 %352 = OpLabel %354 = OpFOrdEqual %v4bool %351 %333 %355 = OpAll %bool %354 OpBranch %353 %353 = OpLabel %356 = OpPhi %bool %false %344 %355 %352 OpStore %_0_ok %356 OpSelectionMerge %358 None OpBranchConditional %356 %357 %358 %357 = OpLabel %359 = OpFunctionCall %bool %test_int_b OpBranch %358 %358 = OpLabel %360 = OpPhi %bool %false %353 %359 %357 OpSelectionMerge %364 None OpBranchConditional %360 %362 %363 %362 = OpLabel %365 = OpAccessChain %_ptr_Uniform_v4float %8 %int_1 %366 = OpLoad %v4float %365 OpStore %361 %366 OpBranch %364 %363 = OpLabel %367 = OpAccessChain %_ptr_Uniform_v4float %8 %int_0 %368 = OpLoad %v4float %367 OpStore %361 %368 OpBranch %364 %364 = OpLabel %369 = OpLoad %v4float %361 OpReturnValue %369 OpFunctionEnd