1OpCapability Shader 2%1 = OpExtInstImport "GLSL.std.450" 3OpMemoryModel Logical GLSL450 4OpEntryPoint Fragment %main "main" %sk_FragColor %sk_Clockwise 5OpExecutionMode %main OriginUpperLeft 6OpName %sk_FragColor "sk_FragColor" 7OpName %sk_Clockwise "sk_Clockwise" 8OpName %_UniformBuffer "_UniformBuffer" 9OpMemberName %_UniformBuffer 0 "a" 10OpMemberName %_UniformBuffer 1 "b" 11OpMemberName %_UniformBuffer 2 "c" 12OpMemberName %_UniformBuffer 3 "d" 13OpMemberName %_UniformBuffer 4 "e" 14OpMemberName %_UniformBuffer 5 "f" 15OpName %main "main" 16OpName %expectTTFF "expectTTFF" 17OpName %expectFFTT "expectFFTT" 18OpName %expectTTTT "expectTTTT" 19OpDecorate %sk_FragColor RelaxedPrecision 20OpDecorate %sk_FragColor Location 0 21OpDecorate %sk_FragColor Index 0 22OpDecorate %sk_Clockwise BuiltIn FrontFacing 23OpMemberDecorate %_UniformBuffer 0 Offset 0 24OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 25OpMemberDecorate %_UniformBuffer 1 Offset 16 26OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 27OpMemberDecorate %_UniformBuffer 2 Offset 32 28OpMemberDecorate %_UniformBuffer 3 Offset 40 29OpMemberDecorate %_UniformBuffer 4 Offset 48 30OpMemberDecorate %_UniformBuffer 5 Offset 64 31OpDecorate %_UniformBuffer Block 32OpDecorate %10 Binding 0 33OpDecorate %10 DescriptorSet 0 34OpDecorate %34 RelaxedPrecision 35OpDecorate %37 RelaxedPrecision 36OpDecorate %40 RelaxedPrecision 37OpDecorate %54 RelaxedPrecision 38OpDecorate %67 RelaxedPrecision 39OpDecorate %70 RelaxedPrecision 40OpDecorate %74 RelaxedPrecision 41OpDecorate %79 RelaxedPrecision 42OpDecorate %82 RelaxedPrecision 43%float = OpTypeFloat 32 44%v4float = OpTypeVector %float 4 45%_ptr_Output_v4float = OpTypePointer Output %v4float 46%sk_FragColor = OpVariable %_ptr_Output_v4float Output 47%bool = OpTypeBool 48%_ptr_Input_bool = OpTypePointer Input %bool 49%sk_Clockwise = OpVariable %_ptr_Input_bool Input 50%uint = OpTypeInt 32 0 51%v2uint = OpTypeVector %uint 2 52%int = OpTypeInt 32 1 53%v3int = OpTypeVector %int 3 54%_UniformBuffer = OpTypeStruct %v4float %v4float %v2uint %v2uint %v3int %v3int 55%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 56%10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 57%void = OpTypeVoid 58%18 = OpTypeFunction %void 59%v4bool = OpTypeVector %bool 4 60%_ptr_Function_v4bool = OpTypePointer Function %v4bool 61%true = OpConstantTrue %bool 62%false = OpConstantFalse %bool 63%25 = OpConstantComposite %v4bool %true %true %false %false 64%27 = OpConstantComposite %v4bool %false %false %true %true 65%29 = OpConstantComposite %v4bool %true %true %true %true 66%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 67%int_0 = OpConstant %int 0 68%int_1 = OpConstant %int 1 69%_ptr_Output_float = OpTypePointer Output %float 70%_ptr_Uniform_v2uint = OpTypePointer Uniform %v2uint 71%int_2 = OpConstant %int 2 72%int_3 = OpConstant %int 3 73%v2bool = OpTypeVector %bool 2 74%_ptr_Uniform_v3int = OpTypePointer Uniform %v3int 75%int_4 = OpConstant %int 4 76%int_5 = OpConstant %int 5 77%v3bool = OpTypeVector %bool 3 78%main = OpFunction %void None %18 79%19 = OpLabel 80%expectTTFF = OpVariable %_ptr_Function_v4bool Function 81%expectFFTT = OpVariable %_ptr_Function_v4bool Function 82%expectTTTT = OpVariable %_ptr_Function_v4bool Function 83OpStore %expectTTFF %25 84OpStore %expectFFTT %27 85OpStore %expectTTTT %29 86%31 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 87%34 = OpLoad %v4float %31 88%35 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 89%37 = OpLoad %v4float %35 90%30 = OpFOrdEqual %v4bool %34 %37 91%38 = OpCompositeExtract %bool %30 0 92%39 = OpSelect %int %38 %int_1 %int_0 93%40 = OpConvertSToF %float %39 94%41 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0 95OpStore %41 %40 96%44 = OpAccessChain %_ptr_Uniform_v2uint %10 %int_2 97%47 = OpLoad %v2uint %44 98%48 = OpAccessChain %_ptr_Uniform_v2uint %10 %int_3 99%50 = OpLoad %v2uint %48 100%43 = OpIEqual %v2bool %47 %50 101%52 = OpCompositeExtract %bool %43 1 102%53 = OpSelect %int %52 %int_1 %int_0 103%54 = OpConvertSToF %float %53 104%55 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_1 105OpStore %55 %54 106%57 = OpAccessChain %_ptr_Uniform_v3int %10 %int_4 107%60 = OpLoad %v3int %57 108%61 = OpAccessChain %_ptr_Uniform_v3int %10 %int_5 109%63 = OpLoad %v3int %61 110%56 = OpIEqual %v3bool %60 %63 111%65 = OpCompositeExtract %bool %56 2 112%66 = OpSelect %int %65 %int_1 %int_0 113%67 = OpConvertSToF %float %66 114%68 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_2 115OpStore %68 %67 116%70 = OpLoad %v4bool %expectTTFF 117%69 = OpAny %bool %70 118OpSelectionMerge %72 None 119OpBranchConditional %69 %72 %71 120%71 = OpLabel 121%74 = OpLoad %v4bool %expectFFTT 122%73 = OpAny %bool %74 123OpBranch %72 124%72 = OpLabel 125%75 = OpPhi %bool %true %19 %73 %71 126OpSelectionMerge %77 None 127OpBranchConditional %75 %77 %76 128%76 = OpLabel 129%79 = OpLoad %v4bool %expectTTTT 130%78 = OpAny %bool %79 131OpBranch %77 132%77 = OpLabel 133%80 = OpPhi %bool %true %72 %78 %76 134%81 = OpSelect %int %80 %int_1 %int_0 135%82 = OpConvertSToF %float %81 136%83 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_3 137OpStore %83 %82 138OpReturn 139OpFunctionEnd 140