1e5c31af7Sopenharmony_cicase float_input
2e5c31af7Sopenharmony_ci	values
3e5c31af7Sopenharmony_ci	{
4e5c31af7Sopenharmony_ci		input float in0		= [ 1.123 | 0.75 | -512.0 | -72.13 | 199.91 | -1.123 | -0.75 | 512.0 | -72.13 | -199.91 ];
5e5c31af7Sopenharmony_ci		output float out0	= [ 1.123 | 0.75 | -512.0 | -72.13 | 199.91 | -1.123 | -0.75 | 512.0 | -72.13 | -199.91 ];
6e5c31af7Sopenharmony_ci	}
7e5c31af7Sopenharmony_ci
8e5c31af7Sopenharmony_ci	both ""
9e5c31af7Sopenharmony_ci		precision highp float;
10e5c31af7Sopenharmony_ci		${DECLARATIONS}
11e5c31af7Sopenharmony_ci		void main()
12e5c31af7Sopenharmony_ci		{
13e5c31af7Sopenharmony_ci			out0 = in0;
14e5c31af7Sopenharmony_ci			${OUTPUT}
15e5c31af7Sopenharmony_ci		}
16e5c31af7Sopenharmony_ci	""
17e5c31af7Sopenharmony_ciend
18e5c31af7Sopenharmony_ci
19e5c31af7Sopenharmony_cicase float_uniform
20e5c31af7Sopenharmony_ci	values
21e5c31af7Sopenharmony_ci	{
22e5c31af7Sopenharmony_ci		uniform float uni0	= [ 1.123 | 0.75 | -512.0 | -72.13 | 199.91 ];
23e5c31af7Sopenharmony_ci		output float out0	= [ 1.123 | 0.75 | -512.0 | -72.13 | 199.91 ];
24e5c31af7Sopenharmony_ci	}
25e5c31af7Sopenharmony_ci
26e5c31af7Sopenharmony_ci	both ""
27e5c31af7Sopenharmony_ci		precision highp float;
28e5c31af7Sopenharmony_ci		${DECLARATIONS}
29e5c31af7Sopenharmony_ci		uniform float uni0;
30e5c31af7Sopenharmony_ci		void main()
31e5c31af7Sopenharmony_ci		{
32e5c31af7Sopenharmony_ci			out0 = uni0;
33e5c31af7Sopenharmony_ci			${OUTPUT}
34e5c31af7Sopenharmony_ci		}
35e5c31af7Sopenharmony_ci	""
36e5c31af7Sopenharmony_ciend
37e5c31af7Sopenharmony_ci
38e5c31af7Sopenharmony_cicase float_0
39e5c31af7Sopenharmony_ci	values { output float out0 = 1.123; }
40e5c31af7Sopenharmony_ci	both ""
41e5c31af7Sopenharmony_ci		precision highp float;
42e5c31af7Sopenharmony_ci		${DECLARATIONS}
43e5c31af7Sopenharmony_ci		void main()
44e5c31af7Sopenharmony_ci		{
45e5c31af7Sopenharmony_ci			out0 = +1.123;
46e5c31af7Sopenharmony_ci			${OUTPUT}
47e5c31af7Sopenharmony_ci		}
48e5c31af7Sopenharmony_ci	""
49e5c31af7Sopenharmony_ciend
50e5c31af7Sopenharmony_ci
51e5c31af7Sopenharmony_cicase float_1
52e5c31af7Sopenharmony_ci	values { output float out0 = -1.123; }
53e5c31af7Sopenharmony_ci	both ""
54e5c31af7Sopenharmony_ci		precision highp float;
55e5c31af7Sopenharmony_ci		${DECLARATIONS}
56e5c31af7Sopenharmony_ci		void main()
57e5c31af7Sopenharmony_ci		{
58e5c31af7Sopenharmony_ci			out0 = -1.123;
59e5c31af7Sopenharmony_ci			${OUTPUT}
60e5c31af7Sopenharmony_ci		}
61e5c31af7Sopenharmony_ci	""
62e5c31af7Sopenharmony_ciend
63e5c31af7Sopenharmony_ci
64e5c31af7Sopenharmony_cicase float_2
65e5c31af7Sopenharmony_ci	values { output float out0 = 123.0; }
66e5c31af7Sopenharmony_ci	both ""
67e5c31af7Sopenharmony_ci		precision highp float;
68e5c31af7Sopenharmony_ci		${DECLARATIONS}
69e5c31af7Sopenharmony_ci		void main()
70e5c31af7Sopenharmony_ci		{
71e5c31af7Sopenharmony_ci			out0 = 123.;
72e5c31af7Sopenharmony_ci			${OUTPUT}
73e5c31af7Sopenharmony_ci		}
74e5c31af7Sopenharmony_ci	""
75e5c31af7Sopenharmony_ciend
76e5c31af7Sopenharmony_ci
77e5c31af7Sopenharmony_cicase float_3
78e5c31af7Sopenharmony_ci	values { output float out0 = 0.123; }
79e5c31af7Sopenharmony_ci	both ""
80e5c31af7Sopenharmony_ci		precision highp float;
81e5c31af7Sopenharmony_ci		${DECLARATIONS}
82e5c31af7Sopenharmony_ci		void main()
83e5c31af7Sopenharmony_ci		{
84e5c31af7Sopenharmony_ci			out0 = .123;
85e5c31af7Sopenharmony_ci			${OUTPUT}
86e5c31af7Sopenharmony_ci		}
87e5c31af7Sopenharmony_ci	""
88e5c31af7Sopenharmony_ciend
89e5c31af7Sopenharmony_ci
90e5c31af7Sopenharmony_cicase float_4
91e5c31af7Sopenharmony_ci	values { output float out0 = 123.0; }
92e5c31af7Sopenharmony_ci	both ""
93e5c31af7Sopenharmony_ci		precision highp float;
94e5c31af7Sopenharmony_ci		${DECLARATIONS}
95e5c31af7Sopenharmony_ci		void main()
96e5c31af7Sopenharmony_ci		{
97e5c31af7Sopenharmony_ci			out0 = 1.23e+2;
98e5c31af7Sopenharmony_ci			${OUTPUT}
99e5c31af7Sopenharmony_ci		}
100e5c31af7Sopenharmony_ci	""
101e5c31af7Sopenharmony_ciend
102e5c31af7Sopenharmony_ci
103e5c31af7Sopenharmony_cicase float_5
104e5c31af7Sopenharmony_ci	values { output float out0 = -123.0; }
105e5c31af7Sopenharmony_ci	both ""
106e5c31af7Sopenharmony_ci		precision highp float;
107e5c31af7Sopenharmony_ci		${DECLARATIONS}
108e5c31af7Sopenharmony_ci		void main()
109e5c31af7Sopenharmony_ci		{
110e5c31af7Sopenharmony_ci			out0 = -1.23E+2;
111e5c31af7Sopenharmony_ci			${OUTPUT}
112e5c31af7Sopenharmony_ci		}
113e5c31af7Sopenharmony_ci	""
114e5c31af7Sopenharmony_ciend
115e5c31af7Sopenharmony_ci
116e5c31af7Sopenharmony_cicase float_6
117e5c31af7Sopenharmony_ci	values { output float out0 = -123.0; }
118e5c31af7Sopenharmony_ci	both ""
119e5c31af7Sopenharmony_ci		precision highp float;
120e5c31af7Sopenharmony_ci		${DECLARATIONS}
121e5c31af7Sopenharmony_ci		void main()
122e5c31af7Sopenharmony_ci		{
123e5c31af7Sopenharmony_ci			out0 = -1.23e2;
124e5c31af7Sopenharmony_ci			${OUTPUT}
125e5c31af7Sopenharmony_ci		}
126e5c31af7Sopenharmony_ci	""
127e5c31af7Sopenharmony_ciend
128e5c31af7Sopenharmony_ci
129e5c31af7Sopenharmony_cicase float_7
130e5c31af7Sopenharmony_ci	values { output float out0 = 0.123; }
131e5c31af7Sopenharmony_ci	both ""
132e5c31af7Sopenharmony_ci		precision highp float;
133e5c31af7Sopenharmony_ci		${DECLARATIONS}
134e5c31af7Sopenharmony_ci		void main()
135e5c31af7Sopenharmony_ci		{
136e5c31af7Sopenharmony_ci			out0 = 1.23e-1;
137e5c31af7Sopenharmony_ci			${OUTPUT}
138e5c31af7Sopenharmony_ci		}
139e5c31af7Sopenharmony_ci	""
140e5c31af7Sopenharmony_ciend
141e5c31af7Sopenharmony_ci
142e5c31af7Sopenharmony_cicase float_8
143e5c31af7Sopenharmony_ci	values { output float out0 = 1000.0; }
144e5c31af7Sopenharmony_ci	both ""
145e5c31af7Sopenharmony_ci		precision highp float;
146e5c31af7Sopenharmony_ci		${DECLARATIONS}
147e5c31af7Sopenharmony_ci		void main()
148e5c31af7Sopenharmony_ci		{
149e5c31af7Sopenharmony_ci			out0 = 1e3;
150e5c31af7Sopenharmony_ci			${OUTPUT}
151e5c31af7Sopenharmony_ci		}
152e5c31af7Sopenharmony_ci	""
153e5c31af7Sopenharmony_ciend
154e5c31af7Sopenharmony_ci
155e5c31af7Sopenharmony_cicase int_0
156e5c31af7Sopenharmony_ci	values { output int out0 = 123; }
157e5c31af7Sopenharmony_ci	both ""
158e5c31af7Sopenharmony_ci		precision highp float;
159e5c31af7Sopenharmony_ci		${DECLARATIONS}
160e5c31af7Sopenharmony_ci		void main()
161e5c31af7Sopenharmony_ci		{
162e5c31af7Sopenharmony_ci			out0 = 123;
163e5c31af7Sopenharmony_ci			${OUTPUT}
164e5c31af7Sopenharmony_ci		}
165e5c31af7Sopenharmony_ci	""
166e5c31af7Sopenharmony_ciend
167e5c31af7Sopenharmony_ci
168e5c31af7Sopenharmony_cicase int_1
169e5c31af7Sopenharmony_ci	values { output int out0 = -321; }
170e5c31af7Sopenharmony_ci	both ""
171e5c31af7Sopenharmony_ci		precision highp float;
172e5c31af7Sopenharmony_ci		${DECLARATIONS}
173e5c31af7Sopenharmony_ci		void main()
174e5c31af7Sopenharmony_ci		{
175e5c31af7Sopenharmony_ci			out0 = -321;
176e5c31af7Sopenharmony_ci			${OUTPUT}
177e5c31af7Sopenharmony_ci		}
178e5c31af7Sopenharmony_ci	""
179e5c31af7Sopenharmony_ciend
180e5c31af7Sopenharmony_ci
181e5c31af7Sopenharmony_cicase int_2
182e5c31af7Sopenharmony_ci	values { output int out0 = 123; }
183e5c31af7Sopenharmony_ci	both ""
184e5c31af7Sopenharmony_ci		precision highp float;
185e5c31af7Sopenharmony_ci		${DECLARATIONS}
186e5c31af7Sopenharmony_ci		void main()
187e5c31af7Sopenharmony_ci		{
188e5c31af7Sopenharmony_ci			out0 = 0x7B;
189e5c31af7Sopenharmony_ci			${OUTPUT}
190e5c31af7Sopenharmony_ci		}
191e5c31af7Sopenharmony_ci	""
192e5c31af7Sopenharmony_ciend
193e5c31af7Sopenharmony_ci
194e5c31af7Sopenharmony_cicase int_3
195e5c31af7Sopenharmony_ci	values { output int out0 = 123; }
196e5c31af7Sopenharmony_ci	both ""
197e5c31af7Sopenharmony_ci		precision highp float;
198e5c31af7Sopenharmony_ci		${DECLARATIONS}
199e5c31af7Sopenharmony_ci		void main()
200e5c31af7Sopenharmony_ci		{
201e5c31af7Sopenharmony_ci			out0 = 0X7b;
202e5c31af7Sopenharmony_ci			${OUTPUT}
203e5c31af7Sopenharmony_ci		}
204e5c31af7Sopenharmony_ci	""
205e5c31af7Sopenharmony_ciend
206e5c31af7Sopenharmony_ci
207e5c31af7Sopenharmony_cicase int_4
208e5c31af7Sopenharmony_ci	values { output int out0 = 123; }
209e5c31af7Sopenharmony_ci	both ""
210e5c31af7Sopenharmony_ci		precision highp float;
211e5c31af7Sopenharmony_ci		${DECLARATIONS}
212e5c31af7Sopenharmony_ci		void main()
213e5c31af7Sopenharmony_ci		{
214e5c31af7Sopenharmony_ci			out0 = 0173;
215e5c31af7Sopenharmony_ci			${OUTPUT}
216e5c31af7Sopenharmony_ci		}
217e5c31af7Sopenharmony_ci	""
218e5c31af7Sopenharmony_ciend
219e5c31af7Sopenharmony_ci
220e5c31af7Sopenharmony_cicase bool_0
221e5c31af7Sopenharmony_ci	values { output bool out0 = true; }
222e5c31af7Sopenharmony_ci	both ""
223e5c31af7Sopenharmony_ci		precision highp float;
224e5c31af7Sopenharmony_ci		${DECLARATIONS}
225e5c31af7Sopenharmony_ci		void main()
226e5c31af7Sopenharmony_ci		{
227e5c31af7Sopenharmony_ci			out0 = true;
228e5c31af7Sopenharmony_ci			${OUTPUT}
229e5c31af7Sopenharmony_ci		}
230e5c31af7Sopenharmony_ci	""
231e5c31af7Sopenharmony_ciend
232e5c31af7Sopenharmony_ci
233e5c31af7Sopenharmony_cicase bool_1
234e5c31af7Sopenharmony_ci	values { output bool out0 = false; }
235e5c31af7Sopenharmony_ci	both ""
236e5c31af7Sopenharmony_ci		precision highp float;
237e5c31af7Sopenharmony_ci		${DECLARATIONS}
238e5c31af7Sopenharmony_ci		void main()
239e5c31af7Sopenharmony_ci		{
240e5c31af7Sopenharmony_ci			out0 = false;
241e5c31af7Sopenharmony_ci			${OUTPUT}
242e5c31af7Sopenharmony_ci		}
243e5c31af7Sopenharmony_ci	""
244e5c31af7Sopenharmony_ciend
245e5c31af7Sopenharmony_ci
246e5c31af7Sopenharmony_cicase const_float_global
247e5c31af7Sopenharmony_ci	 values { output float out0 = 1000.0; }
248e5c31af7Sopenharmony_ci
249e5c31af7Sopenharmony_ci	 both ""
250e5c31af7Sopenharmony_ci		  precision mediump float;
251e5c31af7Sopenharmony_ci		  ${DECLARATIONS}
252e5c31af7Sopenharmony_ci		  const float theConstant = 1000.0;
253e5c31af7Sopenharmony_ci		  void main()
254e5c31af7Sopenharmony_ci		  {
255e5c31af7Sopenharmony_ci				out0 = theConstant;
256e5c31af7Sopenharmony_ci				${OUTPUT}
257e5c31af7Sopenharmony_ci		  }
258e5c31af7Sopenharmony_ci	 ""
259e5c31af7Sopenharmony_ciend
260e5c31af7Sopenharmony_ci
261e5c31af7Sopenharmony_cicase const_float_main
262e5c31af7Sopenharmony_ci	 values { output float out0 = -1000.0; }
263e5c31af7Sopenharmony_ci
264e5c31af7Sopenharmony_ci	 both ""
265e5c31af7Sopenharmony_ci		  precision mediump float;
266e5c31af7Sopenharmony_ci		  ${DECLARATIONS}
267e5c31af7Sopenharmony_ci		  void main()
268e5c31af7Sopenharmony_ci		  {
269e5c31af7Sopenharmony_ci			    const float theConstant = -1000.0;
270e5c31af7Sopenharmony_ci				out0 = theConstant;
271e5c31af7Sopenharmony_ci				${OUTPUT}
272e5c31af7Sopenharmony_ci		  }
273e5c31af7Sopenharmony_ci	 ""
274e5c31af7Sopenharmony_ciend
275e5c31af7Sopenharmony_ci
276e5c31af7Sopenharmony_cicase const_float_function
277e5c31af7Sopenharmony_ci	 values { output float out0 = -0.012; }
278e5c31af7Sopenharmony_ci
279e5c31af7Sopenharmony_ci	 both ""
280e5c31af7Sopenharmony_ci		  precision mediump float;
281e5c31af7Sopenharmony_ci		  ${DECLARATIONS}
282e5c31af7Sopenharmony_ci		  float func()
283e5c31af7Sopenharmony_ci		  {
284e5c31af7Sopenharmony_ci			    const float theConstant = -0.012;
285e5c31af7Sopenharmony_ci				return theConstant;
286e5c31af7Sopenharmony_ci		  }
287e5c31af7Sopenharmony_ci		  void main()
288e5c31af7Sopenharmony_ci		  {
289e5c31af7Sopenharmony_ci				out0 = func();
290e5c31af7Sopenharmony_ci				${OUTPUT}
291e5c31af7Sopenharmony_ci		  }
292e5c31af7Sopenharmony_ci	 ""
293e5c31af7Sopenharmony_ciend
294e5c31af7Sopenharmony_ci
295e5c31af7Sopenharmony_cicase const_float_scope
296e5c31af7Sopenharmony_ci	 values { output float out0 = 1.0; }
297e5c31af7Sopenharmony_ci
298e5c31af7Sopenharmony_ci	 both ""
299e5c31af7Sopenharmony_ci		  precision mediump float;
300e5c31af7Sopenharmony_ci		  ${DECLARATIONS}
301e5c31af7Sopenharmony_ci		  void main()
302e5c31af7Sopenharmony_ci		  {
303e5c31af7Sopenharmony_ci				{
304e5c31af7Sopenharmony_ci					 const float theConstant = 1.0;
305e5c31af7Sopenharmony_ci					 out0 = theConstant;
306e5c31af7Sopenharmony_ci			    }
307e5c31af7Sopenharmony_ci				${OUTPUT}
308e5c31af7Sopenharmony_ci		  }
309e5c31af7Sopenharmony_ci	 ""
310e5c31af7Sopenharmony_ciend
311e5c31af7Sopenharmony_ci
312e5c31af7Sopenharmony_cicase const_float_scope_shawdowing_1
313e5c31af7Sopenharmony_ci	 values { output float out0 = 1.0; }
314e5c31af7Sopenharmony_ci
315e5c31af7Sopenharmony_ci	 both ""
316e5c31af7Sopenharmony_ci		  precision mediump float;
317e5c31af7Sopenharmony_ci		  ${DECLARATIONS}
318e5c31af7Sopenharmony_ci		  void main()
319e5c31af7Sopenharmony_ci		  {
320e5c31af7Sopenharmony_ci			    const float theConstant = 100.0;
321e5c31af7Sopenharmony_ci				{
322e5c31af7Sopenharmony_ci					 const float theConstant = 1.0;
323e5c31af7Sopenharmony_ci					 out0 = theConstant;
324e5c31af7Sopenharmony_ci			    }
325e5c31af7Sopenharmony_ci				${OUTPUT}
326e5c31af7Sopenharmony_ci		  }
327e5c31af7Sopenharmony_ci	 ""
328e5c31af7Sopenharmony_ciend
329e5c31af7Sopenharmony_ci
330e5c31af7Sopenharmony_cicase const_float_scope_shawdowing_2
331e5c31af7Sopenharmony_ci	 values { output float out0 = 1.0; }
332e5c31af7Sopenharmony_ci
333e5c31af7Sopenharmony_ci	 both ""
334e5c31af7Sopenharmony_ci		  precision mediump float;
335e5c31af7Sopenharmony_ci	      ${DECLARATIONS}
336e5c31af7Sopenharmony_ci		  const float theConstant = 100.0;
337e5c31af7Sopenharmony_ci		  void main()
338e5c31af7Sopenharmony_ci		  {
339e5c31af7Sopenharmony_ci				{
340e5c31af7Sopenharmony_ci					 const float theConstant = 1.0;
341e5c31af7Sopenharmony_ci					 out0 = theConstant;
342e5c31af7Sopenharmony_ci			    }
343e5c31af7Sopenharmony_ci				${OUTPUT}
344e5c31af7Sopenharmony_ci		  }
345e5c31af7Sopenharmony_ci	 ""
346e5c31af7Sopenharmony_ciend
347e5c31af7Sopenharmony_ci
348e5c31af7Sopenharmony_cicase const_float_scope_shawdowing_3
349e5c31af7Sopenharmony_ci	 values { output float out0 = 1.0; }
350e5c31af7Sopenharmony_ci
351e5c31af7Sopenharmony_ci	 both ""
352e5c31af7Sopenharmony_ci		  precision mediump float;
353e5c31af7Sopenharmony_ci	      ${DECLARATIONS}
354e5c31af7Sopenharmony_ci		  const float theConstant = 100.0;
355e5c31af7Sopenharmony_ci		  void main()
356e5c31af7Sopenharmony_ci		  {
357e5c31af7Sopenharmony_ci			    const float theConstant = -100.0;
358e5c31af7Sopenharmony_ci				{
359e5c31af7Sopenharmony_ci					 const float theConstant = 1.0;
360e5c31af7Sopenharmony_ci					 out0 = theConstant;
361e5c31af7Sopenharmony_ci			    }
362e5c31af7Sopenharmony_ci				${OUTPUT}
363e5c31af7Sopenharmony_ci		  }
364e5c31af7Sopenharmony_ci	 ""
365e5c31af7Sopenharmony_ciend
366e5c31af7Sopenharmony_ci
367e5c31af7Sopenharmony_cicase const_float_scope_shawdowing_4
368e5c31af7Sopenharmony_ci	 values { output float out0 = 2.0; }
369e5c31af7Sopenharmony_ci
370e5c31af7Sopenharmony_ci	 both ""
371e5c31af7Sopenharmony_ci		  precision mediump float;
372e5c31af7Sopenharmony_ci	      ${DECLARATIONS}
373e5c31af7Sopenharmony_ci		  const float theConstant = 100.0;
374e5c31af7Sopenharmony_ci		  float func()
375e5c31af7Sopenharmony_ci		  {
376e5c31af7Sopenharmony_ci				const float theConstant = 2.0;
377e5c31af7Sopenharmony_ci				return theConstant;
378e5c31af7Sopenharmony_ci		  }
379e5c31af7Sopenharmony_ci		  void main()
380e5c31af7Sopenharmony_ci		  {
381e5c31af7Sopenharmony_ci			    const float theConstant = -100.0;
382e5c31af7Sopenharmony_ci				{
383e5c31af7Sopenharmony_ci					 const float theConstant = 1.0;
384e5c31af7Sopenharmony_ci					 out0 = func();
385e5c31af7Sopenharmony_ci			    }
386e5c31af7Sopenharmony_ci				${OUTPUT}
387e5c31af7Sopenharmony_ci		  }
388e5c31af7Sopenharmony_ci	 ""
389e5c31af7Sopenharmony_ciend
390e5c31af7Sopenharmony_ci
391e5c31af7Sopenharmony_cicase const_float_operations_with_const
392e5c31af7Sopenharmony_ci	 values { output float out0 = 21.0; }
393e5c31af7Sopenharmony_ci
394e5c31af7Sopenharmony_ci	 both ""
395e5c31af7Sopenharmony_ci		  precision mediump float;
396e5c31af7Sopenharmony_ci	      ${DECLARATIONS}
397e5c31af7Sopenharmony_ci		  const float theGlobalConstant = 10.0;
398e5c31af7Sopenharmony_ci		  float func()
399e5c31af7Sopenharmony_ci		  {
400e5c31af7Sopenharmony_ci				const float theConstant = 2.0;
401e5c31af7Sopenharmony_ci				return theConstant;
402e5c31af7Sopenharmony_ci		  }
403e5c31af7Sopenharmony_ci		  void main()
404e5c31af7Sopenharmony_ci		  {
405e5c31af7Sopenharmony_ci			    const float theConstant = -100.0;
406e5c31af7Sopenharmony_ci				{
407e5c31af7Sopenharmony_ci					 const float theConstant = 1.0;
408e5c31af7Sopenharmony_ci					 out0 = func() * theGlobalConstant + theConstant;
409e5c31af7Sopenharmony_ci			    }
410e5c31af7Sopenharmony_ci				${OUTPUT}
411e5c31af7Sopenharmony_ci		  }
412e5c31af7Sopenharmony_ci	 ""
413e5c31af7Sopenharmony_ciend
414e5c31af7Sopenharmony_ci
415e5c31af7Sopenharmony_cicase const_float_assignment_1
416e5c31af7Sopenharmony_ci	 values { output float out0 = 10.0; }
417e5c31af7Sopenharmony_ci
418e5c31af7Sopenharmony_ci	 both ""
419e5c31af7Sopenharmony_ci		  precision mediump float;
420e5c31af7Sopenharmony_ci	      ${DECLARATIONS}
421e5c31af7Sopenharmony_ci		  void main()
422e5c31af7Sopenharmony_ci		  {
423e5c31af7Sopenharmony_ci			    const float theConstant1 = 10.0;
424e5c31af7Sopenharmony_ci				const float theConstant2 = theConstant1;
425e5c31af7Sopenharmony_ci				out0 = theConstant2;
426e5c31af7Sopenharmony_ci				${OUTPUT}
427e5c31af7Sopenharmony_ci		  }
428e5c31af7Sopenharmony_ci	 ""
429e5c31af7Sopenharmony_ciend
430e5c31af7Sopenharmony_ci
431e5c31af7Sopenharmony_cicase const_float_assignment_2
432e5c31af7Sopenharmony_ci	 values { output float out0 = 10.0; }
433e5c31af7Sopenharmony_ci
434e5c31af7Sopenharmony_ci	 both ""
435e5c31af7Sopenharmony_ci		  precision mediump float;
436e5c31af7Sopenharmony_ci	      ${DECLARATIONS}
437e5c31af7Sopenharmony_ci		  void main()
438e5c31af7Sopenharmony_ci		  {
439e5c31af7Sopenharmony_ci			    const float theConstant1 = 10.0;
440e5c31af7Sopenharmony_ci				{
441e5c31af7Sopenharmony_ci					const float theConstant2 = theConstant1;
442e5c31af7Sopenharmony_ci					out0 = theConstant2;
443e5c31af7Sopenharmony_ci				}
444e5c31af7Sopenharmony_ci				${OUTPUT}
445e5c31af7Sopenharmony_ci		  }
446e5c31af7Sopenharmony_ci	 ""
447e5c31af7Sopenharmony_ciend
448e5c31af7Sopenharmony_ci
449e5c31af7Sopenharmony_cicase const_float_assignment_3
450e5c31af7Sopenharmony_ci	 values { output float out0 = 10.0; }
451e5c31af7Sopenharmony_ci
452e5c31af7Sopenharmony_ci	 both ""
453e5c31af7Sopenharmony_ci		  precision mediump float;
454e5c31af7Sopenharmony_ci	      ${DECLARATIONS}
455e5c31af7Sopenharmony_ci	      const float theConstant1 = 10.0;
456e5c31af7Sopenharmony_ci		  void main()
457e5c31af7Sopenharmony_ci		  {
458e5c31af7Sopenharmony_ci				const float theConstant2 = theConstant1;
459e5c31af7Sopenharmony_ci				out0 = theConstant2;
460e5c31af7Sopenharmony_ci				${OUTPUT}
461e5c31af7Sopenharmony_ci		  }
462e5c31af7Sopenharmony_ci	 ""
463e5c31af7Sopenharmony_ciend
464e5c31af7Sopenharmony_ci
465e5c31af7Sopenharmony_cicase const_float_assignment_4
466e5c31af7Sopenharmony_ci	 values { output float out0 = 10.0; }
467e5c31af7Sopenharmony_ci
468e5c31af7Sopenharmony_ci	 both ""
469e5c31af7Sopenharmony_ci		  precision mediump float;
470e5c31af7Sopenharmony_ci	      ${DECLARATIONS}
471e5c31af7Sopenharmony_ci	      const float theConstant1 = 10.0;
472e5c31af7Sopenharmony_ci		  float func()
473e5c31af7Sopenharmony_ci		  {
474e5c31af7Sopenharmony_ci				const float theConstant2 = theConstant1;
475e5c31af7Sopenharmony_ci				return theConstant2;
476e5c31af7Sopenharmony_ci		  }
477e5c31af7Sopenharmony_ci		  void main()
478e5c31af7Sopenharmony_ci		  {
479e5c31af7Sopenharmony_ci				out0 = func();
480e5c31af7Sopenharmony_ci				${OUTPUT}
481e5c31af7Sopenharmony_ci		  }
482e5c31af7Sopenharmony_ci	 ""
483e5c31af7Sopenharmony_ciend
484e5c31af7Sopenharmony_ci
485e5c31af7Sopenharmony_cicase const_float_assign_uniform
486e5c31af7Sopenharmony_ci	 expect compile_fail
487e5c31af7Sopenharmony_ci	 values { output float out0 = 10.0; }
488e5c31af7Sopenharmony_ci	 both ""
489e5c31af7Sopenharmony_ci		  precision mediump float;
490e5c31af7Sopenharmony_ci	      ${DECLARATIONS}
491e5c31af7Sopenharmony_ci		  uniform float theUniform;
492e5c31af7Sopenharmony_ci		  void main()
493e5c31af7Sopenharmony_ci		  {
494e5c31af7Sopenharmony_ci				const float theConstant = theUniform;
495e5c31af7Sopenharmony_ci				out0 = theConstant;
496e5c31af7Sopenharmony_ci				${OUTPUT}
497e5c31af7Sopenharmony_ci		  }
498e5c31af7Sopenharmony_ci	 ""
499e5c31af7Sopenharmony_ciend
500e5c31af7Sopenharmony_ci
501e5c31af7Sopenharmony_cicase const_float_assign_varying
502e5c31af7Sopenharmony_ci	 expect compile_fail
503e5c31af7Sopenharmony_ci	 values { output float out0 = 10.0; }
504e5c31af7Sopenharmony_ci	 vertex ""
505e5c31af7Sopenharmony_ci	      ${VERTEX_DECLARATIONS}
506e5c31af7Sopenharmony_ci		  varying float theVarying;
507e5c31af7Sopenharmony_ci		  void main()
508e5c31af7Sopenharmony_ci		  {
509e5c31af7Sopenharmony_ci				theVarying = 1.0;
510e5c31af7Sopenharmony_ci				gl_Position = vec(1.0);
511e5c31af7Sopenharmony_ci		  }
512e5c31af7Sopenharmony_ci	 ""
513e5c31af7Sopenharmony_ci	 fragment ""
514e5c31af7Sopenharmony_ci		  precision mediump float;
515e5c31af7Sopenharmony_ci	      ${FRAGMENT_DECLARATIONS}
516e5c31af7Sopenharmony_ci		  varying float theVarying;
517e5c31af7Sopenharmony_ci		  void main()
518e5c31af7Sopenharmony_ci		  {
519e5c31af7Sopenharmony_ci				const float theConstant = theVarying;
520e5c31af7Sopenharmony_ci				out0 = theConstant;
521e5c31af7Sopenharmony_ci				${FRAGMENT_OUTPUT}
522e5c31af7Sopenharmony_ci		  }
523e5c31af7Sopenharmony_ci	 ""
524e5c31af7Sopenharmony_ciend
525e5c31af7Sopenharmony_ci
526e5c31af7Sopenharmony_cicase const_float_function_gotcha
527e5c31af7Sopenharmony_ci	 desc "Function constant parameters are not really constants, so using them as constant expressions should fail."
528e5c31af7Sopenharmony_ci	 expect compile_fail
529e5c31af7Sopenharmony_ci	 values { output float out0 = 20.0; }
530e5c31af7Sopenharmony_ci	 both ""
531e5c31af7Sopenharmony_ci		  precision mediump float;
532e5c31af7Sopenharmony_ci	      ${DECLARATIONS}
533e5c31af7Sopenharmony_ci		  float func(const float gotcha)
534e5c31af7Sopenharmony_ci		  {
535e5c31af7Sopenharmony_ci				const float theConstant2 = gotcha;
536e5c31af7Sopenharmony_ci				return theConstant2*2.0;
537e5c31af7Sopenharmony_ci		  }
538e5c31af7Sopenharmony_ci		  void main()
539e5c31af7Sopenharmony_ci		  {
540e5c31af7Sopenharmony_ci			    const float theConstant = 10.0;
541e5c31af7Sopenharmony_ci				out0 = func(theConstant);
542e5c31af7Sopenharmony_ci				${OUTPUT}
543e5c31af7Sopenharmony_ci		  }
544e5c31af7Sopenharmony_ci	 ""
545e5c31af7Sopenharmony_ciend
546e5c31af7Sopenharmony_ci
547e5c31af7Sopenharmony_cicase const_float_from_int
548e5c31af7Sopenharmony_ci	 values { output float out0 = 10.0; }
549e5c31af7Sopenharmony_ci
550e5c31af7Sopenharmony_ci	 both ""
551e5c31af7Sopenharmony_ci		  precision mediump float;
552e5c31af7Sopenharmony_ci	      ${DECLARATIONS}
553e5c31af7Sopenharmony_ci	      const float theConstant = float(10);
554e5c31af7Sopenharmony_ci		  void main()
555e5c31af7Sopenharmony_ci		  {
556e5c31af7Sopenharmony_ci				out0 = theConstant;
557e5c31af7Sopenharmony_ci				${OUTPUT}
558e5c31af7Sopenharmony_ci		  }
559e5c31af7Sopenharmony_ci	 ""
560e5c31af7Sopenharmony_ciend
561e5c31af7Sopenharmony_ci
562e5c31af7Sopenharmony_cicase const_float_from_vec2
563e5c31af7Sopenharmony_ci	 values { output float out0 = 10.0; }
564e5c31af7Sopenharmony_ci
565e5c31af7Sopenharmony_ci	 both ""
566e5c31af7Sopenharmony_ci		  precision mediump float;
567e5c31af7Sopenharmony_ci	      ${DECLARATIONS}
568e5c31af7Sopenharmony_ci	      const float theConstant = vec2(1.0, 10.0).y;
569e5c31af7Sopenharmony_ci		  void main()
570e5c31af7Sopenharmony_ci		  {
571e5c31af7Sopenharmony_ci				out0 = theConstant;
572e5c31af7Sopenharmony_ci				${OUTPUT}
573e5c31af7Sopenharmony_ci		  }
574e5c31af7Sopenharmony_ci	 ""
575e5c31af7Sopenharmony_ciend
576e5c31af7Sopenharmony_ci
577e5c31af7Sopenharmony_cicase const_float_from_vec3
578e5c31af7Sopenharmony_ci	 values { output float out0 = 10.0; }
579e5c31af7Sopenharmony_ci
580e5c31af7Sopenharmony_ci	 both ""
581e5c31af7Sopenharmony_ci		  precision mediump float;
582e5c31af7Sopenharmony_ci	      ${DECLARATIONS}
583e5c31af7Sopenharmony_ci	      const float theConstant = vec3(1.0, 10.0, 20.0).y;
584e5c31af7Sopenharmony_ci		  void main()
585e5c31af7Sopenharmony_ci		  {
586e5c31af7Sopenharmony_ci				out0 = theConstant;
587e5c31af7Sopenharmony_ci				${OUTPUT}
588e5c31af7Sopenharmony_ci		  }
589e5c31af7Sopenharmony_ci	 ""
590e5c31af7Sopenharmony_ciend
591e5c31af7Sopenharmony_ci
592e5c31af7Sopenharmony_cicase const_float_from_vec4
593e5c31af7Sopenharmony_ci	 values { output float out0 = 10.0; }
594e5c31af7Sopenharmony_ci
595e5c31af7Sopenharmony_ci	 both ""
596e5c31af7Sopenharmony_ci		  precision mediump float;
597e5c31af7Sopenharmony_ci	      ${DECLARATIONS}
598e5c31af7Sopenharmony_ci	      const float theConstant = vec4(1.0, 10.0, 20.0, -10.0).y;
599e5c31af7Sopenharmony_ci		  void main()
600e5c31af7Sopenharmony_ci		  {
601e5c31af7Sopenharmony_ci				out0 = theConstant;
602e5c31af7Sopenharmony_ci				${OUTPUT}
603e5c31af7Sopenharmony_ci		  }
604e5c31af7Sopenharmony_ci	 ""
605e5c31af7Sopenharmony_ciend
606e5c31af7Sopenharmony_ci
607e5c31af7Sopenharmony_cicase const_float_assign_variable_1
608e5c31af7Sopenharmony_ci	 expect compile_fail
609e5c31af7Sopenharmony_ci	 values { output float out0 = 20.0; }
610e5c31af7Sopenharmony_ci	 both ""
611e5c31af7Sopenharmony_ci		  precision mediump float;
612e5c31af7Sopenharmony_ci	      ${DECLARATIONS}
613e5c31af7Sopenharmony_ci		  void main()
614e5c31af7Sopenharmony_ci		  {
615e5c31af7Sopenharmony_ci				float theVariable = 20.0;
616e5c31af7Sopenharmony_ci				const float theConstant = theVariable;
617e5c31af7Sopenharmony_ci				out0 = theConstant;
618e5c31af7Sopenharmony_ci				${OUTPUT}
619e5c31af7Sopenharmony_ci		  }
620e5c31af7Sopenharmony_ci	 ""
621e5c31af7Sopenharmony_ciend
622e5c31af7Sopenharmony_ci
623e5c31af7Sopenharmony_cicase const_float_assign_variable_2
624e5c31af7Sopenharmony_ci	 expect compile_fail
625e5c31af7Sopenharmony_ci	 values { output float out0 = 50.0; }
626e5c31af7Sopenharmony_ci	 both ""
627e5c31af7Sopenharmony_ci		  precision mediump float;
628e5c31af7Sopenharmony_ci	      ${DECLARATIONS}
629e5c31af7Sopenharmony_ci		  void main()
630e5c31af7Sopenharmony_ci		  {
631e5c31af7Sopenharmony_ci				float theVariable = 20.0;
632e5c31af7Sopenharmony_ci				theVariable += 30.0;
633e5c31af7Sopenharmony_ci				const float theConstant = theVariable;
634e5c31af7Sopenharmony_ci				out0 = theConstant;
635e5c31af7Sopenharmony_ci				${OUTPUT}
636e5c31af7Sopenharmony_ci		  }
637e5c31af7Sopenharmony_ci	 ""
638e5c31af7Sopenharmony_ciend
639e5c31af7Sopenharmony_ci
640e5c31af7Sopenharmony_cicase const_float_assign_user_func
641e5c31af7Sopenharmony_ci	 expect compile_fail
642e5c31af7Sopenharmony_ci	 values { output float out0 = 50.0; }
643e5c31af7Sopenharmony_ci	 both ""
644e5c31af7Sopenharmony_ci		  precision mediump float;
645e5c31af7Sopenharmony_ci	      ${DECLARATIONS}
646e5c31af7Sopenharmony_ci		  float func()
647e5c31af7Sopenharmony_ci		  {
648e5c31af7Sopenharmony_ci				return 50.0;
649e5c31af7Sopenharmony_ci		  }
650e5c31af7Sopenharmony_ci		  void main()
651e5c31af7Sopenharmony_ci		  {
652e5c31af7Sopenharmony_ci				const float theConstant = func();
653e5c31af7Sopenharmony_ci				out0 = theConstant;
654e5c31af7Sopenharmony_ci				${OUTPUT}
655e5c31af7Sopenharmony_ci		  }
656e5c31af7Sopenharmony_ci	 ""
657e5c31af7Sopenharmony_ciend
658