1; SPIR-V
2; Version: 1.0
3; Generator: Khronos Glslang Reference Front End; 6
4; Bound: 111
5; Schema: 0
6               OpCapability Shader
7          %1 = OpExtInstImport "GLSL.std.450"
8               OpMemoryModel Logical GLSL450
9               OpEntryPoint Fragment %main "main" %FragColor %index
10               OpExecutionMode %main OriginUpperLeft
11               OpSource ESSL 310
12               OpName %main "main"
13               OpName %FragColor "FragColor"
14               OpName %index "index"
15               OpName %indexable "indexable"
16               OpName %indexable_0 "indexable"
17               OpName %indexable_1 "indexable"
18               OpName %foo "foo"
19               OpName %foobar "foobar"
20               OpName %baz "baz"
21               OpDecorate %FragColor RelaxedPrecision
22               OpDecorate %FragColor Location 0
23               OpDecorate %index RelaxedPrecision
24               OpDecorate %index Flat
25               OpDecorate %index Location 0
26               OpDecorate %20 RelaxedPrecision
27               OpDecorate %25 RelaxedPrecision
28               OpDecorate %26 RelaxedPrecision
29               OpDecorate %32 RelaxedPrecision
30               OpDecorate %34 RelaxedPrecision
31               OpDecorate %37 RelaxedPrecision
32               OpDecorate %38 RelaxedPrecision
33               OpDecorate %39 RelaxedPrecision
34               OpDecorate %41 RelaxedPrecision
35               OpDecorate %42 RelaxedPrecision
36               OpDecorate %45 RelaxedPrecision
37               OpDecorate %46 RelaxedPrecision
38               OpDecorate %47 RelaxedPrecision
39               OpDecorate %foo RelaxedPrecision
40               OpDecorate %61 RelaxedPrecision
41               OpDecorate %66 RelaxedPrecision
42               OpDecorate %68 RelaxedPrecision
43               OpDecorate %71 RelaxedPrecision
44               OpDecorate %72 RelaxedPrecision
45               OpDecorate %73 RelaxedPrecision
46               OpDecorate %75 RelaxedPrecision
47               OpDecorate %76 RelaxedPrecision
48               OpDecorate %79 RelaxedPrecision
49               OpDecorate %80 RelaxedPrecision
50               OpDecorate %81 RelaxedPrecision
51               OpDecorate %foobar RelaxedPrecision
52               OpDecorate %83 RelaxedPrecision
53               OpDecorate %90 RelaxedPrecision
54               OpDecorate %91 RelaxedPrecision
55               OpDecorate %93 RelaxedPrecision
56               OpDecorate %94 RelaxedPrecision
57               OpDecorate %95 RelaxedPrecision
58               OpDecorate %baz RelaxedPrecision
59               OpDecorate %105 RelaxedPrecision
60               OpDecorate %106 RelaxedPrecision
61               OpDecorate %108 RelaxedPrecision
62               OpDecorate %109 RelaxedPrecision
63               OpDecorate %110 RelaxedPrecision
64               OpDecorate %16 RelaxedPrecision
65       %void = OpTypeVoid
66          %3 = OpTypeFunction %void
67      %float = OpTypeFloat 32
68%_ptr_Output_float = OpTypePointer Output %float
69  %FragColor = OpVariable %_ptr_Output_float Output
70       %uint = OpTypeInt 32 0
71    %uint_16 = OpConstant %uint 16
72%_arr_float_uint_16 = OpTypeArray %float %uint_16
73    %float_1 = OpConstant %float 1
74    %float_2 = OpConstant %float 2
75    %float_3 = OpConstant %float 3
76    %float_4 = OpConstant %float 4
77         %16 = OpConstantComposite %_arr_float_uint_16 %float_1 %float_2 %float_3 %float_4 %float_1 %float_2 %float_3 %float_4 %float_1 %float_2 %float_3 %float_4 %float_1 %float_2 %float_3 %float_4
78        %int = OpTypeInt 32 1
79%_ptr_Input_int = OpTypePointer Input %int
80      %index = OpVariable %_ptr_Input_int Input
81%_ptr_Function__arr_float_uint_16 = OpTypePointer Function %_arr_float_uint_16
82%_ptr_Function_float = OpTypePointer Function %float
83     %int_10 = OpConstant %int 10
84       %bool = OpTypeBool
85      %int_1 = OpConstant %int 1
86    %v4float = OpTypeVector %float 4
87     %uint_4 = OpConstant %uint 4
88%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4
89%_ptr_Function__arr_v4float_uint_4 = OpTypePointer Function %_arr_v4float_uint_4
90    %float_0 = OpConstant %float 0
91         %54 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
92         %55 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
93    %float_8 = OpConstant %float 8
94         %57 = OpConstantComposite %v4float %float_8 %float_8 %float_8 %float_8
95    %float_5 = OpConstant %float 5
96         %59 = OpConstantComposite %v4float %float_5 %float_5 %float_5 %float_5
97         %60 = OpConstantComposite %_arr_v4float_uint_4 %54 %55 %57 %59
98     %int_30 = OpConstant %int 30
99      %int_3 = OpConstant %int 3
100     %uint_1 = OpConstant %uint 1
101     %uint_0 = OpConstant %uint 0
102   %float_20 = OpConstant %float 20
103     %uint_2 = OpConstant %uint 2
104         %97 = OpConstantComposite %v4float %float_20 %float_20 %float_20 %float_20
105   %float_30 = OpConstant %float 30
106         %99 = OpConstantComposite %v4float %float_30 %float_30 %float_30 %float_30
107   %float_50 = OpConstant %float 50
108        %101 = OpConstantComposite %v4float %float_50 %float_50 %float_50 %float_50
109   %float_60 = OpConstant %float 60
110        %103 = OpConstantComposite %v4float %float_60 %float_60 %float_60 %float_60
111        %104 = OpConstantComposite %_arr_v4float_uint_4 %97 %99 %101 %103
112       %main = OpFunction %void None %3
113          %5 = OpLabel
114  %indexable = OpVariable %_ptr_Function__arr_float_uint_16 Function %16
115%indexable_0 = OpVariable %_ptr_Function__arr_float_uint_16 Function %16
116%indexable_1 = OpVariable %_ptr_Function__arr_float_uint_16 Function %16
117        %foo = OpVariable %_ptr_Function__arr_v4float_uint_4 Function %60
118     %foobar = OpVariable %_ptr_Function__arr_v4float_uint_4 Function %60
119        %baz = OpVariable %_ptr_Function__arr_v4float_uint_4 Function %60
120         %20 = OpLoad %int %index
121         %24 = OpAccessChain %_ptr_Function_float %indexable %20
122         %25 = OpLoad %float %24
123               OpStore %FragColor %25
124         %26 = OpLoad %int %index
125         %29 = OpSLessThan %bool %26 %int_10
126               OpSelectionMerge %31 None
127               OpBranchConditional %29 %30 %40
128         %30 = OpLabel
129         %32 = OpLoad %int %index
130         %34 = OpBitwiseXor %int %32 %int_1
131         %36 = OpAccessChain %_ptr_Function_float %indexable_0 %34
132         %37 = OpLoad %float %36
133         %38 = OpLoad %float %FragColor
134         %39 = OpFAdd %float %38 %37
135               OpStore %FragColor %39
136               OpBranch %31
137         %40 = OpLabel
138         %41 = OpLoad %int %index
139         %42 = OpBitwiseAnd %int %41 %int_1
140         %44 = OpAccessChain %_ptr_Function_float %indexable_1 %42
141         %45 = OpLoad %float %44
142         %46 = OpLoad %float %FragColor
143         %47 = OpFAdd %float %46 %45
144               OpStore %FragColor %47
145               OpBranch %31
146         %31 = OpLabel
147         %61 = OpLoad %int %index
148         %63 = OpSGreaterThan %bool %61 %int_30
149               OpSelectionMerge %65 None
150               OpBranchConditional %63 %64 %74
151         %64 = OpLabel
152         %66 = OpLoad %int %index
153         %68 = OpBitwiseAnd %int %66 %int_3
154         %70 = OpAccessChain %_ptr_Function_float %foo %68 %uint_1
155         %71 = OpLoad %float %70
156         %72 = OpLoad %float %FragColor
157         %73 = OpFAdd %float %72 %71
158               OpStore %FragColor %73
159               OpBranch %65
160         %74 = OpLabel
161         %75 = OpLoad %int %index
162         %76 = OpBitwiseAnd %int %75 %int_1
163         %78 = OpAccessChain %_ptr_Function_float %foo %76 %uint_0
164         %79 = OpLoad %float %78
165         %80 = OpLoad %float %FragColor
166         %81 = OpFAdd %float %80 %79
167               OpStore %FragColor %81
168               OpBranch %65
169         %65 = OpLabel
170         %83 = OpLoad %int %index
171         %84 = OpSGreaterThan %bool %83 %int_30
172               OpSelectionMerge %86 None
173               OpBranchConditional %84 %85 %86
174         %85 = OpLabel
175         %89 = OpAccessChain %_ptr_Function_float %foobar %int_1 %uint_2
176               OpStore %89 %float_20
177               OpBranch %86
178         %86 = OpLabel
179         %90 = OpLoad %int %index
180         %91 = OpBitwiseAnd %int %90 %int_3
181         %92 = OpAccessChain %_ptr_Function_float %foobar %91 %uint_2
182         %93 = OpLoad %float %92
183         %94 = OpLoad %float %FragColor
184         %95 = OpFAdd %float %94 %93
185               OpStore %FragColor %95
186               OpStore %baz %104
187        %105 = OpLoad %int %index
188        %106 = OpBitwiseAnd %int %105 %int_3
189        %107 = OpAccessChain %_ptr_Function_float %baz %106 %uint_2
190        %108 = OpLoad %float %107
191        %109 = OpLoad %float %FragColor
192        %110 = OpFAdd %float %109 %108
193               OpStore %FragColor %110
194               OpReturn
195               OpFunctionEnd
196