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 %_UniformBuffer "_UniformBuffer" 9OpMemberName %_UniformBuffer 0 "colorGreen" 10OpMemberName %_UniformBuffer 1 "colorRed" 11OpName %_entrypoint_v "_entrypoint_v" 12OpName %test_return_b "test_return_b" 13OpName %test_break_b "test_break_b" 14OpName %test_continue_b "test_continue_b" 15OpName %test_if_return_b "test_if_return_b" 16OpName %test_if_break_b "test_if_break_b" 17OpName %test_else_b "test_else_b" 18OpName %test_loop_return_b "test_loop_return_b" 19OpName %test_loop_break_b "test_loop_break_b" 20OpName %x "x" 21OpName %main "main" 22OpDecorate %sk_FragColor RelaxedPrecision 23OpDecorate %sk_FragColor Location 0 24OpDecorate %sk_FragColor Index 0 25OpDecorate %sk_Clockwise BuiltIn FrontFacing 26OpMemberDecorate %_UniformBuffer 0 Offset 0 27OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 28OpMemberDecorate %_UniformBuffer 1 Offset 16 29OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 30OpDecorate %_UniformBuffer Block 31OpDecorate %18 Binding 0 32OpDecorate %18 DescriptorSet 0 33OpDecorate %62 RelaxedPrecision 34OpDecorate %63 RelaxedPrecision 35OpDecorate %75 RelaxedPrecision 36OpDecorate %76 RelaxedPrecision 37OpDecorate %88 RelaxedPrecision 38OpDecorate %89 RelaxedPrecision 39OpDecorate %146 RelaxedPrecision 40OpDecorate %148 RelaxedPrecision 41OpDecorate %149 RelaxedPrecision 42%float = OpTypeFloat 32 43%v4float = OpTypeVector %float 4 44%_ptr_Output_v4float = OpTypePointer Output %v4float 45%sk_FragColor = OpVariable %_ptr_Output_v4float Output 46%bool = OpTypeBool 47%_ptr_Input_bool = OpTypePointer Input %bool 48%sk_Clockwise = OpVariable %_ptr_Input_bool Input 49%_UniformBuffer = OpTypeStruct %v4float %v4float 50%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 51%18 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 52%void = OpTypeVoid 53%23 = OpTypeFunction %void 54%v2float = OpTypeVector %float 2 55%float_0 = OpConstant %float 0 56%27 = OpConstantComposite %v2float %float_0 %float_0 57%_ptr_Function_v2float = OpTypePointer Function %v2float 58%31 = OpTypeFunction %bool 59%true = OpConstantTrue %bool 60%false = OpConstantFalse %bool 61%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 62%int = OpTypeInt 32 1 63%int_0 = OpConstant %int 0 64%_ptr_Function_int = OpTypePointer Function %int 65%int_1 = OpConstant %int 1 66%108 = OpTypeFunction %v4float %_ptr_Function_v2float 67%_ptr_Function_v4float = OpTypePointer Function %v4float 68%_entrypoint_v = OpFunction %void None %23 69%24 = OpLabel 70%28 = OpVariable %_ptr_Function_v2float Function 71OpStore %28 %27 72%30 = OpFunctionCall %v4float %main %28 73OpStore %sk_FragColor %30 74OpReturn 75OpFunctionEnd 76%test_return_b = OpFunction %bool None %31 77%32 = OpLabel 78OpBranch %33 79%33 = OpLabel 80OpLoopMerge %37 %36 None 81OpBranch %34 82%34 = OpLabel 83OpReturnValue %true 84%35 = OpLabel 85OpBranch %36 86%36 = OpLabel 87OpBranchConditional %false %33 %37 88%37 = OpLabel 89OpUnreachable 90OpFunctionEnd 91%test_break_b = OpFunction %bool None %31 92%40 = OpLabel 93OpBranch %41 94%41 = OpLabel 95OpLoopMerge %45 %44 None 96OpBranch %42 97%42 = OpLabel 98OpBranch %45 99%43 = OpLabel 100OpBranch %44 101%44 = OpLabel 102OpBranchConditional %false %41 %45 103%45 = OpLabel 104OpReturnValue %true 105OpFunctionEnd 106%test_continue_b = OpFunction %bool None %31 107%46 = OpLabel 108OpBranch %47 109%47 = OpLabel 110OpLoopMerge %51 %50 None 111OpBranch %48 112%48 = OpLabel 113OpBranch %50 114%49 = OpLabel 115OpBranch %50 116%50 = OpLabel 117OpBranchConditional %false %47 %51 118%51 = OpLabel 119OpReturnValue %true 120OpFunctionEnd 121%test_if_return_b = OpFunction %bool None %31 122%52 = OpLabel 123OpBranch %53 124%53 = OpLabel 125OpLoopMerge %57 %56 None 126OpBranch %54 127%54 = OpLabel 128%58 = OpAccessChain %_ptr_Uniform_v4float %18 %int_0 129%62 = OpLoad %v4float %58 130%63 = OpCompositeExtract %float %62 1 131%64 = OpFOrdGreaterThan %bool %63 %float_0 132OpSelectionMerge %67 None 133OpBranchConditional %64 %65 %66 134%65 = OpLabel 135OpReturnValue %true 136%66 = OpLabel 137OpBranch %57 138%67 = OpLabel 139OpBranch %56 140%55 = OpLabel 141OpBranch %56 142%56 = OpLabel 143OpBranchConditional %false %53 %57 144%57 = OpLabel 145OpReturnValue %false 146OpFunctionEnd 147%test_if_break_b = OpFunction %bool None %31 148%68 = OpLabel 149OpBranch %69 150%69 = OpLabel 151OpLoopMerge %73 %72 None 152OpBranch %70 153%70 = OpLabel 154%74 = OpAccessChain %_ptr_Uniform_v4float %18 %int_0 155%75 = OpLoad %v4float %74 156%76 = OpCompositeExtract %float %75 1 157%77 = OpFOrdGreaterThan %bool %76 %float_0 158OpSelectionMerge %80 None 159OpBranchConditional %77 %78 %79 160%78 = OpLabel 161OpBranch %73 162%79 = OpLabel 163OpBranch %72 164%80 = OpLabel 165OpBranch %71 166%71 = OpLabel 167OpBranch %72 168%72 = OpLabel 169OpBranchConditional %false %69 %73 170%73 = OpLabel 171OpReturnValue %true 172OpFunctionEnd 173%test_else_b = OpFunction %bool None %31 174%81 = OpLabel 175OpBranch %82 176%82 = OpLabel 177OpLoopMerge %86 %85 None 178OpBranch %83 179%83 = OpLabel 180%87 = OpAccessChain %_ptr_Uniform_v4float %18 %int_0 181%88 = OpLoad %v4float %87 182%89 = OpCompositeExtract %float %88 1 183%90 = OpFOrdEqual %bool %89 %float_0 184OpSelectionMerge %93 None 185OpBranchConditional %90 %91 %92 186%91 = OpLabel 187OpReturnValue %false 188%92 = OpLabel 189OpReturnValue %true 190%93 = OpLabel 191OpBranch %84 192%84 = OpLabel 193OpBranch %85 194%85 = OpLabel 195OpBranchConditional %false %82 %86 196%86 = OpLabel 197OpUnreachable 198OpFunctionEnd 199%test_loop_return_b = OpFunction %bool None %31 200%94 = OpLabel 201OpReturnValue %true 202OpFunctionEnd 203%test_loop_break_b = OpFunction %bool None %31 204%95 = OpLabel 205%x = OpVariable %_ptr_Function_int Function 206OpStore %x %int_0 207OpBranch %98 208%98 = OpLabel 209OpLoopMerge %102 %101 None 210OpBranch %99 211%99 = OpLabel 212%103 = OpLoad %int %x 213%105 = OpSLessThanEqual %bool %103 %int_1 214OpBranchConditional %105 %100 %102 215%100 = OpLabel 216OpBranch %102 217%101 = OpLabel 218%106 = OpLoad %int %x 219%107 = OpIAdd %int %106 %int_1 220OpStore %x %107 221OpBranch %98 222%102 = OpLabel 223OpReturnValue %true 224OpFunctionEnd 225%main = OpFunction %v4float None %108 226%109 = OpFunctionParameter %_ptr_Function_v2float 227%110 = OpLabel 228%140 = OpVariable %_ptr_Function_v4float Function 229%111 = OpFunctionCall %bool %test_return_b 230OpSelectionMerge %113 None 231OpBranchConditional %111 %112 %113 232%112 = OpLabel 233%114 = OpFunctionCall %bool %test_break_b 234OpBranch %113 235%113 = OpLabel 236%115 = OpPhi %bool %false %110 %114 %112 237OpSelectionMerge %117 None 238OpBranchConditional %115 %116 %117 239%116 = OpLabel 240%118 = OpFunctionCall %bool %test_continue_b 241OpBranch %117 242%117 = OpLabel 243%119 = OpPhi %bool %false %113 %118 %116 244OpSelectionMerge %121 None 245OpBranchConditional %119 %120 %121 246%120 = OpLabel 247%122 = OpFunctionCall %bool %test_if_return_b 248OpBranch %121 249%121 = OpLabel 250%123 = OpPhi %bool %false %117 %122 %120 251OpSelectionMerge %125 None 252OpBranchConditional %123 %124 %125 253%124 = OpLabel 254%126 = OpFunctionCall %bool %test_if_break_b 255OpBranch %125 256%125 = OpLabel 257%127 = OpPhi %bool %false %121 %126 %124 258OpSelectionMerge %129 None 259OpBranchConditional %127 %128 %129 260%128 = OpLabel 261%130 = OpFunctionCall %bool %test_else_b 262OpBranch %129 263%129 = OpLabel 264%131 = OpPhi %bool %false %125 %130 %128 265OpSelectionMerge %133 None 266OpBranchConditional %131 %132 %133 267%132 = OpLabel 268%134 = OpFunctionCall %bool %test_loop_return_b 269OpBranch %133 270%133 = OpLabel 271%135 = OpPhi %bool %false %129 %134 %132 272OpSelectionMerge %137 None 273OpBranchConditional %135 %136 %137 274%136 = OpLabel 275%138 = OpFunctionCall %bool %test_loop_break_b 276OpBranch %137 277%137 = OpLabel 278%139 = OpPhi %bool %false %133 %138 %136 279OpSelectionMerge %144 None 280OpBranchConditional %139 %142 %143 281%142 = OpLabel 282%145 = OpAccessChain %_ptr_Uniform_v4float %18 %int_0 283%146 = OpLoad %v4float %145 284OpStore %140 %146 285OpBranch %144 286%143 = OpLabel 287%147 = OpAccessChain %_ptr_Uniform_v4float %18 %int_1 288%148 = OpLoad %v4float %147 289OpStore %140 %148 290OpBranch %144 291%144 = OpLabel 292%149 = OpLoad %v4float %140 293OpReturnValue %149 294OpFunctionEnd 295