1OpCapability Shader 2%1 = OpExtInstImport "GLSL.std.450" 3OpMemoryModel Logical GLSL450 4OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise 5OpExecutionMode %_entrypoint_v OriginUpperLeft 6OpName %sk_FragColor "sk_FragColor" 7OpName %sk_Clockwise "sk_Clockwise" 8OpName %scratchVar "scratchVar" 9OpName %_UniformBuffer "_UniformBuffer" 10OpMemberName %_UniformBuffer 0 "colorGreen" 11OpMemberName %_UniformBuffer 1 "colorRed" 12OpName %_entrypoint_v "_entrypoint_v" 13OpName %test_flat_b "test_flat_b" 14OpName %test_if_b "test_if_b" 15OpName %test_else_b "test_else_b" 16OpName %test_loop_if_b "test_loop_if_b" 17OpName %x "x" 18OpName %main "main" 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 27OpDecorate %_UniformBuffer Block 28OpDecorate %18 Binding 0 29OpDecorate %18 DescriptorSet 0 30OpDecorate %37 RelaxedPrecision 31OpDecorate %38 RelaxedPrecision 32OpDecorate %51 RelaxedPrecision 33OpDecorate %52 RelaxedPrecision 34OpDecorate %68 RelaxedPrecision 35OpDecorate %69 RelaxedPrecision 36OpDecorate %100 RelaxedPrecision 37OpDecorate %102 RelaxedPrecision 38OpDecorate %103 RelaxedPrecision 39%float = OpTypeFloat 32 40%v4float = OpTypeVector %float 4 41%_ptr_Output_v4float = OpTypePointer Output %v4float 42%sk_FragColor = OpVariable %_ptr_Output_v4float Output 43%bool = OpTypeBool 44%_ptr_Input_bool = OpTypePointer Input %bool 45%sk_Clockwise = OpVariable %_ptr_Input_bool Input 46%int = OpTypeInt 32 1 47%_ptr_Private_int = OpTypePointer Private %int 48%scratchVar = OpVariable %_ptr_Private_int Private 49%int_0 = OpConstant %int 0 50%_UniformBuffer = OpTypeStruct %v4float %v4float 51%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 52%18 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 53%void = OpTypeVoid 54%23 = OpTypeFunction %void 55%v2float = OpTypeVector %float 2 56%float_0 = OpConstant %float 0 57%27 = OpConstantComposite %v2float %float_0 %float_0 58%_ptr_Function_v2float = OpTypePointer Function %v2float 59%31 = OpTypeFunction %bool 60%true = OpConstantTrue %bool 61%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 62%int_1 = OpConstant %int 1 63%false = OpConstantFalse %bool 64%_ptr_Function_int = OpTypePointer Function %int 65%78 = OpTypeFunction %v4float %_ptr_Function_v2float 66%_ptr_Function_v4float = OpTypePointer Function %v4float 67%_entrypoint_v = OpFunction %void None %23 68%24 = OpLabel 69%28 = OpVariable %_ptr_Function_v2float Function 70OpStore %28 %27 71%30 = OpFunctionCall %v4float %main %28 72OpStore %sk_FragColor %30 73OpReturn 74OpFunctionEnd 75%test_flat_b = OpFunction %bool None %31 76%32 = OpLabel 77OpReturnValue %true 78OpFunctionEnd 79%test_if_b = OpFunction %bool None %31 80%34 = OpLabel 81%35 = OpAccessChain %_ptr_Uniform_v4float %18 %int_0 82%37 = OpLoad %v4float %35 83%38 = OpCompositeExtract %float %37 1 84%39 = OpFOrdGreaterThan %bool %38 %float_0 85OpSelectionMerge %42 None 86OpBranchConditional %39 %40 %41 87%40 = OpLabel 88OpReturnValue %true 89%41 = OpLabel 90%44 = OpLoad %int %scratchVar 91%45 = OpIAdd %int %44 %int_1 92OpStore %scratchVar %45 93OpBranch %42 94%42 = OpLabel 95%46 = OpLoad %int %scratchVar 96%47 = OpIAdd %int %46 %int_1 97OpStore %scratchVar %47 98OpReturnValue %false 99OpFunctionEnd 100%test_else_b = OpFunction %bool None %31 101%49 = OpLabel 102%50 = OpAccessChain %_ptr_Uniform_v4float %18 %int_0 103%51 = OpLoad %v4float %50 104%52 = OpCompositeExtract %float %51 1 105%53 = OpFOrdEqual %bool %52 %float_0 106OpSelectionMerge %56 None 107OpBranchConditional %53 %54 %55 108%54 = OpLabel 109OpReturnValue %false 110%55 = OpLabel 111OpReturnValue %true 112%56 = OpLabel 113OpUnreachable 114OpFunctionEnd 115%test_loop_if_b = OpFunction %bool None %31 116%57 = OpLabel 117%x = OpVariable %_ptr_Function_int Function 118OpStore %x %int_0 119OpBranch %60 120%60 = OpLabel 121OpLoopMerge %64 %63 None 122OpBranch %61 123%61 = OpLabel 124%65 = OpLoad %int %x 125%66 = OpSLessThanEqual %bool %65 %int_1 126OpBranchConditional %66 %62 %64 127%62 = OpLabel 128%67 = OpAccessChain %_ptr_Uniform_v4float %18 %int_0 129%68 = OpLoad %v4float %67 130%69 = OpCompositeExtract %float %68 1 131%70 = OpFOrdEqual %bool %69 %float_0 132OpSelectionMerge %73 None 133OpBranchConditional %70 %71 %72 134%71 = OpLabel 135OpReturnValue %false 136%72 = OpLabel 137OpReturnValue %true 138%73 = OpLabel 139OpBranch %63 140%63 = OpLabel 141%74 = OpLoad %int %x 142%75 = OpIAdd %int %74 %int_1 143OpStore %x %75 144OpBranch %60 145%64 = OpLabel 146%76 = OpLoad %int %scratchVar 147%77 = OpIAdd %int %76 %int_1 148OpStore %scratchVar %77 149OpReturnValue %true 150OpFunctionEnd 151%main = OpFunction %v4float None %78 152%79 = OpFunctionParameter %_ptr_Function_v2float 153%80 = OpLabel 154%94 = OpVariable %_ptr_Function_v4float Function 155OpStore %scratchVar %int_0 156%81 = OpFunctionCall %bool %test_flat_b 157OpSelectionMerge %83 None 158OpBranchConditional %81 %82 %83 159%82 = OpLabel 160%84 = OpFunctionCall %bool %test_if_b 161OpBranch %83 162%83 = OpLabel 163%85 = OpPhi %bool %false %80 %84 %82 164OpSelectionMerge %87 None 165OpBranchConditional %85 %86 %87 166%86 = OpLabel 167%88 = OpFunctionCall %bool %test_else_b 168OpBranch %87 169%87 = OpLabel 170%89 = OpPhi %bool %false %83 %88 %86 171OpSelectionMerge %91 None 172OpBranchConditional %89 %90 %91 173%90 = OpLabel 174%92 = OpFunctionCall %bool %test_loop_if_b 175OpBranch %91 176%91 = OpLabel 177%93 = OpPhi %bool %false %87 %92 %90 178OpSelectionMerge %98 None 179OpBranchConditional %93 %96 %97 180%96 = OpLabel 181%99 = OpAccessChain %_ptr_Uniform_v4float %18 %int_0 182%100 = OpLoad %v4float %99 183OpStore %94 %100 184OpBranch %98 185%97 = OpLabel 186%101 = OpAccessChain %_ptr_Uniform_v4float %18 %int_1 187%102 = OpLoad %v4float %101 188OpStore %94 %102 189OpBranch %98 190%98 = OpLabel 191%103 = OpLoad %v4float %94 192OpReturnValue %103 193OpFunctionEnd 194