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