1e5c31af7Sopenharmony_cigroup if "If Statements"
2e5c31af7Sopenharmony_ci
3e5c31af7Sopenharmony_ci	case single_statement
4e5c31af7Sopenharmony_ci		values
5e5c31af7Sopenharmony_ci		{
6e5c31af7Sopenharmony_ci			input float in0 = [ 0.0 | 1.0 | 2.0 ];
7e5c31af7Sopenharmony_ci			output float out0 = [ 0.0 | 1.0 | 1.0 ];
8e5c31af7Sopenharmony_ci		}
9e5c31af7Sopenharmony_ci
10e5c31af7Sopenharmony_ci		both ""
11e5c31af7Sopenharmony_ci			precision mediump float;
12e5c31af7Sopenharmony_ci			${DECLARATIONS}
13e5c31af7Sopenharmony_ci			void main()
14e5c31af7Sopenharmony_ci			{
15e5c31af7Sopenharmony_ci				out0 = 0.0;
16e5c31af7Sopenharmony_ci				if (in0 >= 1.0)
17e5c31af7Sopenharmony_ci					out0 = 1.0;
18e5c31af7Sopenharmony_ci				${OUTPUT}
19e5c31af7Sopenharmony_ci			}
20e5c31af7Sopenharmony_ci		""
21e5c31af7Sopenharmony_ci	end
22e5c31af7Sopenharmony_ci
23e5c31af7Sopenharmony_ci	case compound_statement
24e5c31af7Sopenharmony_ci		values
25e5c31af7Sopenharmony_ci		{
26e5c31af7Sopenharmony_ci			input float in0 = [ 0.0 | 1.0 | 2.0 ];
27e5c31af7Sopenharmony_ci			output float out0 = [ 0.0 | 1.0 | 1.0 ];
28e5c31af7Sopenharmony_ci			output float out1 = [ 1.0 | 0.0 | 0.0 ];
29e5c31af7Sopenharmony_ci		}
30e5c31af7Sopenharmony_ci
31e5c31af7Sopenharmony_ci		both ""
32e5c31af7Sopenharmony_ci			precision mediump float;
33e5c31af7Sopenharmony_ci			${DECLARATIONS}
34e5c31af7Sopenharmony_ci			void main()
35e5c31af7Sopenharmony_ci			{
36e5c31af7Sopenharmony_ci				out0 = 0.0;
37e5c31af7Sopenharmony_ci				out1 = 1.0;
38e5c31af7Sopenharmony_ci				if (in0 >= 1.0)
39e5c31af7Sopenharmony_ci				{
40e5c31af7Sopenharmony_ci					out0 = 1.0;
41e5c31af7Sopenharmony_ci					out1 = 0.0;
42e5c31af7Sopenharmony_ci				}
43e5c31af7Sopenharmony_ci				${OUTPUT}
44e5c31af7Sopenharmony_ci			}
45e5c31af7Sopenharmony_ci		""
46e5c31af7Sopenharmony_ci	end
47e5c31af7Sopenharmony_ci
48e5c31af7Sopenharmony_ci	case sequence_statements
49e5c31af7Sopenharmony_ci		values
50e5c31af7Sopenharmony_ci		{
51e5c31af7Sopenharmony_ci			input float in0 = [ 0.0 | 1.0 | 2.0 ];
52e5c31af7Sopenharmony_ci			output float out0 = [ 0.0 | 1.0 | 1.0 ];
53e5c31af7Sopenharmony_ci			output float out1 = [ 1.0 | 0.0 | 0.0 ];
54e5c31af7Sopenharmony_ci		}
55e5c31af7Sopenharmony_ci
56e5c31af7Sopenharmony_ci		both ""
57e5c31af7Sopenharmony_ci			precision mediump float;
58e5c31af7Sopenharmony_ci			${DECLARATIONS}
59e5c31af7Sopenharmony_ci			void main()
60e5c31af7Sopenharmony_ci			{
61e5c31af7Sopenharmony_ci				out0 = 0.0;
62e5c31af7Sopenharmony_ci				out1 = 1.0;
63e5c31af7Sopenharmony_ci				if (in0 >= 1.0)
64e5c31af7Sopenharmony_ci					out0 = 1.0, out1 = 0.0;
65e5c31af7Sopenharmony_ci				${OUTPUT}
66e5c31af7Sopenharmony_ci			}
67e5c31af7Sopenharmony_ci		""
68e5c31af7Sopenharmony_ci	end
69e5c31af7Sopenharmony_ci
70e5c31af7Sopenharmony_ci	case sequence_condition
71e5c31af7Sopenharmony_ci		values
72e5c31af7Sopenharmony_ci		{
73e5c31af7Sopenharmony_ci			input float in0 = [ 0.0 | 1.0 | 2.0 ];
74e5c31af7Sopenharmony_ci			output float out0 = [ 0.0 | 1.0 | 1.0 ];
75e5c31af7Sopenharmony_ci			output float out1 = [ 1.0 | 0.0 | 0.0 ];
76e5c31af7Sopenharmony_ci		}
77e5c31af7Sopenharmony_ci
78e5c31af7Sopenharmony_ci		both ""
79e5c31af7Sopenharmony_ci			precision mediump float;
80e5c31af7Sopenharmony_ci			${DECLARATIONS}
81e5c31af7Sopenharmony_ci			void main()
82e5c31af7Sopenharmony_ci			{
83e5c31af7Sopenharmony_ci				out0 = 0.0;
84e5c31af7Sopenharmony_ci				out1 = 1.0;
85e5c31af7Sopenharmony_ci				if (false, in0 >= 1.0)
86e5c31af7Sopenharmony_ci					out0 = 1.0, out1 = 0.0;
87e5c31af7Sopenharmony_ci				${OUTPUT}
88e5c31af7Sopenharmony_ci			}
89e5c31af7Sopenharmony_ci		""
90e5c31af7Sopenharmony_ci	end
91e5c31af7Sopenharmony_ci
92e5c31af7Sopenharmony_ci	case complex_condition
93e5c31af7Sopenharmony_ci		values
94e5c31af7Sopenharmony_ci		{
95e5c31af7Sopenharmony_ci			input float in0 = [ 0.0 | 1.0 | 2.0 ];
96e5c31af7Sopenharmony_ci			output float out0 = [ 0.0 | 1.0 | 1.0 ];
97e5c31af7Sopenharmony_ci			output float out1 = [ 1.0 | 0.0 | 0.0 ];
98e5c31af7Sopenharmony_ci		}
99e5c31af7Sopenharmony_ci
100e5c31af7Sopenharmony_ci		both ""
101e5c31af7Sopenharmony_ci			precision mediump float;
102e5c31af7Sopenharmony_ci			${DECLARATIONS}
103e5c31af7Sopenharmony_ci			void main()
104e5c31af7Sopenharmony_ci			{
105e5c31af7Sopenharmony_ci				out0 = 0.0;
106e5c31af7Sopenharmony_ci				out1 = 1.0;
107e5c31af7Sopenharmony_ci				if (false || (in0 >= 1.0) && (in0 - 2.0*in0 < 0.0))
108e5c31af7Sopenharmony_ci					out0 = 1.0, out1 = 0.0;
109e5c31af7Sopenharmony_ci				${OUTPUT}
110e5c31af7Sopenharmony_ci			}
111e5c31af7Sopenharmony_ci		""
112e5c31af7Sopenharmony_ci	end
113e5c31af7Sopenharmony_ci
114e5c31af7Sopenharmony_ci	case if_else
115e5c31af7Sopenharmony_ci		values
116e5c31af7Sopenharmony_ci		{
117e5c31af7Sopenharmony_ci			input float in0 = [ 0.0 | 1.0 | 2.0 ];
118e5c31af7Sopenharmony_ci			output float out0 = [ 0.0 | 1.0 | 1.0 ];
119e5c31af7Sopenharmony_ci		}
120e5c31af7Sopenharmony_ci
121e5c31af7Sopenharmony_ci		both ""
122e5c31af7Sopenharmony_ci			precision mediump float;
123e5c31af7Sopenharmony_ci			${DECLARATIONS}
124e5c31af7Sopenharmony_ci			void main()
125e5c31af7Sopenharmony_ci			{
126e5c31af7Sopenharmony_ci				if (in0 >= 1.0)
127e5c31af7Sopenharmony_ci					out0 = 1.0;
128e5c31af7Sopenharmony_ci				else
129e5c31af7Sopenharmony_ci					out0 = 0.0;
130e5c31af7Sopenharmony_ci				${OUTPUT}
131e5c31af7Sopenharmony_ci			}
132e5c31af7Sopenharmony_ci		""
133e5c31af7Sopenharmony_ci	end
134e5c31af7Sopenharmony_ci
135e5c31af7Sopenharmony_ci	case if_elseif
136e5c31af7Sopenharmony_ci		values
137e5c31af7Sopenharmony_ci		{
138e5c31af7Sopenharmony_ci			input float in0 = [ 0.0 | 1.0 | 2.0 ];
139e5c31af7Sopenharmony_ci			output float out0 = [ 0.0 | 1.0 | 2.0 ];
140e5c31af7Sopenharmony_ci		}
141e5c31af7Sopenharmony_ci
142e5c31af7Sopenharmony_ci		both ""
143e5c31af7Sopenharmony_ci			precision mediump float;
144e5c31af7Sopenharmony_ci			${DECLARATIONS}
145e5c31af7Sopenharmony_ci			void main()
146e5c31af7Sopenharmony_ci			{
147e5c31af7Sopenharmony_ci				out0 = 0.0;
148e5c31af7Sopenharmony_ci				if (in0 >= 2.0)
149e5c31af7Sopenharmony_ci					out0 = 2.0;
150e5c31af7Sopenharmony_ci				else if (in0 >= 1.0)
151e5c31af7Sopenharmony_ci					out0 = 1.0;
152e5c31af7Sopenharmony_ci				${OUTPUT}
153e5c31af7Sopenharmony_ci			}
154e5c31af7Sopenharmony_ci		""
155e5c31af7Sopenharmony_ci	end
156e5c31af7Sopenharmony_ci
157e5c31af7Sopenharmony_ci	case if_elseif_else
158e5c31af7Sopenharmony_ci		values
159e5c31af7Sopenharmony_ci		{
160e5c31af7Sopenharmony_ci			input float in0 = [ 0.0 | 1.0 | 2.0 ];
161e5c31af7Sopenharmony_ci			output float out0 = [ 0.0 | 1.0 | 2.0 ];
162e5c31af7Sopenharmony_ci		}
163e5c31af7Sopenharmony_ci
164e5c31af7Sopenharmony_ci		both ""
165e5c31af7Sopenharmony_ci			precision mediump float;
166e5c31af7Sopenharmony_ci			${DECLARATIONS}
167e5c31af7Sopenharmony_ci			void main()
168e5c31af7Sopenharmony_ci			{
169e5c31af7Sopenharmony_ci				if (in0 >= 2.0)
170e5c31af7Sopenharmony_ci					out0 = 2.0;
171e5c31af7Sopenharmony_ci				else if (in0 >= 1.0)
172e5c31af7Sopenharmony_ci					out0 = 1.0;
173e5c31af7Sopenharmony_ci				else
174e5c31af7Sopenharmony_ci					out0 = 0.0;
175e5c31af7Sopenharmony_ci				${OUTPUT}
176e5c31af7Sopenharmony_ci			}
177e5c31af7Sopenharmony_ci		""
178e5c31af7Sopenharmony_ci	end
179e5c31af7Sopenharmony_ci
180e5c31af7Sopenharmony_ci	case mixed_if_elseif_else
181e5c31af7Sopenharmony_ci		values
182e5c31af7Sopenharmony_ci		{
183e5c31af7Sopenharmony_ci			input float in0 = [ 0.0 | 1.0 | 2.0 ];
184e5c31af7Sopenharmony_ci			output float out0 = [ 0.0 | 1.0 | 2.0 ];
185e5c31af7Sopenharmony_ci		}
186e5c31af7Sopenharmony_ci
187e5c31af7Sopenharmony_ci		both ""
188e5c31af7Sopenharmony_ci			precision mediump float;
189e5c31af7Sopenharmony_ci			${DECLARATIONS}
190e5c31af7Sopenharmony_ci			void main()
191e5c31af7Sopenharmony_ci			{
192e5c31af7Sopenharmony_ci				if (in0 >= 2.0)
193e5c31af7Sopenharmony_ci				{
194e5c31af7Sopenharmony_ci					out0 = 2.0;
195e5c31af7Sopenharmony_ci				}
196e5c31af7Sopenharmony_ci				else if (in0 >= 1.0)
197e5c31af7Sopenharmony_ci					out0 = 2.0, out0 = 1.0;
198e5c31af7Sopenharmony_ci				else
199e5c31af7Sopenharmony_ci					out0 = 0.0;
200e5c31af7Sopenharmony_ci				${OUTPUT}
201e5c31af7Sopenharmony_ci			}
202e5c31af7Sopenharmony_ci		""
203e5c31af7Sopenharmony_ci	end
204e5c31af7Sopenharmony_ci
205e5c31af7Sopenharmony_ci	case constant_conditional_assignment_to_matrix
206e5c31af7Sopenharmony_ci		vertex ""
207e5c31af7Sopenharmony_ci                        // This variant doesn't provoke the crash seen in the versions below.
208e5c31af7Sopenharmony_ci			${VERTEX_DECLARATIONS}
209e5c31af7Sopenharmony_ci			varying mediump float FragVarying;
210e5c31af7Sopenharmony_ci			const float in0 = 0.0;
211e5c31af7Sopenharmony_ci			void main()
212e5c31af7Sopenharmony_ci			{
213e5c31af7Sopenharmony_ci				mat2 projectionMatrix = mat2(0.0, 0.0, 0.0, 0.0);
214e5c31af7Sopenharmony_ci				if (in0 == 1.0)
215e5c31af7Sopenharmony_ci				{
216e5c31af7Sopenharmony_ci					projectionMatrix[0][0] = 1.0;
217e5c31af7Sopenharmony_ci				}
218e5c31af7Sopenharmony_ci
219e5c31af7Sopenharmony_ci				FragVarying = 1.0;
220e5c31af7Sopenharmony_ci				gl_Position = dEQP_Position + vec4(projectionMatrix[1][0], 0.0, 0.0, 0.0);
221e5c31af7Sopenharmony_ci			}
222e5c31af7Sopenharmony_ci		""
223e5c31af7Sopenharmony_ci		fragment ""
224e5c31af7Sopenharmony_ci			precision mediump float;
225e5c31af7Sopenharmony_ci			varying float FragVarying;
226e5c31af7Sopenharmony_ci			void main()
227e5c31af7Sopenharmony_ci			{
228e5c31af7Sopenharmony_ci				gl_FragColor = vec4(FragVarying, 1.0, 1.0, 1.0);
229e5c31af7Sopenharmony_ci			}
230e5c31af7Sopenharmony_ci		""
231e5c31af7Sopenharmony_ci	end
232e5c31af7Sopenharmony_ci
233e5c31af7Sopenharmony_ci	case input_conditional_assignment_to_matrix
234e5c31af7Sopenharmony_ci		values
235e5c31af7Sopenharmony_ci		{
236e5c31af7Sopenharmony_ci			input float in0 = [ 0.0 ];
237e5c31af7Sopenharmony_ci		}
238e5c31af7Sopenharmony_ci		vertex ""
239e5c31af7Sopenharmony_ci			${VERTEX_DECLARATIONS}
240e5c31af7Sopenharmony_ci			varying mediump float FragVarying;  // Necessary to reproduce.
241e5c31af7Sopenharmony_ci			void main()
242e5c31af7Sopenharmony_ci			{
243e5c31af7Sopenharmony_ci				// Crashes with mat4 as well. Does not crash with vectors.
244e5c31af7Sopenharmony_ci				mat2 projectionMatrix = mat2(0.0, 0.0, 0.0, 0.0);
245e5c31af7Sopenharmony_ci				// Testing a non-constant variable is necessary.
246e5c31af7Sopenharmony_ci				if (in0 == 1.0)
247e5c31af7Sopenharmony_ci				{
248e5c31af7Sopenharmony_ci					// Using the matrix variable appears necessary.
249e5c31af7Sopenharmony_ci					projectionMatrix[0][0] = 1.0;
250e5c31af7Sopenharmony_ci				}
251e5c31af7Sopenharmony_ci
252e5c31af7Sopenharmony_ci				FragVarying = 1.0;
253e5c31af7Sopenharmony_ci				// Referencing the matrix is necessary though clearly the compiler
254e5c31af7Sopenharmony_ci				// doesn't realize the assignment is useless.
255e5c31af7Sopenharmony_ci				gl_Position = dEQP_Position + vec4(projectionMatrix[1][0], 0.0, 0.0, 0.0);
256e5c31af7Sopenharmony_ci			}
257e5c31af7Sopenharmony_ci		""
258e5c31af7Sopenharmony_ci		fragment ""
259e5c31af7Sopenharmony_ci			precision mediump float;
260e5c31af7Sopenharmony_ci			varying float FragVarying;
261e5c31af7Sopenharmony_ci			void main()
262e5c31af7Sopenharmony_ci			{
263e5c31af7Sopenharmony_ci				gl_FragColor = vec4(FragVarying, 1.0, 1.0, 1.0);
264e5c31af7Sopenharmony_ci			}
265e5c31af7Sopenharmony_ci		""
266e5c31af7Sopenharmony_ci	end
267e5c31af7Sopenharmony_ci
268e5c31af7Sopenharmony_ci	case uniform_conditional_assignment_to_matrix
269e5c31af7Sopenharmony_ci		values
270e5c31af7Sopenharmony_ci		{
271e5c31af7Sopenharmony_ci			uniform float uni0 = [ 0.0 ];
272e5c31af7Sopenharmony_ci		}
273e5c31af7Sopenharmony_ci		vertex ""
274e5c31af7Sopenharmony_ci			${VERTEX_DECLARATIONS}
275e5c31af7Sopenharmony_ci			varying mediump float FragVarying;  // Necessary to reproduce.
276e5c31af7Sopenharmony_ci			void main()
277e5c31af7Sopenharmony_ci			{
278e5c31af7Sopenharmony_ci				// Crashes with mat4 as well. Does not crash with vectors.
279e5c31af7Sopenharmony_ci				mat2 projectionMatrix = mat2(0.0, 0.0, 0.0, 0.0);
280e5c31af7Sopenharmony_ci				// Testing a non-constant variable is necessary.
281e5c31af7Sopenharmony_ci				if (uni0 == 1.0)
282e5c31af7Sopenharmony_ci				{
283e5c31af7Sopenharmony_ci					// Using the matrix variable appears necessary.
284e5c31af7Sopenharmony_ci					projectionMatrix[0][0] = 1.0;
285e5c31af7Sopenharmony_ci				}
286e5c31af7Sopenharmony_ci
287e5c31af7Sopenharmony_ci				FragVarying = 1.0;
288e5c31af7Sopenharmony_ci				// Referencing the matrix is necessary though clearly the compiler
289e5c31af7Sopenharmony_ci				// doesn't realize the assignment is useless.
290e5c31af7Sopenharmony_ci				gl_Position = dEQP_Position + vec4(projectionMatrix[1][0], 0.0, 0.0, 0.0);
291e5c31af7Sopenharmony_ci			}
292e5c31af7Sopenharmony_ci		""
293e5c31af7Sopenharmony_ci		fragment ""
294e5c31af7Sopenharmony_ci			precision mediump float;
295e5c31af7Sopenharmony_ci			varying float FragVarying;
296e5c31af7Sopenharmony_ci			void main()
297e5c31af7Sopenharmony_ci			{
298e5c31af7Sopenharmony_ci				gl_FragColor = vec4(FragVarying, 1.0, 1.0, 1.0);
299e5c31af7Sopenharmony_ci			}
300e5c31af7Sopenharmony_ci		""
301e5c31af7Sopenharmony_ci	end
302e5c31af7Sopenharmony_ci
303e5c31af7Sopenharmony_ciend # if
304e5c31af7Sopenharmony_ci
305e5c31af7Sopenharmony_cigroup invalid_if "Invalid If Conditionals"
306e5c31af7Sopenharmony_ci
307e5c31af7Sopenharmony_ci	case missing_parenthesis
308e5c31af7Sopenharmony_ci		expect compile_fail
309e5c31af7Sopenharmony_ci		both ""
310e5c31af7Sopenharmony_ci			precision mediump float;
311e5c31af7Sopenharmony_ci			void main()
312e5c31af7Sopenharmony_ci			{
313e5c31af7Sopenharmony_ci				if true
314e5c31af7Sopenharmony_ci					${POSITION_FRAG_COLOR} = vec4(1.0);
315e5c31af7Sopenharmony_ci			}
316e5c31af7Sopenharmony_ci		""
317e5c31af7Sopenharmony_ci	end
318e5c31af7Sopenharmony_ci
319e5c31af7Sopenharmony_ci	case unclosed_parenthesis
320e5c31af7Sopenharmony_ci		expect compile_fail
321e5c31af7Sopenharmony_ci		both ""
322e5c31af7Sopenharmony_ci			precision mediump float;
323e5c31af7Sopenharmony_ci			void main()
324e5c31af7Sopenharmony_ci			{
325e5c31af7Sopenharmony_ci				if (true
326e5c31af7Sopenharmony_ci					${POSITION_FRAG_COLOR} = vec4(1.0);
327e5c31af7Sopenharmony_ci			}
328e5c31af7Sopenharmony_ci		""
329e5c31af7Sopenharmony_ci	end
330e5c31af7Sopenharmony_ci
331e5c31af7Sopenharmony_ci	case int_condition
332e5c31af7Sopenharmony_ci		expect compile_fail
333e5c31af7Sopenharmony_ci		both ""
334e5c31af7Sopenharmony_ci			precision mediump float;
335e5c31af7Sopenharmony_ci			void main()
336e5c31af7Sopenharmony_ci			{
337e5c31af7Sopenharmony_ci				if (5)
338e5c31af7Sopenharmony_ci					${POSITION_FRAG_COLOR} = vec4(1.0);
339e5c31af7Sopenharmony_ci			}
340e5c31af7Sopenharmony_ci		""
341e5c31af7Sopenharmony_ci	end
342e5c31af7Sopenharmony_ci
343e5c31af7Sopenharmony_ci	case int_zero_condition
344e5c31af7Sopenharmony_ci		expect compile_fail
345e5c31af7Sopenharmony_ci		both ""
346e5c31af7Sopenharmony_ci			precision mediump float;
347e5c31af7Sopenharmony_ci			void main()
348e5c31af7Sopenharmony_ci			{
349e5c31af7Sopenharmony_ci				if (0)
350e5c31af7Sopenharmony_ci					${POSITION_FRAG_COLOR} = vec4(1.0);
351e5c31af7Sopenharmony_ci			}
352e5c31af7Sopenharmony_ci		""
353e5c31af7Sopenharmony_ci	end
354e5c31af7Sopenharmony_ci
355e5c31af7Sopenharmony_ci	case int_one_condition
356e5c31af7Sopenharmony_ci		expect compile_fail
357e5c31af7Sopenharmony_ci		both ""
358e5c31af7Sopenharmony_ci			precision mediump float;
359e5c31af7Sopenharmony_ci			void main()
360e5c31af7Sopenharmony_ci			{
361e5c31af7Sopenharmony_ci				if (1)
362e5c31af7Sopenharmony_ci					${POSITION_FRAG_COLOR} = vec4(1.0);
363e5c31af7Sopenharmony_ci			}
364e5c31af7Sopenharmony_ci		""
365e5c31af7Sopenharmony_ci	end
366e5c31af7Sopenharmony_ci
367e5c31af7Sopenharmony_ci	case int_uniform_condition
368e5c31af7Sopenharmony_ci		expect compile_fail
369e5c31af7Sopenharmony_ci
370e5c31af7Sopenharmony_ci		both ""
371e5c31af7Sopenharmony_ci			precision mediump float;
372e5c31af7Sopenharmony_ci			precision mediump int;
373e5c31af7Sopenharmony_ci			uniform int u0;
374e5c31af7Sopenharmony_ci			void main()
375e5c31af7Sopenharmony_ci			{
376e5c31af7Sopenharmony_ci				if (u0)
377e5c31af7Sopenharmony_ci					${POSITION_FRAG_COLOR} = vec4(1.0);
378e5c31af7Sopenharmony_ci			}
379e5c31af7Sopenharmony_ci		""
380e5c31af7Sopenharmony_ci	end
381e5c31af7Sopenharmony_ci
382e5c31af7Sopenharmony_ci	case float_condition
383e5c31af7Sopenharmony_ci		expect compile_fail
384e5c31af7Sopenharmony_ci		both ""
385e5c31af7Sopenharmony_ci			precision mediump float;
386e5c31af7Sopenharmony_ci			void main()
387e5c31af7Sopenharmony_ci			{
388e5c31af7Sopenharmony_ci				if (5.0)
389e5c31af7Sopenharmony_ci					${POSITION_FRAG_COLOR} = vec4(1.0);
390e5c31af7Sopenharmony_ci			}
391e5c31af7Sopenharmony_ci		""
392e5c31af7Sopenharmony_ci	end
393e5c31af7Sopenharmony_ci
394e5c31af7Sopenharmony_ci	case float_zero_condition
395e5c31af7Sopenharmony_ci		expect compile_fail
396e5c31af7Sopenharmony_ci		both ""
397e5c31af7Sopenharmony_ci			precision mediump float;
398e5c31af7Sopenharmony_ci			void main()
399e5c31af7Sopenharmony_ci			{
400e5c31af7Sopenharmony_ci				if (0.0)
401e5c31af7Sopenharmony_ci					${POSITION_FRAG_COLOR} = vec4(1.0);
402e5c31af7Sopenharmony_ci			}
403e5c31af7Sopenharmony_ci		""
404e5c31af7Sopenharmony_ci	end
405e5c31af7Sopenharmony_ci
406e5c31af7Sopenharmony_ci	case float_one_condition
407e5c31af7Sopenharmony_ci		expect compile_fail
408e5c31af7Sopenharmony_ci		both ""
409e5c31af7Sopenharmony_ci			precision mediump float;
410e5c31af7Sopenharmony_ci			void main()
411e5c31af7Sopenharmony_ci			{
412e5c31af7Sopenharmony_ci				if (1.0)
413e5c31af7Sopenharmony_ci					${POSITION_FRAG_COLOR} = vec4(1.0);
414e5c31af7Sopenharmony_ci			}
415e5c31af7Sopenharmony_ci		""
416e5c31af7Sopenharmony_ci	end
417e5c31af7Sopenharmony_ci
418e5c31af7Sopenharmony_ci	case sampler_condition
419e5c31af7Sopenharmony_ci		expect compile_fail
420e5c31af7Sopenharmony_ci		both ""
421e5c31af7Sopenharmony_ci			precision mediump float;
422e5c31af7Sopenharmony_ci			uniform sampler2D s0;
423e5c31af7Sopenharmony_ci			void main()
424e5c31af7Sopenharmony_ci			{
425e5c31af7Sopenharmony_ci				if (s0)
426e5c31af7Sopenharmony_ci					${POSITION_FRAG_COLOR} = vec4(1.0);
427e5c31af7Sopenharmony_ci			}
428e5c31af7Sopenharmony_ci		""
429e5c31af7Sopenharmony_ci	end
430e5c31af7Sopenharmony_ci
431e5c31af7Sopenharmony_ciend # invalid_if
432