2 %1 = OpExtInstImport "GLSL.std.450"
3 OpMemoryModel Logical GLSL450
4 OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise
5 OpExecutionMode %_entrypoint_v OriginUpperLeft
6 OpName %sk_FragColor "sk_FragColor"
7 OpName %sk_Clockwise "sk_Clockwise"
8 OpName %_UniformBuffer "_UniformBuffer"
9 OpMemberName %_UniformBuffer 0 "testArray"
10 OpMemberName %_UniformBuffer 1 "colorGreen"
11 OpMemberName %_UniformBuffer 2 "colorRed"
12 OpName %_entrypoint_v "_entrypoint_v"
15 OpDecorate %sk_FragColor RelaxedPrecision
16 OpDecorate %sk_FragColor Location 0
17 OpDecorate %sk_FragColor Index 0
18 OpDecorate %sk_Clockwise BuiltIn FrontFacing
19 OpDecorate %_arr_float_int_5 ArrayStride 16
20 OpMemberDecorate %_UniformBuffer 0 Offset 0
21 OpMemberDecorate %_UniformBuffer 1 Offset 80
22 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
23 OpMemberDecorate %_UniformBuffer 2 Offset 96
24 OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision
25 OpDecorate %_UniformBuffer Block
26 OpDecorate %10 Binding 0
27 OpDecorate %10 DescriptorSet 0
28 OpDecorate %55 RelaxedPrecision
29 OpDecorate %59 RelaxedPrecision
30 %float = OpTypeFloat 32
31 %v4float = OpTypeVector %float 4
32 %_ptr_Output_v4float = OpTypePointer Output %v4float
33 %sk_FragColor = OpVariable %_ptr_Output_v4float Output
35 %_ptr_Input_bool = OpTypePointer Input %bool
36 %sk_Clockwise = OpVariable %_ptr_Input_bool Input
38 %int_5 = OpConstant %int 5
39 %_arr_float_int_5 = OpTypeArray %float %int_5
40 %_UniformBuffer = OpTypeStruct %_arr_float_int_5 %v4float %v4float
41 %_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
42 %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
44 %18 = OpTypeFunction %void
45 %float_0 = OpConstant %float 0
46 %v2float = OpTypeVector %float 2
47 %22 = OpConstantComposite %v2float %float_0 %float_0
48 %_ptr_Function_v2float = OpTypePointer Function %v2float
49 %26 = OpTypeFunction %v4float %_ptr_Function_v2float
50 %_ptr_Function_int = OpTypePointer Function %int
51 %int_0 = OpConstant %int 0
52 %_ptr_Uniform__arr_float_int_5 = OpTypePointer Uniform %_arr_float_int_5
53 %_ptr_Uniform_float = OpTypePointer Uniform %float
54 %int_1 = OpConstant %int 1
55 %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
56 %int_2 = OpConstant %int 2
57 %_entrypoint_v = OpFunction %void None %18
59 %23 = OpVariable %_ptr_Function_v2float Function
61 %25 = OpFunctionCall %v4float %main %23
62 OpStore %sk_FragColor %25
65 %main = OpFunction %v4float None %26
66 %27 = OpFunctionParameter %_ptr_Function_v2float
68 %index = OpVariable %_ptr_Function_int Function
72 OpLoopMerge %36 %35 None
75 %37 = OpLoad %int %index
76 %38 = OpSLessThan %bool %37 %int_5
77 OpBranchConditional %38 %34 %36
79 %39 = OpAccessChain %_ptr_Uniform__arr_float_int_5 %10 %int_0
80 %41 = OpLoad %int %index
81 %42 = OpAccessChain %_ptr_Uniform_float %39 %41
82 %44 = OpLoad %float %42
83 %45 = OpLoad %int %index
84 %47 = OpIAdd %int %45 %int_1
85 %48 = OpConvertSToF %float %47
86 %49 = OpFUnordNotEqual %bool %44 %48
87 OpSelectionMerge %51 None
88 OpBranchConditional %49 %50 %51
90 %52 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2
91 %55 = OpLoad %v4float %52
96 %56 = OpLoad %int %index
97 %57 = OpIAdd %int %56 %int_1
101 %58 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
102 %59 = OpLoad %v4float %58