1e5c31af7Sopenharmony_ci
2e5c31af7Sopenharmony_ci# Varying tests
3e5c31af7Sopenharmony_cigroup varying "Varying linkage"
4e5c31af7Sopenharmony_ci	group component "Component qualifier"
5e5c31af7Sopenharmony_ci		group vert_in "Vertex shader input"
6e5c31af7Sopenharmony_ci			group vec2 "vec2"
7e5c31af7Sopenharmony_ci				case as_float_float
8e5c31af7Sopenharmony_ci					version 440 core
9e5c31af7Sopenharmony_ci					desc "Read vertex input (vec2) as float float."
10e5c31af7Sopenharmony_ci					output_color vec2
11e5c31af7Sopenharmony_ci					values
12e5c31af7Sopenharmony_ci					{
13e5c31af7Sopenharmony_ci						input vec2 in0		= [ vec2(1.0, 11.0) | vec2(1.0, 9.0) | vec2(13.0, 7.0) | vec2(8.0, 3.0) ];
14e5c31af7Sopenharmony_ci						output vec2 out0	= [ vec2(2.0, 22.0) | vec2(2.0, 18.0) | vec2(26.0, 14.0) | vec2(16.0, 6.0) ];
15e5c31af7Sopenharmony_ci					}
16e5c31af7Sopenharmony_ci					vertex ""
17e5c31af7Sopenharmony_ci						#version 440 core
18e5c31af7Sopenharmony_ci						precision highp float;
19e5c31af7Sopenharmony_ci						precision highp int;
20e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
21e5c31af7Sopenharmony_ci						layout(location = 1, component = 0) in float in0_0;
22e5c31af7Sopenharmony_ci						layout(location = 1, component = 1) in float in0_1;
23e5c31af7Sopenharmony_ci						layout(location = 0) out vec2 var0;
24e5c31af7Sopenharmony_ci
25e5c31af7Sopenharmony_ci						void main()
26e5c31af7Sopenharmony_ci						{
27e5c31af7Sopenharmony_ci							vec2 in0 = vec2(in0_0, in0_1);
28e5c31af7Sopenharmony_ci							var0 = in0 + in0;
29e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
30e5c31af7Sopenharmony_ci						}
31e5c31af7Sopenharmony_ci					""
32e5c31af7Sopenharmony_ci					fragment ""
33e5c31af7Sopenharmony_ci						#version 440 core
34e5c31af7Sopenharmony_ci						precision highp float;
35e5c31af7Sopenharmony_ci						precision highp int;
36e5c31af7Sopenharmony_ci						layout(location = 0) in vec2 var0;
37e5c31af7Sopenharmony_ci						layout(location = 0) out vec2 dEQP_FragColor;
38e5c31af7Sopenharmony_ci
39e5c31af7Sopenharmony_ci						void main()
40e5c31af7Sopenharmony_ci						{
41e5c31af7Sopenharmony_ci							vec2 out0 = var0;
42e5c31af7Sopenharmony_ci							out0 /= vec2(255.0);
43e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
44e5c31af7Sopenharmony_ci						}
45e5c31af7Sopenharmony_ci					""
46e5c31af7Sopenharmony_ci				end
47e5c31af7Sopenharmony_ci				case as_float_float_unused
48e5c31af7Sopenharmony_ci					version 440 core
49e5c31af7Sopenharmony_ci					desc "Read vertex input (vec2) as float float. Read unused fourth component."
50e5c31af7Sopenharmony_ci					output_color vec2
51e5c31af7Sopenharmony_ci					values
52e5c31af7Sopenharmony_ci					{
53e5c31af7Sopenharmony_ci						input vec2 in0		= [ vec2(1.0, 11.0) | vec2(1.0, 9.0) | vec2(13.0, 7.0) | vec2(8.0, 3.0) ];
54e5c31af7Sopenharmony_ci						output vec2 out0	= [ vec2(2.0, 22.0) | vec2(2.0, 18.0) | vec2(26.0, 14.0) | vec2(16.0, 6.0) ];
55e5c31af7Sopenharmony_ci					}
56e5c31af7Sopenharmony_ci					vertex ""
57e5c31af7Sopenharmony_ci						#version 440 core
58e5c31af7Sopenharmony_ci						precision highp float;
59e5c31af7Sopenharmony_ci						precision highp int;
60e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
61e5c31af7Sopenharmony_ci						layout(location = 1, component = 0) in float in0_0;
62e5c31af7Sopenharmony_ci						layout(location = 1, component = 1) in float in0_1;
63e5c31af7Sopenharmony_ci						layout(location = 1, component = 3) in float in0_3;
64e5c31af7Sopenharmony_ci						layout(location = 0) out vec2 var0;
65e5c31af7Sopenharmony_ci
66e5c31af7Sopenharmony_ci						void main()
67e5c31af7Sopenharmony_ci						{
68e5c31af7Sopenharmony_ci							vec2 in0 = vec2(in0_0, in0_1);
69e5c31af7Sopenharmony_ci							var0 = in0_3 * in0 + in0;
70e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
71e5c31af7Sopenharmony_ci						}
72e5c31af7Sopenharmony_ci					""
73e5c31af7Sopenharmony_ci					fragment ""
74e5c31af7Sopenharmony_ci						#version 440 core
75e5c31af7Sopenharmony_ci						precision highp float;
76e5c31af7Sopenharmony_ci						precision highp int;
77e5c31af7Sopenharmony_ci						layout(location = 0) in vec2 var0;
78e5c31af7Sopenharmony_ci						layout(location = 0) out vec2 dEQP_FragColor;
79e5c31af7Sopenharmony_ci
80e5c31af7Sopenharmony_ci						void main()
81e5c31af7Sopenharmony_ci						{
82e5c31af7Sopenharmony_ci							vec2 out0 = var0;
83e5c31af7Sopenharmony_ci							out0 /= vec2(255.0);
84e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
85e5c31af7Sopenharmony_ci						}
86e5c31af7Sopenharmony_ci					""
87e5c31af7Sopenharmony_ci				end
88e5c31af7Sopenharmony_ci			end
89e5c31af7Sopenharmony_ci			group vec3 "vec3"
90e5c31af7Sopenharmony_ci				case as_float_float_float
91e5c31af7Sopenharmony_ci					version 440 core
92e5c31af7Sopenharmony_ci					desc "Read vertex input (vec3) as float float float."
93e5c31af7Sopenharmony_ci					output_color vec3
94e5c31af7Sopenharmony_ci					values
95e5c31af7Sopenharmony_ci					{
96e5c31af7Sopenharmony_ci						input vec3 in0		= [ vec3(6.0, 8.0, 7.0) | vec3(14.0, 10.0, 15.0) | vec3(9.0, 5.0, 4.0) | vec3(7.0, 3.0, 1.0) ];
97e5c31af7Sopenharmony_ci						output vec3 out0	= [ vec3(12.0, 16.0, 14.0) | vec3(28.0, 20.0, 30.0) | vec3(18.0, 10.0, 8.0) | vec3(14.0, 6.0, 2.0) ];
98e5c31af7Sopenharmony_ci					}
99e5c31af7Sopenharmony_ci					vertex ""
100e5c31af7Sopenharmony_ci						#version 440 core
101e5c31af7Sopenharmony_ci						precision highp float;
102e5c31af7Sopenharmony_ci						precision highp int;
103e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
104e5c31af7Sopenharmony_ci						layout(location = 1, component = 0) in float in0_0;
105e5c31af7Sopenharmony_ci						layout(location = 1, component = 1) in float in0_1;
106e5c31af7Sopenharmony_ci						layout(location = 1, component = 2) in float in0_2;
107e5c31af7Sopenharmony_ci						layout(location = 0) out vec3 var0;
108e5c31af7Sopenharmony_ci
109e5c31af7Sopenharmony_ci						void main()
110e5c31af7Sopenharmony_ci						{
111e5c31af7Sopenharmony_ci							vec3 in0 = vec3(in0_0, in0_1, in0_2);
112e5c31af7Sopenharmony_ci							var0 = in0 + in0;
113e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
114e5c31af7Sopenharmony_ci						}
115e5c31af7Sopenharmony_ci					""
116e5c31af7Sopenharmony_ci					fragment ""
117e5c31af7Sopenharmony_ci						#version 440 core
118e5c31af7Sopenharmony_ci						precision highp float;
119e5c31af7Sopenharmony_ci						precision highp int;
120e5c31af7Sopenharmony_ci						layout(location = 0) in vec3 var0;
121e5c31af7Sopenharmony_ci						layout(location = 0) out vec3 dEQP_FragColor;
122e5c31af7Sopenharmony_ci
123e5c31af7Sopenharmony_ci						void main()
124e5c31af7Sopenharmony_ci						{
125e5c31af7Sopenharmony_ci							vec3 out0 = var0;
126e5c31af7Sopenharmony_ci							out0 /= vec3(31.0, 63.0, 31.0);
127e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
128e5c31af7Sopenharmony_ci						}
129e5c31af7Sopenharmony_ci					""
130e5c31af7Sopenharmony_ci				end
131e5c31af7Sopenharmony_ci				case as_float_float_float_unused
132e5c31af7Sopenharmony_ci					version 440 core
133e5c31af7Sopenharmony_ci					desc "Read vertex input (vec3) as float float float. Read unused fourth component."
134e5c31af7Sopenharmony_ci					output_color vec3
135e5c31af7Sopenharmony_ci					values
136e5c31af7Sopenharmony_ci					{
137e5c31af7Sopenharmony_ci						input vec3 in0		= [ vec3(6.0, 8.0, 7.0) | vec3(14.0, 10.0, 15.0) | vec3(9.0, 5.0, 4.0) | vec3(7.0, 3.0, 1.0) ];
138e5c31af7Sopenharmony_ci						output vec3 out0	= [ vec3(12.0, 16.0, 14.0) | vec3(28.0, 20.0, 30.0) | vec3(18.0, 10.0, 8.0) | vec3(14.0, 6.0, 2.0) ];
139e5c31af7Sopenharmony_ci					}
140e5c31af7Sopenharmony_ci					vertex ""
141e5c31af7Sopenharmony_ci						#version 440 core
142e5c31af7Sopenharmony_ci						precision highp float;
143e5c31af7Sopenharmony_ci						precision highp int;
144e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
145e5c31af7Sopenharmony_ci						layout(location = 1, component = 0) in float in0_0;
146e5c31af7Sopenharmony_ci						layout(location = 1, component = 1) in float in0_1;
147e5c31af7Sopenharmony_ci						layout(location = 1, component = 2) in float in0_2;
148e5c31af7Sopenharmony_ci						layout(location = 1, component = 3) in float in0_3;
149e5c31af7Sopenharmony_ci						layout(location = 0) out vec3 var0;
150e5c31af7Sopenharmony_ci
151e5c31af7Sopenharmony_ci						void main()
152e5c31af7Sopenharmony_ci						{
153e5c31af7Sopenharmony_ci							vec3 in0 = vec3(in0_0, in0_1, in0_2);
154e5c31af7Sopenharmony_ci							var0 = in0_3 * in0 + in0;
155e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
156e5c31af7Sopenharmony_ci						}
157e5c31af7Sopenharmony_ci					""
158e5c31af7Sopenharmony_ci					fragment ""
159e5c31af7Sopenharmony_ci						#version 440 core
160e5c31af7Sopenharmony_ci						precision highp float;
161e5c31af7Sopenharmony_ci						precision highp int;
162e5c31af7Sopenharmony_ci						layout(location = 0) in vec3 var0;
163e5c31af7Sopenharmony_ci						layout(location = 0) out vec3 dEQP_FragColor;
164e5c31af7Sopenharmony_ci
165e5c31af7Sopenharmony_ci						void main()
166e5c31af7Sopenharmony_ci						{
167e5c31af7Sopenharmony_ci							vec3 out0 = var0;
168e5c31af7Sopenharmony_ci							out0 /= vec3(31.0, 63.0, 31.0);
169e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
170e5c31af7Sopenharmony_ci						}
171e5c31af7Sopenharmony_ci					""
172e5c31af7Sopenharmony_ci				end
173e5c31af7Sopenharmony_ci				case as_float_vec2
174e5c31af7Sopenharmony_ci					version 440 core
175e5c31af7Sopenharmony_ci					desc "Read vertex input (vec3) as float vec2."
176e5c31af7Sopenharmony_ci					output_color vec3
177e5c31af7Sopenharmony_ci					values
178e5c31af7Sopenharmony_ci					{
179e5c31af7Sopenharmony_ci						input vec3 in0		= [ vec3(6.0, 8.0, 7.0) | vec3(14.0, 10.0, 15.0) | vec3(9.0, 5.0, 4.0) | vec3(7.0, 3.0, 1.0) ];
180e5c31af7Sopenharmony_ci						output vec3 out0	= [ vec3(12.0, 16.0, 14.0) | vec3(28.0, 20.0, 30.0) | vec3(18.0, 10.0, 8.0) | vec3(14.0, 6.0, 2.0) ];
181e5c31af7Sopenharmony_ci					}
182e5c31af7Sopenharmony_ci					vertex ""
183e5c31af7Sopenharmony_ci						#version 440 core
184e5c31af7Sopenharmony_ci						precision highp float;
185e5c31af7Sopenharmony_ci						precision highp int;
186e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
187e5c31af7Sopenharmony_ci						layout(location = 1, component = 0) in float in0_0;
188e5c31af7Sopenharmony_ci						layout(location = 1, component = 1) in vec2 in0_1;
189e5c31af7Sopenharmony_ci						layout(location = 0) out vec3 var0;
190e5c31af7Sopenharmony_ci
191e5c31af7Sopenharmony_ci						void main()
192e5c31af7Sopenharmony_ci						{
193e5c31af7Sopenharmony_ci							vec3 in0 = vec3(in0_0, in0_1);
194e5c31af7Sopenharmony_ci							var0 = in0 + in0;
195e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
196e5c31af7Sopenharmony_ci						}
197e5c31af7Sopenharmony_ci					""
198e5c31af7Sopenharmony_ci					fragment ""
199e5c31af7Sopenharmony_ci						#version 440 core
200e5c31af7Sopenharmony_ci						precision highp float;
201e5c31af7Sopenharmony_ci						precision highp int;
202e5c31af7Sopenharmony_ci						layout(location = 0) in vec3 var0;
203e5c31af7Sopenharmony_ci						layout(location = 0) out vec3 dEQP_FragColor;
204e5c31af7Sopenharmony_ci
205e5c31af7Sopenharmony_ci						void main()
206e5c31af7Sopenharmony_ci						{
207e5c31af7Sopenharmony_ci							vec3 out0 = var0;
208e5c31af7Sopenharmony_ci							out0 /= vec3(31.0, 63.0, 31.0);
209e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
210e5c31af7Sopenharmony_ci						}
211e5c31af7Sopenharmony_ci					""
212e5c31af7Sopenharmony_ci				end
213e5c31af7Sopenharmony_ci				case as_float_vec2_unused
214e5c31af7Sopenharmony_ci					version 440 core
215e5c31af7Sopenharmony_ci					desc "Read vertex input (vec3) as float vec2. Read unused fourth component."
216e5c31af7Sopenharmony_ci					output_color vec3
217e5c31af7Sopenharmony_ci					values
218e5c31af7Sopenharmony_ci					{
219e5c31af7Sopenharmony_ci						input vec3 in0		= [ vec3(6.0, 8.0, 7.0) | vec3(14.0, 10.0, 15.0) | vec3(9.0, 5.0, 4.0) | vec3(7.0, 3.0, 1.0) ];
220e5c31af7Sopenharmony_ci						output vec3 out0	= [ vec3(12.0, 16.0, 14.0) | vec3(28.0, 20.0, 30.0) | vec3(18.0, 10.0, 8.0) | vec3(14.0, 6.0, 2.0) ];
221e5c31af7Sopenharmony_ci					}
222e5c31af7Sopenharmony_ci					vertex ""
223e5c31af7Sopenharmony_ci						#version 440 core
224e5c31af7Sopenharmony_ci						precision highp float;
225e5c31af7Sopenharmony_ci						precision highp int;
226e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
227e5c31af7Sopenharmony_ci						layout(location = 1, component = 0) in float in0_0;
228e5c31af7Sopenharmony_ci						layout(location = 1, component = 1) in vec2 in0_1;
229e5c31af7Sopenharmony_ci						layout(location = 1, component = 3) in float in0_3;
230e5c31af7Sopenharmony_ci						layout(location = 0) out vec3 var0;
231e5c31af7Sopenharmony_ci
232e5c31af7Sopenharmony_ci						void main()
233e5c31af7Sopenharmony_ci						{
234e5c31af7Sopenharmony_ci							vec3 in0 = vec3(in0_0, in0_1);
235e5c31af7Sopenharmony_ci							var0 = in0_3 * in0 + in0;
236e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
237e5c31af7Sopenharmony_ci						}
238e5c31af7Sopenharmony_ci					""
239e5c31af7Sopenharmony_ci					fragment ""
240e5c31af7Sopenharmony_ci						#version 440 core
241e5c31af7Sopenharmony_ci						precision highp float;
242e5c31af7Sopenharmony_ci						precision highp int;
243e5c31af7Sopenharmony_ci						layout(location = 0) in vec3 var0;
244e5c31af7Sopenharmony_ci						layout(location = 0) out vec3 dEQP_FragColor;
245e5c31af7Sopenharmony_ci
246e5c31af7Sopenharmony_ci						void main()
247e5c31af7Sopenharmony_ci						{
248e5c31af7Sopenharmony_ci							vec3 out0 = var0;
249e5c31af7Sopenharmony_ci							out0 /= vec3(31.0, 63.0, 31.0);
250e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
251e5c31af7Sopenharmony_ci						}
252e5c31af7Sopenharmony_ci					""
253e5c31af7Sopenharmony_ci				end
254e5c31af7Sopenharmony_ci				case as_vec2_float
255e5c31af7Sopenharmony_ci					version 440 core
256e5c31af7Sopenharmony_ci					desc "Read vertex input (vec3) as vec2 float."
257e5c31af7Sopenharmony_ci					output_color vec3
258e5c31af7Sopenharmony_ci					values
259e5c31af7Sopenharmony_ci					{
260e5c31af7Sopenharmony_ci						input vec3 in0		= [ vec3(6.0, 8.0, 7.0) | vec3(14.0, 10.0, 15.0) | vec3(9.0, 5.0, 4.0) | vec3(7.0, 3.0, 1.0) ];
261e5c31af7Sopenharmony_ci						output vec3 out0	= [ vec3(12.0, 16.0, 14.0) | vec3(28.0, 20.0, 30.0) | vec3(18.0, 10.0, 8.0) | vec3(14.0, 6.0, 2.0) ];
262e5c31af7Sopenharmony_ci					}
263e5c31af7Sopenharmony_ci					vertex ""
264e5c31af7Sopenharmony_ci						#version 440 core
265e5c31af7Sopenharmony_ci						precision highp float;
266e5c31af7Sopenharmony_ci						precision highp int;
267e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
268e5c31af7Sopenharmony_ci						layout(location = 1, component = 0) in vec2 in0_0;
269e5c31af7Sopenharmony_ci						layout(location = 1, component = 2) in float in0_1;
270e5c31af7Sopenharmony_ci						layout(location = 0) out vec3 var0;
271e5c31af7Sopenharmony_ci
272e5c31af7Sopenharmony_ci						void main()
273e5c31af7Sopenharmony_ci						{
274e5c31af7Sopenharmony_ci							vec3 in0 = vec3(in0_0, in0_1);
275e5c31af7Sopenharmony_ci							var0 = in0 + in0;
276e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
277e5c31af7Sopenharmony_ci						}
278e5c31af7Sopenharmony_ci					""
279e5c31af7Sopenharmony_ci					fragment ""
280e5c31af7Sopenharmony_ci						#version 440 core
281e5c31af7Sopenharmony_ci						precision highp float;
282e5c31af7Sopenharmony_ci						precision highp int;
283e5c31af7Sopenharmony_ci						layout(location = 0) in vec3 var0;
284e5c31af7Sopenharmony_ci						layout(location = 0) out vec3 dEQP_FragColor;
285e5c31af7Sopenharmony_ci
286e5c31af7Sopenharmony_ci						void main()
287e5c31af7Sopenharmony_ci						{
288e5c31af7Sopenharmony_ci							vec3 out0 = var0;
289e5c31af7Sopenharmony_ci							out0 /= vec3(31.0, 63.0, 31.0);
290e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
291e5c31af7Sopenharmony_ci						}
292e5c31af7Sopenharmony_ci					""
293e5c31af7Sopenharmony_ci				end
294e5c31af7Sopenharmony_ci				case as_vec2_float_unused
295e5c31af7Sopenharmony_ci					version 440 core
296e5c31af7Sopenharmony_ci					desc "Read vertex input (vec3) as vec2 float. Read unused fourth component."
297e5c31af7Sopenharmony_ci					output_color vec3
298e5c31af7Sopenharmony_ci					values
299e5c31af7Sopenharmony_ci					{
300e5c31af7Sopenharmony_ci						input vec3 in0		= [ vec3(6.0, 8.0, 7.0) | vec3(14.0, 10.0, 15.0) | vec3(9.0, 5.0, 4.0) | vec3(7.0, 3.0, 1.0) ];
301e5c31af7Sopenharmony_ci						output vec3 out0	= [ vec3(12.0, 16.0, 14.0) | vec3(28.0, 20.0, 30.0) | vec3(18.0, 10.0, 8.0) | vec3(14.0, 6.0, 2.0) ];
302e5c31af7Sopenharmony_ci					}
303e5c31af7Sopenharmony_ci					vertex ""
304e5c31af7Sopenharmony_ci						#version 440 core
305e5c31af7Sopenharmony_ci						precision highp float;
306e5c31af7Sopenharmony_ci						precision highp int;
307e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
308e5c31af7Sopenharmony_ci						layout(location = 1, component = 0) in vec2 in0_0;
309e5c31af7Sopenharmony_ci						layout(location = 1, component = 2) in float in0_1;
310e5c31af7Sopenharmony_ci						layout(location = 1, component = 3) in float in0_3;
311e5c31af7Sopenharmony_ci						layout(location = 0) out vec3 var0;
312e5c31af7Sopenharmony_ci
313e5c31af7Sopenharmony_ci						void main()
314e5c31af7Sopenharmony_ci						{
315e5c31af7Sopenharmony_ci							vec3 in0 = vec3(in0_0, in0_1);
316e5c31af7Sopenharmony_ci							var0 = in0_3 * in0 + in0;
317e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
318e5c31af7Sopenharmony_ci						}
319e5c31af7Sopenharmony_ci					""
320e5c31af7Sopenharmony_ci					fragment ""
321e5c31af7Sopenharmony_ci						#version 440 core
322e5c31af7Sopenharmony_ci						precision highp float;
323e5c31af7Sopenharmony_ci						precision highp int;
324e5c31af7Sopenharmony_ci						layout(location = 0) in vec3 var0;
325e5c31af7Sopenharmony_ci						layout(location = 0) out vec3 dEQP_FragColor;
326e5c31af7Sopenharmony_ci
327e5c31af7Sopenharmony_ci						void main()
328e5c31af7Sopenharmony_ci						{
329e5c31af7Sopenharmony_ci							vec3 out0 = var0;
330e5c31af7Sopenharmony_ci							out0 /= vec3(31.0, 63.0, 31.0);
331e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
332e5c31af7Sopenharmony_ci						}
333e5c31af7Sopenharmony_ci					""
334e5c31af7Sopenharmony_ci				end
335e5c31af7Sopenharmony_ci			end
336e5c31af7Sopenharmony_ci			group vec4 "vec4"
337e5c31af7Sopenharmony_ci				case as_float_float_float_float
338e5c31af7Sopenharmony_ci					version 440 core
339e5c31af7Sopenharmony_ci					desc "Read vertex input (vec4) as float float float float."
340e5c31af7Sopenharmony_ci					output_color vec4
341e5c31af7Sopenharmony_ci					values
342e5c31af7Sopenharmony_ci					{
343e5c31af7Sopenharmony_ci						input vec4 in0		= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
344e5c31af7Sopenharmony_ci						output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
345e5c31af7Sopenharmony_ci					}
346e5c31af7Sopenharmony_ci					vertex ""
347e5c31af7Sopenharmony_ci						#version 440 core
348e5c31af7Sopenharmony_ci						precision highp float;
349e5c31af7Sopenharmony_ci						precision highp int;
350e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
351e5c31af7Sopenharmony_ci						layout(location = 1, component = 0) in float in0_0;
352e5c31af7Sopenharmony_ci						layout(location = 1, component = 1) in float in0_1;
353e5c31af7Sopenharmony_ci						layout(location = 1, component = 2) in float in0_2;
354e5c31af7Sopenharmony_ci						layout(location = 1, component = 3) in float in0_3;
355e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 var0;
356e5c31af7Sopenharmony_ci
357e5c31af7Sopenharmony_ci						void main()
358e5c31af7Sopenharmony_ci						{
359e5c31af7Sopenharmony_ci							vec4 in0 = vec4(in0_0, in0_1, in0_2, in0_3);
360e5c31af7Sopenharmony_ci							var0 = in0 + in0;
361e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
362e5c31af7Sopenharmony_ci						}
363e5c31af7Sopenharmony_ci					""
364e5c31af7Sopenharmony_ci					fragment ""
365e5c31af7Sopenharmony_ci						#version 440 core
366e5c31af7Sopenharmony_ci						precision highp float;
367e5c31af7Sopenharmony_ci						precision highp int;
368e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 var0;
369e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 dEQP_FragColor;
370e5c31af7Sopenharmony_ci
371e5c31af7Sopenharmony_ci						void main()
372e5c31af7Sopenharmony_ci						{
373e5c31af7Sopenharmony_ci							vec4 out0 = var0;
374e5c31af7Sopenharmony_ci							out0 /= vec4(255.0);
375e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
376e5c31af7Sopenharmony_ci						}
377e5c31af7Sopenharmony_ci					""
378e5c31af7Sopenharmony_ci				end
379e5c31af7Sopenharmony_ci				case as_float_float_vec2
380e5c31af7Sopenharmony_ci					version 440 core
381e5c31af7Sopenharmony_ci					desc "Read vertex input (vec4) as float float vec2."
382e5c31af7Sopenharmony_ci					output_color vec4
383e5c31af7Sopenharmony_ci					values
384e5c31af7Sopenharmony_ci					{
385e5c31af7Sopenharmony_ci						input vec4 in0		= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
386e5c31af7Sopenharmony_ci						output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
387e5c31af7Sopenharmony_ci					}
388e5c31af7Sopenharmony_ci					vertex ""
389e5c31af7Sopenharmony_ci						#version 440 core
390e5c31af7Sopenharmony_ci						precision highp float;
391e5c31af7Sopenharmony_ci						precision highp int;
392e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
393e5c31af7Sopenharmony_ci						layout(location = 1, component = 0) in float in0_0;
394e5c31af7Sopenharmony_ci						layout(location = 1, component = 1) in float in0_1;
395e5c31af7Sopenharmony_ci						layout(location = 1, component = 2) in vec2 in0_2;
396e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 var0;
397e5c31af7Sopenharmony_ci
398e5c31af7Sopenharmony_ci						void main()
399e5c31af7Sopenharmony_ci						{
400e5c31af7Sopenharmony_ci							vec4 in0 = vec4(in0_0, in0_1, in0_2);
401e5c31af7Sopenharmony_ci							var0 = in0 + in0;
402e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
403e5c31af7Sopenharmony_ci						}
404e5c31af7Sopenharmony_ci					""
405e5c31af7Sopenharmony_ci					fragment ""
406e5c31af7Sopenharmony_ci						#version 440 core
407e5c31af7Sopenharmony_ci						precision highp float;
408e5c31af7Sopenharmony_ci						precision highp int;
409e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 var0;
410e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 dEQP_FragColor;
411e5c31af7Sopenharmony_ci
412e5c31af7Sopenharmony_ci						void main()
413e5c31af7Sopenharmony_ci						{
414e5c31af7Sopenharmony_ci							vec4 out0 = var0;
415e5c31af7Sopenharmony_ci							out0 /= vec4(255.0);
416e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
417e5c31af7Sopenharmony_ci						}
418e5c31af7Sopenharmony_ci					""
419e5c31af7Sopenharmony_ci				end
420e5c31af7Sopenharmony_ci				case as_float_vec2_float
421e5c31af7Sopenharmony_ci					version 440 core
422e5c31af7Sopenharmony_ci					desc "Read vertex input (vec4) as float vec2 float."
423e5c31af7Sopenharmony_ci					output_color vec4
424e5c31af7Sopenharmony_ci					values
425e5c31af7Sopenharmony_ci					{
426e5c31af7Sopenharmony_ci						input vec4 in0		= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
427e5c31af7Sopenharmony_ci						output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
428e5c31af7Sopenharmony_ci					}
429e5c31af7Sopenharmony_ci					vertex ""
430e5c31af7Sopenharmony_ci						#version 440 core
431e5c31af7Sopenharmony_ci						precision highp float;
432e5c31af7Sopenharmony_ci						precision highp int;
433e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
434e5c31af7Sopenharmony_ci						layout(location = 1, component = 0) in float in0_0;
435e5c31af7Sopenharmony_ci						layout(location = 1, component = 1) in vec2 in0_1;
436e5c31af7Sopenharmony_ci						layout(location = 1, component = 3) in float in0_2;
437e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 var0;
438e5c31af7Sopenharmony_ci
439e5c31af7Sopenharmony_ci						void main()
440e5c31af7Sopenharmony_ci						{
441e5c31af7Sopenharmony_ci							vec4 in0 = vec4(in0_0, in0_1, in0_2);
442e5c31af7Sopenharmony_ci							var0 = in0 + in0;
443e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
444e5c31af7Sopenharmony_ci						}
445e5c31af7Sopenharmony_ci					""
446e5c31af7Sopenharmony_ci					fragment ""
447e5c31af7Sopenharmony_ci						#version 440 core
448e5c31af7Sopenharmony_ci						precision highp float;
449e5c31af7Sopenharmony_ci						precision highp int;
450e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 var0;
451e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 dEQP_FragColor;
452e5c31af7Sopenharmony_ci
453e5c31af7Sopenharmony_ci						void main()
454e5c31af7Sopenharmony_ci						{
455e5c31af7Sopenharmony_ci							vec4 out0 = var0;
456e5c31af7Sopenharmony_ci							out0 /= vec4(255.0);
457e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
458e5c31af7Sopenharmony_ci						}
459e5c31af7Sopenharmony_ci					""
460e5c31af7Sopenharmony_ci				end
461e5c31af7Sopenharmony_ci				case as_float_vec3
462e5c31af7Sopenharmony_ci					version 440 core
463e5c31af7Sopenharmony_ci					desc "Read vertex input (vec4) as float vec3."
464e5c31af7Sopenharmony_ci					output_color vec4
465e5c31af7Sopenharmony_ci					values
466e5c31af7Sopenharmony_ci					{
467e5c31af7Sopenharmony_ci						input vec4 in0		= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
468e5c31af7Sopenharmony_ci						output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
469e5c31af7Sopenharmony_ci					}
470e5c31af7Sopenharmony_ci					vertex ""
471e5c31af7Sopenharmony_ci						#version 440 core
472e5c31af7Sopenharmony_ci						precision highp float;
473e5c31af7Sopenharmony_ci						precision highp int;
474e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
475e5c31af7Sopenharmony_ci						layout(location = 1, component = 0) in float in0_0;
476e5c31af7Sopenharmony_ci						layout(location = 1, component = 1) in vec3 in0_1;
477e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 var0;
478e5c31af7Sopenharmony_ci
479e5c31af7Sopenharmony_ci						void main()
480e5c31af7Sopenharmony_ci						{
481e5c31af7Sopenharmony_ci							vec4 in0 = vec4(in0_0, in0_1);
482e5c31af7Sopenharmony_ci							var0 = in0 + in0;
483e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
484e5c31af7Sopenharmony_ci						}
485e5c31af7Sopenharmony_ci					""
486e5c31af7Sopenharmony_ci					fragment ""
487e5c31af7Sopenharmony_ci						#version 440 core
488e5c31af7Sopenharmony_ci						precision highp float;
489e5c31af7Sopenharmony_ci						precision highp int;
490e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 var0;
491e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 dEQP_FragColor;
492e5c31af7Sopenharmony_ci
493e5c31af7Sopenharmony_ci						void main()
494e5c31af7Sopenharmony_ci						{
495e5c31af7Sopenharmony_ci							vec4 out0 = var0;
496e5c31af7Sopenharmony_ci							out0 /= vec4(255.0);
497e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
498e5c31af7Sopenharmony_ci						}
499e5c31af7Sopenharmony_ci					""
500e5c31af7Sopenharmony_ci				end
501e5c31af7Sopenharmony_ci				case as_vec2_float_float
502e5c31af7Sopenharmony_ci					version 440 core
503e5c31af7Sopenharmony_ci					desc "Read vertex input (vec4) as vec2 float float."
504e5c31af7Sopenharmony_ci					output_color vec4
505e5c31af7Sopenharmony_ci					values
506e5c31af7Sopenharmony_ci					{
507e5c31af7Sopenharmony_ci						input vec4 in0		= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
508e5c31af7Sopenharmony_ci						output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
509e5c31af7Sopenharmony_ci					}
510e5c31af7Sopenharmony_ci					vertex ""
511e5c31af7Sopenharmony_ci						#version 440 core
512e5c31af7Sopenharmony_ci						precision highp float;
513e5c31af7Sopenharmony_ci						precision highp int;
514e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
515e5c31af7Sopenharmony_ci						layout(location = 1, component = 0) in vec2 in0_0;
516e5c31af7Sopenharmony_ci						layout(location = 1, component = 2) in float in0_1;
517e5c31af7Sopenharmony_ci						layout(location = 1, component = 3) in float in0_2;
518e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 var0;
519e5c31af7Sopenharmony_ci
520e5c31af7Sopenharmony_ci						void main()
521e5c31af7Sopenharmony_ci						{
522e5c31af7Sopenharmony_ci							vec4 in0 = vec4(in0_0, in0_1, in0_2);
523e5c31af7Sopenharmony_ci							var0 = in0 + in0;
524e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
525e5c31af7Sopenharmony_ci						}
526e5c31af7Sopenharmony_ci					""
527e5c31af7Sopenharmony_ci					fragment ""
528e5c31af7Sopenharmony_ci						#version 440 core
529e5c31af7Sopenharmony_ci						precision highp float;
530e5c31af7Sopenharmony_ci						precision highp int;
531e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 var0;
532e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 dEQP_FragColor;
533e5c31af7Sopenharmony_ci
534e5c31af7Sopenharmony_ci						void main()
535e5c31af7Sopenharmony_ci						{
536e5c31af7Sopenharmony_ci							vec4 out0 = var0;
537e5c31af7Sopenharmony_ci							out0 /= vec4(255.0);
538e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
539e5c31af7Sopenharmony_ci						}
540e5c31af7Sopenharmony_ci					""
541e5c31af7Sopenharmony_ci				end
542e5c31af7Sopenharmony_ci				case as_vec2_vec2
543e5c31af7Sopenharmony_ci					version 440 core
544e5c31af7Sopenharmony_ci					desc "Read vertex input (vec4) as vec2 vec2."
545e5c31af7Sopenharmony_ci					output_color vec4
546e5c31af7Sopenharmony_ci					values
547e5c31af7Sopenharmony_ci					{
548e5c31af7Sopenharmony_ci						input vec4 in0		= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
549e5c31af7Sopenharmony_ci						output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
550e5c31af7Sopenharmony_ci					}
551e5c31af7Sopenharmony_ci					vertex ""
552e5c31af7Sopenharmony_ci						#version 440 core
553e5c31af7Sopenharmony_ci						precision highp float;
554e5c31af7Sopenharmony_ci						precision highp int;
555e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
556e5c31af7Sopenharmony_ci						layout(location = 1, component = 0) in vec2 in0_0;
557e5c31af7Sopenharmony_ci						layout(location = 1, component = 2) in vec2 in0_1;
558e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 var0;
559e5c31af7Sopenharmony_ci
560e5c31af7Sopenharmony_ci						void main()
561e5c31af7Sopenharmony_ci						{
562e5c31af7Sopenharmony_ci							vec4 in0 = vec4(in0_0, in0_1);
563e5c31af7Sopenharmony_ci							var0 = in0 + in0;
564e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
565e5c31af7Sopenharmony_ci						}
566e5c31af7Sopenharmony_ci					""
567e5c31af7Sopenharmony_ci					fragment ""
568e5c31af7Sopenharmony_ci						#version 440 core
569e5c31af7Sopenharmony_ci						precision highp float;
570e5c31af7Sopenharmony_ci						precision highp int;
571e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 var0;
572e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 dEQP_FragColor;
573e5c31af7Sopenharmony_ci
574e5c31af7Sopenharmony_ci						void main()
575e5c31af7Sopenharmony_ci						{
576e5c31af7Sopenharmony_ci							vec4 out0 = var0;
577e5c31af7Sopenharmony_ci							out0 /= vec4(255.0);
578e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
579e5c31af7Sopenharmony_ci						}
580e5c31af7Sopenharmony_ci					""
581e5c31af7Sopenharmony_ci				end
582e5c31af7Sopenharmony_ci				case as_vec3_float
583e5c31af7Sopenharmony_ci					version 440 core
584e5c31af7Sopenharmony_ci					desc "Read vertex input (vec4) as vec3 float."
585e5c31af7Sopenharmony_ci					output_color vec4
586e5c31af7Sopenharmony_ci					values
587e5c31af7Sopenharmony_ci					{
588e5c31af7Sopenharmony_ci						input vec4 in0		= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
589e5c31af7Sopenharmony_ci						output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
590e5c31af7Sopenharmony_ci					}
591e5c31af7Sopenharmony_ci					vertex ""
592e5c31af7Sopenharmony_ci						#version 440 core
593e5c31af7Sopenharmony_ci						precision highp float;
594e5c31af7Sopenharmony_ci						precision highp int;
595e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
596e5c31af7Sopenharmony_ci						layout(location = 1, component = 0) in vec3 in0_0;
597e5c31af7Sopenharmony_ci						layout(location = 1, component = 3) in float in0_1;
598e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 var0;
599e5c31af7Sopenharmony_ci
600e5c31af7Sopenharmony_ci						void main()
601e5c31af7Sopenharmony_ci						{
602e5c31af7Sopenharmony_ci							vec4 in0 = vec4(in0_0, in0_1);
603e5c31af7Sopenharmony_ci							var0 = in0 + in0;
604e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
605e5c31af7Sopenharmony_ci						}
606e5c31af7Sopenharmony_ci					""
607e5c31af7Sopenharmony_ci					fragment ""
608e5c31af7Sopenharmony_ci						#version 440 core
609e5c31af7Sopenharmony_ci						precision highp float;
610e5c31af7Sopenharmony_ci						precision highp int;
611e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 var0;
612e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 dEQP_FragColor;
613e5c31af7Sopenharmony_ci
614e5c31af7Sopenharmony_ci						void main()
615e5c31af7Sopenharmony_ci						{
616e5c31af7Sopenharmony_ci							vec4 out0 = var0;
617e5c31af7Sopenharmony_ci							out0 /= vec4(255.0);
618e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
619e5c31af7Sopenharmony_ci						}
620e5c31af7Sopenharmony_ci					""
621e5c31af7Sopenharmony_ci				end
622e5c31af7Sopenharmony_ci			end
623e5c31af7Sopenharmony_ci			group ivec2 "ivec2"
624e5c31af7Sopenharmony_ci				case as_int_int
625e5c31af7Sopenharmony_ci					version 440 core
626e5c31af7Sopenharmony_ci					desc "Read vertex input (ivec2) as int int."
627e5c31af7Sopenharmony_ci					output_color ivec2
628e5c31af7Sopenharmony_ci					values
629e5c31af7Sopenharmony_ci					{
630e5c31af7Sopenharmony_ci						input ivec2 in0		= [ ivec2(7, 13) | ivec2(9, 7) | ivec2(13, 1) | ivec2(15, 11) ];
631e5c31af7Sopenharmony_ci						output ivec2 out0	= [ ivec2(14, 26) | ivec2(18, 14) | ivec2(26, 2) | ivec2(30, 22) ];
632e5c31af7Sopenharmony_ci					}
633e5c31af7Sopenharmony_ci					vertex ""
634e5c31af7Sopenharmony_ci						#version 440 core
635e5c31af7Sopenharmony_ci						precision highp float;
636e5c31af7Sopenharmony_ci						precision highp int;
637e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
638e5c31af7Sopenharmony_ci						layout(location = 1, component = 0) in int in0_0;
639e5c31af7Sopenharmony_ci						layout(location = 1, component = 1) in int in0_1;
640e5c31af7Sopenharmony_ci						layout(location = 0) out ivec2 var0;
641e5c31af7Sopenharmony_ci
642e5c31af7Sopenharmony_ci						void main()
643e5c31af7Sopenharmony_ci						{
644e5c31af7Sopenharmony_ci							ivec2 in0 = ivec2(in0_0, in0_1);
645e5c31af7Sopenharmony_ci							var0 = in0 + in0;
646e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
647e5c31af7Sopenharmony_ci						}
648e5c31af7Sopenharmony_ci					""
649e5c31af7Sopenharmony_ci					fragment ""
650e5c31af7Sopenharmony_ci						#version 440 core
651e5c31af7Sopenharmony_ci						precision highp float;
652e5c31af7Sopenharmony_ci						precision highp int;
653e5c31af7Sopenharmony_ci						layout(location = 0) flat in ivec2 var0;
654e5c31af7Sopenharmony_ci						layout(location = 0) out ivec2 dEQP_FragColor;
655e5c31af7Sopenharmony_ci
656e5c31af7Sopenharmony_ci						void main()
657e5c31af7Sopenharmony_ci						{
658e5c31af7Sopenharmony_ci							ivec2 out0 = var0;
659e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
660e5c31af7Sopenharmony_ci						}
661e5c31af7Sopenharmony_ci					""
662e5c31af7Sopenharmony_ci				end
663e5c31af7Sopenharmony_ci				case as_int_int_unused
664e5c31af7Sopenharmony_ci					version 440 core
665e5c31af7Sopenharmony_ci					desc "Read vertex input (ivec2) as int int. Read unused fourth component."
666e5c31af7Sopenharmony_ci					output_color ivec2
667e5c31af7Sopenharmony_ci					values
668e5c31af7Sopenharmony_ci					{
669e5c31af7Sopenharmony_ci						input ivec2 in0		= [ ivec2(7, 13) | ivec2(9, 7) | ivec2(13, 1) | ivec2(15, 11) ];
670e5c31af7Sopenharmony_ci						output ivec2 out0	= [ ivec2(14, 26) | ivec2(18, 14) | ivec2(26, 2) | ivec2(30, 22) ];
671e5c31af7Sopenharmony_ci					}
672e5c31af7Sopenharmony_ci					vertex ""
673e5c31af7Sopenharmony_ci						#version 440 core
674e5c31af7Sopenharmony_ci						precision highp float;
675e5c31af7Sopenharmony_ci						precision highp int;
676e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
677e5c31af7Sopenharmony_ci						layout(location = 1, component = 0) in int in0_0;
678e5c31af7Sopenharmony_ci						layout(location = 1, component = 1) in int in0_1;
679e5c31af7Sopenharmony_ci						layout(location = 1, component = 3) in int in0_3;
680e5c31af7Sopenharmony_ci						layout(location = 0) out ivec2 var0;
681e5c31af7Sopenharmony_ci
682e5c31af7Sopenharmony_ci						void main()
683e5c31af7Sopenharmony_ci						{
684e5c31af7Sopenharmony_ci							ivec2 in0 = ivec2(in0_0, in0_1);
685e5c31af7Sopenharmony_ci							var0 = in0_3 * in0 + in0;
686e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
687e5c31af7Sopenharmony_ci						}
688e5c31af7Sopenharmony_ci					""
689e5c31af7Sopenharmony_ci					fragment ""
690e5c31af7Sopenharmony_ci						#version 440 core
691e5c31af7Sopenharmony_ci						precision highp float;
692e5c31af7Sopenharmony_ci						precision highp int;
693e5c31af7Sopenharmony_ci						layout(location = 0) flat in ivec2 var0;
694e5c31af7Sopenharmony_ci						layout(location = 0) out ivec2 dEQP_FragColor;
695e5c31af7Sopenharmony_ci
696e5c31af7Sopenharmony_ci						void main()
697e5c31af7Sopenharmony_ci						{
698e5c31af7Sopenharmony_ci							ivec2 out0 = var0;
699e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
700e5c31af7Sopenharmony_ci						}
701e5c31af7Sopenharmony_ci					""
702e5c31af7Sopenharmony_ci				end
703e5c31af7Sopenharmony_ci			end
704e5c31af7Sopenharmony_ci			group ivec4 "ivec4"
705e5c31af7Sopenharmony_ci				case as_int_int_int_int
706e5c31af7Sopenharmony_ci					version 440 core
707e5c31af7Sopenharmony_ci					desc "Read vertex input (ivec4) as int int int int."
708e5c31af7Sopenharmony_ci					output_color ivec4
709e5c31af7Sopenharmony_ci					values
710e5c31af7Sopenharmony_ci					{
711e5c31af7Sopenharmony_ci						input ivec4 in0		= [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ];
712e5c31af7Sopenharmony_ci						output ivec4 out0	= [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ];
713e5c31af7Sopenharmony_ci					}
714e5c31af7Sopenharmony_ci					vertex ""
715e5c31af7Sopenharmony_ci						#version 440 core
716e5c31af7Sopenharmony_ci						precision highp float;
717e5c31af7Sopenharmony_ci						precision highp int;
718e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
719e5c31af7Sopenharmony_ci						layout(location = 1, component = 0) in int in0_0;
720e5c31af7Sopenharmony_ci						layout(location = 1, component = 1) in int in0_1;
721e5c31af7Sopenharmony_ci						layout(location = 1, component = 2) in int in0_2;
722e5c31af7Sopenharmony_ci						layout(location = 1, component = 3) in int in0_3;
723e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 var0;
724e5c31af7Sopenharmony_ci
725e5c31af7Sopenharmony_ci						void main()
726e5c31af7Sopenharmony_ci						{
727e5c31af7Sopenharmony_ci							ivec4 in0 = ivec4(in0_0, in0_1, in0_2, in0_3);
728e5c31af7Sopenharmony_ci							var0 = in0 + in0;
729e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
730e5c31af7Sopenharmony_ci						}
731e5c31af7Sopenharmony_ci					""
732e5c31af7Sopenharmony_ci					fragment ""
733e5c31af7Sopenharmony_ci						#version 440 core
734e5c31af7Sopenharmony_ci						precision highp float;
735e5c31af7Sopenharmony_ci						precision highp int;
736e5c31af7Sopenharmony_ci						layout(location = 0) flat in ivec4 var0;
737e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 dEQP_FragColor;
738e5c31af7Sopenharmony_ci
739e5c31af7Sopenharmony_ci						void main()
740e5c31af7Sopenharmony_ci						{
741e5c31af7Sopenharmony_ci							ivec4 out0 = var0;
742e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
743e5c31af7Sopenharmony_ci						}
744e5c31af7Sopenharmony_ci					""
745e5c31af7Sopenharmony_ci				end
746e5c31af7Sopenharmony_ci				case as_int_int_ivec2
747e5c31af7Sopenharmony_ci					version 440 core
748e5c31af7Sopenharmony_ci					desc "Read vertex input (ivec4) as int int ivec2."
749e5c31af7Sopenharmony_ci					output_color ivec4
750e5c31af7Sopenharmony_ci					values
751e5c31af7Sopenharmony_ci					{
752e5c31af7Sopenharmony_ci						input ivec4 in0		= [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ];
753e5c31af7Sopenharmony_ci						output ivec4 out0	= [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ];
754e5c31af7Sopenharmony_ci					}
755e5c31af7Sopenharmony_ci					vertex ""
756e5c31af7Sopenharmony_ci						#version 440 core
757e5c31af7Sopenharmony_ci						precision highp float;
758e5c31af7Sopenharmony_ci						precision highp int;
759e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
760e5c31af7Sopenharmony_ci						layout(location = 1, component = 0) in int in0_0;
761e5c31af7Sopenharmony_ci						layout(location = 1, component = 1) in int in0_1;
762e5c31af7Sopenharmony_ci						layout(location = 1, component = 2) in ivec2 in0_2;
763e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 var0;
764e5c31af7Sopenharmony_ci
765e5c31af7Sopenharmony_ci						void main()
766e5c31af7Sopenharmony_ci						{
767e5c31af7Sopenharmony_ci							ivec4 in0 = ivec4(in0_0, in0_1, in0_2);
768e5c31af7Sopenharmony_ci							var0 = in0 + in0;
769e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
770e5c31af7Sopenharmony_ci						}
771e5c31af7Sopenharmony_ci					""
772e5c31af7Sopenharmony_ci					fragment ""
773e5c31af7Sopenharmony_ci						#version 440 core
774e5c31af7Sopenharmony_ci						precision highp float;
775e5c31af7Sopenharmony_ci						precision highp int;
776e5c31af7Sopenharmony_ci						layout(location = 0) flat in ivec4 var0;
777e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 dEQP_FragColor;
778e5c31af7Sopenharmony_ci
779e5c31af7Sopenharmony_ci						void main()
780e5c31af7Sopenharmony_ci						{
781e5c31af7Sopenharmony_ci							ivec4 out0 = var0;
782e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
783e5c31af7Sopenharmony_ci						}
784e5c31af7Sopenharmony_ci					""
785e5c31af7Sopenharmony_ci				end
786e5c31af7Sopenharmony_ci				case as_int_ivec2_int
787e5c31af7Sopenharmony_ci					version 440 core
788e5c31af7Sopenharmony_ci					desc "Read vertex input (ivec4) as int ivec2 int."
789e5c31af7Sopenharmony_ci					output_color ivec4
790e5c31af7Sopenharmony_ci					values
791e5c31af7Sopenharmony_ci					{
792e5c31af7Sopenharmony_ci						input ivec4 in0		= [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ];
793e5c31af7Sopenharmony_ci						output ivec4 out0	= [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ];
794e5c31af7Sopenharmony_ci					}
795e5c31af7Sopenharmony_ci					vertex ""
796e5c31af7Sopenharmony_ci						#version 440 core
797e5c31af7Sopenharmony_ci						precision highp float;
798e5c31af7Sopenharmony_ci						precision highp int;
799e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
800e5c31af7Sopenharmony_ci						layout(location = 1, component = 0) in int in0_0;
801e5c31af7Sopenharmony_ci						layout(location = 1, component = 1) in ivec2 in0_1;
802e5c31af7Sopenharmony_ci						layout(location = 1, component = 3) in int in0_2;
803e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 var0;
804e5c31af7Sopenharmony_ci
805e5c31af7Sopenharmony_ci						void main()
806e5c31af7Sopenharmony_ci						{
807e5c31af7Sopenharmony_ci							ivec4 in0 = ivec4(in0_0, in0_1, in0_2);
808e5c31af7Sopenharmony_ci							var0 = in0 + in0;
809e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
810e5c31af7Sopenharmony_ci						}
811e5c31af7Sopenharmony_ci					""
812e5c31af7Sopenharmony_ci					fragment ""
813e5c31af7Sopenharmony_ci						#version 440 core
814e5c31af7Sopenharmony_ci						precision highp float;
815e5c31af7Sopenharmony_ci						precision highp int;
816e5c31af7Sopenharmony_ci						layout(location = 0) flat in ivec4 var0;
817e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 dEQP_FragColor;
818e5c31af7Sopenharmony_ci
819e5c31af7Sopenharmony_ci						void main()
820e5c31af7Sopenharmony_ci						{
821e5c31af7Sopenharmony_ci							ivec4 out0 = var0;
822e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
823e5c31af7Sopenharmony_ci						}
824e5c31af7Sopenharmony_ci					""
825e5c31af7Sopenharmony_ci				end
826e5c31af7Sopenharmony_ci				case as_int_ivec3
827e5c31af7Sopenharmony_ci					version 440 core
828e5c31af7Sopenharmony_ci					desc "Read vertex input (ivec4) as int ivec3."
829e5c31af7Sopenharmony_ci					output_color ivec4
830e5c31af7Sopenharmony_ci					values
831e5c31af7Sopenharmony_ci					{
832e5c31af7Sopenharmony_ci						input ivec4 in0		= [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ];
833e5c31af7Sopenharmony_ci						output ivec4 out0	= [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ];
834e5c31af7Sopenharmony_ci					}
835e5c31af7Sopenharmony_ci					vertex ""
836e5c31af7Sopenharmony_ci						#version 440 core
837e5c31af7Sopenharmony_ci						precision highp float;
838e5c31af7Sopenharmony_ci						precision highp int;
839e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
840e5c31af7Sopenharmony_ci						layout(location = 1, component = 0) in int in0_0;
841e5c31af7Sopenharmony_ci						layout(location = 1, component = 1) in ivec3 in0_1;
842e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 var0;
843e5c31af7Sopenharmony_ci
844e5c31af7Sopenharmony_ci						void main()
845e5c31af7Sopenharmony_ci						{
846e5c31af7Sopenharmony_ci							ivec4 in0 = ivec4(in0_0, in0_1);
847e5c31af7Sopenharmony_ci							var0 = in0 + in0;
848e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
849e5c31af7Sopenharmony_ci						}
850e5c31af7Sopenharmony_ci					""
851e5c31af7Sopenharmony_ci					fragment ""
852e5c31af7Sopenharmony_ci						#version 440 core
853e5c31af7Sopenharmony_ci						precision highp float;
854e5c31af7Sopenharmony_ci						precision highp int;
855e5c31af7Sopenharmony_ci						layout(location = 0) flat in ivec4 var0;
856e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 dEQP_FragColor;
857e5c31af7Sopenharmony_ci
858e5c31af7Sopenharmony_ci						void main()
859e5c31af7Sopenharmony_ci						{
860e5c31af7Sopenharmony_ci							ivec4 out0 = var0;
861e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
862e5c31af7Sopenharmony_ci						}
863e5c31af7Sopenharmony_ci					""
864e5c31af7Sopenharmony_ci				end
865e5c31af7Sopenharmony_ci				case as_ivec2_int_int
866e5c31af7Sopenharmony_ci					version 440 core
867e5c31af7Sopenharmony_ci					desc "Read vertex input (ivec4) as ivec2 int int."
868e5c31af7Sopenharmony_ci					output_color ivec4
869e5c31af7Sopenharmony_ci					values
870e5c31af7Sopenharmony_ci					{
871e5c31af7Sopenharmony_ci						input ivec4 in0		= [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ];
872e5c31af7Sopenharmony_ci						output ivec4 out0	= [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ];
873e5c31af7Sopenharmony_ci					}
874e5c31af7Sopenharmony_ci					vertex ""
875e5c31af7Sopenharmony_ci						#version 440 core
876e5c31af7Sopenharmony_ci						precision highp float;
877e5c31af7Sopenharmony_ci						precision highp int;
878e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
879e5c31af7Sopenharmony_ci						layout(location = 1, component = 0) in ivec2 in0_0;
880e5c31af7Sopenharmony_ci						layout(location = 1, component = 2) in int in0_1;
881e5c31af7Sopenharmony_ci						layout(location = 1, component = 3) in int in0_2;
882e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 var0;
883e5c31af7Sopenharmony_ci
884e5c31af7Sopenharmony_ci						void main()
885e5c31af7Sopenharmony_ci						{
886e5c31af7Sopenharmony_ci							ivec4 in0 = ivec4(in0_0, in0_1, in0_2);
887e5c31af7Sopenharmony_ci							var0 = in0 + in0;
888e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
889e5c31af7Sopenharmony_ci						}
890e5c31af7Sopenharmony_ci					""
891e5c31af7Sopenharmony_ci					fragment ""
892e5c31af7Sopenharmony_ci						#version 440 core
893e5c31af7Sopenharmony_ci						precision highp float;
894e5c31af7Sopenharmony_ci						precision highp int;
895e5c31af7Sopenharmony_ci						layout(location = 0) flat in ivec4 var0;
896e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 dEQP_FragColor;
897e5c31af7Sopenharmony_ci
898e5c31af7Sopenharmony_ci						void main()
899e5c31af7Sopenharmony_ci						{
900e5c31af7Sopenharmony_ci							ivec4 out0 = var0;
901e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
902e5c31af7Sopenharmony_ci						}
903e5c31af7Sopenharmony_ci					""
904e5c31af7Sopenharmony_ci				end
905e5c31af7Sopenharmony_ci				case as_ivec2_ivec2
906e5c31af7Sopenharmony_ci					version 440 core
907e5c31af7Sopenharmony_ci					desc "Read vertex input (ivec4) as ivec2 ivec2."
908e5c31af7Sopenharmony_ci					output_color ivec4
909e5c31af7Sopenharmony_ci					values
910e5c31af7Sopenharmony_ci					{
911e5c31af7Sopenharmony_ci						input ivec4 in0		= [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ];
912e5c31af7Sopenharmony_ci						output ivec4 out0	= [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ];
913e5c31af7Sopenharmony_ci					}
914e5c31af7Sopenharmony_ci					vertex ""
915e5c31af7Sopenharmony_ci						#version 440 core
916e5c31af7Sopenharmony_ci						precision highp float;
917e5c31af7Sopenharmony_ci						precision highp int;
918e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
919e5c31af7Sopenharmony_ci						layout(location = 1, component = 0) in ivec2 in0_0;
920e5c31af7Sopenharmony_ci						layout(location = 1, component = 2) in ivec2 in0_1;
921e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 var0;
922e5c31af7Sopenharmony_ci
923e5c31af7Sopenharmony_ci						void main()
924e5c31af7Sopenharmony_ci						{
925e5c31af7Sopenharmony_ci							ivec4 in0 = ivec4(in0_0, in0_1);
926e5c31af7Sopenharmony_ci							var0 = in0 + in0;
927e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
928e5c31af7Sopenharmony_ci						}
929e5c31af7Sopenharmony_ci					""
930e5c31af7Sopenharmony_ci					fragment ""
931e5c31af7Sopenharmony_ci						#version 440 core
932e5c31af7Sopenharmony_ci						precision highp float;
933e5c31af7Sopenharmony_ci						precision highp int;
934e5c31af7Sopenharmony_ci						layout(location = 0) flat in ivec4 var0;
935e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 dEQP_FragColor;
936e5c31af7Sopenharmony_ci
937e5c31af7Sopenharmony_ci						void main()
938e5c31af7Sopenharmony_ci						{
939e5c31af7Sopenharmony_ci							ivec4 out0 = var0;
940e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
941e5c31af7Sopenharmony_ci						}
942e5c31af7Sopenharmony_ci					""
943e5c31af7Sopenharmony_ci				end
944e5c31af7Sopenharmony_ci				case as_ivec3_int
945e5c31af7Sopenharmony_ci					version 440 core
946e5c31af7Sopenharmony_ci					desc "Read vertex input (ivec4) as ivec3 int."
947e5c31af7Sopenharmony_ci					output_color ivec4
948e5c31af7Sopenharmony_ci					values
949e5c31af7Sopenharmony_ci					{
950e5c31af7Sopenharmony_ci						input ivec4 in0		= [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ];
951e5c31af7Sopenharmony_ci						output ivec4 out0	= [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ];
952e5c31af7Sopenharmony_ci					}
953e5c31af7Sopenharmony_ci					vertex ""
954e5c31af7Sopenharmony_ci						#version 440 core
955e5c31af7Sopenharmony_ci						precision highp float;
956e5c31af7Sopenharmony_ci						precision highp int;
957e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
958e5c31af7Sopenharmony_ci						layout(location = 1, component = 0) in ivec3 in0_0;
959e5c31af7Sopenharmony_ci						layout(location = 1, component = 3) in int in0_1;
960e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 var0;
961e5c31af7Sopenharmony_ci
962e5c31af7Sopenharmony_ci						void main()
963e5c31af7Sopenharmony_ci						{
964e5c31af7Sopenharmony_ci							ivec4 in0 = ivec4(in0_0, in0_1);
965e5c31af7Sopenharmony_ci							var0 = in0 + in0;
966e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
967e5c31af7Sopenharmony_ci						}
968e5c31af7Sopenharmony_ci					""
969e5c31af7Sopenharmony_ci					fragment ""
970e5c31af7Sopenharmony_ci						#version 440 core
971e5c31af7Sopenharmony_ci						precision highp float;
972e5c31af7Sopenharmony_ci						precision highp int;
973e5c31af7Sopenharmony_ci						layout(location = 0) flat in ivec4 var0;
974e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 dEQP_FragColor;
975e5c31af7Sopenharmony_ci
976e5c31af7Sopenharmony_ci						void main()
977e5c31af7Sopenharmony_ci						{
978e5c31af7Sopenharmony_ci							ivec4 out0 = var0;
979e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
980e5c31af7Sopenharmony_ci						}
981e5c31af7Sopenharmony_ci					""
982e5c31af7Sopenharmony_ci				end
983e5c31af7Sopenharmony_ci			end
984e5c31af7Sopenharmony_ci		end
985e5c31af7Sopenharmony_ci		group vert_out_frag_in "Vertex shader output and fragment shader input"
986e5c31af7Sopenharmony_ci			group vec2 "vec2"
987e5c31af7Sopenharmony_ci				case as_float_float
988e5c31af7Sopenharmony_ci					version 440 core
989e5c31af7Sopenharmony_ci					desc "Write vertex output and read fragment input (vec2) as float float."
990e5c31af7Sopenharmony_ci					output_color vec2
991e5c31af7Sopenharmony_ci					values
992e5c31af7Sopenharmony_ci					{
993e5c31af7Sopenharmony_ci						input vec2 in0		= [ vec2(1.0, 11.0) | vec2(1.0, 9.0) | vec2(13.0, 7.0) | vec2(8.0, 3.0) ];
994e5c31af7Sopenharmony_ci						output vec2 out0	= [ vec2(2.0, 22.0) | vec2(2.0, 18.0) | vec2(26.0, 14.0) | vec2(16.0, 6.0) ];
995e5c31af7Sopenharmony_ci					}
996e5c31af7Sopenharmony_ci					vertex ""
997e5c31af7Sopenharmony_ci						#version 440 core
998e5c31af7Sopenharmony_ci						precision highp float;
999e5c31af7Sopenharmony_ci						precision highp int;
1000e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
1001e5c31af7Sopenharmony_ci						layout(location = 1) in vec2 in0;
1002e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out float var0_0;
1003e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) out float var0_1;
1004e5c31af7Sopenharmony_ci
1005e5c31af7Sopenharmony_ci						void main()
1006e5c31af7Sopenharmony_ci						{
1007e5c31af7Sopenharmony_ci							var0_0 = in0.x + in0.x;
1008e5c31af7Sopenharmony_ci							var0_1 = in0.y + in0.y;
1009e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
1010e5c31af7Sopenharmony_ci						}
1011e5c31af7Sopenharmony_ci					""
1012e5c31af7Sopenharmony_ci					fragment ""
1013e5c31af7Sopenharmony_ci						#version 440 core
1014e5c31af7Sopenharmony_ci						precision highp float;
1015e5c31af7Sopenharmony_ci						precision highp int;
1016e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) in float var0_0;
1017e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) in float var0_1;
1018e5c31af7Sopenharmony_ci						layout(location = 0) out vec2 dEQP_FragColor;
1019e5c31af7Sopenharmony_ci
1020e5c31af7Sopenharmony_ci						void main()
1021e5c31af7Sopenharmony_ci						{
1022e5c31af7Sopenharmony_ci							vec2 var0 = vec2(var0_0, var0_1);
1023e5c31af7Sopenharmony_ci							vec2 out0 = var0;
1024e5c31af7Sopenharmony_ci							out0 /= vec2(255.0);
1025e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
1026e5c31af7Sopenharmony_ci						}
1027e5c31af7Sopenharmony_ci					""
1028e5c31af7Sopenharmony_ci				end
1029e5c31af7Sopenharmony_ci			end
1030e5c31af7Sopenharmony_ci			group vec3 "vec3"
1031e5c31af7Sopenharmony_ci				case as_float_float_float
1032e5c31af7Sopenharmony_ci					version 440 core
1033e5c31af7Sopenharmony_ci					desc "Write vertex output and read fragment input (vec3) as float float float."
1034e5c31af7Sopenharmony_ci					output_color vec3
1035e5c31af7Sopenharmony_ci					values
1036e5c31af7Sopenharmony_ci					{
1037e5c31af7Sopenharmony_ci						input vec3 in0		= [ vec3(6.0, 8.0, 7.0) | vec3(14.0, 10.0, 15.0) | vec3(9.0, 5.0, 4.0) | vec3(7.0, 3.0, 1.0) ];
1038e5c31af7Sopenharmony_ci						output vec3 out0	= [ vec3(12.0, 16.0, 14.0) | vec3(28.0, 20.0, 30.0) | vec3(18.0, 10.0, 8.0) | vec3(14.0, 6.0, 2.0) ];
1039e5c31af7Sopenharmony_ci					}
1040e5c31af7Sopenharmony_ci					vertex ""
1041e5c31af7Sopenharmony_ci						#version 440 core
1042e5c31af7Sopenharmony_ci						precision highp float;
1043e5c31af7Sopenharmony_ci						precision highp int;
1044e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
1045e5c31af7Sopenharmony_ci						layout(location = 1) in vec3 in0;
1046e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out float var0_0;
1047e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) out float var0_1;
1048e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) out float var0_2;
1049e5c31af7Sopenharmony_ci
1050e5c31af7Sopenharmony_ci						void main()
1051e5c31af7Sopenharmony_ci						{
1052e5c31af7Sopenharmony_ci							var0_0 = in0.x + in0.x;
1053e5c31af7Sopenharmony_ci							var0_1 = in0.y + in0.y;
1054e5c31af7Sopenharmony_ci							var0_2 = in0.z + in0.z;
1055e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
1056e5c31af7Sopenharmony_ci						}
1057e5c31af7Sopenharmony_ci					""
1058e5c31af7Sopenharmony_ci					fragment ""
1059e5c31af7Sopenharmony_ci						#version 440 core
1060e5c31af7Sopenharmony_ci						precision highp float;
1061e5c31af7Sopenharmony_ci						precision highp int;
1062e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) in float var0_0;
1063e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) in float var0_1;
1064e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) in float var0_2;
1065e5c31af7Sopenharmony_ci						layout(location = 0) out vec3 dEQP_FragColor;
1066e5c31af7Sopenharmony_ci
1067e5c31af7Sopenharmony_ci						void main()
1068e5c31af7Sopenharmony_ci						{
1069e5c31af7Sopenharmony_ci							vec3 var0 = vec3(var0_0, var0_1, var0_2);
1070e5c31af7Sopenharmony_ci							vec3 out0 = var0;
1071e5c31af7Sopenharmony_ci							out0 /= vec3(31.0, 63.0, 31.0);
1072e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
1073e5c31af7Sopenharmony_ci						}
1074e5c31af7Sopenharmony_ci					""
1075e5c31af7Sopenharmony_ci				end
1076e5c31af7Sopenharmony_ci				case as_float_vec2
1077e5c31af7Sopenharmony_ci					version 440 core
1078e5c31af7Sopenharmony_ci					desc "Write vertex output and read fragment input (vec3) as float vec2."
1079e5c31af7Sopenharmony_ci					output_color vec3
1080e5c31af7Sopenharmony_ci					values
1081e5c31af7Sopenharmony_ci					{
1082e5c31af7Sopenharmony_ci						input vec3 in0		= [ vec3(6.0, 8.0, 7.0) | vec3(14.0, 10.0, 15.0) | vec3(9.0, 5.0, 4.0) | vec3(7.0, 3.0, 1.0) ];
1083e5c31af7Sopenharmony_ci						output vec3 out0	= [ vec3(12.0, 16.0, 14.0) | vec3(28.0, 20.0, 30.0) | vec3(18.0, 10.0, 8.0) | vec3(14.0, 6.0, 2.0) ];
1084e5c31af7Sopenharmony_ci					}
1085e5c31af7Sopenharmony_ci					vertex ""
1086e5c31af7Sopenharmony_ci						#version 440 core
1087e5c31af7Sopenharmony_ci						precision highp float;
1088e5c31af7Sopenharmony_ci						precision highp int;
1089e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
1090e5c31af7Sopenharmony_ci						layout(location = 1) in vec3 in0;
1091e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out float var0_0;
1092e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) out vec2 var0_1;
1093e5c31af7Sopenharmony_ci
1094e5c31af7Sopenharmony_ci						void main()
1095e5c31af7Sopenharmony_ci						{
1096e5c31af7Sopenharmony_ci							var0_0 = in0.x + in0.x;
1097e5c31af7Sopenharmony_ci							var0_1 = in0.yz + in0.yz;
1098e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
1099e5c31af7Sopenharmony_ci						}
1100e5c31af7Sopenharmony_ci					""
1101e5c31af7Sopenharmony_ci					fragment ""
1102e5c31af7Sopenharmony_ci						#version 440 core
1103e5c31af7Sopenharmony_ci						precision highp float;
1104e5c31af7Sopenharmony_ci						precision highp int;
1105e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) in float var0_0;
1106e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) in vec2 var0_1;
1107e5c31af7Sopenharmony_ci						layout(location = 0) out vec3 dEQP_FragColor;
1108e5c31af7Sopenharmony_ci
1109e5c31af7Sopenharmony_ci						void main()
1110e5c31af7Sopenharmony_ci						{
1111e5c31af7Sopenharmony_ci							vec3 var0 = vec3(var0_0, var0_1);
1112e5c31af7Sopenharmony_ci							vec3 out0 = var0;
1113e5c31af7Sopenharmony_ci							out0 /= vec3(31.0, 63.0, 31.0);
1114e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
1115e5c31af7Sopenharmony_ci						}
1116e5c31af7Sopenharmony_ci					""
1117e5c31af7Sopenharmony_ci				end
1118e5c31af7Sopenharmony_ci				case as_vec2_float
1119e5c31af7Sopenharmony_ci					version 440 core
1120e5c31af7Sopenharmony_ci					desc "Write vertex output and read fragment input (vec3) as vec2 float."
1121e5c31af7Sopenharmony_ci					output_color vec3
1122e5c31af7Sopenharmony_ci					values
1123e5c31af7Sopenharmony_ci					{
1124e5c31af7Sopenharmony_ci						input vec3 in0		= [ vec3(6.0, 8.0, 7.0) | vec3(14.0, 10.0, 15.0) | vec3(9.0, 5.0, 4.0) | vec3(7.0, 3.0, 1.0) ];
1125e5c31af7Sopenharmony_ci						output vec3 out0	= [ vec3(12.0, 16.0, 14.0) | vec3(28.0, 20.0, 30.0) | vec3(18.0, 10.0, 8.0) | vec3(14.0, 6.0, 2.0) ];
1126e5c31af7Sopenharmony_ci					}
1127e5c31af7Sopenharmony_ci					vertex ""
1128e5c31af7Sopenharmony_ci						#version 440 core
1129e5c31af7Sopenharmony_ci						precision highp float;
1130e5c31af7Sopenharmony_ci						precision highp int;
1131e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
1132e5c31af7Sopenharmony_ci						layout(location = 1) in vec3 in0;
1133e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out vec2 var0_0;
1134e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) out float var0_1;
1135e5c31af7Sopenharmony_ci
1136e5c31af7Sopenharmony_ci						void main()
1137e5c31af7Sopenharmony_ci						{
1138e5c31af7Sopenharmony_ci							var0_0 = in0.xy + in0.xy;
1139e5c31af7Sopenharmony_ci							var0_1 = in0.z + in0.z;
1140e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
1141e5c31af7Sopenharmony_ci						}
1142e5c31af7Sopenharmony_ci					""
1143e5c31af7Sopenharmony_ci					fragment ""
1144e5c31af7Sopenharmony_ci						#version 440 core
1145e5c31af7Sopenharmony_ci						precision highp float;
1146e5c31af7Sopenharmony_ci						precision highp int;
1147e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) in vec2 var0_0;
1148e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) in float var0_1;
1149e5c31af7Sopenharmony_ci						layout(location = 0) out vec3 dEQP_FragColor;
1150e5c31af7Sopenharmony_ci
1151e5c31af7Sopenharmony_ci						void main()
1152e5c31af7Sopenharmony_ci						{
1153e5c31af7Sopenharmony_ci							vec3 var0 = vec3(var0_0, var0_1);
1154e5c31af7Sopenharmony_ci							vec3 out0 = var0;
1155e5c31af7Sopenharmony_ci							out0 /= vec3(31.0, 63.0, 31.0);
1156e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
1157e5c31af7Sopenharmony_ci						}
1158e5c31af7Sopenharmony_ci					""
1159e5c31af7Sopenharmony_ci				end
1160e5c31af7Sopenharmony_ci			end
1161e5c31af7Sopenharmony_ci			group vec4 "vec4"
1162e5c31af7Sopenharmony_ci				case as_float_float_float_float
1163e5c31af7Sopenharmony_ci					version 440 core
1164e5c31af7Sopenharmony_ci					desc "Write vertex output and read fragment input (vec4) as float float float float."
1165e5c31af7Sopenharmony_ci					output_color vec4
1166e5c31af7Sopenharmony_ci					values
1167e5c31af7Sopenharmony_ci					{
1168e5c31af7Sopenharmony_ci						input vec4 in0		= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
1169e5c31af7Sopenharmony_ci						output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
1170e5c31af7Sopenharmony_ci					}
1171e5c31af7Sopenharmony_ci					vertex ""
1172e5c31af7Sopenharmony_ci						#version 440 core
1173e5c31af7Sopenharmony_ci						precision highp float;
1174e5c31af7Sopenharmony_ci						precision highp int;
1175e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
1176e5c31af7Sopenharmony_ci						layout(location = 1) in vec4 in0;
1177e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out float var0_0;
1178e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) out float var0_1;
1179e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) out float var0_2;
1180e5c31af7Sopenharmony_ci						layout(location = 0, component = 3) out float var0_3;
1181e5c31af7Sopenharmony_ci
1182e5c31af7Sopenharmony_ci						void main()
1183e5c31af7Sopenharmony_ci						{
1184e5c31af7Sopenharmony_ci							var0_0 = in0.x + in0.x;
1185e5c31af7Sopenharmony_ci							var0_1 = in0.y + in0.y;
1186e5c31af7Sopenharmony_ci							var0_2 = in0.z + in0.z;
1187e5c31af7Sopenharmony_ci							var0_3 = in0.w + in0.w;
1188e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
1189e5c31af7Sopenharmony_ci						}
1190e5c31af7Sopenharmony_ci					""
1191e5c31af7Sopenharmony_ci					fragment ""
1192e5c31af7Sopenharmony_ci						#version 440 core
1193e5c31af7Sopenharmony_ci						precision highp float;
1194e5c31af7Sopenharmony_ci						precision highp int;
1195e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) in float var0_0;
1196e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) in float var0_1;
1197e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) in float var0_2;
1198e5c31af7Sopenharmony_ci						layout(location = 0, component = 3) in float var0_3;
1199e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 dEQP_FragColor;
1200e5c31af7Sopenharmony_ci
1201e5c31af7Sopenharmony_ci						void main()
1202e5c31af7Sopenharmony_ci						{
1203e5c31af7Sopenharmony_ci							vec4 var0 = vec4(var0_0, var0_1, var0_2, var0_3);
1204e5c31af7Sopenharmony_ci							vec4 out0 = var0;
1205e5c31af7Sopenharmony_ci							out0 /= vec4(255.0);
1206e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
1207e5c31af7Sopenharmony_ci						}
1208e5c31af7Sopenharmony_ci					""
1209e5c31af7Sopenharmony_ci				end
1210e5c31af7Sopenharmony_ci				case as_float_float_vec2
1211e5c31af7Sopenharmony_ci					version 440 core
1212e5c31af7Sopenharmony_ci					desc "Write vertex output and read fragment input (vec4) as float float vec2."
1213e5c31af7Sopenharmony_ci					output_color vec4
1214e5c31af7Sopenharmony_ci					values
1215e5c31af7Sopenharmony_ci					{
1216e5c31af7Sopenharmony_ci						input vec4 in0		= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
1217e5c31af7Sopenharmony_ci						output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
1218e5c31af7Sopenharmony_ci					}
1219e5c31af7Sopenharmony_ci					vertex ""
1220e5c31af7Sopenharmony_ci						#version 440 core
1221e5c31af7Sopenharmony_ci						precision highp float;
1222e5c31af7Sopenharmony_ci						precision highp int;
1223e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
1224e5c31af7Sopenharmony_ci						layout(location = 1) in vec4 in0;
1225e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out float var0_0;
1226e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) out float var0_1;
1227e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) out vec2 var0_2;
1228e5c31af7Sopenharmony_ci
1229e5c31af7Sopenharmony_ci						void main()
1230e5c31af7Sopenharmony_ci						{
1231e5c31af7Sopenharmony_ci							var0_0 = in0.x + in0.x;
1232e5c31af7Sopenharmony_ci							var0_1 = in0.y + in0.y;
1233e5c31af7Sopenharmony_ci							var0_2 = in0.zw + in0.zw;
1234e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
1235e5c31af7Sopenharmony_ci						}
1236e5c31af7Sopenharmony_ci					""
1237e5c31af7Sopenharmony_ci					fragment ""
1238e5c31af7Sopenharmony_ci						#version 440 core
1239e5c31af7Sopenharmony_ci						precision highp float;
1240e5c31af7Sopenharmony_ci						precision highp int;
1241e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) in float var0_0;
1242e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) in float var0_1;
1243e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) in vec2 var0_2;
1244e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 dEQP_FragColor;
1245e5c31af7Sopenharmony_ci
1246e5c31af7Sopenharmony_ci						void main()
1247e5c31af7Sopenharmony_ci						{
1248e5c31af7Sopenharmony_ci							vec4 var0 = vec4(var0_0, var0_1, var0_2);
1249e5c31af7Sopenharmony_ci							vec4 out0 = var0;
1250e5c31af7Sopenharmony_ci							out0 /= vec4(255.0);
1251e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
1252e5c31af7Sopenharmony_ci						}
1253e5c31af7Sopenharmony_ci					""
1254e5c31af7Sopenharmony_ci				end
1255e5c31af7Sopenharmony_ci				case as_float_vec2_float
1256e5c31af7Sopenharmony_ci					version 440 core
1257e5c31af7Sopenharmony_ci					desc "Write vertex output and read fragment input (vec4) as float vec2 float."
1258e5c31af7Sopenharmony_ci					output_color vec4
1259e5c31af7Sopenharmony_ci					values
1260e5c31af7Sopenharmony_ci					{
1261e5c31af7Sopenharmony_ci						input vec4 in0		= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
1262e5c31af7Sopenharmony_ci						output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
1263e5c31af7Sopenharmony_ci					}
1264e5c31af7Sopenharmony_ci					vertex ""
1265e5c31af7Sopenharmony_ci						#version 440 core
1266e5c31af7Sopenharmony_ci						precision highp float;
1267e5c31af7Sopenharmony_ci						precision highp int;
1268e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
1269e5c31af7Sopenharmony_ci						layout(location = 1) in vec4 in0;
1270e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out float var0_0;
1271e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) out vec2 var0_1;
1272e5c31af7Sopenharmony_ci						layout(location = 0, component = 3) out float var0_2;
1273e5c31af7Sopenharmony_ci
1274e5c31af7Sopenharmony_ci						void main()
1275e5c31af7Sopenharmony_ci						{
1276e5c31af7Sopenharmony_ci							var0_0 = in0.x + in0.x;
1277e5c31af7Sopenharmony_ci							var0_1 = in0.yz + in0.yz;
1278e5c31af7Sopenharmony_ci							var0_2 = in0.w + in0.w;
1279e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
1280e5c31af7Sopenharmony_ci						}
1281e5c31af7Sopenharmony_ci					""
1282e5c31af7Sopenharmony_ci					fragment ""
1283e5c31af7Sopenharmony_ci						#version 440 core
1284e5c31af7Sopenharmony_ci						precision highp float;
1285e5c31af7Sopenharmony_ci						precision highp int;
1286e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) in float var0_0;
1287e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) in vec2 var0_1;
1288e5c31af7Sopenharmony_ci						layout(location = 0, component = 3) in float var0_2;
1289e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 dEQP_FragColor;
1290e5c31af7Sopenharmony_ci
1291e5c31af7Sopenharmony_ci						void main()
1292e5c31af7Sopenharmony_ci						{
1293e5c31af7Sopenharmony_ci							vec4 var0 = vec4(var0_0, var0_1, var0_2);
1294e5c31af7Sopenharmony_ci							vec4 out0 = var0;
1295e5c31af7Sopenharmony_ci							out0 /= vec4(255.0);
1296e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
1297e5c31af7Sopenharmony_ci						}
1298e5c31af7Sopenharmony_ci					""
1299e5c31af7Sopenharmony_ci				end
1300e5c31af7Sopenharmony_ci				case as_float_vec3
1301e5c31af7Sopenharmony_ci					version 440 core
1302e5c31af7Sopenharmony_ci					desc "Write vertex output and read fragment input (vec4) as float vec3."
1303e5c31af7Sopenharmony_ci					output_color vec4
1304e5c31af7Sopenharmony_ci					values
1305e5c31af7Sopenharmony_ci					{
1306e5c31af7Sopenharmony_ci						input vec4 in0		= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
1307e5c31af7Sopenharmony_ci						output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
1308e5c31af7Sopenharmony_ci					}
1309e5c31af7Sopenharmony_ci					vertex ""
1310e5c31af7Sopenharmony_ci						#version 440 core
1311e5c31af7Sopenharmony_ci						precision highp float;
1312e5c31af7Sopenharmony_ci						precision highp int;
1313e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
1314e5c31af7Sopenharmony_ci						layout(location = 1) in vec4 in0;
1315e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out float var0_0;
1316e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) out vec3 var0_1;
1317e5c31af7Sopenharmony_ci
1318e5c31af7Sopenharmony_ci						void main()
1319e5c31af7Sopenharmony_ci						{
1320e5c31af7Sopenharmony_ci							var0_0 = in0.x + in0.x;
1321e5c31af7Sopenharmony_ci							var0_1 = in0.yzw + in0.yzw;
1322e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
1323e5c31af7Sopenharmony_ci						}
1324e5c31af7Sopenharmony_ci					""
1325e5c31af7Sopenharmony_ci					fragment ""
1326e5c31af7Sopenharmony_ci						#version 440 core
1327e5c31af7Sopenharmony_ci						precision highp float;
1328e5c31af7Sopenharmony_ci						precision highp int;
1329e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) in float var0_0;
1330e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) in vec3 var0_1;
1331e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 dEQP_FragColor;
1332e5c31af7Sopenharmony_ci
1333e5c31af7Sopenharmony_ci						void main()
1334e5c31af7Sopenharmony_ci						{
1335e5c31af7Sopenharmony_ci							vec4 var0 = vec4(var0_0, var0_1);
1336e5c31af7Sopenharmony_ci							vec4 out0 = var0;
1337e5c31af7Sopenharmony_ci							out0 /= vec4(255.0);
1338e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
1339e5c31af7Sopenharmony_ci						}
1340e5c31af7Sopenharmony_ci					""
1341e5c31af7Sopenharmony_ci				end
1342e5c31af7Sopenharmony_ci				case as_vec2_float_float
1343e5c31af7Sopenharmony_ci					version 440 core
1344e5c31af7Sopenharmony_ci					desc "Write vertex output and read fragment input (vec4) as vec2 float float."
1345e5c31af7Sopenharmony_ci					output_color vec4
1346e5c31af7Sopenharmony_ci					values
1347e5c31af7Sopenharmony_ci					{
1348e5c31af7Sopenharmony_ci						input vec4 in0		= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
1349e5c31af7Sopenharmony_ci						output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
1350e5c31af7Sopenharmony_ci					}
1351e5c31af7Sopenharmony_ci					vertex ""
1352e5c31af7Sopenharmony_ci						#version 440 core
1353e5c31af7Sopenharmony_ci						precision highp float;
1354e5c31af7Sopenharmony_ci						precision highp int;
1355e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
1356e5c31af7Sopenharmony_ci						layout(location = 1) in vec4 in0;
1357e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out vec2 var0_0;
1358e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) out float var0_1;
1359e5c31af7Sopenharmony_ci						layout(location = 0, component = 3) out float var0_2;
1360e5c31af7Sopenharmony_ci
1361e5c31af7Sopenharmony_ci						void main()
1362e5c31af7Sopenharmony_ci						{
1363e5c31af7Sopenharmony_ci							var0_0 = in0.xy + in0.xy;
1364e5c31af7Sopenharmony_ci							var0_1 = in0.z + in0.z;
1365e5c31af7Sopenharmony_ci							var0_2 = in0.w + in0.w;
1366e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
1367e5c31af7Sopenharmony_ci						}
1368e5c31af7Sopenharmony_ci					""
1369e5c31af7Sopenharmony_ci					fragment ""
1370e5c31af7Sopenharmony_ci						#version 440 core
1371e5c31af7Sopenharmony_ci						precision highp float;
1372e5c31af7Sopenharmony_ci						precision highp int;
1373e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) in vec2 var0_0;
1374e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) in float var0_1;
1375e5c31af7Sopenharmony_ci						layout(location = 0, component = 3) in float var0_2;
1376e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 dEQP_FragColor;
1377e5c31af7Sopenharmony_ci
1378e5c31af7Sopenharmony_ci						void main()
1379e5c31af7Sopenharmony_ci						{
1380e5c31af7Sopenharmony_ci							vec4 var0 = vec4(var0_0, var0_1, var0_2);
1381e5c31af7Sopenharmony_ci							vec4 out0 = var0;
1382e5c31af7Sopenharmony_ci							out0 /= vec4(255.0);
1383e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
1384e5c31af7Sopenharmony_ci						}
1385e5c31af7Sopenharmony_ci					""
1386e5c31af7Sopenharmony_ci				end
1387e5c31af7Sopenharmony_ci				case as_vec2_vec2
1388e5c31af7Sopenharmony_ci					version 440 core
1389e5c31af7Sopenharmony_ci					desc "Write vertex output and read fragment input (vec4) as vec2 vec2."
1390e5c31af7Sopenharmony_ci					output_color vec4
1391e5c31af7Sopenharmony_ci					values
1392e5c31af7Sopenharmony_ci					{
1393e5c31af7Sopenharmony_ci						input vec4 in0		= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
1394e5c31af7Sopenharmony_ci						output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
1395e5c31af7Sopenharmony_ci					}
1396e5c31af7Sopenharmony_ci					vertex ""
1397e5c31af7Sopenharmony_ci						#version 440 core
1398e5c31af7Sopenharmony_ci						precision highp float;
1399e5c31af7Sopenharmony_ci						precision highp int;
1400e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
1401e5c31af7Sopenharmony_ci						layout(location = 1) in vec4 in0;
1402e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out vec2 var0_0;
1403e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) out vec2 var0_1;
1404e5c31af7Sopenharmony_ci
1405e5c31af7Sopenharmony_ci						void main()
1406e5c31af7Sopenharmony_ci						{
1407e5c31af7Sopenharmony_ci							var0_0 = in0.xy + in0.xy;
1408e5c31af7Sopenharmony_ci							var0_1 = in0.zw + in0.zw;
1409e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
1410e5c31af7Sopenharmony_ci						}
1411e5c31af7Sopenharmony_ci					""
1412e5c31af7Sopenharmony_ci					fragment ""
1413e5c31af7Sopenharmony_ci						#version 440 core
1414e5c31af7Sopenharmony_ci						precision highp float;
1415e5c31af7Sopenharmony_ci						precision highp int;
1416e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) in vec2 var0_0;
1417e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) in vec2 var0_1;
1418e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 dEQP_FragColor;
1419e5c31af7Sopenharmony_ci
1420e5c31af7Sopenharmony_ci						void main()
1421e5c31af7Sopenharmony_ci						{
1422e5c31af7Sopenharmony_ci							vec4 var0 = vec4(var0_0, var0_1);
1423e5c31af7Sopenharmony_ci							vec4 out0 = var0;
1424e5c31af7Sopenharmony_ci							out0 /= vec4(255.0);
1425e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
1426e5c31af7Sopenharmony_ci						}
1427e5c31af7Sopenharmony_ci					""
1428e5c31af7Sopenharmony_ci				end
1429e5c31af7Sopenharmony_ci				case as_vec3_float
1430e5c31af7Sopenharmony_ci					version 440 core
1431e5c31af7Sopenharmony_ci					desc "Write vertex output and read fragment input (vec4) as vec3 float."
1432e5c31af7Sopenharmony_ci					output_color vec4
1433e5c31af7Sopenharmony_ci					values
1434e5c31af7Sopenharmony_ci					{
1435e5c31af7Sopenharmony_ci						input vec4 in0		= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
1436e5c31af7Sopenharmony_ci						output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
1437e5c31af7Sopenharmony_ci					}
1438e5c31af7Sopenharmony_ci					vertex ""
1439e5c31af7Sopenharmony_ci						#version 440 core
1440e5c31af7Sopenharmony_ci						precision highp float;
1441e5c31af7Sopenharmony_ci						precision highp int;
1442e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
1443e5c31af7Sopenharmony_ci						layout(location = 1) in vec4 in0;
1444e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out vec3 var0_0;
1445e5c31af7Sopenharmony_ci						layout(location = 0, component = 3) out float var0_1;
1446e5c31af7Sopenharmony_ci
1447e5c31af7Sopenharmony_ci						void main()
1448e5c31af7Sopenharmony_ci						{
1449e5c31af7Sopenharmony_ci							var0_0 = in0.xyz + in0.xyz;
1450e5c31af7Sopenharmony_ci							var0_1 = in0.w + in0.w;
1451e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
1452e5c31af7Sopenharmony_ci						}
1453e5c31af7Sopenharmony_ci					""
1454e5c31af7Sopenharmony_ci					fragment ""
1455e5c31af7Sopenharmony_ci						#version 440 core
1456e5c31af7Sopenharmony_ci						precision highp float;
1457e5c31af7Sopenharmony_ci						precision highp int;
1458e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) in vec3 var0_0;
1459e5c31af7Sopenharmony_ci						layout(location = 0, component = 3) in float var0_1;
1460e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 dEQP_FragColor;
1461e5c31af7Sopenharmony_ci
1462e5c31af7Sopenharmony_ci						void main()
1463e5c31af7Sopenharmony_ci						{
1464e5c31af7Sopenharmony_ci							vec4 var0 = vec4(var0_0, var0_1);
1465e5c31af7Sopenharmony_ci							vec4 out0 = var0;
1466e5c31af7Sopenharmony_ci							out0 /= vec4(255.0);
1467e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
1468e5c31af7Sopenharmony_ci						}
1469e5c31af7Sopenharmony_ci					""
1470e5c31af7Sopenharmony_ci				end
1471e5c31af7Sopenharmony_ci			end
1472e5c31af7Sopenharmony_ci			group ivec2 "ivec2"
1473e5c31af7Sopenharmony_ci				case as_int_int
1474e5c31af7Sopenharmony_ci					version 440 core
1475e5c31af7Sopenharmony_ci					desc "Write vertex output and read fragment input (ivec2) as int int."
1476e5c31af7Sopenharmony_ci					output_color ivec2
1477e5c31af7Sopenharmony_ci					values
1478e5c31af7Sopenharmony_ci					{
1479e5c31af7Sopenharmony_ci						input ivec2 in0		= [ ivec2(7, 13) | ivec2(9, 7) | ivec2(13, 1) | ivec2(15, 11) ];
1480e5c31af7Sopenharmony_ci						output ivec2 out0	= [ ivec2(14, 26) | ivec2(18, 14) | ivec2(26, 2) | ivec2(30, 22) ];
1481e5c31af7Sopenharmony_ci					}
1482e5c31af7Sopenharmony_ci					vertex ""
1483e5c31af7Sopenharmony_ci						#version 440 core
1484e5c31af7Sopenharmony_ci						precision highp float;
1485e5c31af7Sopenharmony_ci						precision highp int;
1486e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
1487e5c31af7Sopenharmony_ci						layout(location = 1) in ivec2 in0;
1488e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out int var0_0;
1489e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) out int var0_1;
1490e5c31af7Sopenharmony_ci
1491e5c31af7Sopenharmony_ci						void main()
1492e5c31af7Sopenharmony_ci						{
1493e5c31af7Sopenharmony_ci							var0_0 = in0.x + in0.x;
1494e5c31af7Sopenharmony_ci							var0_1 = in0.y + in0.y;
1495e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
1496e5c31af7Sopenharmony_ci						}
1497e5c31af7Sopenharmony_ci					""
1498e5c31af7Sopenharmony_ci					fragment ""
1499e5c31af7Sopenharmony_ci						#version 440 core
1500e5c31af7Sopenharmony_ci						precision highp float;
1501e5c31af7Sopenharmony_ci						precision highp int;
1502e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) flat in int var0_0;
1503e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) flat in int var0_1;
1504e5c31af7Sopenharmony_ci						layout(location = 0) out ivec2 dEQP_FragColor;
1505e5c31af7Sopenharmony_ci
1506e5c31af7Sopenharmony_ci						void main()
1507e5c31af7Sopenharmony_ci						{
1508e5c31af7Sopenharmony_ci							ivec2 var0 = ivec2(var0_0, var0_1);
1509e5c31af7Sopenharmony_ci							ivec2 out0 = var0;
1510e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
1511e5c31af7Sopenharmony_ci						}
1512e5c31af7Sopenharmony_ci					""
1513e5c31af7Sopenharmony_ci				end
1514e5c31af7Sopenharmony_ci			end
1515e5c31af7Sopenharmony_ci			group ivec4 "ivec4"
1516e5c31af7Sopenharmony_ci				case as_int_int_int_int
1517e5c31af7Sopenharmony_ci					version 440 core
1518e5c31af7Sopenharmony_ci					desc "Write vertex output and read fragment input (ivec4) as int int int int."
1519e5c31af7Sopenharmony_ci					output_color ivec4
1520e5c31af7Sopenharmony_ci					values
1521e5c31af7Sopenharmony_ci					{
1522e5c31af7Sopenharmony_ci						input ivec4 in0		= [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ];
1523e5c31af7Sopenharmony_ci						output ivec4 out0	= [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ];
1524e5c31af7Sopenharmony_ci					}
1525e5c31af7Sopenharmony_ci					vertex ""
1526e5c31af7Sopenharmony_ci						#version 440 core
1527e5c31af7Sopenharmony_ci						precision highp float;
1528e5c31af7Sopenharmony_ci						precision highp int;
1529e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
1530e5c31af7Sopenharmony_ci						layout(location = 1) in ivec4 in0;
1531e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out int var0_0;
1532e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) out int var0_1;
1533e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) out int var0_2;
1534e5c31af7Sopenharmony_ci						layout(location = 0, component = 3) out int var0_3;
1535e5c31af7Sopenharmony_ci
1536e5c31af7Sopenharmony_ci						void main()
1537e5c31af7Sopenharmony_ci						{
1538e5c31af7Sopenharmony_ci							var0_0 = in0.x + in0.x;
1539e5c31af7Sopenharmony_ci							var0_1 = in0.y + in0.y;
1540e5c31af7Sopenharmony_ci							var0_2 = in0.z + in0.z;
1541e5c31af7Sopenharmony_ci							var0_3 = in0.w + in0.w;
1542e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
1543e5c31af7Sopenharmony_ci						}
1544e5c31af7Sopenharmony_ci					""
1545e5c31af7Sopenharmony_ci					fragment ""
1546e5c31af7Sopenharmony_ci						#version 440 core
1547e5c31af7Sopenharmony_ci						precision highp float;
1548e5c31af7Sopenharmony_ci						precision highp int;
1549e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) flat in int var0_0;
1550e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) flat in int var0_1;
1551e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) flat in int var0_2;
1552e5c31af7Sopenharmony_ci						layout(location = 0, component = 3) flat in int var0_3;
1553e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 dEQP_FragColor;
1554e5c31af7Sopenharmony_ci
1555e5c31af7Sopenharmony_ci						void main()
1556e5c31af7Sopenharmony_ci						{
1557e5c31af7Sopenharmony_ci							ivec4 var0 = ivec4(var0_0, var0_1, var0_2, var0_3);
1558e5c31af7Sopenharmony_ci							ivec4 out0 = var0;
1559e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
1560e5c31af7Sopenharmony_ci						}
1561e5c31af7Sopenharmony_ci					""
1562e5c31af7Sopenharmony_ci				end
1563e5c31af7Sopenharmony_ci				case as_int_int_ivec2
1564e5c31af7Sopenharmony_ci					version 440 core
1565e5c31af7Sopenharmony_ci					desc "Write vertex output and read fragment input (ivec4) as int int ivec2."
1566e5c31af7Sopenharmony_ci					output_color ivec4
1567e5c31af7Sopenharmony_ci					values
1568e5c31af7Sopenharmony_ci					{
1569e5c31af7Sopenharmony_ci						input ivec4 in0		= [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ];
1570e5c31af7Sopenharmony_ci						output ivec4 out0	= [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ];
1571e5c31af7Sopenharmony_ci					}
1572e5c31af7Sopenharmony_ci					vertex ""
1573e5c31af7Sopenharmony_ci						#version 440 core
1574e5c31af7Sopenharmony_ci						precision highp float;
1575e5c31af7Sopenharmony_ci						precision highp int;
1576e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
1577e5c31af7Sopenharmony_ci						layout(location = 1) in ivec4 in0;
1578e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out int var0_0;
1579e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) out int var0_1;
1580e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) out ivec2 var0_2;
1581e5c31af7Sopenharmony_ci
1582e5c31af7Sopenharmony_ci						void main()
1583e5c31af7Sopenharmony_ci						{
1584e5c31af7Sopenharmony_ci							var0_0 = in0.x + in0.x;
1585e5c31af7Sopenharmony_ci							var0_1 = in0.y + in0.y;
1586e5c31af7Sopenharmony_ci							var0_2 = in0.zw + in0.zw;
1587e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
1588e5c31af7Sopenharmony_ci						}
1589e5c31af7Sopenharmony_ci					""
1590e5c31af7Sopenharmony_ci					fragment ""
1591e5c31af7Sopenharmony_ci						#version 440 core
1592e5c31af7Sopenharmony_ci						precision highp float;
1593e5c31af7Sopenharmony_ci						precision highp int;
1594e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) flat in int var0_0;
1595e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) flat in int var0_1;
1596e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) flat in ivec2 var0_2;
1597e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 dEQP_FragColor;
1598e5c31af7Sopenharmony_ci
1599e5c31af7Sopenharmony_ci						void main()
1600e5c31af7Sopenharmony_ci						{
1601e5c31af7Sopenharmony_ci							ivec4 var0 = ivec4(var0_0, var0_1, var0_2);
1602e5c31af7Sopenharmony_ci							ivec4 out0 = var0;
1603e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
1604e5c31af7Sopenharmony_ci						}
1605e5c31af7Sopenharmony_ci					""
1606e5c31af7Sopenharmony_ci				end
1607e5c31af7Sopenharmony_ci				case as_int_ivec2_int
1608e5c31af7Sopenharmony_ci					version 440 core
1609e5c31af7Sopenharmony_ci					desc "Write vertex output and read fragment input (ivec4) as int ivec2 int."
1610e5c31af7Sopenharmony_ci					output_color ivec4
1611e5c31af7Sopenharmony_ci					values
1612e5c31af7Sopenharmony_ci					{
1613e5c31af7Sopenharmony_ci						input ivec4 in0		= [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ];
1614e5c31af7Sopenharmony_ci						output ivec4 out0	= [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ];
1615e5c31af7Sopenharmony_ci					}
1616e5c31af7Sopenharmony_ci					vertex ""
1617e5c31af7Sopenharmony_ci						#version 440 core
1618e5c31af7Sopenharmony_ci						precision highp float;
1619e5c31af7Sopenharmony_ci						precision highp int;
1620e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
1621e5c31af7Sopenharmony_ci						layout(location = 1) in ivec4 in0;
1622e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out int var0_0;
1623e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) out ivec2 var0_1;
1624e5c31af7Sopenharmony_ci						layout(location = 0, component = 3) out int var0_2;
1625e5c31af7Sopenharmony_ci
1626e5c31af7Sopenharmony_ci						void main()
1627e5c31af7Sopenharmony_ci						{
1628e5c31af7Sopenharmony_ci							var0_0 = in0.x + in0.x;
1629e5c31af7Sopenharmony_ci							var0_1 = in0.yz + in0.yz;
1630e5c31af7Sopenharmony_ci							var0_2 = in0.w + in0.w;
1631e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
1632e5c31af7Sopenharmony_ci						}
1633e5c31af7Sopenharmony_ci					""
1634e5c31af7Sopenharmony_ci					fragment ""
1635e5c31af7Sopenharmony_ci						#version 440 core
1636e5c31af7Sopenharmony_ci						precision highp float;
1637e5c31af7Sopenharmony_ci						precision highp int;
1638e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) flat in int var0_0;
1639e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) flat in ivec2 var0_1;
1640e5c31af7Sopenharmony_ci						layout(location = 0, component = 3) flat in int var0_2;
1641e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 dEQP_FragColor;
1642e5c31af7Sopenharmony_ci
1643e5c31af7Sopenharmony_ci						void main()
1644e5c31af7Sopenharmony_ci						{
1645e5c31af7Sopenharmony_ci							ivec4 var0 = ivec4(var0_0, var0_1, var0_2);
1646e5c31af7Sopenharmony_ci							ivec4 out0 = var0;
1647e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
1648e5c31af7Sopenharmony_ci						}
1649e5c31af7Sopenharmony_ci					""
1650e5c31af7Sopenharmony_ci				end
1651e5c31af7Sopenharmony_ci				case as_int_ivec3
1652e5c31af7Sopenharmony_ci					version 440 core
1653e5c31af7Sopenharmony_ci					desc "Write vertex output and read fragment input (ivec4) as int ivec3."
1654e5c31af7Sopenharmony_ci					output_color ivec4
1655e5c31af7Sopenharmony_ci					values
1656e5c31af7Sopenharmony_ci					{
1657e5c31af7Sopenharmony_ci						input ivec4 in0		= [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ];
1658e5c31af7Sopenharmony_ci						output ivec4 out0	= [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ];
1659e5c31af7Sopenharmony_ci					}
1660e5c31af7Sopenharmony_ci					vertex ""
1661e5c31af7Sopenharmony_ci						#version 440 core
1662e5c31af7Sopenharmony_ci						precision highp float;
1663e5c31af7Sopenharmony_ci						precision highp int;
1664e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
1665e5c31af7Sopenharmony_ci						layout(location = 1) in ivec4 in0;
1666e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out int var0_0;
1667e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) out ivec3 var0_1;
1668e5c31af7Sopenharmony_ci
1669e5c31af7Sopenharmony_ci						void main()
1670e5c31af7Sopenharmony_ci						{
1671e5c31af7Sopenharmony_ci							var0_0 = in0.x + in0.x;
1672e5c31af7Sopenharmony_ci							var0_1 = in0.yzw + in0.yzw;
1673e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
1674e5c31af7Sopenharmony_ci						}
1675e5c31af7Sopenharmony_ci					""
1676e5c31af7Sopenharmony_ci					fragment ""
1677e5c31af7Sopenharmony_ci						#version 440 core
1678e5c31af7Sopenharmony_ci						precision highp float;
1679e5c31af7Sopenharmony_ci						precision highp int;
1680e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) flat in int var0_0;
1681e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) flat in ivec3 var0_1;
1682e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 dEQP_FragColor;
1683e5c31af7Sopenharmony_ci
1684e5c31af7Sopenharmony_ci						void main()
1685e5c31af7Sopenharmony_ci						{
1686e5c31af7Sopenharmony_ci							ivec4 var0 = ivec4(var0_0, var0_1);
1687e5c31af7Sopenharmony_ci							ivec4 out0 = var0;
1688e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
1689e5c31af7Sopenharmony_ci						}
1690e5c31af7Sopenharmony_ci					""
1691e5c31af7Sopenharmony_ci				end
1692e5c31af7Sopenharmony_ci				case as_ivec2_int_int
1693e5c31af7Sopenharmony_ci					version 440 core
1694e5c31af7Sopenharmony_ci					desc "Write vertex output and read fragment input (ivec4) as ivec2 int int."
1695e5c31af7Sopenharmony_ci					output_color ivec4
1696e5c31af7Sopenharmony_ci					values
1697e5c31af7Sopenharmony_ci					{
1698e5c31af7Sopenharmony_ci						input ivec4 in0		= [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ];
1699e5c31af7Sopenharmony_ci						output ivec4 out0	= [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ];
1700e5c31af7Sopenharmony_ci					}
1701e5c31af7Sopenharmony_ci					vertex ""
1702e5c31af7Sopenharmony_ci						#version 440 core
1703e5c31af7Sopenharmony_ci						precision highp float;
1704e5c31af7Sopenharmony_ci						precision highp int;
1705e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
1706e5c31af7Sopenharmony_ci						layout(location = 1) in ivec4 in0;
1707e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out ivec2 var0_0;
1708e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) out int var0_1;
1709e5c31af7Sopenharmony_ci						layout(location = 0, component = 3) out int var0_2;
1710e5c31af7Sopenharmony_ci
1711e5c31af7Sopenharmony_ci						void main()
1712e5c31af7Sopenharmony_ci						{
1713e5c31af7Sopenharmony_ci							var0_0 = in0.xy + in0.xy;
1714e5c31af7Sopenharmony_ci							var0_1 = in0.z + in0.z;
1715e5c31af7Sopenharmony_ci							var0_2 = in0.w + in0.w;
1716e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
1717e5c31af7Sopenharmony_ci						}
1718e5c31af7Sopenharmony_ci					""
1719e5c31af7Sopenharmony_ci					fragment ""
1720e5c31af7Sopenharmony_ci						#version 440 core
1721e5c31af7Sopenharmony_ci						precision highp float;
1722e5c31af7Sopenharmony_ci						precision highp int;
1723e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) flat in ivec2 var0_0;
1724e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) flat in int var0_1;
1725e5c31af7Sopenharmony_ci						layout(location = 0, component = 3) flat in int var0_2;
1726e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 dEQP_FragColor;
1727e5c31af7Sopenharmony_ci
1728e5c31af7Sopenharmony_ci						void main()
1729e5c31af7Sopenharmony_ci						{
1730e5c31af7Sopenharmony_ci							ivec4 var0 = ivec4(var0_0, var0_1, var0_2);
1731e5c31af7Sopenharmony_ci							ivec4 out0 = var0;
1732e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
1733e5c31af7Sopenharmony_ci						}
1734e5c31af7Sopenharmony_ci					""
1735e5c31af7Sopenharmony_ci				end
1736e5c31af7Sopenharmony_ci				case as_ivec2_ivec2
1737e5c31af7Sopenharmony_ci					version 440 core
1738e5c31af7Sopenharmony_ci					desc "Write vertex output and read fragment input (ivec4) as ivec2 ivec2."
1739e5c31af7Sopenharmony_ci					output_color ivec4
1740e5c31af7Sopenharmony_ci					values
1741e5c31af7Sopenharmony_ci					{
1742e5c31af7Sopenharmony_ci						input ivec4 in0		= [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ];
1743e5c31af7Sopenharmony_ci						output ivec4 out0	= [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ];
1744e5c31af7Sopenharmony_ci					}
1745e5c31af7Sopenharmony_ci					vertex ""
1746e5c31af7Sopenharmony_ci						#version 440 core
1747e5c31af7Sopenharmony_ci						precision highp float;
1748e5c31af7Sopenharmony_ci						precision highp int;
1749e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
1750e5c31af7Sopenharmony_ci						layout(location = 1) in ivec4 in0;
1751e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out ivec2 var0_0;
1752e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) out ivec2 var0_1;
1753e5c31af7Sopenharmony_ci
1754e5c31af7Sopenharmony_ci						void main()
1755e5c31af7Sopenharmony_ci						{
1756e5c31af7Sopenharmony_ci							var0_0 = in0.xy + in0.xy;
1757e5c31af7Sopenharmony_ci							var0_1 = in0.zw + in0.zw;
1758e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
1759e5c31af7Sopenharmony_ci						}
1760e5c31af7Sopenharmony_ci					""
1761e5c31af7Sopenharmony_ci					fragment ""
1762e5c31af7Sopenharmony_ci						#version 440 core
1763e5c31af7Sopenharmony_ci						precision highp float;
1764e5c31af7Sopenharmony_ci						precision highp int;
1765e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) flat in ivec2 var0_0;
1766e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) flat in ivec2 var0_1;
1767e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 dEQP_FragColor;
1768e5c31af7Sopenharmony_ci
1769e5c31af7Sopenharmony_ci						void main()
1770e5c31af7Sopenharmony_ci						{
1771e5c31af7Sopenharmony_ci							ivec4 var0 = ivec4(var0_0, var0_1);
1772e5c31af7Sopenharmony_ci							ivec4 out0 = var0;
1773e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
1774e5c31af7Sopenharmony_ci						}
1775e5c31af7Sopenharmony_ci					""
1776e5c31af7Sopenharmony_ci				end
1777e5c31af7Sopenharmony_ci				case as_ivec3_int
1778e5c31af7Sopenharmony_ci					version 440 core
1779e5c31af7Sopenharmony_ci					desc "Write vertex output and read fragment input (ivec4) as ivec3 int."
1780e5c31af7Sopenharmony_ci					output_color ivec4
1781e5c31af7Sopenharmony_ci					values
1782e5c31af7Sopenharmony_ci					{
1783e5c31af7Sopenharmony_ci						input ivec4 in0		= [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ];
1784e5c31af7Sopenharmony_ci						output ivec4 out0	= [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ];
1785e5c31af7Sopenharmony_ci					}
1786e5c31af7Sopenharmony_ci					vertex ""
1787e5c31af7Sopenharmony_ci						#version 440 core
1788e5c31af7Sopenharmony_ci						precision highp float;
1789e5c31af7Sopenharmony_ci						precision highp int;
1790e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
1791e5c31af7Sopenharmony_ci						layout(location = 1) in ivec4 in0;
1792e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out ivec3 var0_0;
1793e5c31af7Sopenharmony_ci						layout(location = 0, component = 3) out int var0_1;
1794e5c31af7Sopenharmony_ci
1795e5c31af7Sopenharmony_ci						void main()
1796e5c31af7Sopenharmony_ci						{
1797e5c31af7Sopenharmony_ci							var0_0 = in0.xyz + in0.xyz;
1798e5c31af7Sopenharmony_ci							var0_1 = in0.w + in0.w;
1799e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
1800e5c31af7Sopenharmony_ci						}
1801e5c31af7Sopenharmony_ci					""
1802e5c31af7Sopenharmony_ci					fragment ""
1803e5c31af7Sopenharmony_ci						#version 440 core
1804e5c31af7Sopenharmony_ci						precision highp float;
1805e5c31af7Sopenharmony_ci						precision highp int;
1806e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) flat in ivec3 var0_0;
1807e5c31af7Sopenharmony_ci						layout(location = 0, component = 3) flat in int var0_1;
1808e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 dEQP_FragColor;
1809e5c31af7Sopenharmony_ci
1810e5c31af7Sopenharmony_ci						void main()
1811e5c31af7Sopenharmony_ci						{
1812e5c31af7Sopenharmony_ci							ivec4 var0 = ivec4(var0_0, var0_1);
1813e5c31af7Sopenharmony_ci							ivec4 out0 = var0;
1814e5c31af7Sopenharmony_ci							dEQP_FragColor = out0;
1815e5c31af7Sopenharmony_ci						}
1816e5c31af7Sopenharmony_ci					""
1817e5c31af7Sopenharmony_ci				end
1818e5c31af7Sopenharmony_ci			end
1819e5c31af7Sopenharmony_ci		end
1820e5c31af7Sopenharmony_ci		group frag_out "Fragment shader output"
1821e5c31af7Sopenharmony_ci			group vec2 "vec2"
1822e5c31af7Sopenharmony_ci				case as_float_float
1823e5c31af7Sopenharmony_ci					version 440 core
1824e5c31af7Sopenharmony_ci					desc "Write fragment output (vec2) as float float."
1825e5c31af7Sopenharmony_ci					output_color vec2
1826e5c31af7Sopenharmony_ci					values
1827e5c31af7Sopenharmony_ci					{
1828e5c31af7Sopenharmony_ci						input vec2 in0		= [ vec2(1.0, 11.0) | vec2(1.0, 9.0) | vec2(13.0, 7.0) | vec2(8.0, 3.0) ];
1829e5c31af7Sopenharmony_ci						output vec2 out0	= [ vec2(2.0, 22.0) | vec2(2.0, 18.0) | vec2(26.0, 14.0) | vec2(16.0, 6.0) ];
1830e5c31af7Sopenharmony_ci					}
1831e5c31af7Sopenharmony_ci					vertex ""
1832e5c31af7Sopenharmony_ci						#version 440 core
1833e5c31af7Sopenharmony_ci						precision highp float;
1834e5c31af7Sopenharmony_ci						precision highp int;
1835e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
1836e5c31af7Sopenharmony_ci						layout(location = 1) in vec2 in0;
1837e5c31af7Sopenharmony_ci						layout(location = 0) out vec2 var0;
1838e5c31af7Sopenharmony_ci
1839e5c31af7Sopenharmony_ci						void main()
1840e5c31af7Sopenharmony_ci						{
1841e5c31af7Sopenharmony_ci							var0 = in0 + in0;
1842e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
1843e5c31af7Sopenharmony_ci						}
1844e5c31af7Sopenharmony_ci					""
1845e5c31af7Sopenharmony_ci					fragment ""
1846e5c31af7Sopenharmony_ci						#version 440 core
1847e5c31af7Sopenharmony_ci						precision highp float;
1848e5c31af7Sopenharmony_ci						precision highp int;
1849e5c31af7Sopenharmony_ci						layout(location = 0) in vec2 var0;
1850e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out float dEQP_FragColor_0;
1851e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) out float dEQP_FragColor_1;
1852e5c31af7Sopenharmony_ci
1853e5c31af7Sopenharmony_ci						void main()
1854e5c31af7Sopenharmony_ci						{
1855e5c31af7Sopenharmony_ci							vec2 out0 = var0;
1856e5c31af7Sopenharmony_ci							out0 /= vec2(255.0);
1857e5c31af7Sopenharmony_ci							dEQP_FragColor_0 = out0.x;
1858e5c31af7Sopenharmony_ci							dEQP_FragColor_1 = out0.y;
1859e5c31af7Sopenharmony_ci						}
1860e5c31af7Sopenharmony_ci					""
1861e5c31af7Sopenharmony_ci				end
1862e5c31af7Sopenharmony_ci			end
1863e5c31af7Sopenharmony_ci			group vec3 "vec3"
1864e5c31af7Sopenharmony_ci				case as_float_float_float
1865e5c31af7Sopenharmony_ci					version 440 core
1866e5c31af7Sopenharmony_ci					desc "Write fragment output (vec3) as float float float."
1867e5c31af7Sopenharmony_ci					output_color vec3
1868e5c31af7Sopenharmony_ci					values
1869e5c31af7Sopenharmony_ci					{
1870e5c31af7Sopenharmony_ci						input vec3 in0		= [ vec3(6.0, 8.0, 7.0) | vec3(14.0, 10.0, 15.0) | vec3(9.0, 5.0, 4.0) | vec3(7.0, 3.0, 1.0) ];
1871e5c31af7Sopenharmony_ci						output vec3 out0	= [ vec3(12.0, 16.0, 14.0) | vec3(28.0, 20.0, 30.0) | vec3(18.0, 10.0, 8.0) | vec3(14.0, 6.0, 2.0) ];
1872e5c31af7Sopenharmony_ci					}
1873e5c31af7Sopenharmony_ci					vertex ""
1874e5c31af7Sopenharmony_ci						#version 440 core
1875e5c31af7Sopenharmony_ci						precision highp float;
1876e5c31af7Sopenharmony_ci						precision highp int;
1877e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
1878e5c31af7Sopenharmony_ci						layout(location = 1) in vec3 in0;
1879e5c31af7Sopenharmony_ci						layout(location = 0) out vec3 var0;
1880e5c31af7Sopenharmony_ci
1881e5c31af7Sopenharmony_ci						void main()
1882e5c31af7Sopenharmony_ci						{
1883e5c31af7Sopenharmony_ci							var0 = in0 + in0;
1884e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
1885e5c31af7Sopenharmony_ci						}
1886e5c31af7Sopenharmony_ci					""
1887e5c31af7Sopenharmony_ci					fragment ""
1888e5c31af7Sopenharmony_ci						#version 440 core
1889e5c31af7Sopenharmony_ci						precision highp float;
1890e5c31af7Sopenharmony_ci						precision highp int;
1891e5c31af7Sopenharmony_ci						layout(location = 0) in vec3 var0;
1892e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out float dEQP_FragColor_0;
1893e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) out float dEQP_FragColor_1;
1894e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) out float dEQP_FragColor_2;
1895e5c31af7Sopenharmony_ci
1896e5c31af7Sopenharmony_ci						void main()
1897e5c31af7Sopenharmony_ci						{
1898e5c31af7Sopenharmony_ci							vec3 out0 = var0;
1899e5c31af7Sopenharmony_ci							out0 /= vec3(31.0, 63.0, 31.0);
1900e5c31af7Sopenharmony_ci							dEQP_FragColor_0 = out0.x;
1901e5c31af7Sopenharmony_ci							dEQP_FragColor_1 = out0.y;
1902e5c31af7Sopenharmony_ci							dEQP_FragColor_2 = out0.z;
1903e5c31af7Sopenharmony_ci						}
1904e5c31af7Sopenharmony_ci					""
1905e5c31af7Sopenharmony_ci				end
1906e5c31af7Sopenharmony_ci				case as_float_vec2
1907e5c31af7Sopenharmony_ci					version 440 core
1908e5c31af7Sopenharmony_ci					desc "Write fragment output (vec3) as float vec2."
1909e5c31af7Sopenharmony_ci					output_color vec3
1910e5c31af7Sopenharmony_ci					values
1911e5c31af7Sopenharmony_ci					{
1912e5c31af7Sopenharmony_ci						input vec3 in0		= [ vec3(6.0, 8.0, 7.0) | vec3(14.0, 10.0, 15.0) | vec3(9.0, 5.0, 4.0) | vec3(7.0, 3.0, 1.0) ];
1913e5c31af7Sopenharmony_ci						output vec3 out0	= [ vec3(12.0, 16.0, 14.0) | vec3(28.0, 20.0, 30.0) | vec3(18.0, 10.0, 8.0) | vec3(14.0, 6.0, 2.0) ];
1914e5c31af7Sopenharmony_ci					}
1915e5c31af7Sopenharmony_ci					vertex ""
1916e5c31af7Sopenharmony_ci						#version 440 core
1917e5c31af7Sopenharmony_ci						precision highp float;
1918e5c31af7Sopenharmony_ci						precision highp int;
1919e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
1920e5c31af7Sopenharmony_ci						layout(location = 1) in vec3 in0;
1921e5c31af7Sopenharmony_ci						layout(location = 0) out vec3 var0;
1922e5c31af7Sopenharmony_ci
1923e5c31af7Sopenharmony_ci						void main()
1924e5c31af7Sopenharmony_ci						{
1925e5c31af7Sopenharmony_ci							var0 = in0 + in0;
1926e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
1927e5c31af7Sopenharmony_ci						}
1928e5c31af7Sopenharmony_ci					""
1929e5c31af7Sopenharmony_ci					fragment ""
1930e5c31af7Sopenharmony_ci						#version 440 core
1931e5c31af7Sopenharmony_ci						precision highp float;
1932e5c31af7Sopenharmony_ci						precision highp int;
1933e5c31af7Sopenharmony_ci						layout(location = 0) in vec3 var0;
1934e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out float dEQP_FragColor_0;
1935e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) out vec2 dEQP_FragColor_1;
1936e5c31af7Sopenharmony_ci
1937e5c31af7Sopenharmony_ci						void main()
1938e5c31af7Sopenharmony_ci						{
1939e5c31af7Sopenharmony_ci							vec3 out0 = var0;
1940e5c31af7Sopenharmony_ci							out0 /= vec3(31.0, 63.0, 31.0);
1941e5c31af7Sopenharmony_ci							dEQP_FragColor_0 = out0.x;
1942e5c31af7Sopenharmony_ci							dEQP_FragColor_1 = out0.yz;
1943e5c31af7Sopenharmony_ci						}
1944e5c31af7Sopenharmony_ci					""
1945e5c31af7Sopenharmony_ci				end
1946e5c31af7Sopenharmony_ci				case as_vec2_float
1947e5c31af7Sopenharmony_ci					version 440 core
1948e5c31af7Sopenharmony_ci					desc "Write fragment output (vec3) as vec2 float."
1949e5c31af7Sopenharmony_ci					output_color vec3
1950e5c31af7Sopenharmony_ci					values
1951e5c31af7Sopenharmony_ci					{
1952e5c31af7Sopenharmony_ci						input vec3 in0		= [ vec3(6.0, 8.0, 7.0) | vec3(14.0, 10.0, 15.0) | vec3(9.0, 5.0, 4.0) | vec3(7.0, 3.0, 1.0) ];
1953e5c31af7Sopenharmony_ci						output vec3 out0	= [ vec3(12.0, 16.0, 14.0) | vec3(28.0, 20.0, 30.0) | vec3(18.0, 10.0, 8.0) | vec3(14.0, 6.0, 2.0) ];
1954e5c31af7Sopenharmony_ci					}
1955e5c31af7Sopenharmony_ci					vertex ""
1956e5c31af7Sopenharmony_ci						#version 440 core
1957e5c31af7Sopenharmony_ci						precision highp float;
1958e5c31af7Sopenharmony_ci						precision highp int;
1959e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
1960e5c31af7Sopenharmony_ci						layout(location = 1) in vec3 in0;
1961e5c31af7Sopenharmony_ci						layout(location = 0) out vec3 var0;
1962e5c31af7Sopenharmony_ci
1963e5c31af7Sopenharmony_ci						void main()
1964e5c31af7Sopenharmony_ci						{
1965e5c31af7Sopenharmony_ci							var0 = in0 + in0;
1966e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
1967e5c31af7Sopenharmony_ci						}
1968e5c31af7Sopenharmony_ci					""
1969e5c31af7Sopenharmony_ci					fragment ""
1970e5c31af7Sopenharmony_ci						#version 440 core
1971e5c31af7Sopenharmony_ci						precision highp float;
1972e5c31af7Sopenharmony_ci						precision highp int;
1973e5c31af7Sopenharmony_ci						layout(location = 0) in vec3 var0;
1974e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out vec2 dEQP_FragColor_0;
1975e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) out float dEQP_FragColor_1;
1976e5c31af7Sopenharmony_ci
1977e5c31af7Sopenharmony_ci						void main()
1978e5c31af7Sopenharmony_ci						{
1979e5c31af7Sopenharmony_ci							vec3 out0 = var0;
1980e5c31af7Sopenharmony_ci							out0 /= vec3(31.0, 63.0, 31.0);
1981e5c31af7Sopenharmony_ci							dEQP_FragColor_0 = out0.xy;
1982e5c31af7Sopenharmony_ci							dEQP_FragColor_1 = out0.z;
1983e5c31af7Sopenharmony_ci						}
1984e5c31af7Sopenharmony_ci					""
1985e5c31af7Sopenharmony_ci				end
1986e5c31af7Sopenharmony_ci			end
1987e5c31af7Sopenharmony_ci            group two_vec4 "two_vec4"
1988e5c31af7Sopenharmony_ci                group array_writes "array_writes"
1989e5c31af7Sopenharmony_ci                    case as_float_vec3-2_float
1990e5c31af7Sopenharmony_ci                        version 440 core
1991e5c31af7Sopenharmony_ci                        desc "Write fragment output 0 as float and vec3, output 1 as float and vec3"
1992e5c31af7Sopenharmony_ci                        output_color vec4
1993e5c31af7Sopenharmony_ci
1994e5c31af7Sopenharmony_ci                        values
1995e5c31af7Sopenharmony_ci                        {
1996e5c31af7Sopenharmony_ci                            input vec4 in0	= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
1997e5c31af7Sopenharmony_ci                            output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
1998e5c31af7Sopenharmony_ci                            output vec4 out1	= [ vec4(52.0, 8.0, 44.0, 4.0) | vec4(16.0, 52.0, 32.0, 12.0) | vec4(28.0, 20.0, 4.0, 48.0) | vec4(56.0, 60.0, 44.0, 4.0) ];
1999e5c31af7Sopenharmony_ci                        }
2000e5c31af7Sopenharmony_ci                        vertex ""
2001e5c31af7Sopenharmony_ci                            #version 440 core
2002e5c31af7Sopenharmony_ci                            precision highp float;
2003e5c31af7Sopenharmony_ci                            precision highp int;
2004e5c31af7Sopenharmony_ci                            layout(location = 0) in vec4 dEQP_Position;
2005e5c31af7Sopenharmony_ci                            layout(location = 1) in vec4 in0;
2006e5c31af7Sopenharmony_ci                            layout(location = 0) out vec4 var0;
2007e5c31af7Sopenharmony_ci                            layout(location = 1) out vec4 var1;
2008e5c31af7Sopenharmony_ci
2009e5c31af7Sopenharmony_ci                            void main()
2010e5c31af7Sopenharmony_ci                            {
2011e5c31af7Sopenharmony_ci                                var0 = in0 + in0;
2012e5c31af7Sopenharmony_ci                                var1 = in0 + in0 + in0 + in0;
2013e5c31af7Sopenharmony_ci                                ${VERTEX_OUTPUT}
2014e5c31af7Sopenharmony_ci                            }
2015e5c31af7Sopenharmony_ci                        ""
2016e5c31af7Sopenharmony_ci                        fragment ""
2017e5c31af7Sopenharmony_ci                            #version 440 core
2018e5c31af7Sopenharmony_ci                            precision highp float;
2019e5c31af7Sopenharmony_ci                            precision highp int;
2020e5c31af7Sopenharmony_ci                            layout(location = 0) in vec4 var0;
2021e5c31af7Sopenharmony_ci                            layout(location = 1) in vec4 var1;
2022e5c31af7Sopenharmony_ci                            layout(location = 0, component = 0) out float dEQP_FragColor_0_0;
2023e5c31af7Sopenharmony_ci                            layout(location = 0, component = 1) out vec3  dEQP_FragColor_0_1[2];
2024e5c31af7Sopenharmony_ci                            layout(location = 1, component = 0) out float dEQP_FragColor_1_0;
2025e5c31af7Sopenharmony_ci                            void main()
2026e5c31af7Sopenharmony_ci                            {
2027e5c31af7Sopenharmony_ci                                vec4 out0 = var0;
2028e5c31af7Sopenharmony_ci                                out0 /= vec4(255.0);
2029e5c31af7Sopenharmony_ci                                dEQP_FragColor_0_0 = out0.x;
2030e5c31af7Sopenharmony_ci                                dEQP_FragColor_0_1[0] = out0.yzw;
2031e5c31af7Sopenharmony_ci
2032e5c31af7Sopenharmony_ci                                vec4 out1 = var1;
2033e5c31af7Sopenharmony_ci                                out1 /= vec4(255.0);
2034e5c31af7Sopenharmony_ci                                dEQP_FragColor_1_0 = out1.x;
2035e5c31af7Sopenharmony_ci                                dEQP_FragColor_0_1[1] = out1.yzw;
2036e5c31af7Sopenharmony_ci                            }
2037e5c31af7Sopenharmony_ci                        ""
2038e5c31af7Sopenharmony_ci                    end
2039e5c31af7Sopenharmony_ci                    case as_vec3-2_float_float
2040e5c31af7Sopenharmony_ci                        version 440 core
2041e5c31af7Sopenharmony_ci                        desc "Write fragment output 0 as vec3 and float, output 1 as vec3 and float."
2042e5c31af7Sopenharmony_ci                        output_color vec4
2043e5c31af7Sopenharmony_ci
2044e5c31af7Sopenharmony_ci                        values
2045e5c31af7Sopenharmony_ci                        {
2046e5c31af7Sopenharmony_ci                            input vec4 in0	= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
2047e5c31af7Sopenharmony_ci                            output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
2048e5c31af7Sopenharmony_ci                            output vec4 out1	= [ vec4(52.0, 8.0, 44.0, 4.0) | vec4(16.0, 52.0, 32.0, 12.0) | vec4(28.0, 20.0, 4.0, 48.0) | vec4(56.0, 60.0, 44.0, 4.0) ];
2049e5c31af7Sopenharmony_ci                        }
2050e5c31af7Sopenharmony_ci                        vertex ""
2051e5c31af7Sopenharmony_ci                            #version 440 core
2052e5c31af7Sopenharmony_ci                            precision highp float;
2053e5c31af7Sopenharmony_ci                            precision highp int;
2054e5c31af7Sopenharmony_ci                            layout(location = 0) in vec4 dEQP_Position;
2055e5c31af7Sopenharmony_ci                            layout(location = 1) in vec4 in0;
2056e5c31af7Sopenharmony_ci                            layout(location = 0) out vec4 var0;
2057e5c31af7Sopenharmony_ci                            layout(location = 1) out vec4 var1;
2058e5c31af7Sopenharmony_ci
2059e5c31af7Sopenharmony_ci                            void main()
2060e5c31af7Sopenharmony_ci                            {
2061e5c31af7Sopenharmony_ci                                var0 = in0 + in0;
2062e5c31af7Sopenharmony_ci                                var1 = in0 + in0 + in0 + in0;
2063e5c31af7Sopenharmony_ci                                ${VERTEX_OUTPUT}
2064e5c31af7Sopenharmony_ci                            }
2065e5c31af7Sopenharmony_ci                        ""
2066e5c31af7Sopenharmony_ci                        fragment ""
2067e5c31af7Sopenharmony_ci                            #version 440 core
2068e5c31af7Sopenharmony_ci                            precision highp float;
2069e5c31af7Sopenharmony_ci                            precision highp int;
2070e5c31af7Sopenharmony_ci                            layout(location = 0) in vec4 var0;
2071e5c31af7Sopenharmony_ci                            layout(location = 1) in vec4 var1;
2072e5c31af7Sopenharmony_ci                            layout(location = 0, component = 0) out vec3  dEQP_FragColor_0_0[2];
2073e5c31af7Sopenharmony_ci                            layout(location = 0, component = 3) out float dEQP_FragColor_0_3;
2074e5c31af7Sopenharmony_ci                            layout(location = 1, component = 3) out float dEQP_FragColor_1_3;
2075e5c31af7Sopenharmony_ci                            void main()
2076e5c31af7Sopenharmony_ci                            {
2077e5c31af7Sopenharmony_ci                                vec4 out0 = var0;
2078e5c31af7Sopenharmony_ci                                out0 /= vec4(255.0);
2079e5c31af7Sopenharmony_ci                                dEQP_FragColor_0_0[0] = out0.xyz;
2080e5c31af7Sopenharmony_ci                                dEQP_FragColor_0_3 = out0.w;
2081e5c31af7Sopenharmony_ci
2082e5c31af7Sopenharmony_ci                                vec4 out1 = var1;
2083e5c31af7Sopenharmony_ci                                out1 /= vec4(255.0);
2084e5c31af7Sopenharmony_ci                                dEQP_FragColor_0_0[1] = out1.xyz;
2085e5c31af7Sopenharmony_ci                                dEQP_FragColor_1_3 = out1.w;
2086e5c31af7Sopenharmony_ci                            }
2087e5c31af7Sopenharmony_ci                        ""
2088e5c31af7Sopenharmony_ci                    end
2089e5c31af7Sopenharmony_ci                    case as_vec2_vec2-2_vec2
2090e5c31af7Sopenharmony_ci                        version 440 core
2091e5c31af7Sopenharmony_ci                        desc "Write fragment output 0 as two vec2, output 1 as two vec2."
2092e5c31af7Sopenharmony_ci                        output_color vec4
2093e5c31af7Sopenharmony_ci
2094e5c31af7Sopenharmony_ci                        values
2095e5c31af7Sopenharmony_ci                        {
2096e5c31af7Sopenharmony_ci                            input vec4 in0	= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
2097e5c31af7Sopenharmony_ci                            output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
2098e5c31af7Sopenharmony_ci                            output vec4 out1	= [ vec4(52.0, 8.0, 44.0, 4.0) | vec4(16.0, 52.0, 32.0, 12.0) | vec4(28.0, 20.0, 4.0, 48.0) | vec4(56.0, 60.0, 44.0, 4.0) ];
2099e5c31af7Sopenharmony_ci                        }
2100e5c31af7Sopenharmony_ci                        vertex ""
2101e5c31af7Sopenharmony_ci                            #version 440 core
2102e5c31af7Sopenharmony_ci                            precision highp float;
2103e5c31af7Sopenharmony_ci                            precision highp int;
2104e5c31af7Sopenharmony_ci                            layout(location = 0) in vec4 dEQP_Position;
2105e5c31af7Sopenharmony_ci                            layout(location = 1) in vec4 in0;
2106e5c31af7Sopenharmony_ci                            layout(location = 0) out vec4 var0;
2107e5c31af7Sopenharmony_ci                            layout(location = 1) out vec4 var1;
2108e5c31af7Sopenharmony_ci
2109e5c31af7Sopenharmony_ci                            void main()
2110e5c31af7Sopenharmony_ci                            {
2111e5c31af7Sopenharmony_ci                                var0 = in0 + in0;
2112e5c31af7Sopenharmony_ci                                var1 = in0 + in0 + in0 + in0;
2113e5c31af7Sopenharmony_ci                                ${VERTEX_OUTPUT}
2114e5c31af7Sopenharmony_ci                            }
2115e5c31af7Sopenharmony_ci                        ""
2116e5c31af7Sopenharmony_ci                        fragment ""
2117e5c31af7Sopenharmony_ci                            #version 440 core
2118e5c31af7Sopenharmony_ci                            precision highp float;
2119e5c31af7Sopenharmony_ci                            precision highp int;
2120e5c31af7Sopenharmony_ci                            layout(location = 0) in vec4 var0;
2121e5c31af7Sopenharmony_ci                            layout(location = 1) in vec4 var1;
2122e5c31af7Sopenharmony_ci                            layout(location = 0, component = 0) out vec2 dEQP_FragColor_0_0;
2123e5c31af7Sopenharmony_ci                            layout(location = 0, component = 2) out vec2 dEQP_FragColor_0_2[2];
2124e5c31af7Sopenharmony_ci                            layout(location = 1, component = 0) out vec2 dEQP_FragColor_1_0;
2125e5c31af7Sopenharmony_ci                            void main()
2126e5c31af7Sopenharmony_ci                            {
2127e5c31af7Sopenharmony_ci                                vec4 out0 = var0;
2128e5c31af7Sopenharmony_ci                                out0 /= vec4(255.0);
2129e5c31af7Sopenharmony_ci                                dEQP_FragColor_0_0 = out0.xy;
2130e5c31af7Sopenharmony_ci                                dEQP_FragColor_0_2[0] = out0.zw;
2131e5c31af7Sopenharmony_ci
2132e5c31af7Sopenharmony_ci                                vec4 out1 = var1;
2133e5c31af7Sopenharmony_ci                                out1 /= vec4(255.0);
2134e5c31af7Sopenharmony_ci                                dEQP_FragColor_1_0 = out1.xy;
2135e5c31af7Sopenharmony_ci                                dEQP_FragColor_0_2[1] = out1.zw;
2136e5c31af7Sopenharmony_ci                            }
2137e5c31af7Sopenharmony_ci                        ""
2138e5c31af7Sopenharmony_ci                    end
2139e5c31af7Sopenharmony_ci                    case as_vec2-2_vec2_vec2
2140e5c31af7Sopenharmony_ci                        version 440 core
2141e5c31af7Sopenharmony_ci                        desc "Write fragment output 0 as two vec2, output 1 as two vec2."
2142e5c31af7Sopenharmony_ci                        output_color vec4
2143e5c31af7Sopenharmony_ci
2144e5c31af7Sopenharmony_ci                        values
2145e5c31af7Sopenharmony_ci                        {
2146e5c31af7Sopenharmony_ci                            input vec4 in0	= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
2147e5c31af7Sopenharmony_ci                            output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
2148e5c31af7Sopenharmony_ci                            output vec4 out1	= [ vec4(52.0, 8.0, 44.0, 4.0) | vec4(16.0, 52.0, 32.0, 12.0) | vec4(28.0, 20.0, 4.0, 48.0) | vec4(56.0, 60.0, 44.0, 4.0) ];
2149e5c31af7Sopenharmony_ci                        }
2150e5c31af7Sopenharmony_ci                        vertex ""
2151e5c31af7Sopenharmony_ci                            #version 440 core
2152e5c31af7Sopenharmony_ci                            precision highp float;
2153e5c31af7Sopenharmony_ci                            precision highp int;
2154e5c31af7Sopenharmony_ci                            layout(location = 0) in vec4 dEQP_Position;
2155e5c31af7Sopenharmony_ci                            layout(location = 1) in vec4 in0;
2156e5c31af7Sopenharmony_ci                            layout(location = 0) out vec4 var0;
2157e5c31af7Sopenharmony_ci                            layout(location = 1) out vec4 var1;
2158e5c31af7Sopenharmony_ci
2159e5c31af7Sopenharmony_ci                            void main()
2160e5c31af7Sopenharmony_ci                            {
2161e5c31af7Sopenharmony_ci                                var0 = in0 + in0;
2162e5c31af7Sopenharmony_ci                                var1 = in0 + in0 + in0 + in0;
2163e5c31af7Sopenharmony_ci                                ${VERTEX_OUTPUT}
2164e5c31af7Sopenharmony_ci                            }
2165e5c31af7Sopenharmony_ci                        ""
2166e5c31af7Sopenharmony_ci                        fragment ""
2167e5c31af7Sopenharmony_ci                            #version 440 core
2168e5c31af7Sopenharmony_ci                            precision highp float;
2169e5c31af7Sopenharmony_ci                            precision highp int;
2170e5c31af7Sopenharmony_ci                            layout(location = 0) in vec4 var0;
2171e5c31af7Sopenharmony_ci                            layout(location = 1) in vec4 var1;
2172e5c31af7Sopenharmony_ci                            layout(location = 0, component = 0) out vec2 dEQP_FragColor_0_0[2];
2173e5c31af7Sopenharmony_ci                            layout(location = 0, component = 2) out vec2 dEQP_FragColor_0_2;
2174e5c31af7Sopenharmony_ci                            layout(location = 1, component = 2) out vec2 dEQP_FragColor_1_2;
2175e5c31af7Sopenharmony_ci                            void main()
2176e5c31af7Sopenharmony_ci                            {
2177e5c31af7Sopenharmony_ci                                vec4 out0 = var0;
2178e5c31af7Sopenharmony_ci                                out0 /= vec4(255.0);
2179e5c31af7Sopenharmony_ci                                dEQP_FragColor_0_0[0] = out0.xy;
2180e5c31af7Sopenharmony_ci                                dEQP_FragColor_0_2 = out0.zw;
2181e5c31af7Sopenharmony_ci
2182e5c31af7Sopenharmony_ci                                vec4 out1 = var1;
2183e5c31af7Sopenharmony_ci                                out1 /= vec4(255.0);
2184e5c31af7Sopenharmony_ci                                dEQP_FragColor_0_0[1] = out1.xy;
2185e5c31af7Sopenharmony_ci                                dEQP_FragColor_1_2 = out1.zw;
2186e5c31af7Sopenharmony_ci                            }
2187e5c31af7Sopenharmony_ci                        ""
2188e5c31af7Sopenharmony_ci                    end
2189e5c31af7Sopenharmony_ci                    case as_float_float-2_vec2-2_float
2190e5c31af7Sopenharmony_ci                        version 440 core
2191e5c31af7Sopenharmony_ci                        desc "Write fragment output 0 as two floats and vec2, output 1 as two floats and vec2."
2192e5c31af7Sopenharmony_ci                        output_color vec4
2193e5c31af7Sopenharmony_ci
2194e5c31af7Sopenharmony_ci                        values
2195e5c31af7Sopenharmony_ci                        {
2196e5c31af7Sopenharmony_ci                            input vec4 in0	= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
2197e5c31af7Sopenharmony_ci                            output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
2198e5c31af7Sopenharmony_ci                            output vec4 out1	= [ vec4(52.0, 8.0, 44.0, 4.0) | vec4(16.0, 52.0, 32.0, 12.0) | vec4(28.0, 20.0, 4.0, 48.0) | vec4(56.0, 60.0, 44.0, 4.0) ];
2199e5c31af7Sopenharmony_ci                        }
2200e5c31af7Sopenharmony_ci                        vertex ""
2201e5c31af7Sopenharmony_ci                            #version 440 core
2202e5c31af7Sopenharmony_ci                            precision highp float;
2203e5c31af7Sopenharmony_ci                            precision highp int;
2204e5c31af7Sopenharmony_ci                            layout(location = 0) in vec4 dEQP_Position;
2205e5c31af7Sopenharmony_ci                            layout(location = 1) in vec4 in0;
2206e5c31af7Sopenharmony_ci                            layout(location = 0) out vec4 var0;
2207e5c31af7Sopenharmony_ci                            layout(location = 1) out vec4 var1;
2208e5c31af7Sopenharmony_ci
2209e5c31af7Sopenharmony_ci                            void main()
2210e5c31af7Sopenharmony_ci                            {
2211e5c31af7Sopenharmony_ci                                var0 = in0 + in0;
2212e5c31af7Sopenharmony_ci                                var1 = in0 + in0 + in0 + in0;
2213e5c31af7Sopenharmony_ci                                ${VERTEX_OUTPUT}
2214e5c31af7Sopenharmony_ci                            }
2215e5c31af7Sopenharmony_ci                        ""
2216e5c31af7Sopenharmony_ci                        fragment ""
2217e5c31af7Sopenharmony_ci                            #version 440 core
2218e5c31af7Sopenharmony_ci                            precision highp float;
2219e5c31af7Sopenharmony_ci                            precision highp int;
2220e5c31af7Sopenharmony_ci                            layout(location = 0) in vec4 var0;
2221e5c31af7Sopenharmony_ci                            layout(location = 1) in vec4 var1;
2222e5c31af7Sopenharmony_ci                            layout(location = 0, component = 0) out float dEQP_FragColor_0_0;
2223e5c31af7Sopenharmony_ci                            layout(location = 0, component = 1) out float dEQP_FragColor_0_1[2];
2224e5c31af7Sopenharmony_ci                            layout(location = 0, component = 2) out vec2  dEQP_FragColor_0_2[2];
2225e5c31af7Sopenharmony_ci                            layout(location = 1, component = 0) out float dEQP_FragColor_1_0;
2226e5c31af7Sopenharmony_ci                            void main()
2227e5c31af7Sopenharmony_ci                            {
2228e5c31af7Sopenharmony_ci                                vec4 out0 = var0;
2229e5c31af7Sopenharmony_ci                                out0 /= vec4(255.0);
2230e5c31af7Sopenharmony_ci                                dEQP_FragColor_0_0 = out0.x;
2231e5c31af7Sopenharmony_ci                                dEQP_FragColor_0_1[0] = out0.y;
2232e5c31af7Sopenharmony_ci                                dEQP_FragColor_0_2[0] = out0.zw;
2233e5c31af7Sopenharmony_ci
2234e5c31af7Sopenharmony_ci                                vec4 out1 = var1;
2235e5c31af7Sopenharmony_ci                                out1 /= vec4(255.0);
2236e5c31af7Sopenharmony_ci                                dEQP_FragColor_1_0 = out1.x;
2237e5c31af7Sopenharmony_ci                                dEQP_FragColor_0_1[1] = out1.y;
2238e5c31af7Sopenharmony_ci                                dEQP_FragColor_0_2[1] = out1.zw;
2239e5c31af7Sopenharmony_ci                            }
2240e5c31af7Sopenharmony_ci                        ""
2241e5c31af7Sopenharmony_ci                    end
2242e5c31af7Sopenharmony_ci                    case as_float-2_float-2_float-2_float-2_float-2
2243e5c31af7Sopenharmony_ci                        version 440 core
2244e5c31af7Sopenharmony_ci                        desc "Write fragment output 0 as four floats, output 1 as four floats."
2245e5c31af7Sopenharmony_ci                        output_color vec4
2246e5c31af7Sopenharmony_ci
2247e5c31af7Sopenharmony_ci                        values
2248e5c31af7Sopenharmony_ci                        {
2249e5c31af7Sopenharmony_ci                            input vec4 in0	= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
2250e5c31af7Sopenharmony_ci                            output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
2251e5c31af7Sopenharmony_ci                            output vec4 out1	= [ vec4(52.0, 8.0, 44.0, 4.0) | vec4(16.0, 52.0, 32.0, 12.0) | vec4(28.0, 20.0, 4.0, 48.0) | vec4(56.0, 60.0, 44.0, 4.0) ];
2252e5c31af7Sopenharmony_ci                        }
2253e5c31af7Sopenharmony_ci                        vertex ""
2254e5c31af7Sopenharmony_ci                            #version 440 core
2255e5c31af7Sopenharmony_ci                            precision highp float;
2256e5c31af7Sopenharmony_ci                            precision highp int;
2257e5c31af7Sopenharmony_ci                            layout(location = 0) in vec4 dEQP_Position;
2258e5c31af7Sopenharmony_ci                            layout(location = 1) in vec4 in0;
2259e5c31af7Sopenharmony_ci                            layout(location = 0) out vec4 var0;
2260e5c31af7Sopenharmony_ci                            layout(location = 1) out vec4 var1;
2261e5c31af7Sopenharmony_ci
2262e5c31af7Sopenharmony_ci                            void main()
2263e5c31af7Sopenharmony_ci                            {
2264e5c31af7Sopenharmony_ci                                var0 = in0 + in0;
2265e5c31af7Sopenharmony_ci                                var1 = in0 + in0 + in0 + in0;
2266e5c31af7Sopenharmony_ci                                ${VERTEX_OUTPUT}
2267e5c31af7Sopenharmony_ci                            }
2268e5c31af7Sopenharmony_ci                        ""
2269e5c31af7Sopenharmony_ci                        fragment ""
2270e5c31af7Sopenharmony_ci                            #version 440 core
2271e5c31af7Sopenharmony_ci                            precision highp float;
2272e5c31af7Sopenharmony_ci                            precision highp int;
2273e5c31af7Sopenharmony_ci                            layout(location = 0) in vec4 var0;
2274e5c31af7Sopenharmony_ci                            layout(location = 1) in vec4 var1;
2275e5c31af7Sopenharmony_ci                            layout(location = 0, component = 0) out float dEQP_FragColor_0_0[2];
2276e5c31af7Sopenharmony_ci                            layout(location = 0, component = 1) out float dEQP_FragColor_0_1[2];
2277e5c31af7Sopenharmony_ci                            layout(location = 0, component = 2) out float dEQP_FragColor_0_2[2];
2278e5c31af7Sopenharmony_ci                            layout(location = 0, component = 3) out float dEQP_FragColor_0_3[2];
2279e5c31af7Sopenharmony_ci                            void main()
2280e5c31af7Sopenharmony_ci                            {
2281e5c31af7Sopenharmony_ci                                vec4 out0 = var0;
2282e5c31af7Sopenharmony_ci                                out0 /= vec4(255.0);
2283e5c31af7Sopenharmony_ci                                dEQP_FragColor_0_0[0] = out0.x;
2284e5c31af7Sopenharmony_ci                                dEQP_FragColor_0_1[0] = out0.y;
2285e5c31af7Sopenharmony_ci                                dEQP_FragColor_0_2[0] = out0.z;
2286e5c31af7Sopenharmony_ci                                dEQP_FragColor_0_3[0] = out0.w;
2287e5c31af7Sopenharmony_ci
2288e5c31af7Sopenharmony_ci                                vec4 out1 = var1;
2289e5c31af7Sopenharmony_ci                                out1 /= vec4(255.0);
2290e5c31af7Sopenharmony_ci                                dEQP_FragColor_0_0[1] = out1.x;
2291e5c31af7Sopenharmony_ci                                dEQP_FragColor_0_1[1] = out1.y;
2292e5c31af7Sopenharmony_ci                                dEQP_FragColor_0_2[1] = out1.z;
2293e5c31af7Sopenharmony_ci                                dEQP_FragColor_0_3[1] = out1.w;
2294e5c31af7Sopenharmony_ci                            }
2295e5c31af7Sopenharmony_ci                        ""
2296e5c31af7Sopenharmony_ci                    end
2297e5c31af7Sopenharmony_ci                end
2298e5c31af7Sopenharmony_ci            end
2299e5c31af7Sopenharmony_ci			group vec4 "vec4"
2300e5c31af7Sopenharmony_ci				case as_float_float_float_float
2301e5c31af7Sopenharmony_ci					version 440 core
2302e5c31af7Sopenharmony_ci					desc "Write fragment output (vec4) as float float float float."
2303e5c31af7Sopenharmony_ci					output_color vec4
2304e5c31af7Sopenharmony_ci					values
2305e5c31af7Sopenharmony_ci					{
2306e5c31af7Sopenharmony_ci						input vec4 in0		= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
2307e5c31af7Sopenharmony_ci						output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
2308e5c31af7Sopenharmony_ci					}
2309e5c31af7Sopenharmony_ci					vertex ""
2310e5c31af7Sopenharmony_ci						#version 440 core
2311e5c31af7Sopenharmony_ci						precision highp float;
2312e5c31af7Sopenharmony_ci						precision highp int;
2313e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
2314e5c31af7Sopenharmony_ci						layout(location = 1) in vec4 in0;
2315e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 var0;
2316e5c31af7Sopenharmony_ci
2317e5c31af7Sopenharmony_ci						void main()
2318e5c31af7Sopenharmony_ci						{
2319e5c31af7Sopenharmony_ci							var0 = in0 + in0;
2320e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
2321e5c31af7Sopenharmony_ci						}
2322e5c31af7Sopenharmony_ci					""
2323e5c31af7Sopenharmony_ci					fragment ""
2324e5c31af7Sopenharmony_ci						#version 440 core
2325e5c31af7Sopenharmony_ci						precision highp float;
2326e5c31af7Sopenharmony_ci						precision highp int;
2327e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 var0;
2328e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out float dEQP_FragColor_0;
2329e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) out float dEQP_FragColor_1;
2330e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) out float dEQP_FragColor_2;
2331e5c31af7Sopenharmony_ci						layout(location = 0, component = 3) out float dEQP_FragColor_3;
2332e5c31af7Sopenharmony_ci
2333e5c31af7Sopenharmony_ci						void main()
2334e5c31af7Sopenharmony_ci						{
2335e5c31af7Sopenharmony_ci							vec4 out0 = var0;
2336e5c31af7Sopenharmony_ci							out0 /= vec4(255.0);
2337e5c31af7Sopenharmony_ci							dEQP_FragColor_0 = out0.x;
2338e5c31af7Sopenharmony_ci							dEQP_FragColor_1 = out0.y;
2339e5c31af7Sopenharmony_ci							dEQP_FragColor_2 = out0.z;
2340e5c31af7Sopenharmony_ci							dEQP_FragColor_3 = out0.w;
2341e5c31af7Sopenharmony_ci						}
2342e5c31af7Sopenharmony_ci					""
2343e5c31af7Sopenharmony_ci				end
2344e5c31af7Sopenharmony_ci				case as_float_float_vec2
2345e5c31af7Sopenharmony_ci					version 440 core
2346e5c31af7Sopenharmony_ci					desc "Write fragment output (vec4) as float float vec2."
2347e5c31af7Sopenharmony_ci					output_color vec4
2348e5c31af7Sopenharmony_ci					values
2349e5c31af7Sopenharmony_ci					{
2350e5c31af7Sopenharmony_ci						input vec4 in0		= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
2351e5c31af7Sopenharmony_ci						output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
2352e5c31af7Sopenharmony_ci					}
2353e5c31af7Sopenharmony_ci					vertex ""
2354e5c31af7Sopenharmony_ci						#version 440 core
2355e5c31af7Sopenharmony_ci						precision highp float;
2356e5c31af7Sopenharmony_ci						precision highp int;
2357e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
2358e5c31af7Sopenharmony_ci						layout(location = 1) in vec4 in0;
2359e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 var0;
2360e5c31af7Sopenharmony_ci
2361e5c31af7Sopenharmony_ci						void main()
2362e5c31af7Sopenharmony_ci						{
2363e5c31af7Sopenharmony_ci							var0 = in0 + in0;
2364e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
2365e5c31af7Sopenharmony_ci						}
2366e5c31af7Sopenharmony_ci					""
2367e5c31af7Sopenharmony_ci					fragment ""
2368e5c31af7Sopenharmony_ci						#version 440 core
2369e5c31af7Sopenharmony_ci						precision highp float;
2370e5c31af7Sopenharmony_ci						precision highp int;
2371e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 var0;
2372e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out float dEQP_FragColor_0;
2373e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) out float dEQP_FragColor_1;
2374e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) out vec2 dEQP_FragColor_2;
2375e5c31af7Sopenharmony_ci
2376e5c31af7Sopenharmony_ci						void main()
2377e5c31af7Sopenharmony_ci						{
2378e5c31af7Sopenharmony_ci							vec4 out0 = var0;
2379e5c31af7Sopenharmony_ci							out0 /= vec4(255.0);
2380e5c31af7Sopenharmony_ci							dEQP_FragColor_0 = out0.x;
2381e5c31af7Sopenharmony_ci							dEQP_FragColor_1 = out0.y;
2382e5c31af7Sopenharmony_ci							dEQP_FragColor_2 = out0.zw;
2383e5c31af7Sopenharmony_ci						}
2384e5c31af7Sopenharmony_ci					""
2385e5c31af7Sopenharmony_ci				end
2386e5c31af7Sopenharmony_ci				case as_float_vec2_float
2387e5c31af7Sopenharmony_ci					version 440 core
2388e5c31af7Sopenharmony_ci					desc "Write fragment output (vec4) as float vec2 float."
2389e5c31af7Sopenharmony_ci					output_color vec4
2390e5c31af7Sopenharmony_ci					values
2391e5c31af7Sopenharmony_ci					{
2392e5c31af7Sopenharmony_ci						input vec4 in0		= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
2393e5c31af7Sopenharmony_ci						output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
2394e5c31af7Sopenharmony_ci					}
2395e5c31af7Sopenharmony_ci					vertex ""
2396e5c31af7Sopenharmony_ci						#version 440 core
2397e5c31af7Sopenharmony_ci						precision highp float;
2398e5c31af7Sopenharmony_ci						precision highp int;
2399e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
2400e5c31af7Sopenharmony_ci						layout(location = 1) in vec4 in0;
2401e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 var0;
2402e5c31af7Sopenharmony_ci
2403e5c31af7Sopenharmony_ci						void main()
2404e5c31af7Sopenharmony_ci						{
2405e5c31af7Sopenharmony_ci							var0 = in0 + in0;
2406e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
2407e5c31af7Sopenharmony_ci						}
2408e5c31af7Sopenharmony_ci					""
2409e5c31af7Sopenharmony_ci					fragment ""
2410e5c31af7Sopenharmony_ci						#version 440 core
2411e5c31af7Sopenharmony_ci						precision highp float;
2412e5c31af7Sopenharmony_ci						precision highp int;
2413e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 var0;
2414e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out float dEQP_FragColor_0;
2415e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) out vec2 dEQP_FragColor_1;
2416e5c31af7Sopenharmony_ci						layout(location = 0, component = 3) out float dEQP_FragColor_2;
2417e5c31af7Sopenharmony_ci
2418e5c31af7Sopenharmony_ci						void main()
2419e5c31af7Sopenharmony_ci						{
2420e5c31af7Sopenharmony_ci							vec4 out0 = var0;
2421e5c31af7Sopenharmony_ci							out0 /= vec4(255.0);
2422e5c31af7Sopenharmony_ci							dEQP_FragColor_0 = out0.x;
2423e5c31af7Sopenharmony_ci							dEQP_FragColor_1 = out0.yz;
2424e5c31af7Sopenharmony_ci							dEQP_FragColor_2 = out0.w;
2425e5c31af7Sopenharmony_ci						}
2426e5c31af7Sopenharmony_ci					""
2427e5c31af7Sopenharmony_ci				end
2428e5c31af7Sopenharmony_ci				case as_float_vec3
2429e5c31af7Sopenharmony_ci					version 440 core
2430e5c31af7Sopenharmony_ci					desc "Write fragment output (vec4) as float vec3."
2431e5c31af7Sopenharmony_ci					output_color vec4
2432e5c31af7Sopenharmony_ci					values
2433e5c31af7Sopenharmony_ci					{
2434e5c31af7Sopenharmony_ci						input vec4 in0		= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
2435e5c31af7Sopenharmony_ci						output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
2436e5c31af7Sopenharmony_ci					}
2437e5c31af7Sopenharmony_ci					vertex ""
2438e5c31af7Sopenharmony_ci						#version 440 core
2439e5c31af7Sopenharmony_ci						precision highp float;
2440e5c31af7Sopenharmony_ci						precision highp int;
2441e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
2442e5c31af7Sopenharmony_ci						layout(location = 1) in vec4 in0;
2443e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 var0;
2444e5c31af7Sopenharmony_ci
2445e5c31af7Sopenharmony_ci						void main()
2446e5c31af7Sopenharmony_ci						{
2447e5c31af7Sopenharmony_ci							var0 = in0 + in0;
2448e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
2449e5c31af7Sopenharmony_ci						}
2450e5c31af7Sopenharmony_ci					""
2451e5c31af7Sopenharmony_ci					fragment ""
2452e5c31af7Sopenharmony_ci						#version 440 core
2453e5c31af7Sopenharmony_ci						precision highp float;
2454e5c31af7Sopenharmony_ci						precision highp int;
2455e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 var0;
2456e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out float dEQP_FragColor_0;
2457e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) out vec3 dEQP_FragColor_1;
2458e5c31af7Sopenharmony_ci
2459e5c31af7Sopenharmony_ci						void main()
2460e5c31af7Sopenharmony_ci						{
2461e5c31af7Sopenharmony_ci							vec4 out0 = var0;
2462e5c31af7Sopenharmony_ci							out0 /= vec4(255.0);
2463e5c31af7Sopenharmony_ci							dEQP_FragColor_0 = out0.x;
2464e5c31af7Sopenharmony_ci							dEQP_FragColor_1 = out0.yzw;
2465e5c31af7Sopenharmony_ci						}
2466e5c31af7Sopenharmony_ci					""
2467e5c31af7Sopenharmony_ci				end
2468e5c31af7Sopenharmony_ci				case as_vec2_float_float
2469e5c31af7Sopenharmony_ci					version 440 core
2470e5c31af7Sopenharmony_ci					desc "Write fragment output (vec4) as vec2 float float."
2471e5c31af7Sopenharmony_ci					output_color vec4
2472e5c31af7Sopenharmony_ci					values
2473e5c31af7Sopenharmony_ci					{
2474e5c31af7Sopenharmony_ci						input vec4 in0		= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
2475e5c31af7Sopenharmony_ci						output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
2476e5c31af7Sopenharmony_ci					}
2477e5c31af7Sopenharmony_ci					vertex ""
2478e5c31af7Sopenharmony_ci						#version 440 core
2479e5c31af7Sopenharmony_ci						precision highp float;
2480e5c31af7Sopenharmony_ci						precision highp int;
2481e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
2482e5c31af7Sopenharmony_ci						layout(location = 1) in vec4 in0;
2483e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 var0;
2484e5c31af7Sopenharmony_ci
2485e5c31af7Sopenharmony_ci						void main()
2486e5c31af7Sopenharmony_ci						{
2487e5c31af7Sopenharmony_ci							var0 = in0 + in0;
2488e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
2489e5c31af7Sopenharmony_ci						}
2490e5c31af7Sopenharmony_ci					""
2491e5c31af7Sopenharmony_ci					fragment ""
2492e5c31af7Sopenharmony_ci						#version 440 core
2493e5c31af7Sopenharmony_ci						precision highp float;
2494e5c31af7Sopenharmony_ci						precision highp int;
2495e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 var0;
2496e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out vec2 dEQP_FragColor_0;
2497e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) out float dEQP_FragColor_1;
2498e5c31af7Sopenharmony_ci						layout(location = 0, component = 3) out float dEQP_FragColor_2;
2499e5c31af7Sopenharmony_ci
2500e5c31af7Sopenharmony_ci						void main()
2501e5c31af7Sopenharmony_ci						{
2502e5c31af7Sopenharmony_ci							vec4 out0 = var0;
2503e5c31af7Sopenharmony_ci							out0 /= vec4(255.0);
2504e5c31af7Sopenharmony_ci							dEQP_FragColor_0 = out0.xy;
2505e5c31af7Sopenharmony_ci							dEQP_FragColor_1 = out0.z;
2506e5c31af7Sopenharmony_ci							dEQP_FragColor_2 = out0.w;
2507e5c31af7Sopenharmony_ci						}
2508e5c31af7Sopenharmony_ci					""
2509e5c31af7Sopenharmony_ci				end
2510e5c31af7Sopenharmony_ci				case as_vec2_vec2
2511e5c31af7Sopenharmony_ci					version 440 core
2512e5c31af7Sopenharmony_ci					desc "Write fragment output (vec4) as vec2 vec2."
2513e5c31af7Sopenharmony_ci					output_color vec4
2514e5c31af7Sopenharmony_ci					values
2515e5c31af7Sopenharmony_ci					{
2516e5c31af7Sopenharmony_ci						input vec4 in0		= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
2517e5c31af7Sopenharmony_ci						output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
2518e5c31af7Sopenharmony_ci					}
2519e5c31af7Sopenharmony_ci					vertex ""
2520e5c31af7Sopenharmony_ci						#version 440 core
2521e5c31af7Sopenharmony_ci						precision highp float;
2522e5c31af7Sopenharmony_ci						precision highp int;
2523e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
2524e5c31af7Sopenharmony_ci						layout(location = 1) in vec4 in0;
2525e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 var0;
2526e5c31af7Sopenharmony_ci
2527e5c31af7Sopenharmony_ci						void main()
2528e5c31af7Sopenharmony_ci						{
2529e5c31af7Sopenharmony_ci							var0 = in0 + in0;
2530e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
2531e5c31af7Sopenharmony_ci						}
2532e5c31af7Sopenharmony_ci					""
2533e5c31af7Sopenharmony_ci					fragment ""
2534e5c31af7Sopenharmony_ci						#version 440 core
2535e5c31af7Sopenharmony_ci						precision highp float;
2536e5c31af7Sopenharmony_ci						precision highp int;
2537e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 var0;
2538e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out vec2 dEQP_FragColor_0;
2539e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) out vec2 dEQP_FragColor_1;
2540e5c31af7Sopenharmony_ci
2541e5c31af7Sopenharmony_ci						void main()
2542e5c31af7Sopenharmony_ci						{
2543e5c31af7Sopenharmony_ci							vec4 out0 = var0;
2544e5c31af7Sopenharmony_ci							out0 /= vec4(255.0);
2545e5c31af7Sopenharmony_ci							dEQP_FragColor_0 = out0.xy;
2546e5c31af7Sopenharmony_ci							dEQP_FragColor_1 = out0.zw;
2547e5c31af7Sopenharmony_ci						}
2548e5c31af7Sopenharmony_ci					""
2549e5c31af7Sopenharmony_ci				end
2550e5c31af7Sopenharmony_ci				case as_vec3_float
2551e5c31af7Sopenharmony_ci					version 440 core
2552e5c31af7Sopenharmony_ci					desc "Write fragment output (vec4) as vec3 float."
2553e5c31af7Sopenharmony_ci					output_color vec4
2554e5c31af7Sopenharmony_ci					values
2555e5c31af7Sopenharmony_ci					{
2556e5c31af7Sopenharmony_ci						input vec4 in0		= [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ];
2557e5c31af7Sopenharmony_ci						output vec4 out0	= [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ];
2558e5c31af7Sopenharmony_ci					}
2559e5c31af7Sopenharmony_ci					vertex ""
2560e5c31af7Sopenharmony_ci						#version 440 core
2561e5c31af7Sopenharmony_ci						precision highp float;
2562e5c31af7Sopenharmony_ci						precision highp int;
2563e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
2564e5c31af7Sopenharmony_ci						layout(location = 1) in vec4 in0;
2565e5c31af7Sopenharmony_ci						layout(location = 0) out vec4 var0;
2566e5c31af7Sopenharmony_ci
2567e5c31af7Sopenharmony_ci						void main()
2568e5c31af7Sopenharmony_ci						{
2569e5c31af7Sopenharmony_ci							var0 = in0 + in0;
2570e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
2571e5c31af7Sopenharmony_ci						}
2572e5c31af7Sopenharmony_ci					""
2573e5c31af7Sopenharmony_ci					fragment ""
2574e5c31af7Sopenharmony_ci						#version 440 core
2575e5c31af7Sopenharmony_ci						precision highp float;
2576e5c31af7Sopenharmony_ci						precision highp int;
2577e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 var0;
2578e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out vec3 dEQP_FragColor_0;
2579e5c31af7Sopenharmony_ci						layout(location = 0, component = 3) out float dEQP_FragColor_1;
2580e5c31af7Sopenharmony_ci
2581e5c31af7Sopenharmony_ci						void main()
2582e5c31af7Sopenharmony_ci						{
2583e5c31af7Sopenharmony_ci							vec4 out0 = var0;
2584e5c31af7Sopenharmony_ci							out0 /= vec4(255.0);
2585e5c31af7Sopenharmony_ci							dEQP_FragColor_0 = out0.xyz;
2586e5c31af7Sopenharmony_ci							dEQP_FragColor_1 = out0.w;
2587e5c31af7Sopenharmony_ci						}
2588e5c31af7Sopenharmony_ci					""
2589e5c31af7Sopenharmony_ci				end
2590e5c31af7Sopenharmony_ci			end
2591e5c31af7Sopenharmony_ci			group ivec2 "ivec2"
2592e5c31af7Sopenharmony_ci				case as_int_int
2593e5c31af7Sopenharmony_ci					version 440 core
2594e5c31af7Sopenharmony_ci					desc "Write fragment output (ivec2) as int int."
2595e5c31af7Sopenharmony_ci					output_color ivec2
2596e5c31af7Sopenharmony_ci					values
2597e5c31af7Sopenharmony_ci					{
2598e5c31af7Sopenharmony_ci						input ivec2 in0		= [ ivec2(7, 13) | ivec2(9, 7) | ivec2(13, 1) | ivec2(15, 11) ];
2599e5c31af7Sopenharmony_ci						output ivec2 out0	= [ ivec2(14, 26) | ivec2(18, 14) | ivec2(26, 2) | ivec2(30, 22) ];
2600e5c31af7Sopenharmony_ci					}
2601e5c31af7Sopenharmony_ci					vertex ""
2602e5c31af7Sopenharmony_ci						#version 440 core
2603e5c31af7Sopenharmony_ci						precision highp float;
2604e5c31af7Sopenharmony_ci						precision highp int;
2605e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
2606e5c31af7Sopenharmony_ci						layout(location = 1) in ivec2 in0;
2607e5c31af7Sopenharmony_ci						layout(location = 0) out ivec2 var0;
2608e5c31af7Sopenharmony_ci
2609e5c31af7Sopenharmony_ci						void main()
2610e5c31af7Sopenharmony_ci						{
2611e5c31af7Sopenharmony_ci							var0 = in0 + in0;
2612e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
2613e5c31af7Sopenharmony_ci						}
2614e5c31af7Sopenharmony_ci					""
2615e5c31af7Sopenharmony_ci					fragment ""
2616e5c31af7Sopenharmony_ci						#version 440 core
2617e5c31af7Sopenharmony_ci						precision highp float;
2618e5c31af7Sopenharmony_ci						precision highp int;
2619e5c31af7Sopenharmony_ci						layout(location = 0) flat in ivec2 var0;
2620e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out int dEQP_FragColor_0;
2621e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) out int dEQP_FragColor_1;
2622e5c31af7Sopenharmony_ci
2623e5c31af7Sopenharmony_ci						void main()
2624e5c31af7Sopenharmony_ci						{
2625e5c31af7Sopenharmony_ci							ivec2 out0 = var0;
2626e5c31af7Sopenharmony_ci							dEQP_FragColor_0 = out0.x;
2627e5c31af7Sopenharmony_ci							dEQP_FragColor_1 = out0.y;
2628e5c31af7Sopenharmony_ci						}
2629e5c31af7Sopenharmony_ci					""
2630e5c31af7Sopenharmony_ci				end
2631e5c31af7Sopenharmony_ci			end
2632e5c31af7Sopenharmony_ci			group ivec4 "ivec4"
2633e5c31af7Sopenharmony_ci				case as_int_int_int_int
2634e5c31af7Sopenharmony_ci					version 440 core
2635e5c31af7Sopenharmony_ci					desc "Write fragment output (ivec4) as int int int int."
2636e5c31af7Sopenharmony_ci					output_color ivec4
2637e5c31af7Sopenharmony_ci					values
2638e5c31af7Sopenharmony_ci					{
2639e5c31af7Sopenharmony_ci						input ivec4 in0		= [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ];
2640e5c31af7Sopenharmony_ci						output ivec4 out0	= [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ];
2641e5c31af7Sopenharmony_ci					}
2642e5c31af7Sopenharmony_ci					vertex ""
2643e5c31af7Sopenharmony_ci						#version 440 core
2644e5c31af7Sopenharmony_ci						precision highp float;
2645e5c31af7Sopenharmony_ci						precision highp int;
2646e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
2647e5c31af7Sopenharmony_ci						layout(location = 1) in ivec4 in0;
2648e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 var0;
2649e5c31af7Sopenharmony_ci
2650e5c31af7Sopenharmony_ci						void main()
2651e5c31af7Sopenharmony_ci						{
2652e5c31af7Sopenharmony_ci							var0 = in0 + in0;
2653e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
2654e5c31af7Sopenharmony_ci						}
2655e5c31af7Sopenharmony_ci					""
2656e5c31af7Sopenharmony_ci					fragment ""
2657e5c31af7Sopenharmony_ci						#version 440 core
2658e5c31af7Sopenharmony_ci						precision highp float;
2659e5c31af7Sopenharmony_ci						precision highp int;
2660e5c31af7Sopenharmony_ci						layout(location = 0) flat in ivec4 var0;
2661e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out int dEQP_FragColor_0;
2662e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) out int dEQP_FragColor_1;
2663e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) out int dEQP_FragColor_2;
2664e5c31af7Sopenharmony_ci						layout(location = 0, component = 3) out int dEQP_FragColor_3;
2665e5c31af7Sopenharmony_ci
2666e5c31af7Sopenharmony_ci						void main()
2667e5c31af7Sopenharmony_ci						{
2668e5c31af7Sopenharmony_ci							ivec4 out0 = var0;
2669e5c31af7Sopenharmony_ci							dEQP_FragColor_0 = out0.x;
2670e5c31af7Sopenharmony_ci							dEQP_FragColor_1 = out0.y;
2671e5c31af7Sopenharmony_ci							dEQP_FragColor_2 = out0.z;
2672e5c31af7Sopenharmony_ci							dEQP_FragColor_3 = out0.w;
2673e5c31af7Sopenharmony_ci						}
2674e5c31af7Sopenharmony_ci					""
2675e5c31af7Sopenharmony_ci				end
2676e5c31af7Sopenharmony_ci				case as_int_int_ivec2
2677e5c31af7Sopenharmony_ci					version 440 core
2678e5c31af7Sopenharmony_ci					desc "Write fragment output (ivec4) as int int ivec2."
2679e5c31af7Sopenharmony_ci					output_color ivec4
2680e5c31af7Sopenharmony_ci					values
2681e5c31af7Sopenharmony_ci					{
2682e5c31af7Sopenharmony_ci						input ivec4 in0		= [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ];
2683e5c31af7Sopenharmony_ci						output ivec4 out0	= [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ];
2684e5c31af7Sopenharmony_ci					}
2685e5c31af7Sopenharmony_ci					vertex ""
2686e5c31af7Sopenharmony_ci						#version 440 core
2687e5c31af7Sopenharmony_ci						precision highp float;
2688e5c31af7Sopenharmony_ci						precision highp int;
2689e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
2690e5c31af7Sopenharmony_ci						layout(location = 1) in ivec4 in0;
2691e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 var0;
2692e5c31af7Sopenharmony_ci
2693e5c31af7Sopenharmony_ci						void main()
2694e5c31af7Sopenharmony_ci						{
2695e5c31af7Sopenharmony_ci							var0 = in0 + in0;
2696e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
2697e5c31af7Sopenharmony_ci						}
2698e5c31af7Sopenharmony_ci					""
2699e5c31af7Sopenharmony_ci					fragment ""
2700e5c31af7Sopenharmony_ci						#version 440 core
2701e5c31af7Sopenharmony_ci						precision highp float;
2702e5c31af7Sopenharmony_ci						precision highp int;
2703e5c31af7Sopenharmony_ci						layout(location = 0) flat in ivec4 var0;
2704e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out int dEQP_FragColor_0;
2705e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) out int dEQP_FragColor_1;
2706e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) out ivec2 dEQP_FragColor_2;
2707e5c31af7Sopenharmony_ci
2708e5c31af7Sopenharmony_ci						void main()
2709e5c31af7Sopenharmony_ci						{
2710e5c31af7Sopenharmony_ci							ivec4 out0 = var0;
2711e5c31af7Sopenharmony_ci							dEQP_FragColor_0 = out0.x;
2712e5c31af7Sopenharmony_ci							dEQP_FragColor_1 = out0.y;
2713e5c31af7Sopenharmony_ci							dEQP_FragColor_2 = out0.zw;
2714e5c31af7Sopenharmony_ci						}
2715e5c31af7Sopenharmony_ci					""
2716e5c31af7Sopenharmony_ci				end
2717e5c31af7Sopenharmony_ci				case as_int_ivec2_int
2718e5c31af7Sopenharmony_ci					version 440 core
2719e5c31af7Sopenharmony_ci					desc "Write fragment output (ivec4) as int ivec2 int."
2720e5c31af7Sopenharmony_ci					output_color ivec4
2721e5c31af7Sopenharmony_ci					values
2722e5c31af7Sopenharmony_ci					{
2723e5c31af7Sopenharmony_ci						input ivec4 in0		= [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ];
2724e5c31af7Sopenharmony_ci						output ivec4 out0	= [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ];
2725e5c31af7Sopenharmony_ci					}
2726e5c31af7Sopenharmony_ci					vertex ""
2727e5c31af7Sopenharmony_ci						#version 440 core
2728e5c31af7Sopenharmony_ci						precision highp float;
2729e5c31af7Sopenharmony_ci						precision highp int;
2730e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
2731e5c31af7Sopenharmony_ci						layout(location = 1) in ivec4 in0;
2732e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 var0;
2733e5c31af7Sopenharmony_ci
2734e5c31af7Sopenharmony_ci						void main()
2735e5c31af7Sopenharmony_ci						{
2736e5c31af7Sopenharmony_ci							var0 = in0 + in0;
2737e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
2738e5c31af7Sopenharmony_ci						}
2739e5c31af7Sopenharmony_ci					""
2740e5c31af7Sopenharmony_ci					fragment ""
2741e5c31af7Sopenharmony_ci						#version 440 core
2742e5c31af7Sopenharmony_ci						precision highp float;
2743e5c31af7Sopenharmony_ci						precision highp int;
2744e5c31af7Sopenharmony_ci						layout(location = 0) flat in ivec4 var0;
2745e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out int dEQP_FragColor_0;
2746e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) out ivec2 dEQP_FragColor_1;
2747e5c31af7Sopenharmony_ci						layout(location = 0, component = 3) out int dEQP_FragColor_2;
2748e5c31af7Sopenharmony_ci
2749e5c31af7Sopenharmony_ci						void main()
2750e5c31af7Sopenharmony_ci						{
2751e5c31af7Sopenharmony_ci							ivec4 out0 = var0;
2752e5c31af7Sopenharmony_ci							dEQP_FragColor_0 = out0.x;
2753e5c31af7Sopenharmony_ci							dEQP_FragColor_1 = out0.yz;
2754e5c31af7Sopenharmony_ci							dEQP_FragColor_2 = out0.w;
2755e5c31af7Sopenharmony_ci						}
2756e5c31af7Sopenharmony_ci					""
2757e5c31af7Sopenharmony_ci				end
2758e5c31af7Sopenharmony_ci				case as_int_ivec3
2759e5c31af7Sopenharmony_ci					version 440 core
2760e5c31af7Sopenharmony_ci					desc "Write fragment output (ivec4) as int ivec3."
2761e5c31af7Sopenharmony_ci					output_color ivec4
2762e5c31af7Sopenharmony_ci					values
2763e5c31af7Sopenharmony_ci					{
2764e5c31af7Sopenharmony_ci						input ivec4 in0		= [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ];
2765e5c31af7Sopenharmony_ci						output ivec4 out0	= [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ];
2766e5c31af7Sopenharmony_ci					}
2767e5c31af7Sopenharmony_ci					vertex ""
2768e5c31af7Sopenharmony_ci						#version 440 core
2769e5c31af7Sopenharmony_ci						precision highp float;
2770e5c31af7Sopenharmony_ci						precision highp int;
2771e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
2772e5c31af7Sopenharmony_ci						layout(location = 1) in ivec4 in0;
2773e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 var0;
2774e5c31af7Sopenharmony_ci
2775e5c31af7Sopenharmony_ci						void main()
2776e5c31af7Sopenharmony_ci						{
2777e5c31af7Sopenharmony_ci							var0 = in0 + in0;
2778e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
2779e5c31af7Sopenharmony_ci						}
2780e5c31af7Sopenharmony_ci					""
2781e5c31af7Sopenharmony_ci					fragment ""
2782e5c31af7Sopenharmony_ci						#version 440 core
2783e5c31af7Sopenharmony_ci						precision highp float;
2784e5c31af7Sopenharmony_ci						precision highp int;
2785e5c31af7Sopenharmony_ci						layout(location = 0) flat in ivec4 var0;
2786e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out int dEQP_FragColor_0;
2787e5c31af7Sopenharmony_ci						layout(location = 0, component = 1) out ivec3 dEQP_FragColor_1;
2788e5c31af7Sopenharmony_ci
2789e5c31af7Sopenharmony_ci						void main()
2790e5c31af7Sopenharmony_ci						{
2791e5c31af7Sopenharmony_ci							ivec4 out0 = var0;
2792e5c31af7Sopenharmony_ci							dEQP_FragColor_0 = out0.x;
2793e5c31af7Sopenharmony_ci							dEQP_FragColor_1 = out0.yzw;
2794e5c31af7Sopenharmony_ci						}
2795e5c31af7Sopenharmony_ci					""
2796e5c31af7Sopenharmony_ci				end
2797e5c31af7Sopenharmony_ci				case as_ivec2_int_int
2798e5c31af7Sopenharmony_ci					version 440 core
2799e5c31af7Sopenharmony_ci					desc "Write fragment output (ivec4) as ivec2 int int."
2800e5c31af7Sopenharmony_ci					output_color ivec4
2801e5c31af7Sopenharmony_ci					values
2802e5c31af7Sopenharmony_ci					{
2803e5c31af7Sopenharmony_ci						input ivec4 in0		= [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ];
2804e5c31af7Sopenharmony_ci						output ivec4 out0	= [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ];
2805e5c31af7Sopenharmony_ci					}
2806e5c31af7Sopenharmony_ci					vertex ""
2807e5c31af7Sopenharmony_ci						#version 440 core
2808e5c31af7Sopenharmony_ci						precision highp float;
2809e5c31af7Sopenharmony_ci						precision highp int;
2810e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
2811e5c31af7Sopenharmony_ci						layout(location = 1) in ivec4 in0;
2812e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 var0;
2813e5c31af7Sopenharmony_ci
2814e5c31af7Sopenharmony_ci						void main()
2815e5c31af7Sopenharmony_ci						{
2816e5c31af7Sopenharmony_ci							var0 = in0 + in0;
2817e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
2818e5c31af7Sopenharmony_ci						}
2819e5c31af7Sopenharmony_ci					""
2820e5c31af7Sopenharmony_ci					fragment ""
2821e5c31af7Sopenharmony_ci						#version 440 core
2822e5c31af7Sopenharmony_ci						precision highp float;
2823e5c31af7Sopenharmony_ci						precision highp int;
2824e5c31af7Sopenharmony_ci						layout(location = 0) flat in ivec4 var0;
2825e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out ivec2 dEQP_FragColor_0;
2826e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) out int dEQP_FragColor_1;
2827e5c31af7Sopenharmony_ci						layout(location = 0, component = 3) out int dEQP_FragColor_2;
2828e5c31af7Sopenharmony_ci
2829e5c31af7Sopenharmony_ci						void main()
2830e5c31af7Sopenharmony_ci						{
2831e5c31af7Sopenharmony_ci							ivec4 out0 = var0;
2832e5c31af7Sopenharmony_ci							dEQP_FragColor_0 = out0.xy;
2833e5c31af7Sopenharmony_ci							dEQP_FragColor_1 = out0.z;
2834e5c31af7Sopenharmony_ci							dEQP_FragColor_2 = out0.w;
2835e5c31af7Sopenharmony_ci						}
2836e5c31af7Sopenharmony_ci					""
2837e5c31af7Sopenharmony_ci				end
2838e5c31af7Sopenharmony_ci				case as_ivec2_ivec2
2839e5c31af7Sopenharmony_ci					version 440 core
2840e5c31af7Sopenharmony_ci					desc "Write fragment output (ivec4) as ivec2 ivec2."
2841e5c31af7Sopenharmony_ci					output_color ivec4
2842e5c31af7Sopenharmony_ci					values
2843e5c31af7Sopenharmony_ci					{
2844e5c31af7Sopenharmony_ci						input ivec4 in0		= [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ];
2845e5c31af7Sopenharmony_ci						output ivec4 out0	= [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ];
2846e5c31af7Sopenharmony_ci					}
2847e5c31af7Sopenharmony_ci					vertex ""
2848e5c31af7Sopenharmony_ci						#version 440 core
2849e5c31af7Sopenharmony_ci						precision highp float;
2850e5c31af7Sopenharmony_ci						precision highp int;
2851e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
2852e5c31af7Sopenharmony_ci						layout(location = 1) in ivec4 in0;
2853e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 var0;
2854e5c31af7Sopenharmony_ci
2855e5c31af7Sopenharmony_ci						void main()
2856e5c31af7Sopenharmony_ci						{
2857e5c31af7Sopenharmony_ci							var0 = in0 + in0;
2858e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
2859e5c31af7Sopenharmony_ci						}
2860e5c31af7Sopenharmony_ci					""
2861e5c31af7Sopenharmony_ci					fragment ""
2862e5c31af7Sopenharmony_ci						#version 440 core
2863e5c31af7Sopenharmony_ci						precision highp float;
2864e5c31af7Sopenharmony_ci						precision highp int;
2865e5c31af7Sopenharmony_ci						layout(location = 0) flat in ivec4 var0;
2866e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out ivec2 dEQP_FragColor_0;
2867e5c31af7Sopenharmony_ci						layout(location = 0, component = 2) out ivec2 dEQP_FragColor_1;
2868e5c31af7Sopenharmony_ci
2869e5c31af7Sopenharmony_ci						void main()
2870e5c31af7Sopenharmony_ci						{
2871e5c31af7Sopenharmony_ci							ivec4 out0 = var0;
2872e5c31af7Sopenharmony_ci							dEQP_FragColor_0 = out0.xy;
2873e5c31af7Sopenharmony_ci							dEQP_FragColor_1 = out0.zw;
2874e5c31af7Sopenharmony_ci						}
2875e5c31af7Sopenharmony_ci					""
2876e5c31af7Sopenharmony_ci				end
2877e5c31af7Sopenharmony_ci				case as_ivec3_int
2878e5c31af7Sopenharmony_ci					version 440 core
2879e5c31af7Sopenharmony_ci					desc "Write fragment output (ivec4) as ivec3 int."
2880e5c31af7Sopenharmony_ci					output_color ivec4
2881e5c31af7Sopenharmony_ci					values
2882e5c31af7Sopenharmony_ci					{
2883e5c31af7Sopenharmony_ci						input ivec4 in0		= [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ];
2884e5c31af7Sopenharmony_ci						output ivec4 out0	= [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ];
2885e5c31af7Sopenharmony_ci					}
2886e5c31af7Sopenharmony_ci					vertex ""
2887e5c31af7Sopenharmony_ci						#version 440 core
2888e5c31af7Sopenharmony_ci						precision highp float;
2889e5c31af7Sopenharmony_ci						precision highp int;
2890e5c31af7Sopenharmony_ci						layout(location = 0) in vec4 dEQP_Position;
2891e5c31af7Sopenharmony_ci						layout(location = 1) in ivec4 in0;
2892e5c31af7Sopenharmony_ci						layout(location = 0) out ivec4 var0;
2893e5c31af7Sopenharmony_ci
2894e5c31af7Sopenharmony_ci						void main()
2895e5c31af7Sopenharmony_ci						{
2896e5c31af7Sopenharmony_ci							var0 = in0 + in0;
2897e5c31af7Sopenharmony_ci							${VERTEX_OUTPUT}
2898e5c31af7Sopenharmony_ci						}
2899e5c31af7Sopenharmony_ci					""
2900e5c31af7Sopenharmony_ci					fragment ""
2901e5c31af7Sopenharmony_ci						#version 440 core
2902e5c31af7Sopenharmony_ci						precision highp float;
2903e5c31af7Sopenharmony_ci						precision highp int;
2904e5c31af7Sopenharmony_ci						layout(location = 0) flat in ivec4 var0;
2905e5c31af7Sopenharmony_ci						layout(location = 0, component = 0) out ivec3 dEQP_FragColor_0;
2906e5c31af7Sopenharmony_ci						layout(location = 0, component = 3) out int dEQP_FragColor_1;
2907e5c31af7Sopenharmony_ci
2908e5c31af7Sopenharmony_ci						void main()
2909e5c31af7Sopenharmony_ci						{
2910e5c31af7Sopenharmony_ci							ivec4 out0 = var0;
2911e5c31af7Sopenharmony_ci							dEQP_FragColor_0 = out0.xyz;
2912e5c31af7Sopenharmony_ci							dEQP_FragColor_1 = out0.w;
2913e5c31af7Sopenharmony_ci						}
2914e5c31af7Sopenharmony_ci					""
2915e5c31af7Sopenharmony_ci				end
2916e5c31af7Sopenharmony_ci			end
2917e5c31af7Sopenharmony_ci		end
2918e5c31af7Sopenharmony_ci	end
2919e5c31af7Sopenharmony_ciend
2920