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 "colorGreen" 9 OpMemberName %_UniformBuffer 1 "colorRed" 10 OpName %_entrypoint_v "_entrypoint_v" 11 OpName %test_half_b "test_half_b" 12 OpName %ok "ok" 13 OpName %m23 "m23" 14 OpName %m24 "m24" 15 OpName %m32 "m32" 16 OpName %m34 "m34" 17 OpName %m42 "m42" 18 OpName %m43 "m43" 19 OpName %m22 "m22" 20 OpName %m33 "m33" 21 OpName %main "main" 22 OpName %_0_ok "_0_ok" 23 OpName %_1_m23 "_1_m23" 24 OpName %_2_m24 "_2_m24" 25 OpName %_3_m32 "_3_m32" 26 OpName %_7_m22 "_7_m22" 27 OpDecorate %sk_FragColor RelaxedPrecision 28 OpDecorate %sk_FragColor Location 0 29 OpDecorate %sk_FragColor Index 0 30 OpMemberDecorate %_UniformBuffer 0 Offset 0 31 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 32 OpMemberDecorate %_UniformBuffer 1 Offset 16 33 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 34 OpDecorate %_UniformBuffer Block 35 OpDecorate %8 Binding 0 36 OpDecorate %8 DescriptorSet 0 37 OpDecorate %m23 RelaxedPrecision 38 OpDecorate %39 RelaxedPrecision 39 OpDecorate %41 RelaxedPrecision 40 OpDecorate %m24 RelaxedPrecision 41 OpDecorate %55 RelaxedPrecision 42 OpDecorate %57 RelaxedPrecision 43 OpDecorate %m32 RelaxedPrecision 44 OpDecorate %71 RelaxedPrecision 45 OpDecorate %73 RelaxedPrecision 46 OpDecorate %76 RelaxedPrecision 47 OpDecorate %m34 RelaxedPrecision 48 OpDecorate %90 RelaxedPrecision 49 OpDecorate %92 RelaxedPrecision 50 OpDecorate %95 RelaxedPrecision 51 OpDecorate %m42 RelaxedPrecision 52 OpDecorate %108 RelaxedPrecision 53 OpDecorate %110 RelaxedPrecision 54 OpDecorate %113 RelaxedPrecision 55 OpDecorate %116 RelaxedPrecision 56 OpDecorate %m43 RelaxedPrecision 57 OpDecorate %131 RelaxedPrecision 58 OpDecorate %133 RelaxedPrecision 59 OpDecorate %136 RelaxedPrecision 60 OpDecorate %139 RelaxedPrecision 61 OpDecorate %m22 RelaxedPrecision 62 OpDecorate %146 RelaxedPrecision 63 OpDecorate %153 RelaxedPrecision 64 OpDecorate %154 RelaxedPrecision 65 OpDecorate %156 RelaxedPrecision 66 OpDecorate %157 RelaxedPrecision 67 OpDecorate %m33 RelaxedPrecision 68 OpDecorate %164 RelaxedPrecision 69 OpDecorate %172 RelaxedPrecision 70 OpDecorate %173 RelaxedPrecision 71 OpDecorate %175 RelaxedPrecision 72 OpDecorate %176 RelaxedPrecision 73 OpDecorate %179 RelaxedPrecision 74 OpDecorate %180 RelaxedPrecision 75 OpDecorate %187 RelaxedPrecision 76 OpDecorate %188 RelaxedPrecision 77 OpDecorate %189 RelaxedPrecision 78 OpDecorate %195 RelaxedPrecision 79 OpDecorate %197 RelaxedPrecision 80 OpDecorate %203 RelaxedPrecision 81 OpDecorate %204 RelaxedPrecision 82 OpDecorate %205 RelaxedPrecision 83 OpDecorate %206 RelaxedPrecision 84 OpDecorate %214 RelaxedPrecision 85 OpDecorate %216 RelaxedPrecision 86 OpDecorate %219 RelaxedPrecision 87 OpDecorate %224 RelaxedPrecision 88 OpDecorate %231 RelaxedPrecision 89 OpDecorate %232 RelaxedPrecision 90 OpDecorate %234 RelaxedPrecision 91 OpDecorate %235 RelaxedPrecision 92 OpDecorate %335 RelaxedPrecision 93 OpDecorate %338 RelaxedPrecision 94 OpDecorate %339 RelaxedPrecision 95 %float = OpTypeFloat 32 96 %v4float = OpTypeVector %float 4 97%_ptr_Output_v4float = OpTypePointer Output %v4float 98%sk_FragColor = OpVariable %_ptr_Output_v4float Output 99%_UniformBuffer = OpTypeStruct %v4float %v4float 100%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 101 %8 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 102 %void = OpTypeVoid 103 %13 = OpTypeFunction %void 104 %float_0 = OpConstant %float 0 105 %v2float = OpTypeVector %float 2 106 %17 = OpConstantComposite %v2float %float_0 %float_0 107%_ptr_Function_v2float = OpTypePointer Function %v2float 108 %bool = OpTypeBool 109 %22 = OpTypeFunction %bool 110%_ptr_Function_bool = OpTypePointer Function %bool 111 %true = OpConstantTrue %bool 112 %v3float = OpTypeVector %float 3 113%mat2v3float = OpTypeMatrix %v3float 2 114%_ptr_Function_mat2v3float = OpTypePointer Function %mat2v3float 115 %float_2 = OpConstant %float 2 116 %32 = OpConstantComposite %v3float %float_2 %float_0 %float_0 117 %33 = OpConstantComposite %v3float %float_0 %float_2 %float_0 118 %34 = OpConstantComposite %mat2v3float %32 %33 119 %false = OpConstantFalse %bool 120 %v3bool = OpTypeVector %bool 3 121%mat2v4float = OpTypeMatrix %v4float 2 122%_ptr_Function_mat2v4float = OpTypePointer Function %mat2v4float 123 %float_3 = OpConstant %float 3 124 %49 = OpConstantComposite %v4float %float_3 %float_0 %float_0 %float_0 125 %50 = OpConstantComposite %v4float %float_0 %float_3 %float_0 %float_0 126 %51 = OpConstantComposite %mat2v4float %49 %50 127 %v4bool = OpTypeVector %bool 4 128%mat3v2float = OpTypeMatrix %v2float 3 129%_ptr_Function_mat3v2float = OpTypePointer Function %mat3v2float 130 %float_4 = OpConstant %float 4 131 %65 = OpConstantComposite %v2float %float_4 %float_0 132 %66 = OpConstantComposite %v2float %float_0 %float_4 133 %67 = OpConstantComposite %mat3v2float %65 %66 %17 134 %v2bool = OpTypeVector %bool 2 135%mat3v4float = OpTypeMatrix %v4float 3 136%_ptr_Function_mat3v4float = OpTypePointer Function %mat3v4float 137 %float_5 = OpConstant %float 5 138 %84 = OpConstantComposite %v4float %float_5 %float_0 %float_0 %float_0 139 %85 = OpConstantComposite %v4float %float_0 %float_5 %float_0 %float_0 140 %86 = OpConstantComposite %v4float %float_0 %float_0 %float_5 %float_0 141 %87 = OpConstantComposite %mat3v4float %84 %85 %86 142%mat4v2float = OpTypeMatrix %v2float 4 143%_ptr_Function_mat4v2float = OpTypePointer Function %mat4v2float 144 %float_6 = OpConstant %float 6 145 %103 = OpConstantComposite %v2float %float_6 %float_0 146 %104 = OpConstantComposite %v2float %float_0 %float_6 147 %105 = OpConstantComposite %mat4v2float %103 %104 %17 %17 148%mat4v3float = OpTypeMatrix %v3float 4 149%_ptr_Function_mat4v3float = OpTypePointer Function %mat4v3float 150 %float_7 = OpConstant %float 7 151 %124 = OpConstantComposite %v3float %float_7 %float_0 %float_0 152 %125 = OpConstantComposite %v3float %float_0 %float_7 %float_0 153 %126 = OpConstantComposite %v3float %float_0 %float_0 %float_7 154 %127 = OpConstantComposite %v3float %float_0 %float_0 %float_0 155 %128 = OpConstantComposite %mat4v3float %124 %125 %126 %127 156%mat2v2float = OpTypeMatrix %v2float 2 157%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float 158 %float_8 = OpConstant %float 8 159 %150 = OpConstantComposite %v2float %float_8 %float_0 160 %151 = OpConstantComposite %v2float %float_0 %float_8 161 %152 = OpConstantComposite %mat2v2float %150 %151 162%mat3v3float = OpTypeMatrix %v3float 3 163%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float 164 %float_35 = OpConstant %float 35 165 %168 = OpConstantComposite %v3float %float_35 %float_0 %float_0 166 %169 = OpConstantComposite %v3float %float_0 %float_35 %float_0 167 %170 = OpConstantComposite %v3float %float_0 %float_0 %float_35 168 %171 = OpConstantComposite %mat3v3float %168 %169 %170 169 %float_1 = OpConstant %float 1 170 %185 = OpConstantComposite %v3float %float_1 %float_1 %float_1 171 %186 = OpConstantComposite %mat2v3float %185 %185 172 %192 = OpConstantComposite %v3float %float_3 %float_1 %float_1 173 %193 = OpConstantComposite %v3float %float_1 %float_3 %float_1 174 %194 = OpConstantComposite %mat2v3float %192 %193 175 %201 = OpConstantComposite %v2float %float_2 %float_2 176 %202 = OpConstantComposite %mat3v2float %201 %201 %201 177 %float_n2 = OpConstant %float -2 178 %210 = OpConstantComposite %v2float %float_2 %float_n2 179 %211 = OpConstantComposite %v2float %float_n2 %float_2 180 %212 = OpConstantComposite %v2float %float_n2 %float_n2 181 %213 = OpConstantComposite %mat3v2float %210 %211 %212 182 %float_0_25 = OpConstant %float 0.25 183 %float_0_75 = OpConstant %float 0.75 184 %228 = OpConstantComposite %v4float %float_0_75 %float_0 %float_0 %float_0 185 %229 = OpConstantComposite %v4float %float_0 %float_0_75 %float_0 %float_0 186 %230 = OpConstantComposite %mat2v4float %228 %229 187 %239 = OpTypeFunction %v4float %_ptr_Function_v2float 188%_ptr_Function_v4float = OpTypePointer Function %v4float 189%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 190 %int = OpTypeInt 32 1 191 %int_0 = OpConstant %int 0 192 %int_1 = OpConstant %int 1 193%_entrypoint_v = OpFunction %void None %13 194 %14 = OpLabel 195 %18 = OpVariable %_ptr_Function_v2float Function 196 OpStore %18 %17 197 %20 = OpFunctionCall %v4float %main %18 198 OpStore %sk_FragColor %20 199 OpReturn 200 OpFunctionEnd 201%test_half_b = OpFunction %bool None %22 202 %23 = OpLabel 203 %ok = OpVariable %_ptr_Function_bool Function 204 %m23 = OpVariable %_ptr_Function_mat2v3float Function 205 %m24 = OpVariable %_ptr_Function_mat2v4float Function 206 %m32 = OpVariable %_ptr_Function_mat3v2float Function 207 %m34 = OpVariable %_ptr_Function_mat3v4float Function 208 %m42 = OpVariable %_ptr_Function_mat4v2float Function 209 %m43 = OpVariable %_ptr_Function_mat4v3float Function 210 %m22 = OpVariable %_ptr_Function_mat2v2float Function 211 %m33 = OpVariable %_ptr_Function_mat3v3float Function 212 OpStore %ok %true 213 OpStore %m23 %34 214 OpSelectionMerge %37 None 215 OpBranchConditional %true %36 %37 216 %36 = OpLabel 217 %39 = OpFOrdEqual %v3bool %32 %32 218 %40 = OpAll %bool %39 219 %41 = OpFOrdEqual %v3bool %33 %33 220 %42 = OpAll %bool %41 221 %43 = OpLogicalAnd %bool %40 %42 222 OpBranch %37 223 %37 = OpLabel 224 %44 = OpPhi %bool %false %23 %43 %36 225 OpStore %ok %44 226 OpStore %m24 %51 227 OpSelectionMerge %53 None 228 OpBranchConditional %44 %52 %53 229 %52 = OpLabel 230 %55 = OpFOrdEqual %v4bool %49 %49 231 %56 = OpAll %bool %55 232 %57 = OpFOrdEqual %v4bool %50 %50 233 %58 = OpAll %bool %57 234 %59 = OpLogicalAnd %bool %56 %58 235 OpBranch %53 236 %53 = OpLabel 237 %60 = OpPhi %bool %false %37 %59 %52 238 OpStore %ok %60 239 OpStore %m32 %67 240 OpSelectionMerge %69 None 241 OpBranchConditional %60 %68 %69 242 %68 = OpLabel 243 %71 = OpFOrdEqual %v2bool %65 %65 244 %72 = OpAll %bool %71 245 %73 = OpFOrdEqual %v2bool %66 %66 246 %74 = OpAll %bool %73 247 %75 = OpLogicalAnd %bool %72 %74 248 %76 = OpFOrdEqual %v2bool %17 %17 249 %77 = OpAll %bool %76 250 %78 = OpLogicalAnd %bool %75 %77 251 OpBranch %69 252 %69 = OpLabel 253 %79 = OpPhi %bool %false %53 %78 %68 254 OpStore %ok %79 255 OpStore %m34 %87 256 OpSelectionMerge %89 None 257 OpBranchConditional %79 %88 %89 258 %88 = OpLabel 259 %90 = OpFOrdEqual %v4bool %84 %84 260 %91 = OpAll %bool %90 261 %92 = OpFOrdEqual %v4bool %85 %85 262 %93 = OpAll %bool %92 263 %94 = OpLogicalAnd %bool %91 %93 264 %95 = OpFOrdEqual %v4bool %86 %86 265 %96 = OpAll %bool %95 266 %97 = OpLogicalAnd %bool %94 %96 267 OpBranch %89 268 %89 = OpLabel 269 %98 = OpPhi %bool %false %69 %97 %88 270 OpStore %ok %98 271 OpStore %m42 %105 272 OpSelectionMerge %107 None 273 OpBranchConditional %98 %106 %107 274 %106 = OpLabel 275 %108 = OpFOrdEqual %v2bool %103 %103 276 %109 = OpAll %bool %108 277 %110 = OpFOrdEqual %v2bool %104 %104 278 %111 = OpAll %bool %110 279 %112 = OpLogicalAnd %bool %109 %111 280 %113 = OpFOrdEqual %v2bool %17 %17 281 %114 = OpAll %bool %113 282 %115 = OpLogicalAnd %bool %112 %114 283 %116 = OpFOrdEqual %v2bool %17 %17 284 %117 = OpAll %bool %116 285 %118 = OpLogicalAnd %bool %115 %117 286 OpBranch %107 287 %107 = OpLabel 288 %119 = OpPhi %bool %false %89 %118 %106 289 OpStore %ok %119 290 OpStore %m43 %128 291 OpSelectionMerge %130 None 292 OpBranchConditional %119 %129 %130 293 %129 = OpLabel 294 %131 = OpFOrdEqual %v3bool %124 %124 295 %132 = OpAll %bool %131 296 %133 = OpFOrdEqual %v3bool %125 %125 297 %134 = OpAll %bool %133 298 %135 = OpLogicalAnd %bool %132 %134 299 %136 = OpFOrdEqual %v3bool %126 %126 300 %137 = OpAll %bool %136 301 %138 = OpLogicalAnd %bool %135 %137 302 %139 = OpFOrdEqual %v3bool %127 %127 303 %140 = OpAll %bool %139 304 %141 = OpLogicalAnd %bool %138 %140 305 OpBranch %130 306 %130 = OpLabel 307 %142 = OpPhi %bool %false %107 %141 %129 308 OpStore %ok %142 309 %146 = OpMatrixTimesMatrix %mat2v2float %67 %34 310 OpStore %m22 %146 311 OpSelectionMerge %148 None 312 OpBranchConditional %142 %147 %148 313 %147 = OpLabel 314 %153 = OpCompositeExtract %v2float %146 0 315 %154 = OpFOrdEqual %v2bool %153 %150 316 %155 = OpAll %bool %154 317 %156 = OpCompositeExtract %v2float %146 1 318 %157 = OpFOrdEqual %v2bool %156 %151 319 %158 = OpAll %bool %157 320 %159 = OpLogicalAnd %bool %155 %158 321 OpBranch %148 322 %148 = OpLabel 323 %160 = OpPhi %bool %false %130 %159 %147 324 OpStore %ok %160 325 %164 = OpMatrixTimesMatrix %mat3v3float %128 %87 326 OpStore %m33 %164 327 OpSelectionMerge %166 None 328 OpBranchConditional %160 %165 %166 329 %165 = OpLabel 330 %172 = OpCompositeExtract %v3float %164 0 331 %173 = OpFOrdEqual %v3bool %172 %168 332 %174 = OpAll %bool %173 333 %175 = OpCompositeExtract %v3float %164 1 334 %176 = OpFOrdEqual %v3bool %175 %169 335 %177 = OpAll %bool %176 336 %178 = OpLogicalAnd %bool %174 %177 337 %179 = OpCompositeExtract %v3float %164 2 338 %180 = OpFOrdEqual %v3bool %179 %170 339 %181 = OpAll %bool %180 340 %182 = OpLogicalAnd %bool %178 %181 341 OpBranch %166 342 %166 = OpLabel 343 %183 = OpPhi %bool %false %148 %182 %165 344 OpStore %ok %183 345 %187 = OpFAdd %v3float %32 %185 346 %188 = OpFAdd %v3float %33 %185 347 %189 = OpCompositeConstruct %mat2v3float %187 %188 348 OpStore %m23 %189 349 OpSelectionMerge %191 None 350 OpBranchConditional %183 %190 %191 351 %190 = OpLabel 352 %195 = OpFOrdEqual %v3bool %187 %192 353 %196 = OpAll %bool %195 354 %197 = OpFOrdEqual %v3bool %188 %193 355 %198 = OpAll %bool %197 356 %199 = OpLogicalAnd %bool %196 %198 357 OpBranch %191 358 %191 = OpLabel 359 %200 = OpPhi %bool %false %166 %199 %190 360 OpStore %ok %200 361 %203 = OpFSub %v2float %65 %201 362 %204 = OpFSub %v2float %66 %201 363 %205 = OpFSub %v2float %17 %201 364 %206 = OpCompositeConstruct %mat3v2float %203 %204 %205 365 OpStore %m32 %206 366 OpSelectionMerge %208 None 367 OpBranchConditional %200 %207 %208 368 %207 = OpLabel 369 %214 = OpFOrdEqual %v2bool %203 %210 370 %215 = OpAll %bool %214 371 %216 = OpFOrdEqual %v2bool %204 %211 372 %217 = OpAll %bool %216 373 %218 = OpLogicalAnd %bool %215 %217 374 %219 = OpFOrdEqual %v2bool %205 %212 375 %220 = OpAll %bool %219 376 %221 = OpLogicalAnd %bool %218 %220 377 OpBranch %208 378 %208 = OpLabel 379 %222 = OpPhi %bool %false %191 %221 %207 380 OpStore %ok %222 381 %224 = OpMatrixTimesScalar %mat2v4float %51 %float_0_25 382 OpStore %m24 %224 383 OpSelectionMerge %226 None 384 OpBranchConditional %222 %225 %226 385 %225 = OpLabel 386 %231 = OpCompositeExtract %v4float %224 0 387 %232 = OpFOrdEqual %v4bool %231 %228 388 %233 = OpAll %bool %232 389 %234 = OpCompositeExtract %v4float %224 1 390 %235 = OpFOrdEqual %v4bool %234 %229 391 %236 = OpAll %bool %235 392 %237 = OpLogicalAnd %bool %233 %236 393 OpBranch %226 394 %226 = OpLabel 395 %238 = OpPhi %bool %false %208 %237 %225 396 OpStore %ok %238 397 OpReturnValue %238 398 OpFunctionEnd 399 %main = OpFunction %v4float None %239 400 %240 = OpFunctionParameter %_ptr_Function_v2float 401 %241 = OpLabel 402 %_0_ok = OpVariable %_ptr_Function_bool Function 403 %_1_m23 = OpVariable %_ptr_Function_mat2v3float Function 404 %_2_m24 = OpVariable %_ptr_Function_mat2v4float Function 405 %_3_m32 = OpVariable %_ptr_Function_mat3v2float Function 406 %_7_m22 = OpVariable %_ptr_Function_mat2v2float Function 407 %326 = OpVariable %_ptr_Function_v4float Function 408 OpStore %_0_ok %true 409 OpStore %_1_m23 %34 410 OpSelectionMerge %245 None 411 OpBranchConditional %true %244 %245 412 %244 = OpLabel 413 %246 = OpFOrdEqual %v3bool %32 %32 414 %247 = OpAll %bool %246 415 %248 = OpFOrdEqual %v3bool %33 %33 416 %249 = OpAll %bool %248 417 %250 = OpLogicalAnd %bool %247 %249 418 OpBranch %245 419 %245 = OpLabel 420 %251 = OpPhi %bool %false %241 %250 %244 421 OpStore %_0_ok %251 422 OpStore %_2_m24 %51 423 OpSelectionMerge %254 None 424 OpBranchConditional %251 %253 %254 425 %253 = OpLabel 426 %255 = OpFOrdEqual %v4bool %49 %49 427 %256 = OpAll %bool %255 428 %257 = OpFOrdEqual %v4bool %50 %50 429 %258 = OpAll %bool %257 430 %259 = OpLogicalAnd %bool %256 %258 431 OpBranch %254 432 %254 = OpLabel 433 %260 = OpPhi %bool %false %245 %259 %253 434 OpStore %_0_ok %260 435 OpStore %_3_m32 %67 436 OpSelectionMerge %263 None 437 OpBranchConditional %260 %262 %263 438 %262 = OpLabel 439 %264 = OpFOrdEqual %v2bool %65 %65 440 %265 = OpAll %bool %264 441 %266 = OpFOrdEqual %v2bool %66 %66 442 %267 = OpAll %bool %266 443 %268 = OpLogicalAnd %bool %265 %267 444 %269 = OpFOrdEqual %v2bool %17 %17 445 %270 = OpAll %bool %269 446 %271 = OpLogicalAnd %bool %268 %270 447 OpBranch %263 448 %263 = OpLabel 449 %272 = OpPhi %bool %false %254 %271 %262 450 OpStore %_0_ok %272 451 %274 = OpMatrixTimesMatrix %mat2v2float %67 %34 452 OpStore %_7_m22 %274 453 OpSelectionMerge %276 None 454 OpBranchConditional %272 %275 %276 455 %275 = OpLabel 456 %277 = OpCompositeExtract %v2float %274 0 457 %278 = OpFOrdEqual %v2bool %277 %150 458 %279 = OpAll %bool %278 459 %280 = OpCompositeExtract %v2float %274 1 460 %281 = OpFOrdEqual %v2bool %280 %151 461 %282 = OpAll %bool %281 462 %283 = OpLogicalAnd %bool %279 %282 463 OpBranch %276 464 %276 = OpLabel 465 %284 = OpPhi %bool %false %263 %283 %275 466 OpStore %_0_ok %284 467 %285 = OpFAdd %v3float %32 %185 468 %286 = OpFAdd %v3float %33 %185 469 %287 = OpCompositeConstruct %mat2v3float %285 %286 470 OpStore %_1_m23 %287 471 OpSelectionMerge %289 None 472 OpBranchConditional %284 %288 %289 473 %288 = OpLabel 474 %290 = OpFOrdEqual %v3bool %285 %192 475 %291 = OpAll %bool %290 476 %292 = OpFOrdEqual %v3bool %286 %193 477 %293 = OpAll %bool %292 478 %294 = OpLogicalAnd %bool %291 %293 479 OpBranch %289 480 %289 = OpLabel 481 %295 = OpPhi %bool %false %276 %294 %288 482 OpStore %_0_ok %295 483 %296 = OpFSub %v2float %65 %201 484 %297 = OpFSub %v2float %66 %201 485 %298 = OpFSub %v2float %17 %201 486 %299 = OpCompositeConstruct %mat3v2float %296 %297 %298 487 OpStore %_3_m32 %299 488 OpSelectionMerge %301 None 489 OpBranchConditional %295 %300 %301 490 %300 = OpLabel 491 %302 = OpFOrdEqual %v2bool %296 %210 492 %303 = OpAll %bool %302 493 %304 = OpFOrdEqual %v2bool %297 %211 494 %305 = OpAll %bool %304 495 %306 = OpLogicalAnd %bool %303 %305 496 %307 = OpFOrdEqual %v2bool %298 %212 497 %308 = OpAll %bool %307 498 %309 = OpLogicalAnd %bool %306 %308 499 OpBranch %301 500 %301 = OpLabel 501 %310 = OpPhi %bool %false %289 %309 %300 502 OpStore %_0_ok %310 503 %311 = OpMatrixTimesScalar %mat2v4float %51 %float_0_25 504 OpStore %_2_m24 %311 505 OpSelectionMerge %313 None 506 OpBranchConditional %310 %312 %313 507 %312 = OpLabel 508 %314 = OpCompositeExtract %v4float %311 0 509 %315 = OpFOrdEqual %v4bool %314 %228 510 %316 = OpAll %bool %315 511 %317 = OpCompositeExtract %v4float %311 1 512 %318 = OpFOrdEqual %v4bool %317 %229 513 %319 = OpAll %bool %318 514 %320 = OpLogicalAnd %bool %316 %319 515 OpBranch %313 516 %313 = OpLabel 517 %321 = OpPhi %bool %false %301 %320 %312 518 OpStore %_0_ok %321 519 OpSelectionMerge %323 None 520 OpBranchConditional %321 %322 %323 521 %322 = OpLabel 522 %324 = OpFunctionCall %bool %test_half_b 523 OpBranch %323 524 %323 = OpLabel 525 %325 = OpPhi %bool %false %313 %324 %322 526 OpSelectionMerge %330 None 527 OpBranchConditional %325 %328 %329 528 %328 = OpLabel 529 %331 = OpAccessChain %_ptr_Uniform_v4float %8 %int_0 530 %335 = OpLoad %v4float %331 531 OpStore %326 %335 532 OpBranch %330 533 %329 = OpLabel 534 %336 = OpAccessChain %_ptr_Uniform_v4float %8 %int_1 535 %338 = OpLoad %v4float %336 536 OpStore %326 %338 537 OpBranch %330 538 %330 = OpLabel 539 %339 = OpLoad %v4float %326 540 OpReturnValue %339 541 OpFunctionEnd 542