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