1               OpCapability Shader
2          %1 = OpExtInstImport "GLSL.std.450"
3               OpMemoryModel Logical GLSL450
4               OpEntryPoint Fragment %main "main" %_GLF_color
5               OpExecutionMode %main OriginUpperLeft
6               OpSource ESSL 320
7               OpName %main "main"
8               OpName %arr "arr"
9               OpName %buf1 "buf1"
10               OpMemberName %buf1 0 "_GLF_uniform_float_values"
11               OpName %_ ""
12               OpName %a "a"
13               OpName %buf0 "buf0"
14               OpMemberName %buf0 0 "_GLF_uniform_int_values"
15               OpName %__0 ""
16               OpName %_GLF_color "_GLF_color"
17               OpDecorate %_arr_float_uint_3_0 ArrayStride 16
18               OpMemberDecorate %buf1 0 Offset 0
19               OpDecorate %buf1 Block
20               OpDecorate %_ DescriptorSet 0
21               OpDecorate %_ Binding 1
22               OpDecorate %_arr_int_uint_3 ArrayStride 16
23               OpMemberDecorate %buf0 0 Offset 0
24               OpDecorate %buf0 Block
25               OpDecorate %__0 DescriptorSet 0
26               OpDecorate %__0 Binding 0
27               OpDecorate %_GLF_color Location 0
28       %void = OpTypeVoid
29         %13 = OpTypeFunction %void
30      %float = OpTypeFloat 32
31       %uint = OpTypeInt 32 0
32     %uint_3 = OpConstant %uint 3
33%_arr_float_uint_3 = OpTypeArray %float %uint_3
34%_ptr_Function__arr_float_uint_3 = OpTypePointer Function %_arr_float_uint_3
35%_arr_float_uint_3_0 = OpTypeArray %float %uint_3
36       %buf1 = OpTypeStruct %_arr_float_uint_3_0
37%_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
38          %_ = OpVariable %_ptr_Uniform_buf1 Uniform
39        %int = OpTypeInt 32 1
40      %int_0 = OpConstant %int 0
41      %int_1 = OpConstant %int 1
42%_ptr_Uniform_float = OpTypePointer Uniform %float
43      %int_2 = OpConstant %int 2
44%_ptr_Function_int = OpTypePointer Function %int
45%_arr_int_uint_3 = OpTypeArray %int %uint_3
46       %buf0 = OpTypeStruct %_arr_int_uint_3
47%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
48        %__0 = OpVariable %_ptr_Uniform_buf0 Uniform
49%_ptr_Uniform_int = OpTypePointer Uniform %int
50       %bool = OpTypeBool
51%_ptr_Function_float = OpTypePointer Function %float
52    %v4float = OpTypeVector %float 4
53%_ptr_Output_v4float = OpTypePointer Output %v4float
54 %_GLF_color = OpVariable %_ptr_Output_v4float Output
55       %main = OpFunction %void None %13
56         %32 = OpLabel
57        %arr = OpVariable %_ptr_Function__arr_float_uint_3 Function
58          %a = OpVariable %_ptr_Function_int Function
59         %33 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_1
60         %34 = OpLoad %float %33
61         %35 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0
62         %36 = OpLoad %float %35
63         %37 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_2
64         %38 = OpLoad %float %37
65         %39 = OpCompositeConstruct %_arr_float_uint_3 %34 %36 %38
66               OpStore %arr %39
67               OpStore %a %int_0
68               OpBranch %40
69         %40 = OpLabel
70               OpLoopMerge %41 %42 None
71               OpBranch %43
72         %43 = OpLabel
73         %44 = OpLoad %int %a
74         %45 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_1
75         %46 = OpLoad %int %45
76         %47 = OpSLessThanEqual %bool %44 %46
77               OpBranchConditional %47 %48 %41
78         %48 = OpLabel
79         %49 = OpLoad %int %a
80         %50 = OpIAdd %int %49 %int_1
81               OpStore %a %50
82         %51 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0
83         %52 = OpLoad %float %51
84         %53 = OpAccessChain %_ptr_Function_float %arr %49
85               OpStore %53 %52
86               OpBranch %42
87         %42 = OpLabel
88               OpBranch %40
89         %41 = OpLabel
90         %54 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_1
91         %55 = OpLoad %int %54
92         %56 = OpAccessChain %_ptr_Function_float %arr %55
93         %57 = OpLoad %float %56
94         %58 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0
95         %59 = OpLoad %float %58
96         %60 = OpFOrdEqual %bool %57 %59
97               OpSelectionMerge %61 None
98               OpBranchConditional %60 %62 %61
99         %62 = OpLabel
100         %63 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_2
101         %64 = OpLoad %int %63
102         %65 = OpAccessChain %_ptr_Function_float %arr %64
103         %66 = OpLoad %float %65
104         %67 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0
105         %68 = OpLoad %float %67
106         %69 = OpFOrdEqual %bool %66 %68
107               OpBranch %61
108         %61 = OpLabel
109         %70 = OpPhi %bool %60 %41 %69 %62
110               OpSelectionMerge %71 None
111               OpBranchConditional %70 %72 %71
112         %72 = OpLabel
113         %73 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_0
114         %74 = OpLoad %int %73
115         %75 = OpAccessChain %_ptr_Function_float %arr %74
116         %76 = OpLoad %float %75
117         %77 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_2
118         %78 = OpLoad %float %77
119         %79 = OpFOrdEqual %bool %76 %78
120               OpBranch %71
121         %71 = OpLabel
122         %80 = OpPhi %bool %70 %61 %79 %72
123               OpSelectionMerge %81 None
124               OpBranchConditional %80 %82 %83
125         %82 = OpLabel
126         %84 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_1
127         %85 = OpLoad %int %84
128         %86 = OpAccessChain %_ptr_Function_float %arr %85
129         %87 = OpLoad %float %86
130         %88 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_1
131         %89 = OpLoad %float %88
132         %90 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_1
133         %91 = OpLoad %float %90
134         %92 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0
135         %93 = OpLoad %float %92
136         %94 = OpCompositeConstruct %v4float %87 %89 %91 %93
137               OpStore %_GLF_color %94
138               OpBranch %81
139         %83 = OpLabel
140         %95 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_1
141         %96 = OpLoad %float %95
142         %97 = OpCompositeConstruct %v4float %96 %96 %96 %96
143               OpStore %_GLF_color %97
144               OpBranch %81
145         %81 = OpLabel
146               OpReturn
147               OpFunctionEnd
148