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