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 %glob "glob" 9OpName %_UniformBuffer "_UniformBuffer" 10OpMemberName %_UniformBuffer 0 "colorGreen" 11OpMemberName %_UniformBuffer 1 "colorRed" 12OpName %_entrypoint_v "_entrypoint_v" 13OpName %block_variable_hides_global_variable_b "block_variable_hides_global_variable_b" 14OpName %local_variable_hides_struct_b "local_variable_hides_struct_b" 15OpName %S "S" 16OpName %local_struct_variable_hides_struct_type_b "local_struct_variable_hides_struct_type_b" 17OpName %S_0 "S" 18OpMemberName %S_0 0 "i" 19OpName %S_1 "S" 20OpName %local_variable_hides_global_variable_b "local_variable_hides_global_variable_b" 21OpName %glob_0 "glob" 22OpName %main "main" 23OpName %_0_var "_0_var" 24OpDecorate %sk_FragColor RelaxedPrecision 25OpDecorate %sk_FragColor Location 0 26OpDecorate %sk_FragColor Index 0 27OpDecorate %sk_Clockwise BuiltIn FrontFacing 28OpMemberDecorate %_UniformBuffer 0 Offset 0 29OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 30OpMemberDecorate %_UniformBuffer 1 Offset 16 31OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 32OpDecorate %_UniformBuffer Block 33OpDecorate %17 Binding 0 34OpDecorate %17 DescriptorSet 0 35OpDecorate %39 RelaxedPrecision 36OpMemberDecorate %S_0 0 Offset 0 37OpDecorate %60 RelaxedPrecision 38OpDecorate %84 RelaxedPrecision 39OpDecorate %86 RelaxedPrecision 40OpDecorate %87 RelaxedPrecision 41%float = OpTypeFloat 32 42%v4float = OpTypeVector %float 4 43%_ptr_Output_v4float = OpTypePointer Output %v4float 44%sk_FragColor = OpVariable %_ptr_Output_v4float Output 45%bool = OpTypeBool 46%_ptr_Input_bool = OpTypePointer Input %bool 47%sk_Clockwise = OpVariable %_ptr_Input_bool Input 48%int = OpTypeInt 32 1 49%_ptr_Private_int = OpTypePointer Private %int 50%glob = OpVariable %_ptr_Private_int Private 51%_UniformBuffer = OpTypeStruct %v4float %v4float 52%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 53%17 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 54%void = OpTypeVoid 55%22 = OpTypeFunction %void 56%v2float = OpTypeVector %float 2 57%float_0 = OpConstant %float 0 58%26 = OpConstantComposite %v2float %float_0 %float_0 59%_ptr_Function_v2float = OpTypePointer Function %v2float 60%30 = OpTypeFunction %bool 61%int_2 = OpConstant %int 2 62%_ptr_Function_bool = OpTypePointer Function %bool 63%true = OpConstantTrue %bool 64%S_0 = OpTypeStruct %int 65%_ptr_Function_S_0 = OpTypePointer Function %S_0 66%int_1 = OpConstant %int 1 67%int_0 = OpConstant %int 0 68%_ptr_Function_int = OpTypePointer Function %int 69%55 = OpTypeFunction %v4float %_ptr_Function_v2float 70%false = OpConstantFalse %bool 71%_ptr_Function_v4float = OpTypePointer Function %v4float 72%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 73%_entrypoint_v = OpFunction %void None %22 74%23 = OpLabel 75%27 = OpVariable %_ptr_Function_v2float Function 76OpStore %27 %26 77%29 = OpFunctionCall %v4float %main %27 78OpStore %sk_FragColor %29 79OpReturn 80OpFunctionEnd 81%block_variable_hides_global_variable_b = OpFunction %bool None %30 82%31 = OpLabel 83%32 = OpLoad %int %glob 84%34 = OpIEqual %bool %32 %int_2 85OpReturnValue %34 86OpFunctionEnd 87%local_variable_hides_struct_b = OpFunction %bool None %30 88%35 = OpLabel 89%S = OpVariable %_ptr_Function_bool Function 90OpStore %S %true 91%39 = OpLoad %bool %S 92OpReturnValue %39 93OpFunctionEnd 94%local_struct_variable_hides_struct_type_b = OpFunction %bool None %30 95%40 = OpLabel 96%S_1 = OpVariable %_ptr_Function_S_0 Function 97%45 = OpCompositeConstruct %S_0 %int_1 98OpStore %S_1 %45 99%47 = OpAccessChain %_ptr_Function_int %S_1 %int_0 100%49 = OpLoad %int %47 101%50 = OpIEqual %bool %49 %int_1 102OpReturnValue %50 103OpFunctionEnd 104%local_variable_hides_global_variable_b = OpFunction %bool None %30 105%51 = OpLabel 106%glob_0 = OpVariable %_ptr_Function_int Function 107OpStore %glob_0 %int_1 108%53 = OpLoad %int %glob_0 109%54 = OpIEqual %bool %53 %int_1 110OpReturnValue %54 111OpFunctionEnd 112%main = OpFunction %v4float None %55 113%56 = OpFunctionParameter %_ptr_Function_v2float 114%57 = OpLabel 115%_0_var = OpVariable %_ptr_Function_bool Function 116%77 = OpVariable %_ptr_Function_v4float Function 117OpStore %glob %int_2 118OpStore %_0_var %true 119%60 = OpLoad %bool %_0_var 120OpSelectionMerge %62 None 121OpBranchConditional %60 %61 %62 122%61 = OpLabel 123%63 = OpFunctionCall %bool %block_variable_hides_global_variable_b 124OpBranch %62 125%62 = OpLabel 126%64 = OpPhi %bool %false %57 %63 %61 127OpSelectionMerge %66 None 128OpBranchConditional %64 %65 %66 129%65 = OpLabel 130%67 = OpFunctionCall %bool %local_variable_hides_struct_b 131OpBranch %66 132%66 = OpLabel 133%68 = OpPhi %bool %false %62 %67 %65 134OpSelectionMerge %70 None 135OpBranchConditional %68 %69 %70 136%69 = OpLabel 137%71 = OpFunctionCall %bool %local_struct_variable_hides_struct_type_b 138OpBranch %70 139%70 = OpLabel 140%72 = OpPhi %bool %false %66 %71 %69 141OpSelectionMerge %74 None 142OpBranchConditional %72 %73 %74 143%73 = OpLabel 144%75 = OpFunctionCall %bool %local_variable_hides_global_variable_b 145OpBranch %74 146%74 = OpLabel 147%76 = OpPhi %bool %false %70 %75 %73 148OpSelectionMerge %81 None 149OpBranchConditional %76 %79 %80 150%79 = OpLabel 151%82 = OpAccessChain %_ptr_Uniform_v4float %17 %int_0 152%84 = OpLoad %v4float %82 153OpStore %77 %84 154OpBranch %81 155%80 = OpLabel 156%85 = OpAccessChain %_ptr_Uniform_v4float %17 %int_1 157%86 = OpLoad %v4float %85 158OpStore %77 %86 159OpBranch %81 160%81 = OpLabel 161%87 = OpLoad %v4float %77 162OpReturnValue %87 163OpFunctionEnd 164