1               OpCapability Shader
2          %1 = OpExtInstImport "GLSL.std.450"
3               OpMemoryModel Logical GLSL450
4               OpEntryPoint Fragment %main "main" %gl_FragCoord %_GLF_color
5               OpExecutionMode %main OriginUpperLeft
6               OpSource ESSL 320
7               OpName %main "main"
8               OpName %c "c"
9               OpName %buf0 "buf0"
10               OpMemberName %buf0 0 "resolution"
11               OpName %_ ""
12               OpName %gl_FragCoord "gl_FragCoord"
13               OpName %_GLF_color "_GLF_color"
14               OpMemberDecorate %buf0 0 Offset 0
15               OpDecorate %buf0 Block
16               OpDecorate %_ DescriptorSet 0
17               OpDecorate %_ Binding 0
18               OpDecorate %gl_FragCoord BuiltIn FragCoord
19               OpDecorate %_GLF_color Location 0
20       %void = OpTypeVoid
21          %9 = OpTypeFunction %void
22      %float = OpTypeFloat 32
23%_ptr_Function_float = OpTypePointer Function %float
24 %float_n0_5 = OpConstant %float -0.5
25        %int = OpTypeInt 32 1
26      %int_1 = OpConstant %int 1
27    %int_800 = OpConstant %int 800
28       %bool = OpTypeBool
29     %int_32 = OpConstant %int 32
30      %int_0 = OpConstant %int 0
31%float_0_400000006 = OpConstant %float 0.400000006
32%float_0_00999999978 = OpConstant %float 0.00999999978
33  %float_100 = OpConstant %float 100
34    %v3float = OpTypeVector %float 3
35%_ptr_Function_v3float = OpTypePointer Function %v3float
36    %float_7 = OpConstant %float 7
37    %float_8 = OpConstant %float 8
38    %float_9 = OpConstant %float 9
39         %27 = OpConstantComposite %v3float %float_7 %float_8 %float_9
40    %v2float = OpTypeVector %float 2
41       %buf0 = OpTypeStruct %v2float
42%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
43          %_ = OpVariable %_ptr_Uniform_buf0 Uniform
44       %uint = OpTypeInt 32 0
45     %uint_0 = OpConstant %uint 0
46%_ptr_Uniform_float = OpTypePointer Uniform %float
47    %v4float = OpTypeVector %float 4
48%_ptr_Input_v4float = OpTypePointer Input %v4float
49%gl_FragCoord = OpVariable %_ptr_Input_v4float Input
50%_ptr_Input_float = OpTypePointer Input %float
51     %uint_1 = OpConstant %uint 1
52     %uint_2 = OpConstant %uint 2
53      %int_3 = OpConstant %int 3
54    %float_1 = OpConstant %float 1
55%_ptr_Output_v4float = OpTypePointer Output %v4float
56 %_GLF_color = OpVariable %_ptr_Output_v4float Output
57      %false = OpConstantFalse %bool
58       %true = OpConstantTrue %bool
59         %43 = OpUndef %float
60%float_0_125 = OpConstant %float 0.125
61       %main = OpFunction %void None %9
62         %45 = OpLabel
63          %c = OpVariable %_ptr_Function_v3float Function
64               OpStore %c %27
65         %46 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_0
66         %47 = OpLoad %float %46
67         %48 = OpFMul %float %47 %float_0_125
68         %49 = OpExtInst %float %1 Round %48
69         %50 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0
70         %51 = OpLoad %float %50
71               OpSelectionMerge %52 None
72               OpSwitch %uint_0 %53
73         %53 = OpLabel
74               OpBranch %54
75         %54 = OpLabel
76         %55 = OpPhi %float %float_n0_5 %53 %56 %57
77         %58 = OpPhi %int %int_1 %53 %59 %57
78         %60 = OpSLessThan %bool %58 %int_800
79               OpLoopMerge %61 %57 None
80               OpBranchConditional %60 %62 %61
81         %62 = OpLabel
82         %63 = OpSMod %int %58 %int_32
83         %64 = OpIEqual %bool %63 %int_0
84               OpSelectionMerge %65 None
85               OpBranchConditional %64 %66 %67
86         %66 = OpLabel
87         %68 = OpFAdd %float %55 %float_0_400000006
88               OpBranch %65
89         %67 = OpLabel
90         %69 = OpConvertSToF %float %58
91         %70 = OpExtInst %float %1 Round %49
92         %71 = OpFMod %float %69 %70
93         %72 = OpFOrdLessThanEqual %bool %71 %float_0_00999999978
94               OpSelectionMerge %73 None
95               OpBranchConditional %72 %74 %73
96         %74 = OpLabel
97         %75 = OpFAdd %float %55 %float_100
98               OpBranch %73
99         %73 = OpLabel
100         %76 = OpPhi %float %55 %67 %75 %74
101               OpBranch %65
102         %65 = OpLabel
103         %56 = OpPhi %float %68 %66 %76 %73
104         %77 = OpConvertSToF %float %58
105         %78 = OpFOrdGreaterThanEqual %bool %77 %51
106               OpSelectionMerge %79 None
107               OpBranchConditional %78 %80 %79
108         %80 = OpLabel
109               OpBranch %61
110         %79 = OpLabel
111               OpBranch %57
112         %57 = OpLabel
113         %59 = OpIAdd %int %58 %int_1
114               OpBranch %54
115         %61 = OpLabel
116         %81 = OpPhi %float %43 %54 %56 %80
117         %82 = OpPhi %float %55 %54 %56 %80
118         %83 = OpPhi %bool %false %54 %true %80
119               OpSelectionMerge %84 None
120               OpBranchConditional %83 %52 %84
121         %84 = OpLabel
122               OpBranch %52
123         %52 = OpLabel
124         %85 = OpPhi %float %81 %61 %82 %84
125         %86 = OpAccessChain %_ptr_Function_float %c %uint_0
126               OpStore %86 %85
127         %87 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_1
128         %88 = OpLoad %float %87
129               OpSelectionMerge %89 None
130               OpSwitch %uint_0 %90
131         %90 = OpLabel
132               OpBranch %91
133         %91 = OpLabel
134         %92 = OpPhi %float %float_n0_5 %90 %93 %94
135         %95 = OpPhi %int %int_1 %90 %96 %94
136         %97 = OpSLessThan %bool %95 %int_800
137               OpLoopMerge %98 %94 None
138               OpBranchConditional %97 %99 %98
139         %99 = OpLabel
140        %100 = OpSMod %int %95 %int_32
141        %101 = OpIEqual %bool %100 %int_0
142               OpSelectionMerge %102 None
143               OpBranchConditional %101 %103 %104
144        %103 = OpLabel
145        %105 = OpFAdd %float %92 %float_0_400000006
146               OpBranch %102
147        %104 = OpLabel
148        %106 = OpConvertSToF %float %95
149        %107 = OpExtInst %float %1 Round %49
150        %108 = OpFMod %float %106 %107
151        %109 = OpFOrdLessThanEqual %bool %108 %float_0_00999999978
152               OpSelectionMerge %110 None
153               OpBranchConditional %109 %111 %110
154        %111 = OpLabel
155        %112 = OpFAdd %float %92 %float_100
156               OpBranch %110
157        %110 = OpLabel
158        %113 = OpPhi %float %92 %104 %112 %111
159               OpBranch %102
160        %102 = OpLabel
161         %93 = OpPhi %float %105 %103 %113 %110
162        %114 = OpConvertSToF %float %95
163        %115 = OpFOrdGreaterThanEqual %bool %114 %88
164               OpSelectionMerge %116 None
165               OpBranchConditional %115 %117 %116
166        %117 = OpLabel
167               OpBranch %98
168        %116 = OpLabel
169               OpBranch %94
170         %94 = OpLabel
171         %96 = OpIAdd %int %95 %int_1
172               OpBranch %91
173         %98 = OpLabel
174        %118 = OpPhi %float %43 %91 %93 %117
175        %119 = OpPhi %float %92 %91 %93 %117
176        %120 = OpPhi %bool %false %91 %true %117
177               OpSelectionMerge %121 None
178               OpBranchConditional %120 %89 %121
179        %121 = OpLabel
180               OpBranch %89
181         %89 = OpLabel
182        %122 = OpPhi %float %118 %98 %119 %121
183        %123 = OpAccessChain %_ptr_Function_float %c %uint_1
184               OpStore %123 %122
185        %124 = OpLoad %float %86
186        %125 = OpLoad %float %123
187        %126 = OpFAdd %float %124 %125
188        %127 = OpAccessChain %_ptr_Function_float %c %uint_2
189               OpStore %127 %126
190               OpBranch %128
191        %128 = OpLabel
192        %129 = OpPhi %int %int_0 %89 %130 %131
193        %132 = OpSLessThan %bool %129 %int_3
194               OpLoopMerge %133 %131 None
195               OpBranchConditional %132 %134 %133
196        %134 = OpLabel
197        %135 = OpAccessChain %_ptr_Function_float %c %129
198        %136 = OpLoad %float %135
199        %137 = OpFOrdGreaterThanEqual %bool %136 %float_1
200               OpSelectionMerge %138 None
201               OpBranchConditional %137 %139 %138
202        %139 = OpLabel
203        %140 = OpLoad %float %135
204        %141 = OpLoad %float %135
205        %142 = OpFMul %float %140 %141
206               OpStore %135 %142
207               OpBranch %138
208        %138 = OpLabel
209               OpBranch %131
210        %131 = OpLabel
211        %130 = OpIAdd %int %129 %int_1
212               OpBranch %128
213        %133 = OpLabel
214        %143 = OpLoad %v3float %c
215        %144 = OpExtInst %v3float %1 FAbs %143
216        %145 = OpExtInst %v3float %1 Normalize %144
217        %146 = OpCompositeExtract %float %145 0
218        %147 = OpCompositeExtract %float %145 1
219        %148 = OpCompositeExtract %float %145 2
220        %149 = OpCompositeConstruct %v4float %146 %147 %148 %float_1
221               OpStore %_GLF_color %149
222               OpReturn
223               OpFunctionEnd
224