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" 11OpMemberName %_UniformBuffer 2 "unknownInput" 12OpName %_entrypoint_v "_entrypoint_v" 13OpName %inside_while_loop_b "inside_while_loop_b" 14OpName %inside_infinite_do_loop_b "inside_infinite_do_loop_b" 15OpName %inside_infinite_while_loop_b "inside_infinite_while_loop_b" 16OpName %after_do_loop_b "after_do_loop_b" 17OpName %after_while_loop_b "after_while_loop_b" 18OpName %switch_with_all_returns_b "switch_with_all_returns_b" 19OpName %switch_fallthrough_b "switch_fallthrough_b" 20OpName %switch_fallthrough_twice_b "switch_fallthrough_twice_b" 21OpName %switch_with_break_in_loop_b "switch_with_break_in_loop_b" 22OpName %x "x" 23OpName %switch_with_continue_in_loop_b "switch_with_continue_in_loop_b" 24OpName %x_0 "x" 25OpName %switch_with_if_that_returns_b "switch_with_if_that_returns_b" 26OpName %switch_with_one_sided_if_then_fallthrough_b "switch_with_one_sided_if_then_fallthrough_b" 27OpName %main "main" 28OpDecorate %sk_FragColor RelaxedPrecision 29OpDecorate %sk_FragColor Location 0 30OpDecorate %sk_FragColor Index 0 31OpDecorate %sk_Clockwise BuiltIn FrontFacing 32OpMemberDecorate %_UniformBuffer 0 Offset 0 33OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 34OpMemberDecorate %_UniformBuffer 1 Offset 16 35OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 36OpMemberDecorate %_UniformBuffer 2 Offset 32 37OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision 38OpDecorate %_UniformBuffer Block 39OpDecorate %22 Binding 0 40OpDecorate %22 DescriptorSet 0 41OpDecorate %46 RelaxedPrecision 42OpDecorate %77 RelaxedPrecision 43OpDecorate %85 RelaxedPrecision 44OpDecorate %93 RelaxedPrecision 45OpDecorate %101 RelaxedPrecision 46OpDecorate %122 RelaxedPrecision 47OpDecorate %139 RelaxedPrecision 48OpDecorate %145 RelaxedPrecision 49OpDecorate %152 RelaxedPrecision 50OpDecorate %158 RelaxedPrecision 51OpDecorate %217 RelaxedPrecision 52OpDecorate %219 RelaxedPrecision 53OpDecorate %220 RelaxedPrecision 54%float = OpTypeFloat 32 55%v4float = OpTypeVector %float 4 56%_ptr_Output_v4float = OpTypePointer Output %v4float 57%sk_FragColor = OpVariable %_ptr_Output_v4float Output 58%bool = OpTypeBool 59%_ptr_Input_bool = OpTypePointer Input %bool 60%sk_Clockwise = OpVariable %_ptr_Input_bool Input 61%_UniformBuffer = OpTypeStruct %v4float %v4float %float 62%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 63%22 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 64%void = OpTypeVoid 65%27 = OpTypeFunction %void 66%v2float = OpTypeVector %float 2 67%float_0 = OpConstant %float 0 68%31 = OpConstantComposite %v2float %float_0 %float_0 69%_ptr_Function_v2float = OpTypePointer Function %v2float 70%35 = OpTypeFunction %bool 71%_ptr_Uniform_float = OpTypePointer Uniform %float 72%int = OpTypeInt 32 1 73%int_2 = OpConstant %int 2 74%float_123 = OpConstant %float 123 75%false = OpConstantFalse %bool 76%true = OpConstantTrue %bool 77%_ptr_Function_int = OpTypePointer Function %int 78%int_0 = OpConstant %int 0 79%int_10 = OpConstant %int 10 80%int_1 = OpConstant %int 1 81%162 = OpTypeFunction %v4float %_ptr_Function_v2float 82%_ptr_Function_v4float = OpTypePointer Function %v4float 83%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 84%_entrypoint_v = OpFunction %void None %27 85%28 = OpLabel 86%32 = OpVariable %_ptr_Function_v2float Function 87OpStore %32 %31 88%34 = OpFunctionCall %v4float %main %32 89OpStore %sk_FragColor %34 90OpReturn 91OpFunctionEnd 92%inside_while_loop_b = OpFunction %bool None %35 93%36 = OpLabel 94OpBranch %37 95%37 = OpLabel 96OpLoopMerge %41 %40 None 97OpBranch %38 98%38 = OpLabel 99%42 = OpAccessChain %_ptr_Uniform_float %22 %int_2 100%46 = OpLoad %float %42 101%48 = OpFOrdEqual %bool %46 %float_123 102OpBranchConditional %48 %39 %41 103%39 = OpLabel 104OpReturnValue %false 105%40 = OpLabel 106OpBranch %37 107%41 = OpLabel 108OpReturnValue %true 109OpFunctionEnd 110%inside_infinite_do_loop_b = OpFunction %bool None %35 111%51 = OpLabel 112OpBranch %52 113%52 = OpLabel 114OpLoopMerge %56 %55 None 115OpBranch %53 116%53 = OpLabel 117OpReturnValue %true 118%54 = OpLabel 119OpBranch %55 120%55 = OpLabel 121OpBranchConditional %true %52 %56 122%56 = OpLabel 123OpUnreachable 124OpFunctionEnd 125%inside_infinite_while_loop_b = OpFunction %bool None %35 126%57 = OpLabel 127OpBranch %58 128%58 = OpLabel 129OpLoopMerge %62 %61 None 130OpBranch %59 131%59 = OpLabel 132OpBranchConditional %true %60 %62 133%60 = OpLabel 134OpReturnValue %true 135%61 = OpLabel 136OpBranch %58 137%62 = OpLabel 138OpUnreachable 139OpFunctionEnd 140%after_do_loop_b = OpFunction %bool None %35 141%63 = OpLabel 142OpBranch %64 143%64 = OpLabel 144OpLoopMerge %68 %67 None 145OpBranch %65 146%65 = OpLabel 147OpBranch %68 148%66 = OpLabel 149OpBranch %67 150%67 = OpLabel 151OpBranchConditional %true %64 %68 152%68 = OpLabel 153OpReturnValue %true 154OpFunctionEnd 155%after_while_loop_b = OpFunction %bool None %35 156%69 = OpLabel 157OpBranch %70 158%70 = OpLabel 159OpLoopMerge %74 %73 None 160OpBranch %71 161%71 = OpLabel 162OpBranchConditional %true %72 %74 163%72 = OpLabel 164OpBranch %74 165%73 = OpLabel 166OpBranch %70 167%74 = OpLabel 168OpReturnValue %true 169OpFunctionEnd 170%switch_with_all_returns_b = OpFunction %bool None %35 171%75 = OpLabel 172%76 = OpAccessChain %_ptr_Uniform_float %22 %int_2 173%77 = OpLoad %float %76 174%78 = OpConvertFToS %int %77 175OpSelectionMerge %79 None 176OpSwitch %78 %82 1 %80 2 %81 177%80 = OpLabel 178OpReturnValue %true 179%81 = OpLabel 180OpReturnValue %false 181%82 = OpLabel 182OpReturnValue %false 183%79 = OpLabel 184OpUnreachable 185OpFunctionEnd 186%switch_fallthrough_b = OpFunction %bool None %35 187%83 = OpLabel 188%84 = OpAccessChain %_ptr_Uniform_float %22 %int_2 189%85 = OpLoad %float %84 190%86 = OpConvertFToS %int %85 191OpSelectionMerge %87 None 192OpSwitch %86 %90 1 %88 2 %89 193%88 = OpLabel 194OpReturnValue %true 195%89 = OpLabel 196OpBranch %90 197%90 = OpLabel 198OpReturnValue %false 199%87 = OpLabel 200OpUnreachable 201OpFunctionEnd 202%switch_fallthrough_twice_b = OpFunction %bool None %35 203%91 = OpLabel 204%92 = OpAccessChain %_ptr_Uniform_float %22 %int_2 205%93 = OpLoad %float %92 206%94 = OpConvertFToS %int %93 207OpSelectionMerge %95 None 208OpSwitch %94 %98 1 %96 2 %97 209%96 = OpLabel 210OpBranch %97 211%97 = OpLabel 212OpBranch %98 213%98 = OpLabel 214OpReturnValue %true 215%95 = OpLabel 216OpUnreachable 217OpFunctionEnd 218%switch_with_break_in_loop_b = OpFunction %bool None %35 219%99 = OpLabel 220%x = OpVariable %_ptr_Function_int Function 221%100 = OpAccessChain %_ptr_Uniform_float %22 %int_2 222%101 = OpLoad %float %100 223%102 = OpConvertFToS %int %101 224OpSelectionMerge %103 None 225OpSwitch %102 %105 1 %104 226%104 = OpLabel 227OpStore %x %int_0 228OpBranch %109 229%109 = OpLabel 230OpLoopMerge %113 %112 None 231OpBranch %110 232%110 = OpLabel 233%114 = OpLoad %int %x 234%116 = OpSLessThanEqual %bool %114 %int_10 235OpBranchConditional %116 %111 %113 236%111 = OpLabel 237OpBranch %113 238%112 = OpLabel 239%118 = OpLoad %int %x 240%119 = OpIAdd %int %118 %int_1 241OpStore %x %119 242OpBranch %109 243%113 = OpLabel 244OpBranch %105 245%105 = OpLabel 246OpReturnValue %true 247%103 = OpLabel 248OpUnreachable 249OpFunctionEnd 250%switch_with_continue_in_loop_b = OpFunction %bool None %35 251%120 = OpLabel 252%x_0 = OpVariable %_ptr_Function_int Function 253%121 = OpAccessChain %_ptr_Uniform_float %22 %int_2 254%122 = OpLoad %float %121 255%123 = OpConvertFToS %int %122 256OpSelectionMerge %124 None 257OpSwitch %123 %126 1 %125 258%125 = OpLabel 259OpStore %x_0 %int_0 260OpBranch %128 261%128 = OpLabel 262OpLoopMerge %132 %131 None 263OpBranch %129 264%129 = OpLabel 265%133 = OpLoad %int %x_0 266%134 = OpSLessThanEqual %bool %133 %int_10 267OpBranchConditional %134 %130 %132 268%130 = OpLabel 269OpBranch %131 270%131 = OpLabel 271%135 = OpLoad %int %x_0 272%136 = OpIAdd %int %135 %int_1 273OpStore %x_0 %136 274OpBranch %128 275%132 = OpLabel 276OpBranch %126 277%126 = OpLabel 278OpReturnValue %true 279%124 = OpLabel 280OpUnreachable 281OpFunctionEnd 282%switch_with_if_that_returns_b = OpFunction %bool None %35 283%137 = OpLabel 284%138 = OpAccessChain %_ptr_Uniform_float %22 %int_2 285%139 = OpLoad %float %138 286%140 = OpConvertFToS %int %139 287OpSelectionMerge %141 None 288OpSwitch %140 %143 1 %142 289%142 = OpLabel 290%144 = OpAccessChain %_ptr_Uniform_float %22 %int_2 291%145 = OpLoad %float %144 292%146 = OpFOrdEqual %bool %145 %float_123 293OpSelectionMerge %149 None 294OpBranchConditional %146 %147 %148 295%147 = OpLabel 296OpReturnValue %false 297%148 = OpLabel 298OpReturnValue %true 299%149 = OpLabel 300OpBranch %143 301%143 = OpLabel 302OpReturnValue %true 303%141 = OpLabel 304OpUnreachable 305OpFunctionEnd 306%switch_with_one_sided_if_then_fallthrough_b = OpFunction %bool None %35 307%150 = OpLabel 308%151 = OpAccessChain %_ptr_Uniform_float %22 %int_2 309%152 = OpLoad %float %151 310%153 = OpConvertFToS %int %152 311OpSelectionMerge %154 None 312OpSwitch %153 %156 1 %155 313%155 = OpLabel 314%157 = OpAccessChain %_ptr_Uniform_float %22 %int_2 315%158 = OpLoad %float %157 316%159 = OpFOrdEqual %bool %158 %float_123 317OpSelectionMerge %161 None 318OpBranchConditional %159 %160 %161 319%160 = OpLabel 320OpReturnValue %false 321%161 = OpLabel 322OpBranch %156 323%156 = OpLabel 324OpReturnValue %true 325%154 = OpLabel 326OpUnreachable 327OpFunctionEnd 328%main = OpFunction %v4float None %162 329%163 = OpFunctionParameter %_ptr_Function_v2float 330%164 = OpLabel 331%210 = OpVariable %_ptr_Function_v4float Function 332%165 = OpFunctionCall %bool %inside_while_loop_b 333OpSelectionMerge %167 None 334OpBranchConditional %165 %166 %167 335%166 = OpLabel 336%168 = OpFunctionCall %bool %inside_infinite_do_loop_b 337OpBranch %167 338%167 = OpLabel 339%169 = OpPhi %bool %false %164 %168 %166 340OpSelectionMerge %171 None 341OpBranchConditional %169 %170 %171 342%170 = OpLabel 343%172 = OpFunctionCall %bool %inside_infinite_while_loop_b 344OpBranch %171 345%171 = OpLabel 346%173 = OpPhi %bool %false %167 %172 %170 347OpSelectionMerge %175 None 348OpBranchConditional %173 %174 %175 349%174 = OpLabel 350%176 = OpFunctionCall %bool %after_do_loop_b 351OpBranch %175 352%175 = OpLabel 353%177 = OpPhi %bool %false %171 %176 %174 354OpSelectionMerge %179 None 355OpBranchConditional %177 %178 %179 356%178 = OpLabel 357%180 = OpFunctionCall %bool %after_while_loop_b 358OpBranch %179 359%179 = OpLabel 360%181 = OpPhi %bool %false %175 %180 %178 361OpSelectionMerge %183 None 362OpBranchConditional %181 %182 %183 363%182 = OpLabel 364%184 = OpFunctionCall %bool %switch_with_all_returns_b 365OpBranch %183 366%183 = OpLabel 367%185 = OpPhi %bool %false %179 %184 %182 368OpSelectionMerge %187 None 369OpBranchConditional %185 %186 %187 370%186 = OpLabel 371%188 = OpFunctionCall %bool %switch_fallthrough_b 372OpBranch %187 373%187 = OpLabel 374%189 = OpPhi %bool %false %183 %188 %186 375OpSelectionMerge %191 None 376OpBranchConditional %189 %190 %191 377%190 = OpLabel 378%192 = OpFunctionCall %bool %switch_fallthrough_twice_b 379OpBranch %191 380%191 = OpLabel 381%193 = OpPhi %bool %false %187 %192 %190 382OpSelectionMerge %195 None 383OpBranchConditional %193 %194 %195 384%194 = OpLabel 385%196 = OpFunctionCall %bool %switch_with_break_in_loop_b 386OpBranch %195 387%195 = OpLabel 388%197 = OpPhi %bool %false %191 %196 %194 389OpSelectionMerge %199 None 390OpBranchConditional %197 %198 %199 391%198 = OpLabel 392%200 = OpFunctionCall %bool %switch_with_continue_in_loop_b 393OpBranch %199 394%199 = OpLabel 395%201 = OpPhi %bool %false %195 %200 %198 396OpSelectionMerge %203 None 397OpBranchConditional %201 %202 %203 398%202 = OpLabel 399%204 = OpFunctionCall %bool %switch_with_if_that_returns_b 400OpBranch %203 401%203 = OpLabel 402%205 = OpPhi %bool %false %199 %204 %202 403OpSelectionMerge %207 None 404OpBranchConditional %205 %206 %207 405%206 = OpLabel 406%208 = OpFunctionCall %bool %switch_with_one_sided_if_then_fallthrough_b 407OpBranch %207 408%207 = OpLabel 409%209 = OpPhi %bool %false %203 %208 %206 410OpSelectionMerge %214 None 411OpBranchConditional %209 %212 %213 412%212 = OpLabel 413%215 = OpAccessChain %_ptr_Uniform_v4float %22 %int_0 414%217 = OpLoad %v4float %215 415OpStore %210 %217 416OpBranch %214 417%213 = OpLabel 418%218 = OpAccessChain %_ptr_Uniform_v4float %22 %int_1 419%219 = OpLoad %v4float %218 420OpStore %210 %219 421OpBranch %214 422%214 = OpLabel 423%220 = OpLoad %v4float %210 424OpReturnValue %220 425OpFunctionEnd 426