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