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