1e5c31af7Sopenharmony_ci# WARNING: This file is auto-generated. Do NOT modify it manually, but rather
2e5c31af7Sopenharmony_ci# modify the generating script file. Otherwise changes will be lost!
3e5c31af7Sopenharmony_ci
4e5c31af7Sopenharmony_cigroup vector_add "Vector swizzle math operations"
5e5c31af7Sopenharmony_ci
6e5c31af7Sopenharmony_ci	case mediump_vec2_x_x
7e5c31af7Sopenharmony_ci		version 300 es
8e5c31af7Sopenharmony_ci		values
9e5c31af7Sopenharmony_ci		{
10e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
11e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
12e5c31af7Sopenharmony_ci			output float out0 = [ 0.2 | 2.0 | -1.0 | -64.0 | -1.5 ];
13e5c31af7Sopenharmony_ci		}
14e5c31af7Sopenharmony_ci
15e5c31af7Sopenharmony_ci		both ""
16e5c31af7Sopenharmony_ci			#version 300 es
17e5c31af7Sopenharmony_ci			precision mediump float;
18e5c31af7Sopenharmony_ci
19e5c31af7Sopenharmony_ci			${DECLARATIONS}
20e5c31af7Sopenharmony_ci
21e5c31af7Sopenharmony_ci			void main()
22e5c31af7Sopenharmony_ci			{
23e5c31af7Sopenharmony_ci				${SETUP}
24e5c31af7Sopenharmony_ci				out0 = in0.x + in1.x;
25e5c31af7Sopenharmony_ci				${OUTPUT}
26e5c31af7Sopenharmony_ci			}
27e5c31af7Sopenharmony_ci		""
28e5c31af7Sopenharmony_ci	end
29e5c31af7Sopenharmony_ci
30e5c31af7Sopenharmony_ci	case mediump_vec2_xx_xx
31e5c31af7Sopenharmony_ci		version 300 es
32e5c31af7Sopenharmony_ci		values
33e5c31af7Sopenharmony_ci		{
34e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
35e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
36e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(0.2, 0.2) | vec2(2.0, 2.0) | vec2(-1.0, -1.0) | vec2(-64.0, -64.0) | vec2(-1.5, -1.5) ];
37e5c31af7Sopenharmony_ci		}
38e5c31af7Sopenharmony_ci
39e5c31af7Sopenharmony_ci		both ""
40e5c31af7Sopenharmony_ci			#version 300 es
41e5c31af7Sopenharmony_ci			precision mediump float;
42e5c31af7Sopenharmony_ci
43e5c31af7Sopenharmony_ci			${DECLARATIONS}
44e5c31af7Sopenharmony_ci
45e5c31af7Sopenharmony_ci			void main()
46e5c31af7Sopenharmony_ci			{
47e5c31af7Sopenharmony_ci				${SETUP}
48e5c31af7Sopenharmony_ci				out0 = in0.xx + in1.xx;
49e5c31af7Sopenharmony_ci				${OUTPUT}
50e5c31af7Sopenharmony_ci			}
51e5c31af7Sopenharmony_ci		""
52e5c31af7Sopenharmony_ci	end
53e5c31af7Sopenharmony_ci
54e5c31af7Sopenharmony_ci	case mediump_vec2_xy_yx
55e5c31af7Sopenharmony_ci		version 300 es
56e5c31af7Sopenharmony_ci		values
57e5c31af7Sopenharmony_ci		{
58e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
59e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
60e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(0.6, 0.6) | vec2(2.25, 2.25) | vec2(-2.75, -2.75) | vec2(32.0, 32.0) | vec2(-0.782258064516, -0.782258064516) ];
61e5c31af7Sopenharmony_ci		}
62e5c31af7Sopenharmony_ci
63e5c31af7Sopenharmony_ci		both ""
64e5c31af7Sopenharmony_ci			#version 300 es
65e5c31af7Sopenharmony_ci			precision mediump float;
66e5c31af7Sopenharmony_ci
67e5c31af7Sopenharmony_ci			${DECLARATIONS}
68e5c31af7Sopenharmony_ci
69e5c31af7Sopenharmony_ci			void main()
70e5c31af7Sopenharmony_ci			{
71e5c31af7Sopenharmony_ci				${SETUP}
72e5c31af7Sopenharmony_ci				out0 = in0.xy + in1.yx;
73e5c31af7Sopenharmony_ci				${OUTPUT}
74e5c31af7Sopenharmony_ci			}
75e5c31af7Sopenharmony_ci		""
76e5c31af7Sopenharmony_ci	end
77e5c31af7Sopenharmony_ci
78e5c31af7Sopenharmony_ci	case mediump_vec2_yx_xy
79e5c31af7Sopenharmony_ci		version 300 es
80e5c31af7Sopenharmony_ci		values
81e5c31af7Sopenharmony_ci		{
82e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
83e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
84e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(0.6, 0.6) | vec2(2.25, 2.25) | vec2(-2.75, -2.75) | vec2(32.0, 32.0) | vec2(-0.782258064516, -0.782258064516) ];
85e5c31af7Sopenharmony_ci		}
86e5c31af7Sopenharmony_ci
87e5c31af7Sopenharmony_ci		both ""
88e5c31af7Sopenharmony_ci			#version 300 es
89e5c31af7Sopenharmony_ci			precision mediump float;
90e5c31af7Sopenharmony_ci
91e5c31af7Sopenharmony_ci			${DECLARATIONS}
92e5c31af7Sopenharmony_ci
93e5c31af7Sopenharmony_ci			void main()
94e5c31af7Sopenharmony_ci			{
95e5c31af7Sopenharmony_ci				${SETUP}
96e5c31af7Sopenharmony_ci				out0 = in0.yx + in1.xy;
97e5c31af7Sopenharmony_ci				${OUTPUT}
98e5c31af7Sopenharmony_ci			}
99e5c31af7Sopenharmony_ci		""
100e5c31af7Sopenharmony_ci	end
101e5c31af7Sopenharmony_ci
102e5c31af7Sopenharmony_ci	case mediump_vec2_yxy_xyy
103e5c31af7Sopenharmony_ci		version 300 es
104e5c31af7Sopenharmony_ci		values
105e5c31af7Sopenharmony_ci		{
106e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
107e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
108e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.6, 0.6, 1.0) | vec3(2.25, 2.25, 2.5) | vec3(-2.75, -2.75, -4.5) | vec3(32.0, 32.0, 128.0) | vec3(-0.782258064516, -0.782258064516, -0.0645161290323) ];
109e5c31af7Sopenharmony_ci		}
110e5c31af7Sopenharmony_ci
111e5c31af7Sopenharmony_ci		both ""
112e5c31af7Sopenharmony_ci			#version 300 es
113e5c31af7Sopenharmony_ci			precision mediump float;
114e5c31af7Sopenharmony_ci
115e5c31af7Sopenharmony_ci			${DECLARATIONS}
116e5c31af7Sopenharmony_ci
117e5c31af7Sopenharmony_ci			void main()
118e5c31af7Sopenharmony_ci			{
119e5c31af7Sopenharmony_ci				${SETUP}
120e5c31af7Sopenharmony_ci				out0 = in0.yxy + in1.xyy;
121e5c31af7Sopenharmony_ci				${OUTPUT}
122e5c31af7Sopenharmony_ci			}
123e5c31af7Sopenharmony_ci		""
124e5c31af7Sopenharmony_ci	end
125e5c31af7Sopenharmony_ci
126e5c31af7Sopenharmony_ci	case mediump_vec2_xyxx_yxxx
127e5c31af7Sopenharmony_ci		version 300 es
128e5c31af7Sopenharmony_ci		values
129e5c31af7Sopenharmony_ci		{
130e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
131e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
132e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.6, 0.6, 0.2, 0.2) | vec4(2.25, 2.25, 2.0, 2.0) | vec4(-2.75, -2.75, -1.0, -1.0) | vec4(32.0, 32.0, -64.0, -64.0) | vec4(-0.782258064516, -0.782258064516, -1.5, -1.5) ];
133e5c31af7Sopenharmony_ci		}
134e5c31af7Sopenharmony_ci
135e5c31af7Sopenharmony_ci		both ""
136e5c31af7Sopenharmony_ci			#version 300 es
137e5c31af7Sopenharmony_ci			precision mediump float;
138e5c31af7Sopenharmony_ci
139e5c31af7Sopenharmony_ci			${DECLARATIONS}
140e5c31af7Sopenharmony_ci
141e5c31af7Sopenharmony_ci			void main()
142e5c31af7Sopenharmony_ci			{
143e5c31af7Sopenharmony_ci				${SETUP}
144e5c31af7Sopenharmony_ci				out0 = in0.xyxx + in1.yxxx;
145e5c31af7Sopenharmony_ci				${OUTPUT}
146e5c31af7Sopenharmony_ci			}
147e5c31af7Sopenharmony_ci		""
148e5c31af7Sopenharmony_ci	end
149e5c31af7Sopenharmony_ci
150e5c31af7Sopenharmony_ci	case mediump_vec2_yxyx_xyxy
151e5c31af7Sopenharmony_ci		version 300 es
152e5c31af7Sopenharmony_ci		values
153e5c31af7Sopenharmony_ci		{
154e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
155e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
156e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.6, 0.6, 0.6, 0.6) | vec4(2.25, 2.25, 2.25, 2.25) | vec4(-2.75, -2.75, -2.75, -2.75) | vec4(32.0, 32.0, 32.0, 32.0) | vec4(-0.782258064516, -0.782258064516, -0.782258064516, -0.782258064516) ];
157e5c31af7Sopenharmony_ci		}
158e5c31af7Sopenharmony_ci
159e5c31af7Sopenharmony_ci		both ""
160e5c31af7Sopenharmony_ci			#version 300 es
161e5c31af7Sopenharmony_ci			precision mediump float;
162e5c31af7Sopenharmony_ci
163e5c31af7Sopenharmony_ci			${DECLARATIONS}
164e5c31af7Sopenharmony_ci
165e5c31af7Sopenharmony_ci			void main()
166e5c31af7Sopenharmony_ci			{
167e5c31af7Sopenharmony_ci				${SETUP}
168e5c31af7Sopenharmony_ci				out0 = in0.yxyx + in1.xyxy;
169e5c31af7Sopenharmony_ci				${OUTPUT}
170e5c31af7Sopenharmony_ci			}
171e5c31af7Sopenharmony_ci		""
172e5c31af7Sopenharmony_ci	end
173e5c31af7Sopenharmony_ci
174e5c31af7Sopenharmony_ci	case mediump_vec3_x_x
175e5c31af7Sopenharmony_ci		version 300 es
176e5c31af7Sopenharmony_ci		values
177e5c31af7Sopenharmony_ci		{
178e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
179e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
180e5c31af7Sopenharmony_ci			output float out0 = [ 0.2 | 2.0 | -1.0 | -64.0 | -1.5 ];
181e5c31af7Sopenharmony_ci		}
182e5c31af7Sopenharmony_ci
183e5c31af7Sopenharmony_ci		both ""
184e5c31af7Sopenharmony_ci			#version 300 es
185e5c31af7Sopenharmony_ci			precision mediump float;
186e5c31af7Sopenharmony_ci
187e5c31af7Sopenharmony_ci			${DECLARATIONS}
188e5c31af7Sopenharmony_ci
189e5c31af7Sopenharmony_ci			void main()
190e5c31af7Sopenharmony_ci			{
191e5c31af7Sopenharmony_ci				${SETUP}
192e5c31af7Sopenharmony_ci				out0 = in0.x + in1.x;
193e5c31af7Sopenharmony_ci				${OUTPUT}
194e5c31af7Sopenharmony_ci			}
195e5c31af7Sopenharmony_ci		""
196e5c31af7Sopenharmony_ci	end
197e5c31af7Sopenharmony_ci
198e5c31af7Sopenharmony_ci	case mediump_vec3_z_z
199e5c31af7Sopenharmony_ci		version 300 es
200e5c31af7Sopenharmony_ci		values
201e5c31af7Sopenharmony_ci		{
202e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
203e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
204e5c31af7Sopenharmony_ci			output float out0 = [ 1.5 | 2.25 | -9.75 | -102.0 | 0.105263157895 ];
205e5c31af7Sopenharmony_ci		}
206e5c31af7Sopenharmony_ci
207e5c31af7Sopenharmony_ci		both ""
208e5c31af7Sopenharmony_ci			#version 300 es
209e5c31af7Sopenharmony_ci			precision mediump float;
210e5c31af7Sopenharmony_ci
211e5c31af7Sopenharmony_ci			${DECLARATIONS}
212e5c31af7Sopenharmony_ci
213e5c31af7Sopenharmony_ci			void main()
214e5c31af7Sopenharmony_ci			{
215e5c31af7Sopenharmony_ci				${SETUP}
216e5c31af7Sopenharmony_ci				out0 = in0.z + in1.z;
217e5c31af7Sopenharmony_ci				${OUTPUT}
218e5c31af7Sopenharmony_ci			}
219e5c31af7Sopenharmony_ci		""
220e5c31af7Sopenharmony_ci	end
221e5c31af7Sopenharmony_ci
222e5c31af7Sopenharmony_ci	case mediump_vec3_xz_zx
223e5c31af7Sopenharmony_ci		version 300 es
224e5c31af7Sopenharmony_ci		values
225e5c31af7Sopenharmony_ci		{
226e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
227e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
228e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(0.85, 0.85) | vec2(2.125, 2.125) | vec2(-5.375, -5.375) | vec2(-83.0, -83.0) | vec2(-0.697368421053, -0.697368421053) ];
229e5c31af7Sopenharmony_ci		}
230e5c31af7Sopenharmony_ci
231e5c31af7Sopenharmony_ci		both ""
232e5c31af7Sopenharmony_ci			#version 300 es
233e5c31af7Sopenharmony_ci			precision mediump float;
234e5c31af7Sopenharmony_ci
235e5c31af7Sopenharmony_ci			${DECLARATIONS}
236e5c31af7Sopenharmony_ci
237e5c31af7Sopenharmony_ci			void main()
238e5c31af7Sopenharmony_ci			{
239e5c31af7Sopenharmony_ci				${SETUP}
240e5c31af7Sopenharmony_ci				out0 = in0.xz + in1.zx;
241e5c31af7Sopenharmony_ci				${OUTPUT}
242e5c31af7Sopenharmony_ci			}
243e5c31af7Sopenharmony_ci		""
244e5c31af7Sopenharmony_ci	end
245e5c31af7Sopenharmony_ci
246e5c31af7Sopenharmony_ci	case mediump_vec3_zz_zz
247e5c31af7Sopenharmony_ci		version 300 es
248e5c31af7Sopenharmony_ci		values
249e5c31af7Sopenharmony_ci		{
250e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
251e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
252e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(1.5, 1.5) | vec2(2.25, 2.25) | vec2(-9.75, -9.75) | vec2(-102.0, -102.0) | vec2(0.105263157895, 0.105263157895) ];
253e5c31af7Sopenharmony_ci		}
254e5c31af7Sopenharmony_ci
255e5c31af7Sopenharmony_ci		both ""
256e5c31af7Sopenharmony_ci			#version 300 es
257e5c31af7Sopenharmony_ci			precision mediump float;
258e5c31af7Sopenharmony_ci
259e5c31af7Sopenharmony_ci			${DECLARATIONS}
260e5c31af7Sopenharmony_ci
261e5c31af7Sopenharmony_ci			void main()
262e5c31af7Sopenharmony_ci			{
263e5c31af7Sopenharmony_ci				${SETUP}
264e5c31af7Sopenharmony_ci				out0 = in0.zz + in1.zz;
265e5c31af7Sopenharmony_ci				${OUTPUT}
266e5c31af7Sopenharmony_ci			}
267e5c31af7Sopenharmony_ci		""
268e5c31af7Sopenharmony_ci	end
269e5c31af7Sopenharmony_ci
270e5c31af7Sopenharmony_ci	case mediump_vec3_xyz_yzx
271e5c31af7Sopenharmony_ci		version 300 es
272e5c31af7Sopenharmony_ci		values
273e5c31af7Sopenharmony_ci		{
274e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
275e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
276e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.6, 1.25, 0.85) | vec3(2.25, 2.375, 2.125) | vec3(-2.75, -7.125, -5.375) | vec3(32.0, 13.0, -83.0) | vec3(-0.782258064516, 0.0203735144312, -0.697368421053) ];
277e5c31af7Sopenharmony_ci		}
278e5c31af7Sopenharmony_ci
279e5c31af7Sopenharmony_ci		both ""
280e5c31af7Sopenharmony_ci			#version 300 es
281e5c31af7Sopenharmony_ci			precision mediump float;
282e5c31af7Sopenharmony_ci
283e5c31af7Sopenharmony_ci			${DECLARATIONS}
284e5c31af7Sopenharmony_ci
285e5c31af7Sopenharmony_ci			void main()
286e5c31af7Sopenharmony_ci			{
287e5c31af7Sopenharmony_ci				${SETUP}
288e5c31af7Sopenharmony_ci				out0 = in0.xyz + in1.yzx;
289e5c31af7Sopenharmony_ci				${OUTPUT}
290e5c31af7Sopenharmony_ci			}
291e5c31af7Sopenharmony_ci		""
292e5c31af7Sopenharmony_ci	end
293e5c31af7Sopenharmony_ci
294e5c31af7Sopenharmony_ci	case mediump_vec3_zyx_yxz
295e5c31af7Sopenharmony_ci		version 300 es
296e5c31af7Sopenharmony_ci		values
297e5c31af7Sopenharmony_ci		{
298e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
299e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
300e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(1.25, 0.6, 0.85) | vec3(2.375, 2.25, 2.125) | vec3(-7.125, -2.75, -5.375) | vec3(13.0, 32.0, -83.0) | vec3(0.0203735144312, -0.782258064516, -0.697368421053) ];
301e5c31af7Sopenharmony_ci		}
302e5c31af7Sopenharmony_ci
303e5c31af7Sopenharmony_ci		both ""
304e5c31af7Sopenharmony_ci			#version 300 es
305e5c31af7Sopenharmony_ci			precision mediump float;
306e5c31af7Sopenharmony_ci
307e5c31af7Sopenharmony_ci			${DECLARATIONS}
308e5c31af7Sopenharmony_ci
309e5c31af7Sopenharmony_ci			void main()
310e5c31af7Sopenharmony_ci			{
311e5c31af7Sopenharmony_ci				${SETUP}
312e5c31af7Sopenharmony_ci				out0 = in0.zyx + in1.yxz;
313e5c31af7Sopenharmony_ci				${OUTPUT}
314e5c31af7Sopenharmony_ci			}
315e5c31af7Sopenharmony_ci		""
316e5c31af7Sopenharmony_ci	end
317e5c31af7Sopenharmony_ci
318e5c31af7Sopenharmony_ci	case mediump_vec3_xxx_xxx
319e5c31af7Sopenharmony_ci		version 300 es
320e5c31af7Sopenharmony_ci		values
321e5c31af7Sopenharmony_ci		{
322e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
323e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
324e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.2, 0.2, 0.2) | vec3(2.0, 2.0, 2.0) | vec3(-1.0, -1.0, -1.0) | vec3(-64.0, -64.0, -64.0) | vec3(-1.5, -1.5, -1.5) ];
325e5c31af7Sopenharmony_ci		}
326e5c31af7Sopenharmony_ci
327e5c31af7Sopenharmony_ci		both ""
328e5c31af7Sopenharmony_ci			#version 300 es
329e5c31af7Sopenharmony_ci			precision mediump float;
330e5c31af7Sopenharmony_ci
331e5c31af7Sopenharmony_ci			${DECLARATIONS}
332e5c31af7Sopenharmony_ci
333e5c31af7Sopenharmony_ci			void main()
334e5c31af7Sopenharmony_ci			{
335e5c31af7Sopenharmony_ci				${SETUP}
336e5c31af7Sopenharmony_ci				out0 = in0.xxx + in1.xxx;
337e5c31af7Sopenharmony_ci				${OUTPUT}
338e5c31af7Sopenharmony_ci			}
339e5c31af7Sopenharmony_ci		""
340e5c31af7Sopenharmony_ci	end
341e5c31af7Sopenharmony_ci
342e5c31af7Sopenharmony_ci	case mediump_vec3_zzz_zzz
343e5c31af7Sopenharmony_ci		version 300 es
344e5c31af7Sopenharmony_ci		values
345e5c31af7Sopenharmony_ci		{
346e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
347e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
348e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(1.5, 1.5, 1.5) | vec3(2.25, 2.25, 2.25) | vec3(-9.75, -9.75, -9.75) | vec3(-102.0, -102.0, -102.0) | vec3(0.105263157895, 0.105263157895, 0.105263157895) ];
349e5c31af7Sopenharmony_ci		}
350e5c31af7Sopenharmony_ci
351e5c31af7Sopenharmony_ci		both ""
352e5c31af7Sopenharmony_ci			#version 300 es
353e5c31af7Sopenharmony_ci			precision mediump float;
354e5c31af7Sopenharmony_ci
355e5c31af7Sopenharmony_ci			${DECLARATIONS}
356e5c31af7Sopenharmony_ci
357e5c31af7Sopenharmony_ci			void main()
358e5c31af7Sopenharmony_ci			{
359e5c31af7Sopenharmony_ci				${SETUP}
360e5c31af7Sopenharmony_ci				out0 = in0.zzz + in1.zzz;
361e5c31af7Sopenharmony_ci				${OUTPUT}
362e5c31af7Sopenharmony_ci			}
363e5c31af7Sopenharmony_ci		""
364e5c31af7Sopenharmony_ci	end
365e5c31af7Sopenharmony_ci
366e5c31af7Sopenharmony_ci	case mediump_vec3_zzy_zyz
367e5c31af7Sopenharmony_ci		version 300 es
368e5c31af7Sopenharmony_ci		values
369e5c31af7Sopenharmony_ci		{
370e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
371e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
372e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(1.5, 1.25, 1.25) | vec3(2.25, 2.375, 2.375) | vec3(-9.75, -7.125, -7.125) | vec3(-102.0, 13.0, 13.0) | vec3(0.105263157895, 0.0203735144312, 0.0203735144312) ];
373e5c31af7Sopenharmony_ci		}
374e5c31af7Sopenharmony_ci
375e5c31af7Sopenharmony_ci		both ""
376e5c31af7Sopenharmony_ci			#version 300 es
377e5c31af7Sopenharmony_ci			precision mediump float;
378e5c31af7Sopenharmony_ci
379e5c31af7Sopenharmony_ci			${DECLARATIONS}
380e5c31af7Sopenharmony_ci
381e5c31af7Sopenharmony_ci			void main()
382e5c31af7Sopenharmony_ci			{
383e5c31af7Sopenharmony_ci				${SETUP}
384e5c31af7Sopenharmony_ci				out0 = in0.zzy + in1.zyz;
385e5c31af7Sopenharmony_ci				${OUTPUT}
386e5c31af7Sopenharmony_ci			}
387e5c31af7Sopenharmony_ci		""
388e5c31af7Sopenharmony_ci	end
389e5c31af7Sopenharmony_ci
390e5c31af7Sopenharmony_ci	case mediump_vec3_yxy_xyy
391e5c31af7Sopenharmony_ci		version 300 es
392e5c31af7Sopenharmony_ci		values
393e5c31af7Sopenharmony_ci		{
394e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
395e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
396e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.6, 0.6, 1.0) | vec3(2.25, 2.25, 2.5) | vec3(-2.75, -2.75, -4.5) | vec3(32.0, 32.0, 128.0) | vec3(-0.782258064516, -0.782258064516, -0.0645161290323) ];
397e5c31af7Sopenharmony_ci		}
398e5c31af7Sopenharmony_ci
399e5c31af7Sopenharmony_ci		both ""
400e5c31af7Sopenharmony_ci			#version 300 es
401e5c31af7Sopenharmony_ci			precision mediump float;
402e5c31af7Sopenharmony_ci
403e5c31af7Sopenharmony_ci			${DECLARATIONS}
404e5c31af7Sopenharmony_ci
405e5c31af7Sopenharmony_ci			void main()
406e5c31af7Sopenharmony_ci			{
407e5c31af7Sopenharmony_ci				${SETUP}
408e5c31af7Sopenharmony_ci				out0 = in0.yxy + in1.xyy;
409e5c31af7Sopenharmony_ci				${OUTPUT}
410e5c31af7Sopenharmony_ci			}
411e5c31af7Sopenharmony_ci		""
412e5c31af7Sopenharmony_ci	end
413e5c31af7Sopenharmony_ci
414e5c31af7Sopenharmony_ci	case mediump_vec3_xzx_zxx
415e5c31af7Sopenharmony_ci		version 300 es
416e5c31af7Sopenharmony_ci		values
417e5c31af7Sopenharmony_ci		{
418e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
419e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
420e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.85, 0.85, 0.2) | vec3(2.125, 2.125, 2.0) | vec3(-5.375, -5.375, -1.0) | vec3(-83.0, -83.0, -64.0) | vec3(-0.697368421053, -0.697368421053, -1.5) ];
421e5c31af7Sopenharmony_ci		}
422e5c31af7Sopenharmony_ci
423e5c31af7Sopenharmony_ci		both ""
424e5c31af7Sopenharmony_ci			#version 300 es
425e5c31af7Sopenharmony_ci			precision mediump float;
426e5c31af7Sopenharmony_ci
427e5c31af7Sopenharmony_ci			${DECLARATIONS}
428e5c31af7Sopenharmony_ci
429e5c31af7Sopenharmony_ci			void main()
430e5c31af7Sopenharmony_ci			{
431e5c31af7Sopenharmony_ci				${SETUP}
432e5c31af7Sopenharmony_ci				out0 = in0.xzx + in1.zxx;
433e5c31af7Sopenharmony_ci				${OUTPUT}
434e5c31af7Sopenharmony_ci			}
435e5c31af7Sopenharmony_ci		""
436e5c31af7Sopenharmony_ci	end
437e5c31af7Sopenharmony_ci
438e5c31af7Sopenharmony_ci	case mediump_vec3_xyyx_yyxx
439e5c31af7Sopenharmony_ci		version 300 es
440e5c31af7Sopenharmony_ci		values
441e5c31af7Sopenharmony_ci		{
442e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
443e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
444e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.6, 1.0, 0.6, 0.2) | vec4(2.25, 2.5, 2.25, 2.0) | vec4(-2.75, -4.5, -2.75, -1.0) | vec4(32.0, 128.0, 32.0, -64.0) | vec4(-0.782258064516, -0.0645161290323, -0.782258064516, -1.5) ];
445e5c31af7Sopenharmony_ci		}
446e5c31af7Sopenharmony_ci
447e5c31af7Sopenharmony_ci		both ""
448e5c31af7Sopenharmony_ci			#version 300 es
449e5c31af7Sopenharmony_ci			precision mediump float;
450e5c31af7Sopenharmony_ci
451e5c31af7Sopenharmony_ci			${DECLARATIONS}
452e5c31af7Sopenharmony_ci
453e5c31af7Sopenharmony_ci			void main()
454e5c31af7Sopenharmony_ci			{
455e5c31af7Sopenharmony_ci				${SETUP}
456e5c31af7Sopenharmony_ci				out0 = in0.xyyx + in1.yyxx;
457e5c31af7Sopenharmony_ci				${OUTPUT}
458e5c31af7Sopenharmony_ci			}
459e5c31af7Sopenharmony_ci		""
460e5c31af7Sopenharmony_ci	end
461e5c31af7Sopenharmony_ci
462e5c31af7Sopenharmony_ci	case mediump_vec3_zxyz_xyzz
463e5c31af7Sopenharmony_ci		version 300 es
464e5c31af7Sopenharmony_ci		values
465e5c31af7Sopenharmony_ci		{
466e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
467e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
468e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.85, 0.6, 1.25, 1.5) | vec4(2.125, 2.25, 2.375, 2.25) | vec4(-5.375, -2.75, -7.125, -9.75) | vec4(-83.0, 32.0, 13.0, -102.0) | vec4(-0.697368421053, -0.782258064516, 0.0203735144312, 0.105263157895) ];
469e5c31af7Sopenharmony_ci		}
470e5c31af7Sopenharmony_ci
471e5c31af7Sopenharmony_ci		both ""
472e5c31af7Sopenharmony_ci			#version 300 es
473e5c31af7Sopenharmony_ci			precision mediump float;
474e5c31af7Sopenharmony_ci
475e5c31af7Sopenharmony_ci			${DECLARATIONS}
476e5c31af7Sopenharmony_ci
477e5c31af7Sopenharmony_ci			void main()
478e5c31af7Sopenharmony_ci			{
479e5c31af7Sopenharmony_ci				${SETUP}
480e5c31af7Sopenharmony_ci				out0 = in0.zxyz + in1.xyzz;
481e5c31af7Sopenharmony_ci				${OUTPUT}
482e5c31af7Sopenharmony_ci			}
483e5c31af7Sopenharmony_ci		""
484e5c31af7Sopenharmony_ci	end
485e5c31af7Sopenharmony_ci
486e5c31af7Sopenharmony_ci	case mediump_vec4_x_x
487e5c31af7Sopenharmony_ci		version 300 es
488e5c31af7Sopenharmony_ci		values
489e5c31af7Sopenharmony_ci		{
490e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
491e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
492e5c31af7Sopenharmony_ci			output float out0 = [ 0.2 | 2.0 | -1.0 | -64.0 | -1.5 ];
493e5c31af7Sopenharmony_ci		}
494e5c31af7Sopenharmony_ci
495e5c31af7Sopenharmony_ci		both ""
496e5c31af7Sopenharmony_ci			#version 300 es
497e5c31af7Sopenharmony_ci			precision mediump float;
498e5c31af7Sopenharmony_ci
499e5c31af7Sopenharmony_ci			${DECLARATIONS}
500e5c31af7Sopenharmony_ci
501e5c31af7Sopenharmony_ci			void main()
502e5c31af7Sopenharmony_ci			{
503e5c31af7Sopenharmony_ci				${SETUP}
504e5c31af7Sopenharmony_ci				out0 = in0.x + in1.x;
505e5c31af7Sopenharmony_ci				${OUTPUT}
506e5c31af7Sopenharmony_ci			}
507e5c31af7Sopenharmony_ci		""
508e5c31af7Sopenharmony_ci	end
509e5c31af7Sopenharmony_ci
510e5c31af7Sopenharmony_ci	case mediump_vec4_w_w
511e5c31af7Sopenharmony_ci		version 300 es
512e5c31af7Sopenharmony_ci		values
513e5c31af7Sopenharmony_ci		{
514e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
515e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
516e5c31af7Sopenharmony_ci			output float out0 = [ 1.65 | 3.5 | 18.0 | 48.0 | 0.5 ];
517e5c31af7Sopenharmony_ci		}
518e5c31af7Sopenharmony_ci
519e5c31af7Sopenharmony_ci		both ""
520e5c31af7Sopenharmony_ci			#version 300 es
521e5c31af7Sopenharmony_ci			precision mediump float;
522e5c31af7Sopenharmony_ci
523e5c31af7Sopenharmony_ci			${DECLARATIONS}
524e5c31af7Sopenharmony_ci
525e5c31af7Sopenharmony_ci			void main()
526e5c31af7Sopenharmony_ci			{
527e5c31af7Sopenharmony_ci				${SETUP}
528e5c31af7Sopenharmony_ci				out0 = in0.w + in1.w;
529e5c31af7Sopenharmony_ci				${OUTPUT}
530e5c31af7Sopenharmony_ci			}
531e5c31af7Sopenharmony_ci		""
532e5c31af7Sopenharmony_ci	end
533e5c31af7Sopenharmony_ci
534e5c31af7Sopenharmony_ci	case mediump_vec4_wx_xw
535e5c31af7Sopenharmony_ci		version 300 es
536e5c31af7Sopenharmony_ci		values
537e5c31af7Sopenharmony_ci		{
538e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
539e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
540e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(0.925, 0.925) | vec2(2.75, 2.75) | vec2(8.5, 8.5) | vec2(-8.0, -8.0) | vec2(-0.5, -0.5) ];
541e5c31af7Sopenharmony_ci		}
542e5c31af7Sopenharmony_ci
543e5c31af7Sopenharmony_ci		both ""
544e5c31af7Sopenharmony_ci			#version 300 es
545e5c31af7Sopenharmony_ci			precision mediump float;
546e5c31af7Sopenharmony_ci
547e5c31af7Sopenharmony_ci			${DECLARATIONS}
548e5c31af7Sopenharmony_ci
549e5c31af7Sopenharmony_ci			void main()
550e5c31af7Sopenharmony_ci			{
551e5c31af7Sopenharmony_ci				${SETUP}
552e5c31af7Sopenharmony_ci				out0 = in0.wx + in1.xw;
553e5c31af7Sopenharmony_ci				${OUTPUT}
554e5c31af7Sopenharmony_ci			}
555e5c31af7Sopenharmony_ci		""
556e5c31af7Sopenharmony_ci	end
557e5c31af7Sopenharmony_ci
558e5c31af7Sopenharmony_ci	case mediump_vec4_wz_zw
559e5c31af7Sopenharmony_ci		version 300 es
560e5c31af7Sopenharmony_ci		values
561e5c31af7Sopenharmony_ci		{
562e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
563e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
564e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(1.575, 1.575) | vec2(2.875, 2.875) | vec2(4.125, 4.125) | vec2(-27.0, -27.0) | vec2(0.302631578947, 0.302631578947) ];
565e5c31af7Sopenharmony_ci		}
566e5c31af7Sopenharmony_ci
567e5c31af7Sopenharmony_ci		both ""
568e5c31af7Sopenharmony_ci			#version 300 es
569e5c31af7Sopenharmony_ci			precision mediump float;
570e5c31af7Sopenharmony_ci
571e5c31af7Sopenharmony_ci			${DECLARATIONS}
572e5c31af7Sopenharmony_ci
573e5c31af7Sopenharmony_ci			void main()
574e5c31af7Sopenharmony_ci			{
575e5c31af7Sopenharmony_ci				${SETUP}
576e5c31af7Sopenharmony_ci				out0 = in0.wz + in1.zw;
577e5c31af7Sopenharmony_ci				${OUTPUT}
578e5c31af7Sopenharmony_ci			}
579e5c31af7Sopenharmony_ci		""
580e5c31af7Sopenharmony_ci	end
581e5c31af7Sopenharmony_ci
582e5c31af7Sopenharmony_ci	case mediump_vec4_www_www
583e5c31af7Sopenharmony_ci		version 300 es
584e5c31af7Sopenharmony_ci		values
585e5c31af7Sopenharmony_ci		{
586e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
587e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
588e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(1.65, 1.65, 1.65) | vec3(3.5, 3.5, 3.5) | vec3(18.0, 18.0, 18.0) | vec3(48.0, 48.0, 48.0) | vec3(0.5, 0.5, 0.5) ];
589e5c31af7Sopenharmony_ci		}
590e5c31af7Sopenharmony_ci
591e5c31af7Sopenharmony_ci		both ""
592e5c31af7Sopenharmony_ci			#version 300 es
593e5c31af7Sopenharmony_ci			precision mediump float;
594e5c31af7Sopenharmony_ci
595e5c31af7Sopenharmony_ci			${DECLARATIONS}
596e5c31af7Sopenharmony_ci
597e5c31af7Sopenharmony_ci			void main()
598e5c31af7Sopenharmony_ci			{
599e5c31af7Sopenharmony_ci				${SETUP}
600e5c31af7Sopenharmony_ci				out0 = in0.www + in1.www;
601e5c31af7Sopenharmony_ci				${OUTPUT}
602e5c31af7Sopenharmony_ci			}
603e5c31af7Sopenharmony_ci		""
604e5c31af7Sopenharmony_ci	end
605e5c31af7Sopenharmony_ci
606e5c31af7Sopenharmony_ci	case mediump_vec4_yyw_ywy
607e5c31af7Sopenharmony_ci		version 300 es
608e5c31af7Sopenharmony_ci		values
609e5c31af7Sopenharmony_ci		{
610e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
611e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
612e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(1.0, 1.325, 1.325) | vec3(2.5, 3.0, 3.0) | vec3(-4.5, 6.75, 6.75) | vec3(128.0, 88.0, 88.0) | vec3(-0.0645161290323, 0.217741935484, 0.217741935484) ];
613e5c31af7Sopenharmony_ci		}
614e5c31af7Sopenharmony_ci
615e5c31af7Sopenharmony_ci		both ""
616e5c31af7Sopenharmony_ci			#version 300 es
617e5c31af7Sopenharmony_ci			precision mediump float;
618e5c31af7Sopenharmony_ci
619e5c31af7Sopenharmony_ci			${DECLARATIONS}
620e5c31af7Sopenharmony_ci
621e5c31af7Sopenharmony_ci			void main()
622e5c31af7Sopenharmony_ci			{
623e5c31af7Sopenharmony_ci				${SETUP}
624e5c31af7Sopenharmony_ci				out0 = in0.yyw + in1.ywy;
625e5c31af7Sopenharmony_ci				${OUTPUT}
626e5c31af7Sopenharmony_ci			}
627e5c31af7Sopenharmony_ci		""
628e5c31af7Sopenharmony_ci	end
629e5c31af7Sopenharmony_ci
630e5c31af7Sopenharmony_ci	case mediump_vec4_wzy_zyw
631e5c31af7Sopenharmony_ci		version 300 es
632e5c31af7Sopenharmony_ci		values
633e5c31af7Sopenharmony_ci		{
634e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
635e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
636e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(1.575, 1.25, 1.325) | vec3(2.875, 2.375, 3.0) | vec3(4.125, -7.125, 6.75) | vec3(-27.0, 13.0, 88.0) | vec3(0.302631578947, 0.0203735144312, 0.217741935484) ];
637e5c31af7Sopenharmony_ci		}
638e5c31af7Sopenharmony_ci
639e5c31af7Sopenharmony_ci		both ""
640e5c31af7Sopenharmony_ci			#version 300 es
641e5c31af7Sopenharmony_ci			precision mediump float;
642e5c31af7Sopenharmony_ci
643e5c31af7Sopenharmony_ci			${DECLARATIONS}
644e5c31af7Sopenharmony_ci
645e5c31af7Sopenharmony_ci			void main()
646e5c31af7Sopenharmony_ci			{
647e5c31af7Sopenharmony_ci				${SETUP}
648e5c31af7Sopenharmony_ci				out0 = in0.wzy + in1.zyw;
649e5c31af7Sopenharmony_ci				${OUTPUT}
650e5c31af7Sopenharmony_ci			}
651e5c31af7Sopenharmony_ci		""
652e5c31af7Sopenharmony_ci	end
653e5c31af7Sopenharmony_ci
654e5c31af7Sopenharmony_ci	case mediump_vec4_xyzw_yzwx
655e5c31af7Sopenharmony_ci		version 300 es
656e5c31af7Sopenharmony_ci		values
657e5c31af7Sopenharmony_ci		{
658e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
659e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
660e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.6, 1.25, 1.575, 0.925) | vec4(2.25, 2.375, 2.875, 2.75) | vec4(-2.75, -7.125, 4.125, 8.5) | vec4(32.0, 13.0, -27.0, -8.0) | vec4(-0.782258064516, 0.0203735144312, 0.302631578947, -0.5) ];
661e5c31af7Sopenharmony_ci		}
662e5c31af7Sopenharmony_ci
663e5c31af7Sopenharmony_ci		both ""
664e5c31af7Sopenharmony_ci			#version 300 es
665e5c31af7Sopenharmony_ci			precision mediump float;
666e5c31af7Sopenharmony_ci
667e5c31af7Sopenharmony_ci			${DECLARATIONS}
668e5c31af7Sopenharmony_ci
669e5c31af7Sopenharmony_ci			void main()
670e5c31af7Sopenharmony_ci			{
671e5c31af7Sopenharmony_ci				${SETUP}
672e5c31af7Sopenharmony_ci				out0 = in0.xyzw + in1.yzwx;
673e5c31af7Sopenharmony_ci				${OUTPUT}
674e5c31af7Sopenharmony_ci			}
675e5c31af7Sopenharmony_ci		""
676e5c31af7Sopenharmony_ci	end
677e5c31af7Sopenharmony_ci
678e5c31af7Sopenharmony_ci	case mediump_vec4_wzyx_zyxw
679e5c31af7Sopenharmony_ci		version 300 es
680e5c31af7Sopenharmony_ci		values
681e5c31af7Sopenharmony_ci		{
682e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
683e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
684e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(1.575, 1.25, 0.6, 0.925) | vec4(2.875, 2.375, 2.25, 2.75) | vec4(4.125, -7.125, -2.75, 8.5) | vec4(-27.0, 13.0, 32.0, -8.0) | vec4(0.302631578947, 0.0203735144312, -0.782258064516, -0.5) ];
685e5c31af7Sopenharmony_ci		}
686e5c31af7Sopenharmony_ci
687e5c31af7Sopenharmony_ci		both ""
688e5c31af7Sopenharmony_ci			#version 300 es
689e5c31af7Sopenharmony_ci			precision mediump float;
690e5c31af7Sopenharmony_ci
691e5c31af7Sopenharmony_ci			${DECLARATIONS}
692e5c31af7Sopenharmony_ci
693e5c31af7Sopenharmony_ci			void main()
694e5c31af7Sopenharmony_ci			{
695e5c31af7Sopenharmony_ci				${SETUP}
696e5c31af7Sopenharmony_ci				out0 = in0.wzyx + in1.zyxw;
697e5c31af7Sopenharmony_ci				${OUTPUT}
698e5c31af7Sopenharmony_ci			}
699e5c31af7Sopenharmony_ci		""
700e5c31af7Sopenharmony_ci	end
701e5c31af7Sopenharmony_ci
702e5c31af7Sopenharmony_ci	case mediump_vec4_xyxy_yxyx
703e5c31af7Sopenharmony_ci		version 300 es
704e5c31af7Sopenharmony_ci		values
705e5c31af7Sopenharmony_ci		{
706e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
707e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
708e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.6, 0.6, 0.6, 0.6) | vec4(2.25, 2.25, 2.25, 2.25) | vec4(-2.75, -2.75, -2.75, -2.75) | vec4(32.0, 32.0, 32.0, 32.0) | vec4(-0.782258064516, -0.782258064516, -0.782258064516, -0.782258064516) ];
709e5c31af7Sopenharmony_ci		}
710e5c31af7Sopenharmony_ci
711e5c31af7Sopenharmony_ci		both ""
712e5c31af7Sopenharmony_ci			#version 300 es
713e5c31af7Sopenharmony_ci			precision mediump float;
714e5c31af7Sopenharmony_ci
715e5c31af7Sopenharmony_ci			${DECLARATIONS}
716e5c31af7Sopenharmony_ci
717e5c31af7Sopenharmony_ci			void main()
718e5c31af7Sopenharmony_ci			{
719e5c31af7Sopenharmony_ci				${SETUP}
720e5c31af7Sopenharmony_ci				out0 = in0.xyxy + in1.yxyx;
721e5c31af7Sopenharmony_ci				${OUTPUT}
722e5c31af7Sopenharmony_ci			}
723e5c31af7Sopenharmony_ci		""
724e5c31af7Sopenharmony_ci	end
725e5c31af7Sopenharmony_ci
726e5c31af7Sopenharmony_ci	case mediump_vec4_yzzy_zzyy
727e5c31af7Sopenharmony_ci		version 300 es
728e5c31af7Sopenharmony_ci		values
729e5c31af7Sopenharmony_ci		{
730e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
731e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
732e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(1.25, 1.5, 1.25, 1.0) | vec4(2.375, 2.25, 2.375, 2.5) | vec4(-7.125, -9.75, -7.125, -4.5) | vec4(13.0, -102.0, 13.0, 128.0) | vec4(0.0203735144312, 0.105263157895, 0.0203735144312, -0.0645161290323) ];
733e5c31af7Sopenharmony_ci		}
734e5c31af7Sopenharmony_ci
735e5c31af7Sopenharmony_ci		both ""
736e5c31af7Sopenharmony_ci			#version 300 es
737e5c31af7Sopenharmony_ci			precision mediump float;
738e5c31af7Sopenharmony_ci
739e5c31af7Sopenharmony_ci			${DECLARATIONS}
740e5c31af7Sopenharmony_ci
741e5c31af7Sopenharmony_ci			void main()
742e5c31af7Sopenharmony_ci			{
743e5c31af7Sopenharmony_ci				${SETUP}
744e5c31af7Sopenharmony_ci				out0 = in0.yzzy + in1.zzyy;
745e5c31af7Sopenharmony_ci				${OUTPUT}
746e5c31af7Sopenharmony_ci			}
747e5c31af7Sopenharmony_ci		""
748e5c31af7Sopenharmony_ci	end
749e5c31af7Sopenharmony_ci
750e5c31af7Sopenharmony_ci	case mediump_vec4_wxww_xwww
751e5c31af7Sopenharmony_ci		version 300 es
752e5c31af7Sopenharmony_ci		values
753e5c31af7Sopenharmony_ci		{
754e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
755e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
756e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.925, 0.925, 1.65, 1.65) | vec4(2.75, 2.75, 3.5, 3.5) | vec4(8.5, 8.5, 18.0, 18.0) | vec4(-8.0, -8.0, 48.0, 48.0) | vec4(-0.5, -0.5, 0.5, 0.5) ];
757e5c31af7Sopenharmony_ci		}
758e5c31af7Sopenharmony_ci
759e5c31af7Sopenharmony_ci		both ""
760e5c31af7Sopenharmony_ci			#version 300 es
761e5c31af7Sopenharmony_ci			precision mediump float;
762e5c31af7Sopenharmony_ci
763e5c31af7Sopenharmony_ci			${DECLARATIONS}
764e5c31af7Sopenharmony_ci
765e5c31af7Sopenharmony_ci			void main()
766e5c31af7Sopenharmony_ci			{
767e5c31af7Sopenharmony_ci				${SETUP}
768e5c31af7Sopenharmony_ci				out0 = in0.wxww + in1.xwww;
769e5c31af7Sopenharmony_ci				${OUTPUT}
770e5c31af7Sopenharmony_ci			}
771e5c31af7Sopenharmony_ci		""
772e5c31af7Sopenharmony_ci	end
773e5c31af7Sopenharmony_ci
774e5c31af7Sopenharmony_ci	case mediump_vec4_xyxx_yxxx
775e5c31af7Sopenharmony_ci		version 300 es
776e5c31af7Sopenharmony_ci		values
777e5c31af7Sopenharmony_ci		{
778e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
779e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
780e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.6, 0.6, 0.2, 0.2) | vec4(2.25, 2.25, 2.0, 2.0) | vec4(-2.75, -2.75, -1.0, -1.0) | vec4(32.0, 32.0, -64.0, -64.0) | vec4(-0.782258064516, -0.782258064516, -1.5, -1.5) ];
781e5c31af7Sopenharmony_ci		}
782e5c31af7Sopenharmony_ci
783e5c31af7Sopenharmony_ci		both ""
784e5c31af7Sopenharmony_ci			#version 300 es
785e5c31af7Sopenharmony_ci			precision mediump float;
786e5c31af7Sopenharmony_ci
787e5c31af7Sopenharmony_ci			${DECLARATIONS}
788e5c31af7Sopenharmony_ci
789e5c31af7Sopenharmony_ci			void main()
790e5c31af7Sopenharmony_ci			{
791e5c31af7Sopenharmony_ci				${SETUP}
792e5c31af7Sopenharmony_ci				out0 = in0.xyxx + in1.yxxx;
793e5c31af7Sopenharmony_ci				${OUTPUT}
794e5c31af7Sopenharmony_ci			}
795e5c31af7Sopenharmony_ci		""
796e5c31af7Sopenharmony_ci	end
797e5c31af7Sopenharmony_ci
798e5c31af7Sopenharmony_ci	case mediump_vec4_zzzz_zzzz
799e5c31af7Sopenharmony_ci		version 300 es
800e5c31af7Sopenharmony_ci		values
801e5c31af7Sopenharmony_ci		{
802e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
803e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
804e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(1.5, 1.5, 1.5, 1.5) | vec4(2.25, 2.25, 2.25, 2.25) | vec4(-9.75, -9.75, -9.75, -9.75) | vec4(-102.0, -102.0, -102.0, -102.0) | vec4(0.105263157895, 0.105263157895, 0.105263157895, 0.105263157895) ];
805e5c31af7Sopenharmony_ci		}
806e5c31af7Sopenharmony_ci
807e5c31af7Sopenharmony_ci		both ""
808e5c31af7Sopenharmony_ci			#version 300 es
809e5c31af7Sopenharmony_ci			precision mediump float;
810e5c31af7Sopenharmony_ci
811e5c31af7Sopenharmony_ci			${DECLARATIONS}
812e5c31af7Sopenharmony_ci
813e5c31af7Sopenharmony_ci			void main()
814e5c31af7Sopenharmony_ci			{
815e5c31af7Sopenharmony_ci				${SETUP}
816e5c31af7Sopenharmony_ci				out0 = in0.zzzz + in1.zzzz;
817e5c31af7Sopenharmony_ci				${OUTPUT}
818e5c31af7Sopenharmony_ci			}
819e5c31af7Sopenharmony_ci		""
820e5c31af7Sopenharmony_ci	end
821e5c31af7Sopenharmony_ci
822e5c31af7Sopenharmony_ci	case mediump_ivec2_x_x
823e5c31af7Sopenharmony_ci		version 300 es
824e5c31af7Sopenharmony_ci		values
825e5c31af7Sopenharmony_ci		{
826e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
827e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
828e5c31af7Sopenharmony_ci			output int out0 = [ -2 | 2 | -2 ];
829e5c31af7Sopenharmony_ci		}
830e5c31af7Sopenharmony_ci
831e5c31af7Sopenharmony_ci		both ""
832e5c31af7Sopenharmony_ci			#version 300 es
833e5c31af7Sopenharmony_ci			precision mediump float;
834e5c31af7Sopenharmony_ci
835e5c31af7Sopenharmony_ci			${DECLARATIONS}
836e5c31af7Sopenharmony_ci
837e5c31af7Sopenharmony_ci			void main()
838e5c31af7Sopenharmony_ci			{
839e5c31af7Sopenharmony_ci				${SETUP}
840e5c31af7Sopenharmony_ci				out0 = in0.x + in1.x;
841e5c31af7Sopenharmony_ci				${OUTPUT}
842e5c31af7Sopenharmony_ci			}
843e5c31af7Sopenharmony_ci		""
844e5c31af7Sopenharmony_ci	end
845e5c31af7Sopenharmony_ci
846e5c31af7Sopenharmony_ci	case mediump_ivec2_xx_xx
847e5c31af7Sopenharmony_ci		version 300 es
848e5c31af7Sopenharmony_ci		values
849e5c31af7Sopenharmony_ci		{
850e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
851e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
852e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(-2, -2) | ivec2(2, 2) | ivec2(-2, -2) ];
853e5c31af7Sopenharmony_ci		}
854e5c31af7Sopenharmony_ci
855e5c31af7Sopenharmony_ci		both ""
856e5c31af7Sopenharmony_ci			#version 300 es
857e5c31af7Sopenharmony_ci			precision mediump float;
858e5c31af7Sopenharmony_ci
859e5c31af7Sopenharmony_ci			${DECLARATIONS}
860e5c31af7Sopenharmony_ci
861e5c31af7Sopenharmony_ci			void main()
862e5c31af7Sopenharmony_ci			{
863e5c31af7Sopenharmony_ci				${SETUP}
864e5c31af7Sopenharmony_ci				out0 = in0.xx + in1.xx;
865e5c31af7Sopenharmony_ci				${OUTPUT}
866e5c31af7Sopenharmony_ci			}
867e5c31af7Sopenharmony_ci		""
868e5c31af7Sopenharmony_ci	end
869e5c31af7Sopenharmony_ci
870e5c31af7Sopenharmony_ci	case mediump_ivec2_xy_yx
871e5c31af7Sopenharmony_ci		version 300 es
872e5c31af7Sopenharmony_ci		values
873e5c31af7Sopenharmony_ci		{
874e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
875e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
876e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(0, 0) | ivec2(3, 3) | ivec2(-3, -3) ];
877e5c31af7Sopenharmony_ci		}
878e5c31af7Sopenharmony_ci
879e5c31af7Sopenharmony_ci		both ""
880e5c31af7Sopenharmony_ci			#version 300 es
881e5c31af7Sopenharmony_ci			precision mediump float;
882e5c31af7Sopenharmony_ci
883e5c31af7Sopenharmony_ci			${DECLARATIONS}
884e5c31af7Sopenharmony_ci
885e5c31af7Sopenharmony_ci			void main()
886e5c31af7Sopenharmony_ci			{
887e5c31af7Sopenharmony_ci				${SETUP}
888e5c31af7Sopenharmony_ci				out0 = in0.xy + in1.yx;
889e5c31af7Sopenharmony_ci				${OUTPUT}
890e5c31af7Sopenharmony_ci			}
891e5c31af7Sopenharmony_ci		""
892e5c31af7Sopenharmony_ci	end
893e5c31af7Sopenharmony_ci
894e5c31af7Sopenharmony_ci	case mediump_ivec2_yx_xy
895e5c31af7Sopenharmony_ci		version 300 es
896e5c31af7Sopenharmony_ci		values
897e5c31af7Sopenharmony_ci		{
898e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
899e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
900e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(0, 0) | ivec2(3, 3) | ivec2(-3, -3) ];
901e5c31af7Sopenharmony_ci		}
902e5c31af7Sopenharmony_ci
903e5c31af7Sopenharmony_ci		both ""
904e5c31af7Sopenharmony_ci			#version 300 es
905e5c31af7Sopenharmony_ci			precision mediump float;
906e5c31af7Sopenharmony_ci
907e5c31af7Sopenharmony_ci			${DECLARATIONS}
908e5c31af7Sopenharmony_ci
909e5c31af7Sopenharmony_ci			void main()
910e5c31af7Sopenharmony_ci			{
911e5c31af7Sopenharmony_ci				${SETUP}
912e5c31af7Sopenharmony_ci				out0 = in0.yx + in1.xy;
913e5c31af7Sopenharmony_ci				${OUTPUT}
914e5c31af7Sopenharmony_ci			}
915e5c31af7Sopenharmony_ci		""
916e5c31af7Sopenharmony_ci	end
917e5c31af7Sopenharmony_ci
918e5c31af7Sopenharmony_ci	case mediump_ivec2_yxy_xyy
919e5c31af7Sopenharmony_ci		version 300 es
920e5c31af7Sopenharmony_ci		values
921e5c31af7Sopenharmony_ci		{
922e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
923e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
924e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(0, 0, 2) | ivec3(3, 3, 4) | ivec3(-3, -3, -4) ];
925e5c31af7Sopenharmony_ci		}
926e5c31af7Sopenharmony_ci
927e5c31af7Sopenharmony_ci		both ""
928e5c31af7Sopenharmony_ci			#version 300 es
929e5c31af7Sopenharmony_ci			precision mediump float;
930e5c31af7Sopenharmony_ci
931e5c31af7Sopenharmony_ci			${DECLARATIONS}
932e5c31af7Sopenharmony_ci
933e5c31af7Sopenharmony_ci			void main()
934e5c31af7Sopenharmony_ci			{
935e5c31af7Sopenharmony_ci				${SETUP}
936e5c31af7Sopenharmony_ci				out0 = in0.yxy + in1.xyy;
937e5c31af7Sopenharmony_ci				${OUTPUT}
938e5c31af7Sopenharmony_ci			}
939e5c31af7Sopenharmony_ci		""
940e5c31af7Sopenharmony_ci	end
941e5c31af7Sopenharmony_ci
942e5c31af7Sopenharmony_ci	case mediump_ivec2_xyxx_yxxx
943e5c31af7Sopenharmony_ci		version 300 es
944e5c31af7Sopenharmony_ci		values
945e5c31af7Sopenharmony_ci		{
946e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
947e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
948e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(0, 0, -2, -2) | ivec4(3, 3, 2, 2) | ivec4(-3, -3, -2, -2) ];
949e5c31af7Sopenharmony_ci		}
950e5c31af7Sopenharmony_ci
951e5c31af7Sopenharmony_ci		both ""
952e5c31af7Sopenharmony_ci			#version 300 es
953e5c31af7Sopenharmony_ci			precision mediump float;
954e5c31af7Sopenharmony_ci
955e5c31af7Sopenharmony_ci			${DECLARATIONS}
956e5c31af7Sopenharmony_ci
957e5c31af7Sopenharmony_ci			void main()
958e5c31af7Sopenharmony_ci			{
959e5c31af7Sopenharmony_ci				${SETUP}
960e5c31af7Sopenharmony_ci				out0 = in0.xyxx + in1.yxxx;
961e5c31af7Sopenharmony_ci				${OUTPUT}
962e5c31af7Sopenharmony_ci			}
963e5c31af7Sopenharmony_ci		""
964e5c31af7Sopenharmony_ci	end
965e5c31af7Sopenharmony_ci
966e5c31af7Sopenharmony_ci	case mediump_ivec2_yxyx_xyxy
967e5c31af7Sopenharmony_ci		version 300 es
968e5c31af7Sopenharmony_ci		values
969e5c31af7Sopenharmony_ci		{
970e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
971e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
972e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(3, 3, 3, 3) | ivec4(-3, -3, -3, -3) ];
973e5c31af7Sopenharmony_ci		}
974e5c31af7Sopenharmony_ci
975e5c31af7Sopenharmony_ci		both ""
976e5c31af7Sopenharmony_ci			#version 300 es
977e5c31af7Sopenharmony_ci			precision mediump float;
978e5c31af7Sopenharmony_ci
979e5c31af7Sopenharmony_ci			${DECLARATIONS}
980e5c31af7Sopenharmony_ci
981e5c31af7Sopenharmony_ci			void main()
982e5c31af7Sopenharmony_ci			{
983e5c31af7Sopenharmony_ci				${SETUP}
984e5c31af7Sopenharmony_ci				out0 = in0.yxyx + in1.xyxy;
985e5c31af7Sopenharmony_ci				${OUTPUT}
986e5c31af7Sopenharmony_ci			}
987e5c31af7Sopenharmony_ci		""
988e5c31af7Sopenharmony_ci	end
989e5c31af7Sopenharmony_ci
990e5c31af7Sopenharmony_ci	case mediump_ivec3_x_x
991e5c31af7Sopenharmony_ci		version 300 es
992e5c31af7Sopenharmony_ci		values
993e5c31af7Sopenharmony_ci		{
994e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
995e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
996e5c31af7Sopenharmony_ci			output int out0 = [ -2 | 2 | -2 ];
997e5c31af7Sopenharmony_ci		}
998e5c31af7Sopenharmony_ci
999e5c31af7Sopenharmony_ci		both ""
1000e5c31af7Sopenharmony_ci			#version 300 es
1001e5c31af7Sopenharmony_ci			precision mediump float;
1002e5c31af7Sopenharmony_ci
1003e5c31af7Sopenharmony_ci			${DECLARATIONS}
1004e5c31af7Sopenharmony_ci
1005e5c31af7Sopenharmony_ci			void main()
1006e5c31af7Sopenharmony_ci			{
1007e5c31af7Sopenharmony_ci				${SETUP}
1008e5c31af7Sopenharmony_ci				out0 = in0.x + in1.x;
1009e5c31af7Sopenharmony_ci				${OUTPUT}
1010e5c31af7Sopenharmony_ci			}
1011e5c31af7Sopenharmony_ci		""
1012e5c31af7Sopenharmony_ci	end
1013e5c31af7Sopenharmony_ci
1014e5c31af7Sopenharmony_ci	case mediump_ivec3_z_z
1015e5c31af7Sopenharmony_ci		version 300 es
1016e5c31af7Sopenharmony_ci		values
1017e5c31af7Sopenharmony_ci		{
1018e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
1019e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
1020e5c31af7Sopenharmony_ci			output int out0 = [ -2 | 6 | -8 ];
1021e5c31af7Sopenharmony_ci		}
1022e5c31af7Sopenharmony_ci
1023e5c31af7Sopenharmony_ci		both ""
1024e5c31af7Sopenharmony_ci			#version 300 es
1025e5c31af7Sopenharmony_ci			precision mediump float;
1026e5c31af7Sopenharmony_ci
1027e5c31af7Sopenharmony_ci			${DECLARATIONS}
1028e5c31af7Sopenharmony_ci
1029e5c31af7Sopenharmony_ci			void main()
1030e5c31af7Sopenharmony_ci			{
1031e5c31af7Sopenharmony_ci				${SETUP}
1032e5c31af7Sopenharmony_ci				out0 = in0.z + in1.z;
1033e5c31af7Sopenharmony_ci				${OUTPUT}
1034e5c31af7Sopenharmony_ci			}
1035e5c31af7Sopenharmony_ci		""
1036e5c31af7Sopenharmony_ci	end
1037e5c31af7Sopenharmony_ci
1038e5c31af7Sopenharmony_ci	case mediump_ivec3_xz_zx
1039e5c31af7Sopenharmony_ci		version 300 es
1040e5c31af7Sopenharmony_ci		values
1041e5c31af7Sopenharmony_ci		{
1042e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
1043e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
1044e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(-2, -2) | ivec2(4, 4) | ivec2(-5, -5) ];
1045e5c31af7Sopenharmony_ci		}
1046e5c31af7Sopenharmony_ci
1047e5c31af7Sopenharmony_ci		both ""
1048e5c31af7Sopenharmony_ci			#version 300 es
1049e5c31af7Sopenharmony_ci			precision mediump float;
1050e5c31af7Sopenharmony_ci
1051e5c31af7Sopenharmony_ci			${DECLARATIONS}
1052e5c31af7Sopenharmony_ci
1053e5c31af7Sopenharmony_ci			void main()
1054e5c31af7Sopenharmony_ci			{
1055e5c31af7Sopenharmony_ci				${SETUP}
1056e5c31af7Sopenharmony_ci				out0 = in0.xz + in1.zx;
1057e5c31af7Sopenharmony_ci				${OUTPUT}
1058e5c31af7Sopenharmony_ci			}
1059e5c31af7Sopenharmony_ci		""
1060e5c31af7Sopenharmony_ci	end
1061e5c31af7Sopenharmony_ci
1062e5c31af7Sopenharmony_ci	case mediump_ivec3_zz_zz
1063e5c31af7Sopenharmony_ci		version 300 es
1064e5c31af7Sopenharmony_ci		values
1065e5c31af7Sopenharmony_ci		{
1066e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
1067e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
1068e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(-2, -2) | ivec2(6, 6) | ivec2(-8, -8) ];
1069e5c31af7Sopenharmony_ci		}
1070e5c31af7Sopenharmony_ci
1071e5c31af7Sopenharmony_ci		both ""
1072e5c31af7Sopenharmony_ci			#version 300 es
1073e5c31af7Sopenharmony_ci			precision mediump float;
1074e5c31af7Sopenharmony_ci
1075e5c31af7Sopenharmony_ci			${DECLARATIONS}
1076e5c31af7Sopenharmony_ci
1077e5c31af7Sopenharmony_ci			void main()
1078e5c31af7Sopenharmony_ci			{
1079e5c31af7Sopenharmony_ci				${SETUP}
1080e5c31af7Sopenharmony_ci				out0 = in0.zz + in1.zz;
1081e5c31af7Sopenharmony_ci				${OUTPUT}
1082e5c31af7Sopenharmony_ci			}
1083e5c31af7Sopenharmony_ci		""
1084e5c31af7Sopenharmony_ci	end
1085e5c31af7Sopenharmony_ci
1086e5c31af7Sopenharmony_ci	case mediump_ivec3_xyz_yzx
1087e5c31af7Sopenharmony_ci		version 300 es
1088e5c31af7Sopenharmony_ci		values
1089e5c31af7Sopenharmony_ci		{
1090e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
1091e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
1092e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(0, 0, -2) | ivec3(3, 5, 4) | ivec3(-3, -6, -5) ];
1093e5c31af7Sopenharmony_ci		}
1094e5c31af7Sopenharmony_ci
1095e5c31af7Sopenharmony_ci		both ""
1096e5c31af7Sopenharmony_ci			#version 300 es
1097e5c31af7Sopenharmony_ci			precision mediump float;
1098e5c31af7Sopenharmony_ci
1099e5c31af7Sopenharmony_ci			${DECLARATIONS}
1100e5c31af7Sopenharmony_ci
1101e5c31af7Sopenharmony_ci			void main()
1102e5c31af7Sopenharmony_ci			{
1103e5c31af7Sopenharmony_ci				${SETUP}
1104e5c31af7Sopenharmony_ci				out0 = in0.xyz + in1.yzx;
1105e5c31af7Sopenharmony_ci				${OUTPUT}
1106e5c31af7Sopenharmony_ci			}
1107e5c31af7Sopenharmony_ci		""
1108e5c31af7Sopenharmony_ci	end
1109e5c31af7Sopenharmony_ci
1110e5c31af7Sopenharmony_ci	case mediump_ivec3_zyx_yxz
1111e5c31af7Sopenharmony_ci		version 300 es
1112e5c31af7Sopenharmony_ci		values
1113e5c31af7Sopenharmony_ci		{
1114e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
1115e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
1116e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(0, 0, -2) | ivec3(5, 3, 4) | ivec3(-6, -3, -5) ];
1117e5c31af7Sopenharmony_ci		}
1118e5c31af7Sopenharmony_ci
1119e5c31af7Sopenharmony_ci		both ""
1120e5c31af7Sopenharmony_ci			#version 300 es
1121e5c31af7Sopenharmony_ci			precision mediump float;
1122e5c31af7Sopenharmony_ci
1123e5c31af7Sopenharmony_ci			${DECLARATIONS}
1124e5c31af7Sopenharmony_ci
1125e5c31af7Sopenharmony_ci			void main()
1126e5c31af7Sopenharmony_ci			{
1127e5c31af7Sopenharmony_ci				${SETUP}
1128e5c31af7Sopenharmony_ci				out0 = in0.zyx + in1.yxz;
1129e5c31af7Sopenharmony_ci				${OUTPUT}
1130e5c31af7Sopenharmony_ci			}
1131e5c31af7Sopenharmony_ci		""
1132e5c31af7Sopenharmony_ci	end
1133e5c31af7Sopenharmony_ci
1134e5c31af7Sopenharmony_ci	case mediump_ivec3_xxx_xxx
1135e5c31af7Sopenharmony_ci		version 300 es
1136e5c31af7Sopenharmony_ci		values
1137e5c31af7Sopenharmony_ci		{
1138e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
1139e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
1140e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(-2, -2, -2) | ivec3(2, 2, 2) | ivec3(-2, -2, -2) ];
1141e5c31af7Sopenharmony_ci		}
1142e5c31af7Sopenharmony_ci
1143e5c31af7Sopenharmony_ci		both ""
1144e5c31af7Sopenharmony_ci			#version 300 es
1145e5c31af7Sopenharmony_ci			precision mediump float;
1146e5c31af7Sopenharmony_ci
1147e5c31af7Sopenharmony_ci			${DECLARATIONS}
1148e5c31af7Sopenharmony_ci
1149e5c31af7Sopenharmony_ci			void main()
1150e5c31af7Sopenharmony_ci			{
1151e5c31af7Sopenharmony_ci				${SETUP}
1152e5c31af7Sopenharmony_ci				out0 = in0.xxx + in1.xxx;
1153e5c31af7Sopenharmony_ci				${OUTPUT}
1154e5c31af7Sopenharmony_ci			}
1155e5c31af7Sopenharmony_ci		""
1156e5c31af7Sopenharmony_ci	end
1157e5c31af7Sopenharmony_ci
1158e5c31af7Sopenharmony_ci	case mediump_ivec3_zzz_zzz
1159e5c31af7Sopenharmony_ci		version 300 es
1160e5c31af7Sopenharmony_ci		values
1161e5c31af7Sopenharmony_ci		{
1162e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
1163e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
1164e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(-2, -2, -2) | ivec3(6, 6, 6) | ivec3(-8, -8, -8) ];
1165e5c31af7Sopenharmony_ci		}
1166e5c31af7Sopenharmony_ci
1167e5c31af7Sopenharmony_ci		both ""
1168e5c31af7Sopenharmony_ci			#version 300 es
1169e5c31af7Sopenharmony_ci			precision mediump float;
1170e5c31af7Sopenharmony_ci
1171e5c31af7Sopenharmony_ci			${DECLARATIONS}
1172e5c31af7Sopenharmony_ci
1173e5c31af7Sopenharmony_ci			void main()
1174e5c31af7Sopenharmony_ci			{
1175e5c31af7Sopenharmony_ci				${SETUP}
1176e5c31af7Sopenharmony_ci				out0 = in0.zzz + in1.zzz;
1177e5c31af7Sopenharmony_ci				${OUTPUT}
1178e5c31af7Sopenharmony_ci			}
1179e5c31af7Sopenharmony_ci		""
1180e5c31af7Sopenharmony_ci	end
1181e5c31af7Sopenharmony_ci
1182e5c31af7Sopenharmony_ci	case mediump_ivec3_zzy_zyz
1183e5c31af7Sopenharmony_ci		version 300 es
1184e5c31af7Sopenharmony_ci		values
1185e5c31af7Sopenharmony_ci		{
1186e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
1187e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
1188e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(-2, 0, 0) | ivec3(6, 5, 5) | ivec3(-8, -6, -6) ];
1189e5c31af7Sopenharmony_ci		}
1190e5c31af7Sopenharmony_ci
1191e5c31af7Sopenharmony_ci		both ""
1192e5c31af7Sopenharmony_ci			#version 300 es
1193e5c31af7Sopenharmony_ci			precision mediump float;
1194e5c31af7Sopenharmony_ci
1195e5c31af7Sopenharmony_ci			${DECLARATIONS}
1196e5c31af7Sopenharmony_ci
1197e5c31af7Sopenharmony_ci			void main()
1198e5c31af7Sopenharmony_ci			{
1199e5c31af7Sopenharmony_ci				${SETUP}
1200e5c31af7Sopenharmony_ci				out0 = in0.zzy + in1.zyz;
1201e5c31af7Sopenharmony_ci				${OUTPUT}
1202e5c31af7Sopenharmony_ci			}
1203e5c31af7Sopenharmony_ci		""
1204e5c31af7Sopenharmony_ci	end
1205e5c31af7Sopenharmony_ci
1206e5c31af7Sopenharmony_ci	case mediump_ivec3_yxy_xyy
1207e5c31af7Sopenharmony_ci		version 300 es
1208e5c31af7Sopenharmony_ci		values
1209e5c31af7Sopenharmony_ci		{
1210e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
1211e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
1212e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(0, 0, 2) | ivec3(3, 3, 4) | ivec3(-3, -3, -4) ];
1213e5c31af7Sopenharmony_ci		}
1214e5c31af7Sopenharmony_ci
1215e5c31af7Sopenharmony_ci		both ""
1216e5c31af7Sopenharmony_ci			#version 300 es
1217e5c31af7Sopenharmony_ci			precision mediump float;
1218e5c31af7Sopenharmony_ci
1219e5c31af7Sopenharmony_ci			${DECLARATIONS}
1220e5c31af7Sopenharmony_ci
1221e5c31af7Sopenharmony_ci			void main()
1222e5c31af7Sopenharmony_ci			{
1223e5c31af7Sopenharmony_ci				${SETUP}
1224e5c31af7Sopenharmony_ci				out0 = in0.yxy + in1.xyy;
1225e5c31af7Sopenharmony_ci				${OUTPUT}
1226e5c31af7Sopenharmony_ci			}
1227e5c31af7Sopenharmony_ci		""
1228e5c31af7Sopenharmony_ci	end
1229e5c31af7Sopenharmony_ci
1230e5c31af7Sopenharmony_ci	case mediump_ivec3_xzx_zxx
1231e5c31af7Sopenharmony_ci		version 300 es
1232e5c31af7Sopenharmony_ci		values
1233e5c31af7Sopenharmony_ci		{
1234e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
1235e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
1236e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(-2, -2, -2) | ivec3(4, 4, 2) | ivec3(-5, -5, -2) ];
1237e5c31af7Sopenharmony_ci		}
1238e5c31af7Sopenharmony_ci
1239e5c31af7Sopenharmony_ci		both ""
1240e5c31af7Sopenharmony_ci			#version 300 es
1241e5c31af7Sopenharmony_ci			precision mediump float;
1242e5c31af7Sopenharmony_ci
1243e5c31af7Sopenharmony_ci			${DECLARATIONS}
1244e5c31af7Sopenharmony_ci
1245e5c31af7Sopenharmony_ci			void main()
1246e5c31af7Sopenharmony_ci			{
1247e5c31af7Sopenharmony_ci				${SETUP}
1248e5c31af7Sopenharmony_ci				out0 = in0.xzx + in1.zxx;
1249e5c31af7Sopenharmony_ci				${OUTPUT}
1250e5c31af7Sopenharmony_ci			}
1251e5c31af7Sopenharmony_ci		""
1252e5c31af7Sopenharmony_ci	end
1253e5c31af7Sopenharmony_ci
1254e5c31af7Sopenharmony_ci	case mediump_ivec3_xyyx_yyxx
1255e5c31af7Sopenharmony_ci		version 300 es
1256e5c31af7Sopenharmony_ci		values
1257e5c31af7Sopenharmony_ci		{
1258e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
1259e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
1260e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(0, 2, 0, -2) | ivec4(3, 4, 3, 2) | ivec4(-3, -4, -3, -2) ];
1261e5c31af7Sopenharmony_ci		}
1262e5c31af7Sopenharmony_ci
1263e5c31af7Sopenharmony_ci		both ""
1264e5c31af7Sopenharmony_ci			#version 300 es
1265e5c31af7Sopenharmony_ci			precision mediump float;
1266e5c31af7Sopenharmony_ci
1267e5c31af7Sopenharmony_ci			${DECLARATIONS}
1268e5c31af7Sopenharmony_ci
1269e5c31af7Sopenharmony_ci			void main()
1270e5c31af7Sopenharmony_ci			{
1271e5c31af7Sopenharmony_ci				${SETUP}
1272e5c31af7Sopenharmony_ci				out0 = in0.xyyx + in1.yyxx;
1273e5c31af7Sopenharmony_ci				${OUTPUT}
1274e5c31af7Sopenharmony_ci			}
1275e5c31af7Sopenharmony_ci		""
1276e5c31af7Sopenharmony_ci	end
1277e5c31af7Sopenharmony_ci
1278e5c31af7Sopenharmony_ci	case mediump_ivec3_zxyz_xyzz
1279e5c31af7Sopenharmony_ci		version 300 es
1280e5c31af7Sopenharmony_ci		values
1281e5c31af7Sopenharmony_ci		{
1282e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
1283e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
1284e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(-2, 0, 0, -2) | ivec4(4, 3, 5, 6) | ivec4(-5, -3, -6, -8) ];
1285e5c31af7Sopenharmony_ci		}
1286e5c31af7Sopenharmony_ci
1287e5c31af7Sopenharmony_ci		both ""
1288e5c31af7Sopenharmony_ci			#version 300 es
1289e5c31af7Sopenharmony_ci			precision mediump float;
1290e5c31af7Sopenharmony_ci
1291e5c31af7Sopenharmony_ci			${DECLARATIONS}
1292e5c31af7Sopenharmony_ci
1293e5c31af7Sopenharmony_ci			void main()
1294e5c31af7Sopenharmony_ci			{
1295e5c31af7Sopenharmony_ci				${SETUP}
1296e5c31af7Sopenharmony_ci				out0 = in0.zxyz + in1.xyzz;
1297e5c31af7Sopenharmony_ci				${OUTPUT}
1298e5c31af7Sopenharmony_ci			}
1299e5c31af7Sopenharmony_ci		""
1300e5c31af7Sopenharmony_ci	end
1301e5c31af7Sopenharmony_ci
1302e5c31af7Sopenharmony_ci	case mediump_ivec4_x_x
1303e5c31af7Sopenharmony_ci		version 300 es
1304e5c31af7Sopenharmony_ci		values
1305e5c31af7Sopenharmony_ci		{
1306e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1307e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1308e5c31af7Sopenharmony_ci			output int out0 = [ -2 | 2 | -2 ];
1309e5c31af7Sopenharmony_ci		}
1310e5c31af7Sopenharmony_ci
1311e5c31af7Sopenharmony_ci		both ""
1312e5c31af7Sopenharmony_ci			#version 300 es
1313e5c31af7Sopenharmony_ci			precision mediump float;
1314e5c31af7Sopenharmony_ci
1315e5c31af7Sopenharmony_ci			${DECLARATIONS}
1316e5c31af7Sopenharmony_ci
1317e5c31af7Sopenharmony_ci			void main()
1318e5c31af7Sopenharmony_ci			{
1319e5c31af7Sopenharmony_ci				${SETUP}
1320e5c31af7Sopenharmony_ci				out0 = in0.x + in1.x;
1321e5c31af7Sopenharmony_ci				${OUTPUT}
1322e5c31af7Sopenharmony_ci			}
1323e5c31af7Sopenharmony_ci		""
1324e5c31af7Sopenharmony_ci	end
1325e5c31af7Sopenharmony_ci
1326e5c31af7Sopenharmony_ci	case mediump_ivec4_w_w
1327e5c31af7Sopenharmony_ci		version 300 es
1328e5c31af7Sopenharmony_ci		values
1329e5c31af7Sopenharmony_ci		{
1330e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1331e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1332e5c31af7Sopenharmony_ci			output int out0 = [ 2 | 8 | -18 ];
1333e5c31af7Sopenharmony_ci		}
1334e5c31af7Sopenharmony_ci
1335e5c31af7Sopenharmony_ci		both ""
1336e5c31af7Sopenharmony_ci			#version 300 es
1337e5c31af7Sopenharmony_ci			precision mediump float;
1338e5c31af7Sopenharmony_ci
1339e5c31af7Sopenharmony_ci			${DECLARATIONS}
1340e5c31af7Sopenharmony_ci
1341e5c31af7Sopenharmony_ci			void main()
1342e5c31af7Sopenharmony_ci			{
1343e5c31af7Sopenharmony_ci				${SETUP}
1344e5c31af7Sopenharmony_ci				out0 = in0.w + in1.w;
1345e5c31af7Sopenharmony_ci				${OUTPUT}
1346e5c31af7Sopenharmony_ci			}
1347e5c31af7Sopenharmony_ci		""
1348e5c31af7Sopenharmony_ci	end
1349e5c31af7Sopenharmony_ci
1350e5c31af7Sopenharmony_ci	case mediump_ivec4_wx_xw
1351e5c31af7Sopenharmony_ci		version 300 es
1352e5c31af7Sopenharmony_ci		values
1353e5c31af7Sopenharmony_ci		{
1354e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1355e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1356e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(0, 0) | ivec2(5, 5) | ivec2(-10, -10) ];
1357e5c31af7Sopenharmony_ci		}
1358e5c31af7Sopenharmony_ci
1359e5c31af7Sopenharmony_ci		both ""
1360e5c31af7Sopenharmony_ci			#version 300 es
1361e5c31af7Sopenharmony_ci			precision mediump float;
1362e5c31af7Sopenharmony_ci
1363e5c31af7Sopenharmony_ci			${DECLARATIONS}
1364e5c31af7Sopenharmony_ci
1365e5c31af7Sopenharmony_ci			void main()
1366e5c31af7Sopenharmony_ci			{
1367e5c31af7Sopenharmony_ci				${SETUP}
1368e5c31af7Sopenharmony_ci				out0 = in0.wx + in1.xw;
1369e5c31af7Sopenharmony_ci				${OUTPUT}
1370e5c31af7Sopenharmony_ci			}
1371e5c31af7Sopenharmony_ci		""
1372e5c31af7Sopenharmony_ci	end
1373e5c31af7Sopenharmony_ci
1374e5c31af7Sopenharmony_ci	case mediump_ivec4_wz_zw
1375e5c31af7Sopenharmony_ci		version 300 es
1376e5c31af7Sopenharmony_ci		values
1377e5c31af7Sopenharmony_ci		{
1378e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1379e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1380e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(0, 0) | ivec2(7, 7) | ivec2(-13, -13) ];
1381e5c31af7Sopenharmony_ci		}
1382e5c31af7Sopenharmony_ci
1383e5c31af7Sopenharmony_ci		both ""
1384e5c31af7Sopenharmony_ci			#version 300 es
1385e5c31af7Sopenharmony_ci			precision mediump float;
1386e5c31af7Sopenharmony_ci
1387e5c31af7Sopenharmony_ci			${DECLARATIONS}
1388e5c31af7Sopenharmony_ci
1389e5c31af7Sopenharmony_ci			void main()
1390e5c31af7Sopenharmony_ci			{
1391e5c31af7Sopenharmony_ci				${SETUP}
1392e5c31af7Sopenharmony_ci				out0 = in0.wz + in1.zw;
1393e5c31af7Sopenharmony_ci				${OUTPUT}
1394e5c31af7Sopenharmony_ci			}
1395e5c31af7Sopenharmony_ci		""
1396e5c31af7Sopenharmony_ci	end
1397e5c31af7Sopenharmony_ci
1398e5c31af7Sopenharmony_ci	case mediump_ivec4_www_www
1399e5c31af7Sopenharmony_ci		version 300 es
1400e5c31af7Sopenharmony_ci		values
1401e5c31af7Sopenharmony_ci		{
1402e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1403e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1404e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(2, 2, 2) | ivec3(8, 8, 8) | ivec3(-18, -18, -18) ];
1405e5c31af7Sopenharmony_ci		}
1406e5c31af7Sopenharmony_ci
1407e5c31af7Sopenharmony_ci		both ""
1408e5c31af7Sopenharmony_ci			#version 300 es
1409e5c31af7Sopenharmony_ci			precision mediump float;
1410e5c31af7Sopenharmony_ci
1411e5c31af7Sopenharmony_ci			${DECLARATIONS}
1412e5c31af7Sopenharmony_ci
1413e5c31af7Sopenharmony_ci			void main()
1414e5c31af7Sopenharmony_ci			{
1415e5c31af7Sopenharmony_ci				${SETUP}
1416e5c31af7Sopenharmony_ci				out0 = in0.www + in1.www;
1417e5c31af7Sopenharmony_ci				${OUTPUT}
1418e5c31af7Sopenharmony_ci			}
1419e5c31af7Sopenharmony_ci		""
1420e5c31af7Sopenharmony_ci	end
1421e5c31af7Sopenharmony_ci
1422e5c31af7Sopenharmony_ci	case mediump_ivec4_yyw_ywy
1423e5c31af7Sopenharmony_ci		version 300 es
1424e5c31af7Sopenharmony_ci		values
1425e5c31af7Sopenharmony_ci		{
1426e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1427e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1428e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(2, 2, 2) | ivec3(4, 6, 6) | ivec3(-4, -11, -11) ];
1429e5c31af7Sopenharmony_ci		}
1430e5c31af7Sopenharmony_ci
1431e5c31af7Sopenharmony_ci		both ""
1432e5c31af7Sopenharmony_ci			#version 300 es
1433e5c31af7Sopenharmony_ci			precision mediump float;
1434e5c31af7Sopenharmony_ci
1435e5c31af7Sopenharmony_ci			${DECLARATIONS}
1436e5c31af7Sopenharmony_ci
1437e5c31af7Sopenharmony_ci			void main()
1438e5c31af7Sopenharmony_ci			{
1439e5c31af7Sopenharmony_ci				${SETUP}
1440e5c31af7Sopenharmony_ci				out0 = in0.yyw + in1.ywy;
1441e5c31af7Sopenharmony_ci				${OUTPUT}
1442e5c31af7Sopenharmony_ci			}
1443e5c31af7Sopenharmony_ci		""
1444e5c31af7Sopenharmony_ci	end
1445e5c31af7Sopenharmony_ci
1446e5c31af7Sopenharmony_ci	case mediump_ivec4_wzy_zyw
1447e5c31af7Sopenharmony_ci		version 300 es
1448e5c31af7Sopenharmony_ci		values
1449e5c31af7Sopenharmony_ci		{
1450e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1451e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1452e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(0, 0, 2) | ivec3(7, 5, 6) | ivec3(-13, -6, -11) ];
1453e5c31af7Sopenharmony_ci		}
1454e5c31af7Sopenharmony_ci
1455e5c31af7Sopenharmony_ci		both ""
1456e5c31af7Sopenharmony_ci			#version 300 es
1457e5c31af7Sopenharmony_ci			precision mediump float;
1458e5c31af7Sopenharmony_ci
1459e5c31af7Sopenharmony_ci			${DECLARATIONS}
1460e5c31af7Sopenharmony_ci
1461e5c31af7Sopenharmony_ci			void main()
1462e5c31af7Sopenharmony_ci			{
1463e5c31af7Sopenharmony_ci				${SETUP}
1464e5c31af7Sopenharmony_ci				out0 = in0.wzy + in1.zyw;
1465e5c31af7Sopenharmony_ci				${OUTPUT}
1466e5c31af7Sopenharmony_ci			}
1467e5c31af7Sopenharmony_ci		""
1468e5c31af7Sopenharmony_ci	end
1469e5c31af7Sopenharmony_ci
1470e5c31af7Sopenharmony_ci	case mediump_ivec4_xyzw_yzwx
1471e5c31af7Sopenharmony_ci		version 300 es
1472e5c31af7Sopenharmony_ci		values
1473e5c31af7Sopenharmony_ci		{
1474e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1475e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1476e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(3, 5, 7, 5) | ivec4(-3, -6, -13, -10) ];
1477e5c31af7Sopenharmony_ci		}
1478e5c31af7Sopenharmony_ci
1479e5c31af7Sopenharmony_ci		both ""
1480e5c31af7Sopenharmony_ci			#version 300 es
1481e5c31af7Sopenharmony_ci			precision mediump float;
1482e5c31af7Sopenharmony_ci
1483e5c31af7Sopenharmony_ci			${DECLARATIONS}
1484e5c31af7Sopenharmony_ci
1485e5c31af7Sopenharmony_ci			void main()
1486e5c31af7Sopenharmony_ci			{
1487e5c31af7Sopenharmony_ci				${SETUP}
1488e5c31af7Sopenharmony_ci				out0 = in0.xyzw + in1.yzwx;
1489e5c31af7Sopenharmony_ci				${OUTPUT}
1490e5c31af7Sopenharmony_ci			}
1491e5c31af7Sopenharmony_ci		""
1492e5c31af7Sopenharmony_ci	end
1493e5c31af7Sopenharmony_ci
1494e5c31af7Sopenharmony_ci	case mediump_ivec4_wzyx_zyxw
1495e5c31af7Sopenharmony_ci		version 300 es
1496e5c31af7Sopenharmony_ci		values
1497e5c31af7Sopenharmony_ci		{
1498e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1499e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1500e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(7, 5, 3, 5) | ivec4(-13, -6, -3, -10) ];
1501e5c31af7Sopenharmony_ci		}
1502e5c31af7Sopenharmony_ci
1503e5c31af7Sopenharmony_ci		both ""
1504e5c31af7Sopenharmony_ci			#version 300 es
1505e5c31af7Sopenharmony_ci			precision mediump float;
1506e5c31af7Sopenharmony_ci
1507e5c31af7Sopenharmony_ci			${DECLARATIONS}
1508e5c31af7Sopenharmony_ci
1509e5c31af7Sopenharmony_ci			void main()
1510e5c31af7Sopenharmony_ci			{
1511e5c31af7Sopenharmony_ci				${SETUP}
1512e5c31af7Sopenharmony_ci				out0 = in0.wzyx + in1.zyxw;
1513e5c31af7Sopenharmony_ci				${OUTPUT}
1514e5c31af7Sopenharmony_ci			}
1515e5c31af7Sopenharmony_ci		""
1516e5c31af7Sopenharmony_ci	end
1517e5c31af7Sopenharmony_ci
1518e5c31af7Sopenharmony_ci	case mediump_ivec4_xyxy_yxyx
1519e5c31af7Sopenharmony_ci		version 300 es
1520e5c31af7Sopenharmony_ci		values
1521e5c31af7Sopenharmony_ci		{
1522e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1523e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1524e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(3, 3, 3, 3) | ivec4(-3, -3, -3, -3) ];
1525e5c31af7Sopenharmony_ci		}
1526e5c31af7Sopenharmony_ci
1527e5c31af7Sopenharmony_ci		both ""
1528e5c31af7Sopenharmony_ci			#version 300 es
1529e5c31af7Sopenharmony_ci			precision mediump float;
1530e5c31af7Sopenharmony_ci
1531e5c31af7Sopenharmony_ci			${DECLARATIONS}
1532e5c31af7Sopenharmony_ci
1533e5c31af7Sopenharmony_ci			void main()
1534e5c31af7Sopenharmony_ci			{
1535e5c31af7Sopenharmony_ci				${SETUP}
1536e5c31af7Sopenharmony_ci				out0 = in0.xyxy + in1.yxyx;
1537e5c31af7Sopenharmony_ci				${OUTPUT}
1538e5c31af7Sopenharmony_ci			}
1539e5c31af7Sopenharmony_ci		""
1540e5c31af7Sopenharmony_ci	end
1541e5c31af7Sopenharmony_ci
1542e5c31af7Sopenharmony_ci	case mediump_ivec4_yzzy_zzyy
1543e5c31af7Sopenharmony_ci		version 300 es
1544e5c31af7Sopenharmony_ci		values
1545e5c31af7Sopenharmony_ci		{
1546e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1547e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1548e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(0, -2, 0, 2) | ivec4(5, 6, 5, 4) | ivec4(-6, -8, -6, -4) ];
1549e5c31af7Sopenharmony_ci		}
1550e5c31af7Sopenharmony_ci
1551e5c31af7Sopenharmony_ci		both ""
1552e5c31af7Sopenharmony_ci			#version 300 es
1553e5c31af7Sopenharmony_ci			precision mediump float;
1554e5c31af7Sopenharmony_ci
1555e5c31af7Sopenharmony_ci			${DECLARATIONS}
1556e5c31af7Sopenharmony_ci
1557e5c31af7Sopenharmony_ci			void main()
1558e5c31af7Sopenharmony_ci			{
1559e5c31af7Sopenharmony_ci				${SETUP}
1560e5c31af7Sopenharmony_ci				out0 = in0.yzzy + in1.zzyy;
1561e5c31af7Sopenharmony_ci				${OUTPUT}
1562e5c31af7Sopenharmony_ci			}
1563e5c31af7Sopenharmony_ci		""
1564e5c31af7Sopenharmony_ci	end
1565e5c31af7Sopenharmony_ci
1566e5c31af7Sopenharmony_ci	case mediump_ivec4_wxww_xwww
1567e5c31af7Sopenharmony_ci		version 300 es
1568e5c31af7Sopenharmony_ci		values
1569e5c31af7Sopenharmony_ci		{
1570e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1571e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1572e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(0, 0, 2, 2) | ivec4(5, 5, 8, 8) | ivec4(-10, -10, -18, -18) ];
1573e5c31af7Sopenharmony_ci		}
1574e5c31af7Sopenharmony_ci
1575e5c31af7Sopenharmony_ci		both ""
1576e5c31af7Sopenharmony_ci			#version 300 es
1577e5c31af7Sopenharmony_ci			precision mediump float;
1578e5c31af7Sopenharmony_ci
1579e5c31af7Sopenharmony_ci			${DECLARATIONS}
1580e5c31af7Sopenharmony_ci
1581e5c31af7Sopenharmony_ci			void main()
1582e5c31af7Sopenharmony_ci			{
1583e5c31af7Sopenharmony_ci				${SETUP}
1584e5c31af7Sopenharmony_ci				out0 = in0.wxww + in1.xwww;
1585e5c31af7Sopenharmony_ci				${OUTPUT}
1586e5c31af7Sopenharmony_ci			}
1587e5c31af7Sopenharmony_ci		""
1588e5c31af7Sopenharmony_ci	end
1589e5c31af7Sopenharmony_ci
1590e5c31af7Sopenharmony_ci	case mediump_ivec4_xyxx_yxxx
1591e5c31af7Sopenharmony_ci		version 300 es
1592e5c31af7Sopenharmony_ci		values
1593e5c31af7Sopenharmony_ci		{
1594e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1595e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1596e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(0, 0, -2, -2) | ivec4(3, 3, 2, 2) | ivec4(-3, -3, -2, -2) ];
1597e5c31af7Sopenharmony_ci		}
1598e5c31af7Sopenharmony_ci
1599e5c31af7Sopenharmony_ci		both ""
1600e5c31af7Sopenharmony_ci			#version 300 es
1601e5c31af7Sopenharmony_ci			precision mediump float;
1602e5c31af7Sopenharmony_ci
1603e5c31af7Sopenharmony_ci			${DECLARATIONS}
1604e5c31af7Sopenharmony_ci
1605e5c31af7Sopenharmony_ci			void main()
1606e5c31af7Sopenharmony_ci			{
1607e5c31af7Sopenharmony_ci				${SETUP}
1608e5c31af7Sopenharmony_ci				out0 = in0.xyxx + in1.yxxx;
1609e5c31af7Sopenharmony_ci				${OUTPUT}
1610e5c31af7Sopenharmony_ci			}
1611e5c31af7Sopenharmony_ci		""
1612e5c31af7Sopenharmony_ci	end
1613e5c31af7Sopenharmony_ci
1614e5c31af7Sopenharmony_ci	case mediump_ivec4_zzzz_zzzz
1615e5c31af7Sopenharmony_ci		version 300 es
1616e5c31af7Sopenharmony_ci		values
1617e5c31af7Sopenharmony_ci		{
1618e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1619e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
1620e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(-2, -2, -2, -2) | ivec4(6, 6, 6, 6) | ivec4(-8, -8, -8, -8) ];
1621e5c31af7Sopenharmony_ci		}
1622e5c31af7Sopenharmony_ci
1623e5c31af7Sopenharmony_ci		both ""
1624e5c31af7Sopenharmony_ci			#version 300 es
1625e5c31af7Sopenharmony_ci			precision mediump float;
1626e5c31af7Sopenharmony_ci
1627e5c31af7Sopenharmony_ci			${DECLARATIONS}
1628e5c31af7Sopenharmony_ci
1629e5c31af7Sopenharmony_ci			void main()
1630e5c31af7Sopenharmony_ci			{
1631e5c31af7Sopenharmony_ci				${SETUP}
1632e5c31af7Sopenharmony_ci				out0 = in0.zzzz + in1.zzzz;
1633e5c31af7Sopenharmony_ci				${OUTPUT}
1634e5c31af7Sopenharmony_ci			}
1635e5c31af7Sopenharmony_ci		""
1636e5c31af7Sopenharmony_ci	end
1637e5c31af7Sopenharmony_ci
1638e5c31af7Sopenharmony_ci
1639e5c31af7Sopenharmony_ciend # vector_add
1640e5c31af7Sopenharmony_cigroup vector_subtract "Vector swizzle math operations"
1641e5c31af7Sopenharmony_ci
1642e5c31af7Sopenharmony_ci	case mediump_vec2_x_x
1643e5c31af7Sopenharmony_ci		version 300 es
1644e5c31af7Sopenharmony_ci		values
1645e5c31af7Sopenharmony_ci		{
1646e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
1647e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
1648e5c31af7Sopenharmony_ci			output float out0 = [ 0.0 | 0.0 | 0.0 | 0.0 | 0.0 ];
1649e5c31af7Sopenharmony_ci		}
1650e5c31af7Sopenharmony_ci
1651e5c31af7Sopenharmony_ci		both ""
1652e5c31af7Sopenharmony_ci			#version 300 es
1653e5c31af7Sopenharmony_ci			precision mediump float;
1654e5c31af7Sopenharmony_ci
1655e5c31af7Sopenharmony_ci			${DECLARATIONS}
1656e5c31af7Sopenharmony_ci
1657e5c31af7Sopenharmony_ci			void main()
1658e5c31af7Sopenharmony_ci			{
1659e5c31af7Sopenharmony_ci				${SETUP}
1660e5c31af7Sopenharmony_ci				out0 = in0.x - in1.x;
1661e5c31af7Sopenharmony_ci				${OUTPUT}
1662e5c31af7Sopenharmony_ci			}
1663e5c31af7Sopenharmony_ci		""
1664e5c31af7Sopenharmony_ci	end
1665e5c31af7Sopenharmony_ci
1666e5c31af7Sopenharmony_ci	case mediump_vec2_xx_xx
1667e5c31af7Sopenharmony_ci		version 300 es
1668e5c31af7Sopenharmony_ci		values
1669e5c31af7Sopenharmony_ci		{
1670e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
1671e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
1672e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(0.0, 0.0) | vec2(0.0, 0.0) | vec2(0.0, 0.0) | vec2(0.0, 0.0) | vec2(0.0, 0.0) ];
1673e5c31af7Sopenharmony_ci		}
1674e5c31af7Sopenharmony_ci
1675e5c31af7Sopenharmony_ci		both ""
1676e5c31af7Sopenharmony_ci			#version 300 es
1677e5c31af7Sopenharmony_ci			precision mediump float;
1678e5c31af7Sopenharmony_ci
1679e5c31af7Sopenharmony_ci			${DECLARATIONS}
1680e5c31af7Sopenharmony_ci
1681e5c31af7Sopenharmony_ci			void main()
1682e5c31af7Sopenharmony_ci			{
1683e5c31af7Sopenharmony_ci				${SETUP}
1684e5c31af7Sopenharmony_ci				out0 = in0.xx - in1.xx;
1685e5c31af7Sopenharmony_ci				${OUTPUT}
1686e5c31af7Sopenharmony_ci			}
1687e5c31af7Sopenharmony_ci		""
1688e5c31af7Sopenharmony_ci	end
1689e5c31af7Sopenharmony_ci
1690e5c31af7Sopenharmony_ci	case mediump_vec2_xy_yx
1691e5c31af7Sopenharmony_ci		version 300 es
1692e5c31af7Sopenharmony_ci		values
1693e5c31af7Sopenharmony_ci		{
1694e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
1695e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
1696e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(-0.4, 0.4) | vec2(-0.25, 0.25) | vec2(1.75, -1.75) | vec2(-96.0, 96.0) | vec2(-0.717741935484, 0.717741935484) ];
1697e5c31af7Sopenharmony_ci		}
1698e5c31af7Sopenharmony_ci
1699e5c31af7Sopenharmony_ci		both ""
1700e5c31af7Sopenharmony_ci			#version 300 es
1701e5c31af7Sopenharmony_ci			precision mediump float;
1702e5c31af7Sopenharmony_ci
1703e5c31af7Sopenharmony_ci			${DECLARATIONS}
1704e5c31af7Sopenharmony_ci
1705e5c31af7Sopenharmony_ci			void main()
1706e5c31af7Sopenharmony_ci			{
1707e5c31af7Sopenharmony_ci				${SETUP}
1708e5c31af7Sopenharmony_ci				out0 = in0.xy - in1.yx;
1709e5c31af7Sopenharmony_ci				${OUTPUT}
1710e5c31af7Sopenharmony_ci			}
1711e5c31af7Sopenharmony_ci		""
1712e5c31af7Sopenharmony_ci	end
1713e5c31af7Sopenharmony_ci
1714e5c31af7Sopenharmony_ci	case mediump_vec2_yx_xy
1715e5c31af7Sopenharmony_ci		version 300 es
1716e5c31af7Sopenharmony_ci		values
1717e5c31af7Sopenharmony_ci		{
1718e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
1719e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
1720e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(0.4, -0.4) | vec2(0.25, -0.25) | vec2(-1.75, 1.75) | vec2(96.0, -96.0) | vec2(0.717741935484, -0.717741935484) ];
1721e5c31af7Sopenharmony_ci		}
1722e5c31af7Sopenharmony_ci
1723e5c31af7Sopenharmony_ci		both ""
1724e5c31af7Sopenharmony_ci			#version 300 es
1725e5c31af7Sopenharmony_ci			precision mediump float;
1726e5c31af7Sopenharmony_ci
1727e5c31af7Sopenharmony_ci			${DECLARATIONS}
1728e5c31af7Sopenharmony_ci
1729e5c31af7Sopenharmony_ci			void main()
1730e5c31af7Sopenharmony_ci			{
1731e5c31af7Sopenharmony_ci				${SETUP}
1732e5c31af7Sopenharmony_ci				out0 = in0.yx - in1.xy;
1733e5c31af7Sopenharmony_ci				${OUTPUT}
1734e5c31af7Sopenharmony_ci			}
1735e5c31af7Sopenharmony_ci		""
1736e5c31af7Sopenharmony_ci	end
1737e5c31af7Sopenharmony_ci
1738e5c31af7Sopenharmony_ci	case mediump_vec2_yxy_xyy
1739e5c31af7Sopenharmony_ci		version 300 es
1740e5c31af7Sopenharmony_ci		values
1741e5c31af7Sopenharmony_ci		{
1742e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
1743e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
1744e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.4, -0.4, 0.0) | vec3(0.25, -0.25, 0.0) | vec3(-1.75, 1.75, 0.0) | vec3(96.0, -96.0, 0.0) | vec3(0.717741935484, -0.717741935484, 0.0) ];
1745e5c31af7Sopenharmony_ci		}
1746e5c31af7Sopenharmony_ci
1747e5c31af7Sopenharmony_ci		both ""
1748e5c31af7Sopenharmony_ci			#version 300 es
1749e5c31af7Sopenharmony_ci			precision mediump float;
1750e5c31af7Sopenharmony_ci
1751e5c31af7Sopenharmony_ci			${DECLARATIONS}
1752e5c31af7Sopenharmony_ci
1753e5c31af7Sopenharmony_ci			void main()
1754e5c31af7Sopenharmony_ci			{
1755e5c31af7Sopenharmony_ci				${SETUP}
1756e5c31af7Sopenharmony_ci				out0 = in0.yxy - in1.xyy;
1757e5c31af7Sopenharmony_ci				${OUTPUT}
1758e5c31af7Sopenharmony_ci			}
1759e5c31af7Sopenharmony_ci		""
1760e5c31af7Sopenharmony_ci	end
1761e5c31af7Sopenharmony_ci
1762e5c31af7Sopenharmony_ci	case mediump_vec2_xyxx_yxxx
1763e5c31af7Sopenharmony_ci		version 300 es
1764e5c31af7Sopenharmony_ci		values
1765e5c31af7Sopenharmony_ci		{
1766e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
1767e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
1768e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(-0.4, 0.4, 0.0, 0.0) | vec4(-0.25, 0.25, 0.0, 0.0) | vec4(1.75, -1.75, 0.0, 0.0) | vec4(-96.0, 96.0, 0.0, 0.0) | vec4(-0.717741935484, 0.717741935484, 0.0, 0.0) ];
1769e5c31af7Sopenharmony_ci		}
1770e5c31af7Sopenharmony_ci
1771e5c31af7Sopenharmony_ci		both ""
1772e5c31af7Sopenharmony_ci			#version 300 es
1773e5c31af7Sopenharmony_ci			precision mediump float;
1774e5c31af7Sopenharmony_ci
1775e5c31af7Sopenharmony_ci			${DECLARATIONS}
1776e5c31af7Sopenharmony_ci
1777e5c31af7Sopenharmony_ci			void main()
1778e5c31af7Sopenharmony_ci			{
1779e5c31af7Sopenharmony_ci				${SETUP}
1780e5c31af7Sopenharmony_ci				out0 = in0.xyxx - in1.yxxx;
1781e5c31af7Sopenharmony_ci				${OUTPUT}
1782e5c31af7Sopenharmony_ci			}
1783e5c31af7Sopenharmony_ci		""
1784e5c31af7Sopenharmony_ci	end
1785e5c31af7Sopenharmony_ci
1786e5c31af7Sopenharmony_ci	case mediump_vec2_yxyx_xyxy
1787e5c31af7Sopenharmony_ci		version 300 es
1788e5c31af7Sopenharmony_ci		values
1789e5c31af7Sopenharmony_ci		{
1790e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
1791e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
1792e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.4, -0.4, 0.4, -0.4) | vec4(0.25, -0.25, 0.25, -0.25) | vec4(-1.75, 1.75, -1.75, 1.75) | vec4(96.0, -96.0, 96.0, -96.0) | vec4(0.717741935484, -0.717741935484, 0.717741935484, -0.717741935484) ];
1793e5c31af7Sopenharmony_ci		}
1794e5c31af7Sopenharmony_ci
1795e5c31af7Sopenharmony_ci		both ""
1796e5c31af7Sopenharmony_ci			#version 300 es
1797e5c31af7Sopenharmony_ci			precision mediump float;
1798e5c31af7Sopenharmony_ci
1799e5c31af7Sopenharmony_ci			${DECLARATIONS}
1800e5c31af7Sopenharmony_ci
1801e5c31af7Sopenharmony_ci			void main()
1802e5c31af7Sopenharmony_ci			{
1803e5c31af7Sopenharmony_ci				${SETUP}
1804e5c31af7Sopenharmony_ci				out0 = in0.yxyx - in1.xyxy;
1805e5c31af7Sopenharmony_ci				${OUTPUT}
1806e5c31af7Sopenharmony_ci			}
1807e5c31af7Sopenharmony_ci		""
1808e5c31af7Sopenharmony_ci	end
1809e5c31af7Sopenharmony_ci
1810e5c31af7Sopenharmony_ci	case mediump_vec3_x_x
1811e5c31af7Sopenharmony_ci		version 300 es
1812e5c31af7Sopenharmony_ci		values
1813e5c31af7Sopenharmony_ci		{
1814e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1815e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1816e5c31af7Sopenharmony_ci			output float out0 = [ 0.0 | 0.0 | 0.0 | 0.0 | 0.0 ];
1817e5c31af7Sopenharmony_ci		}
1818e5c31af7Sopenharmony_ci
1819e5c31af7Sopenharmony_ci		both ""
1820e5c31af7Sopenharmony_ci			#version 300 es
1821e5c31af7Sopenharmony_ci			precision mediump float;
1822e5c31af7Sopenharmony_ci
1823e5c31af7Sopenharmony_ci			${DECLARATIONS}
1824e5c31af7Sopenharmony_ci
1825e5c31af7Sopenharmony_ci			void main()
1826e5c31af7Sopenharmony_ci			{
1827e5c31af7Sopenharmony_ci				${SETUP}
1828e5c31af7Sopenharmony_ci				out0 = in0.x - in1.x;
1829e5c31af7Sopenharmony_ci				${OUTPUT}
1830e5c31af7Sopenharmony_ci			}
1831e5c31af7Sopenharmony_ci		""
1832e5c31af7Sopenharmony_ci	end
1833e5c31af7Sopenharmony_ci
1834e5c31af7Sopenharmony_ci	case mediump_vec3_z_z
1835e5c31af7Sopenharmony_ci		version 300 es
1836e5c31af7Sopenharmony_ci		values
1837e5c31af7Sopenharmony_ci		{
1838e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1839e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1840e5c31af7Sopenharmony_ci			output float out0 = [ 0.0 | 0.0 | 0.0 | 0.0 | 0.0 ];
1841e5c31af7Sopenharmony_ci		}
1842e5c31af7Sopenharmony_ci
1843e5c31af7Sopenharmony_ci		both ""
1844e5c31af7Sopenharmony_ci			#version 300 es
1845e5c31af7Sopenharmony_ci			precision mediump float;
1846e5c31af7Sopenharmony_ci
1847e5c31af7Sopenharmony_ci			${DECLARATIONS}
1848e5c31af7Sopenharmony_ci
1849e5c31af7Sopenharmony_ci			void main()
1850e5c31af7Sopenharmony_ci			{
1851e5c31af7Sopenharmony_ci				${SETUP}
1852e5c31af7Sopenharmony_ci				out0 = in0.z - in1.z;
1853e5c31af7Sopenharmony_ci				${OUTPUT}
1854e5c31af7Sopenharmony_ci			}
1855e5c31af7Sopenharmony_ci		""
1856e5c31af7Sopenharmony_ci	end
1857e5c31af7Sopenharmony_ci
1858e5c31af7Sopenharmony_ci	case mediump_vec3_xz_zx
1859e5c31af7Sopenharmony_ci		version 300 es
1860e5c31af7Sopenharmony_ci		values
1861e5c31af7Sopenharmony_ci		{
1862e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1863e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1864e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(-0.65, 0.65) | vec2(-0.125, 0.125) | vec2(4.375, -4.375) | vec2(19.0, -19.0) | vec2(-0.802631578947, 0.802631578947) ];
1865e5c31af7Sopenharmony_ci		}
1866e5c31af7Sopenharmony_ci
1867e5c31af7Sopenharmony_ci		both ""
1868e5c31af7Sopenharmony_ci			#version 300 es
1869e5c31af7Sopenharmony_ci			precision mediump float;
1870e5c31af7Sopenharmony_ci
1871e5c31af7Sopenharmony_ci			${DECLARATIONS}
1872e5c31af7Sopenharmony_ci
1873e5c31af7Sopenharmony_ci			void main()
1874e5c31af7Sopenharmony_ci			{
1875e5c31af7Sopenharmony_ci				${SETUP}
1876e5c31af7Sopenharmony_ci				out0 = in0.xz - in1.zx;
1877e5c31af7Sopenharmony_ci				${OUTPUT}
1878e5c31af7Sopenharmony_ci			}
1879e5c31af7Sopenharmony_ci		""
1880e5c31af7Sopenharmony_ci	end
1881e5c31af7Sopenharmony_ci
1882e5c31af7Sopenharmony_ci	case mediump_vec3_zz_zz
1883e5c31af7Sopenharmony_ci		version 300 es
1884e5c31af7Sopenharmony_ci		values
1885e5c31af7Sopenharmony_ci		{
1886e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1887e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1888e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(0.0, 0.0) | vec2(0.0, 0.0) | vec2(0.0, 0.0) | vec2(0.0, 0.0) | vec2(0.0, 0.0) ];
1889e5c31af7Sopenharmony_ci		}
1890e5c31af7Sopenharmony_ci
1891e5c31af7Sopenharmony_ci		both ""
1892e5c31af7Sopenharmony_ci			#version 300 es
1893e5c31af7Sopenharmony_ci			precision mediump float;
1894e5c31af7Sopenharmony_ci
1895e5c31af7Sopenharmony_ci			${DECLARATIONS}
1896e5c31af7Sopenharmony_ci
1897e5c31af7Sopenharmony_ci			void main()
1898e5c31af7Sopenharmony_ci			{
1899e5c31af7Sopenharmony_ci				${SETUP}
1900e5c31af7Sopenharmony_ci				out0 = in0.zz - in1.zz;
1901e5c31af7Sopenharmony_ci				${OUTPUT}
1902e5c31af7Sopenharmony_ci			}
1903e5c31af7Sopenharmony_ci		""
1904e5c31af7Sopenharmony_ci	end
1905e5c31af7Sopenharmony_ci
1906e5c31af7Sopenharmony_ci	case mediump_vec3_xyz_yzx
1907e5c31af7Sopenharmony_ci		version 300 es
1908e5c31af7Sopenharmony_ci		values
1909e5c31af7Sopenharmony_ci		{
1910e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1911e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1912e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(-0.4, -0.25, 0.65) | vec3(-0.25, 0.125, 0.125) | vec3(1.75, 2.625, -4.375) | vec3(-96.0, 115.0, -19.0) | vec3(-0.717741935484, -0.0848896434635, 0.802631578947) ];
1913e5c31af7Sopenharmony_ci		}
1914e5c31af7Sopenharmony_ci
1915e5c31af7Sopenharmony_ci		both ""
1916e5c31af7Sopenharmony_ci			#version 300 es
1917e5c31af7Sopenharmony_ci			precision mediump float;
1918e5c31af7Sopenharmony_ci
1919e5c31af7Sopenharmony_ci			${DECLARATIONS}
1920e5c31af7Sopenharmony_ci
1921e5c31af7Sopenharmony_ci			void main()
1922e5c31af7Sopenharmony_ci			{
1923e5c31af7Sopenharmony_ci				${SETUP}
1924e5c31af7Sopenharmony_ci				out0 = in0.xyz - in1.yzx;
1925e5c31af7Sopenharmony_ci				${OUTPUT}
1926e5c31af7Sopenharmony_ci			}
1927e5c31af7Sopenharmony_ci		""
1928e5c31af7Sopenharmony_ci	end
1929e5c31af7Sopenharmony_ci
1930e5c31af7Sopenharmony_ci	case mediump_vec3_zyx_yxz
1931e5c31af7Sopenharmony_ci		version 300 es
1932e5c31af7Sopenharmony_ci		values
1933e5c31af7Sopenharmony_ci		{
1934e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1935e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1936e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.25, 0.4, -0.65) | vec3(-0.125, 0.25, -0.125) | vec3(-2.625, -1.75, 4.375) | vec3(-115.0, 96.0, 19.0) | vec3(0.0848896434635, 0.717741935484, -0.802631578947) ];
1937e5c31af7Sopenharmony_ci		}
1938e5c31af7Sopenharmony_ci
1939e5c31af7Sopenharmony_ci		both ""
1940e5c31af7Sopenharmony_ci			#version 300 es
1941e5c31af7Sopenharmony_ci			precision mediump float;
1942e5c31af7Sopenharmony_ci
1943e5c31af7Sopenharmony_ci			${DECLARATIONS}
1944e5c31af7Sopenharmony_ci
1945e5c31af7Sopenharmony_ci			void main()
1946e5c31af7Sopenharmony_ci			{
1947e5c31af7Sopenharmony_ci				${SETUP}
1948e5c31af7Sopenharmony_ci				out0 = in0.zyx - in1.yxz;
1949e5c31af7Sopenharmony_ci				${OUTPUT}
1950e5c31af7Sopenharmony_ci			}
1951e5c31af7Sopenharmony_ci		""
1952e5c31af7Sopenharmony_ci	end
1953e5c31af7Sopenharmony_ci
1954e5c31af7Sopenharmony_ci	case mediump_vec3_xxx_xxx
1955e5c31af7Sopenharmony_ci		version 300 es
1956e5c31af7Sopenharmony_ci		values
1957e5c31af7Sopenharmony_ci		{
1958e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1959e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1960e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.0, 0.0, 0.0) | vec3(0.0, 0.0, 0.0) | vec3(0.0, 0.0, 0.0) | vec3(0.0, 0.0, 0.0) | vec3(0.0, 0.0, 0.0) ];
1961e5c31af7Sopenharmony_ci		}
1962e5c31af7Sopenharmony_ci
1963e5c31af7Sopenharmony_ci		both ""
1964e5c31af7Sopenharmony_ci			#version 300 es
1965e5c31af7Sopenharmony_ci			precision mediump float;
1966e5c31af7Sopenharmony_ci
1967e5c31af7Sopenharmony_ci			${DECLARATIONS}
1968e5c31af7Sopenharmony_ci
1969e5c31af7Sopenharmony_ci			void main()
1970e5c31af7Sopenharmony_ci			{
1971e5c31af7Sopenharmony_ci				${SETUP}
1972e5c31af7Sopenharmony_ci				out0 = in0.xxx - in1.xxx;
1973e5c31af7Sopenharmony_ci				${OUTPUT}
1974e5c31af7Sopenharmony_ci			}
1975e5c31af7Sopenharmony_ci		""
1976e5c31af7Sopenharmony_ci	end
1977e5c31af7Sopenharmony_ci
1978e5c31af7Sopenharmony_ci	case mediump_vec3_zzz_zzz
1979e5c31af7Sopenharmony_ci		version 300 es
1980e5c31af7Sopenharmony_ci		values
1981e5c31af7Sopenharmony_ci		{
1982e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1983e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1984e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.0, 0.0, 0.0) | vec3(0.0, 0.0, 0.0) | vec3(0.0, 0.0, 0.0) | vec3(0.0, 0.0, 0.0) | vec3(0.0, 0.0, 0.0) ];
1985e5c31af7Sopenharmony_ci		}
1986e5c31af7Sopenharmony_ci
1987e5c31af7Sopenharmony_ci		both ""
1988e5c31af7Sopenharmony_ci			#version 300 es
1989e5c31af7Sopenharmony_ci			precision mediump float;
1990e5c31af7Sopenharmony_ci
1991e5c31af7Sopenharmony_ci			${DECLARATIONS}
1992e5c31af7Sopenharmony_ci
1993e5c31af7Sopenharmony_ci			void main()
1994e5c31af7Sopenharmony_ci			{
1995e5c31af7Sopenharmony_ci				${SETUP}
1996e5c31af7Sopenharmony_ci				out0 = in0.zzz - in1.zzz;
1997e5c31af7Sopenharmony_ci				${OUTPUT}
1998e5c31af7Sopenharmony_ci			}
1999e5c31af7Sopenharmony_ci		""
2000e5c31af7Sopenharmony_ci	end
2001e5c31af7Sopenharmony_ci
2002e5c31af7Sopenharmony_ci	case mediump_vec3_zzy_zyz
2003e5c31af7Sopenharmony_ci		version 300 es
2004e5c31af7Sopenharmony_ci		values
2005e5c31af7Sopenharmony_ci		{
2006e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
2007e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
2008e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.0, 0.25, -0.25) | vec3(0.0, -0.125, 0.125) | vec3(0.0, -2.625, 2.625) | vec3(0.0, -115.0, 115.0) | vec3(0.0, 0.0848896434635, -0.0848896434635) ];
2009e5c31af7Sopenharmony_ci		}
2010e5c31af7Sopenharmony_ci
2011e5c31af7Sopenharmony_ci		both ""
2012e5c31af7Sopenharmony_ci			#version 300 es
2013e5c31af7Sopenharmony_ci			precision mediump float;
2014e5c31af7Sopenharmony_ci
2015e5c31af7Sopenharmony_ci			${DECLARATIONS}
2016e5c31af7Sopenharmony_ci
2017e5c31af7Sopenharmony_ci			void main()
2018e5c31af7Sopenharmony_ci			{
2019e5c31af7Sopenharmony_ci				${SETUP}
2020e5c31af7Sopenharmony_ci				out0 = in0.zzy - in1.zyz;
2021e5c31af7Sopenharmony_ci				${OUTPUT}
2022e5c31af7Sopenharmony_ci			}
2023e5c31af7Sopenharmony_ci		""
2024e5c31af7Sopenharmony_ci	end
2025e5c31af7Sopenharmony_ci
2026e5c31af7Sopenharmony_ci	case mediump_vec3_yxy_xyy
2027e5c31af7Sopenharmony_ci		version 300 es
2028e5c31af7Sopenharmony_ci		values
2029e5c31af7Sopenharmony_ci		{
2030e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
2031e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
2032e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.4, -0.4, 0.0) | vec3(0.25, -0.25, 0.0) | vec3(-1.75, 1.75, 0.0) | vec3(96.0, -96.0, 0.0) | vec3(0.717741935484, -0.717741935484, 0.0) ];
2033e5c31af7Sopenharmony_ci		}
2034e5c31af7Sopenharmony_ci
2035e5c31af7Sopenharmony_ci		both ""
2036e5c31af7Sopenharmony_ci			#version 300 es
2037e5c31af7Sopenharmony_ci			precision mediump float;
2038e5c31af7Sopenharmony_ci
2039e5c31af7Sopenharmony_ci			${DECLARATIONS}
2040e5c31af7Sopenharmony_ci
2041e5c31af7Sopenharmony_ci			void main()
2042e5c31af7Sopenharmony_ci			{
2043e5c31af7Sopenharmony_ci				${SETUP}
2044e5c31af7Sopenharmony_ci				out0 = in0.yxy - in1.xyy;
2045e5c31af7Sopenharmony_ci				${OUTPUT}
2046e5c31af7Sopenharmony_ci			}
2047e5c31af7Sopenharmony_ci		""
2048e5c31af7Sopenharmony_ci	end
2049e5c31af7Sopenharmony_ci
2050e5c31af7Sopenharmony_ci	case mediump_vec3_xzx_zxx
2051e5c31af7Sopenharmony_ci		version 300 es
2052e5c31af7Sopenharmony_ci		values
2053e5c31af7Sopenharmony_ci		{
2054e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
2055e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
2056e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(-0.65, 0.65, 0.0) | vec3(-0.125, 0.125, 0.0) | vec3(4.375, -4.375, 0.0) | vec3(19.0, -19.0, 0.0) | vec3(-0.802631578947, 0.802631578947, 0.0) ];
2057e5c31af7Sopenharmony_ci		}
2058e5c31af7Sopenharmony_ci
2059e5c31af7Sopenharmony_ci		both ""
2060e5c31af7Sopenharmony_ci			#version 300 es
2061e5c31af7Sopenharmony_ci			precision mediump float;
2062e5c31af7Sopenharmony_ci
2063e5c31af7Sopenharmony_ci			${DECLARATIONS}
2064e5c31af7Sopenharmony_ci
2065e5c31af7Sopenharmony_ci			void main()
2066e5c31af7Sopenharmony_ci			{
2067e5c31af7Sopenharmony_ci				${SETUP}
2068e5c31af7Sopenharmony_ci				out0 = in0.xzx - in1.zxx;
2069e5c31af7Sopenharmony_ci				${OUTPUT}
2070e5c31af7Sopenharmony_ci			}
2071e5c31af7Sopenharmony_ci		""
2072e5c31af7Sopenharmony_ci	end
2073e5c31af7Sopenharmony_ci
2074e5c31af7Sopenharmony_ci	case mediump_vec3_xyyx_yyxx
2075e5c31af7Sopenharmony_ci		version 300 es
2076e5c31af7Sopenharmony_ci		values
2077e5c31af7Sopenharmony_ci		{
2078e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
2079e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
2080e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(-0.4, 0.0, 0.4, 0.0) | vec4(-0.25, 0.0, 0.25, 0.0) | vec4(1.75, 0.0, -1.75, 0.0) | vec4(-96.0, 0.0, 96.0, 0.0) | vec4(-0.717741935484, 0.0, 0.717741935484, 0.0) ];
2081e5c31af7Sopenharmony_ci		}
2082e5c31af7Sopenharmony_ci
2083e5c31af7Sopenharmony_ci		both ""
2084e5c31af7Sopenharmony_ci			#version 300 es
2085e5c31af7Sopenharmony_ci			precision mediump float;
2086e5c31af7Sopenharmony_ci
2087e5c31af7Sopenharmony_ci			${DECLARATIONS}
2088e5c31af7Sopenharmony_ci
2089e5c31af7Sopenharmony_ci			void main()
2090e5c31af7Sopenharmony_ci			{
2091e5c31af7Sopenharmony_ci				${SETUP}
2092e5c31af7Sopenharmony_ci				out0 = in0.xyyx - in1.yyxx;
2093e5c31af7Sopenharmony_ci				${OUTPUT}
2094e5c31af7Sopenharmony_ci			}
2095e5c31af7Sopenharmony_ci		""
2096e5c31af7Sopenharmony_ci	end
2097e5c31af7Sopenharmony_ci
2098e5c31af7Sopenharmony_ci	case mediump_vec3_zxyz_xyzz
2099e5c31af7Sopenharmony_ci		version 300 es
2100e5c31af7Sopenharmony_ci		values
2101e5c31af7Sopenharmony_ci		{
2102e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
2103e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
2104e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.65, -0.4, -0.25, 0.0) | vec4(0.125, -0.25, 0.125, 0.0) | vec4(-4.375, 1.75, 2.625, 0.0) | vec4(-19.0, -96.0, 115.0, 0.0) | vec4(0.802631578947, -0.717741935484, -0.0848896434635, 0.0) ];
2105e5c31af7Sopenharmony_ci		}
2106e5c31af7Sopenharmony_ci
2107e5c31af7Sopenharmony_ci		both ""
2108e5c31af7Sopenharmony_ci			#version 300 es
2109e5c31af7Sopenharmony_ci			precision mediump float;
2110e5c31af7Sopenharmony_ci
2111e5c31af7Sopenharmony_ci			${DECLARATIONS}
2112e5c31af7Sopenharmony_ci
2113e5c31af7Sopenharmony_ci			void main()
2114e5c31af7Sopenharmony_ci			{
2115e5c31af7Sopenharmony_ci				${SETUP}
2116e5c31af7Sopenharmony_ci				out0 = in0.zxyz - in1.xyzz;
2117e5c31af7Sopenharmony_ci				${OUTPUT}
2118e5c31af7Sopenharmony_ci			}
2119e5c31af7Sopenharmony_ci		""
2120e5c31af7Sopenharmony_ci	end
2121e5c31af7Sopenharmony_ci
2122e5c31af7Sopenharmony_ci	case mediump_vec4_x_x
2123e5c31af7Sopenharmony_ci		version 300 es
2124e5c31af7Sopenharmony_ci		values
2125e5c31af7Sopenharmony_ci		{
2126e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2127e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2128e5c31af7Sopenharmony_ci			output float out0 = [ 0.0 | 0.0 | 0.0 | 0.0 | 0.0 ];
2129e5c31af7Sopenharmony_ci		}
2130e5c31af7Sopenharmony_ci
2131e5c31af7Sopenharmony_ci		both ""
2132e5c31af7Sopenharmony_ci			#version 300 es
2133e5c31af7Sopenharmony_ci			precision mediump float;
2134e5c31af7Sopenharmony_ci
2135e5c31af7Sopenharmony_ci			${DECLARATIONS}
2136e5c31af7Sopenharmony_ci
2137e5c31af7Sopenharmony_ci			void main()
2138e5c31af7Sopenharmony_ci			{
2139e5c31af7Sopenharmony_ci				${SETUP}
2140e5c31af7Sopenharmony_ci				out0 = in0.x - in1.x;
2141e5c31af7Sopenharmony_ci				${OUTPUT}
2142e5c31af7Sopenharmony_ci			}
2143e5c31af7Sopenharmony_ci		""
2144e5c31af7Sopenharmony_ci	end
2145e5c31af7Sopenharmony_ci
2146e5c31af7Sopenharmony_ci	case mediump_vec4_w_w
2147e5c31af7Sopenharmony_ci		version 300 es
2148e5c31af7Sopenharmony_ci		values
2149e5c31af7Sopenharmony_ci		{
2150e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2151e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2152e5c31af7Sopenharmony_ci			output float out0 = [ 0.0 | 0.0 | 0.0 | 0.0 | 0.0 ];
2153e5c31af7Sopenharmony_ci		}
2154e5c31af7Sopenharmony_ci
2155e5c31af7Sopenharmony_ci		both ""
2156e5c31af7Sopenharmony_ci			#version 300 es
2157e5c31af7Sopenharmony_ci			precision mediump float;
2158e5c31af7Sopenharmony_ci
2159e5c31af7Sopenharmony_ci			${DECLARATIONS}
2160e5c31af7Sopenharmony_ci
2161e5c31af7Sopenharmony_ci			void main()
2162e5c31af7Sopenharmony_ci			{
2163e5c31af7Sopenharmony_ci				${SETUP}
2164e5c31af7Sopenharmony_ci				out0 = in0.w - in1.w;
2165e5c31af7Sopenharmony_ci				${OUTPUT}
2166e5c31af7Sopenharmony_ci			}
2167e5c31af7Sopenharmony_ci		""
2168e5c31af7Sopenharmony_ci	end
2169e5c31af7Sopenharmony_ci
2170e5c31af7Sopenharmony_ci	case mediump_vec4_wx_xw
2171e5c31af7Sopenharmony_ci		version 300 es
2172e5c31af7Sopenharmony_ci		values
2173e5c31af7Sopenharmony_ci		{
2174e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2175e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2176e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(0.725, -0.725) | vec2(0.75, -0.75) | vec2(9.5, -9.5) | vec2(56.0, -56.0) | vec2(1.0, -1.0) ];
2177e5c31af7Sopenharmony_ci		}
2178e5c31af7Sopenharmony_ci
2179e5c31af7Sopenharmony_ci		both ""
2180e5c31af7Sopenharmony_ci			#version 300 es
2181e5c31af7Sopenharmony_ci			precision mediump float;
2182e5c31af7Sopenharmony_ci
2183e5c31af7Sopenharmony_ci			${DECLARATIONS}
2184e5c31af7Sopenharmony_ci
2185e5c31af7Sopenharmony_ci			void main()
2186e5c31af7Sopenharmony_ci			{
2187e5c31af7Sopenharmony_ci				${SETUP}
2188e5c31af7Sopenharmony_ci				out0 = in0.wx - in1.xw;
2189e5c31af7Sopenharmony_ci				${OUTPUT}
2190e5c31af7Sopenharmony_ci			}
2191e5c31af7Sopenharmony_ci		""
2192e5c31af7Sopenharmony_ci	end
2193e5c31af7Sopenharmony_ci
2194e5c31af7Sopenharmony_ci	case mediump_vec4_wz_zw
2195e5c31af7Sopenharmony_ci		version 300 es
2196e5c31af7Sopenharmony_ci		values
2197e5c31af7Sopenharmony_ci		{
2198e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2199e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2200e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(0.075, -0.075) | vec2(0.625, -0.625) | vec2(13.875, -13.875) | vec2(75.0, -75.0) | vec2(0.197368421053, -0.197368421053) ];
2201e5c31af7Sopenharmony_ci		}
2202e5c31af7Sopenharmony_ci
2203e5c31af7Sopenharmony_ci		both ""
2204e5c31af7Sopenharmony_ci			#version 300 es
2205e5c31af7Sopenharmony_ci			precision mediump float;
2206e5c31af7Sopenharmony_ci
2207e5c31af7Sopenharmony_ci			${DECLARATIONS}
2208e5c31af7Sopenharmony_ci
2209e5c31af7Sopenharmony_ci			void main()
2210e5c31af7Sopenharmony_ci			{
2211e5c31af7Sopenharmony_ci				${SETUP}
2212e5c31af7Sopenharmony_ci				out0 = in0.wz - in1.zw;
2213e5c31af7Sopenharmony_ci				${OUTPUT}
2214e5c31af7Sopenharmony_ci			}
2215e5c31af7Sopenharmony_ci		""
2216e5c31af7Sopenharmony_ci	end
2217e5c31af7Sopenharmony_ci
2218e5c31af7Sopenharmony_ci	case mediump_vec4_www_www
2219e5c31af7Sopenharmony_ci		version 300 es
2220e5c31af7Sopenharmony_ci		values
2221e5c31af7Sopenharmony_ci		{
2222e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2223e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2224e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.0, 0.0, 0.0) | vec3(0.0, 0.0, 0.0) | vec3(0.0, 0.0, 0.0) | vec3(0.0, 0.0, 0.0) | vec3(0.0, 0.0, 0.0) ];
2225e5c31af7Sopenharmony_ci		}
2226e5c31af7Sopenharmony_ci
2227e5c31af7Sopenharmony_ci		both ""
2228e5c31af7Sopenharmony_ci			#version 300 es
2229e5c31af7Sopenharmony_ci			precision mediump float;
2230e5c31af7Sopenharmony_ci
2231e5c31af7Sopenharmony_ci			${DECLARATIONS}
2232e5c31af7Sopenharmony_ci
2233e5c31af7Sopenharmony_ci			void main()
2234e5c31af7Sopenharmony_ci			{
2235e5c31af7Sopenharmony_ci				${SETUP}
2236e5c31af7Sopenharmony_ci				out0 = in0.www - in1.www;
2237e5c31af7Sopenharmony_ci				${OUTPUT}
2238e5c31af7Sopenharmony_ci			}
2239e5c31af7Sopenharmony_ci		""
2240e5c31af7Sopenharmony_ci	end
2241e5c31af7Sopenharmony_ci
2242e5c31af7Sopenharmony_ci	case mediump_vec4_yyw_ywy
2243e5c31af7Sopenharmony_ci		version 300 es
2244e5c31af7Sopenharmony_ci		values
2245e5c31af7Sopenharmony_ci		{
2246e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2247e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2248e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.0, -0.325, 0.325) | vec3(0.0, -0.5, 0.5) | vec3(0.0, -11.25, 11.25) | vec3(0.0, 40.0, -40.0) | vec3(0.0, -0.282258064516, 0.282258064516) ];
2249e5c31af7Sopenharmony_ci		}
2250e5c31af7Sopenharmony_ci
2251e5c31af7Sopenharmony_ci		both ""
2252e5c31af7Sopenharmony_ci			#version 300 es
2253e5c31af7Sopenharmony_ci			precision mediump float;
2254e5c31af7Sopenharmony_ci
2255e5c31af7Sopenharmony_ci			${DECLARATIONS}
2256e5c31af7Sopenharmony_ci
2257e5c31af7Sopenharmony_ci			void main()
2258e5c31af7Sopenharmony_ci			{
2259e5c31af7Sopenharmony_ci				${SETUP}
2260e5c31af7Sopenharmony_ci				out0 = in0.yyw - in1.ywy;
2261e5c31af7Sopenharmony_ci				${OUTPUT}
2262e5c31af7Sopenharmony_ci			}
2263e5c31af7Sopenharmony_ci		""
2264e5c31af7Sopenharmony_ci	end
2265e5c31af7Sopenharmony_ci
2266e5c31af7Sopenharmony_ci	case mediump_vec4_wzy_zyw
2267e5c31af7Sopenharmony_ci		version 300 es
2268e5c31af7Sopenharmony_ci		values
2269e5c31af7Sopenharmony_ci		{
2270e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2271e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2272e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.075, 0.25, -0.325) | vec3(0.625, -0.125, -0.5) | vec3(13.875, -2.625, -11.25) | vec3(75.0, -115.0, 40.0) | vec3(0.197368421053, 0.0848896434635, -0.282258064516) ];
2273e5c31af7Sopenharmony_ci		}
2274e5c31af7Sopenharmony_ci
2275e5c31af7Sopenharmony_ci		both ""
2276e5c31af7Sopenharmony_ci			#version 300 es
2277e5c31af7Sopenharmony_ci			precision mediump float;
2278e5c31af7Sopenharmony_ci
2279e5c31af7Sopenharmony_ci			${DECLARATIONS}
2280e5c31af7Sopenharmony_ci
2281e5c31af7Sopenharmony_ci			void main()
2282e5c31af7Sopenharmony_ci			{
2283e5c31af7Sopenharmony_ci				${SETUP}
2284e5c31af7Sopenharmony_ci				out0 = in0.wzy - in1.zyw;
2285e5c31af7Sopenharmony_ci				${OUTPUT}
2286e5c31af7Sopenharmony_ci			}
2287e5c31af7Sopenharmony_ci		""
2288e5c31af7Sopenharmony_ci	end
2289e5c31af7Sopenharmony_ci
2290e5c31af7Sopenharmony_ci	case mediump_vec4_xyzw_yzwx
2291e5c31af7Sopenharmony_ci		version 300 es
2292e5c31af7Sopenharmony_ci		values
2293e5c31af7Sopenharmony_ci		{
2294e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2295e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2296e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(-0.4, -0.25, -0.075, 0.725) | vec4(-0.25, 0.125, -0.625, 0.75) | vec4(1.75, 2.625, -13.875, 9.5) | vec4(-96.0, 115.0, -75.0, 56.0) | vec4(-0.717741935484, -0.0848896434635, -0.197368421053, 1.0) ];
2297e5c31af7Sopenharmony_ci		}
2298e5c31af7Sopenharmony_ci
2299e5c31af7Sopenharmony_ci		both ""
2300e5c31af7Sopenharmony_ci			#version 300 es
2301e5c31af7Sopenharmony_ci			precision mediump float;
2302e5c31af7Sopenharmony_ci
2303e5c31af7Sopenharmony_ci			${DECLARATIONS}
2304e5c31af7Sopenharmony_ci
2305e5c31af7Sopenharmony_ci			void main()
2306e5c31af7Sopenharmony_ci			{
2307e5c31af7Sopenharmony_ci				${SETUP}
2308e5c31af7Sopenharmony_ci				out0 = in0.xyzw - in1.yzwx;
2309e5c31af7Sopenharmony_ci				${OUTPUT}
2310e5c31af7Sopenharmony_ci			}
2311e5c31af7Sopenharmony_ci		""
2312e5c31af7Sopenharmony_ci	end
2313e5c31af7Sopenharmony_ci
2314e5c31af7Sopenharmony_ci	case mediump_vec4_wzyx_zyxw
2315e5c31af7Sopenharmony_ci		version 300 es
2316e5c31af7Sopenharmony_ci		values
2317e5c31af7Sopenharmony_ci		{
2318e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2319e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2320e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.075, 0.25, 0.4, -0.725) | vec4(0.625, -0.125, 0.25, -0.75) | vec4(13.875, -2.625, -1.75, -9.5) | vec4(75.0, -115.0, 96.0, -56.0) | vec4(0.197368421053, 0.0848896434635, 0.717741935484, -1.0) ];
2321e5c31af7Sopenharmony_ci		}
2322e5c31af7Sopenharmony_ci
2323e5c31af7Sopenharmony_ci		both ""
2324e5c31af7Sopenharmony_ci			#version 300 es
2325e5c31af7Sopenharmony_ci			precision mediump float;
2326e5c31af7Sopenharmony_ci
2327e5c31af7Sopenharmony_ci			${DECLARATIONS}
2328e5c31af7Sopenharmony_ci
2329e5c31af7Sopenharmony_ci			void main()
2330e5c31af7Sopenharmony_ci			{
2331e5c31af7Sopenharmony_ci				${SETUP}
2332e5c31af7Sopenharmony_ci				out0 = in0.wzyx - in1.zyxw;
2333e5c31af7Sopenharmony_ci				${OUTPUT}
2334e5c31af7Sopenharmony_ci			}
2335e5c31af7Sopenharmony_ci		""
2336e5c31af7Sopenharmony_ci	end
2337e5c31af7Sopenharmony_ci
2338e5c31af7Sopenharmony_ci	case mediump_vec4_xyxy_yxyx
2339e5c31af7Sopenharmony_ci		version 300 es
2340e5c31af7Sopenharmony_ci		values
2341e5c31af7Sopenharmony_ci		{
2342e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2343e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2344e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(-0.4, 0.4, -0.4, 0.4) | vec4(-0.25, 0.25, -0.25, 0.25) | vec4(1.75, -1.75, 1.75, -1.75) | vec4(-96.0, 96.0, -96.0, 96.0) | vec4(-0.717741935484, 0.717741935484, -0.717741935484, 0.717741935484) ];
2345e5c31af7Sopenharmony_ci		}
2346e5c31af7Sopenharmony_ci
2347e5c31af7Sopenharmony_ci		both ""
2348e5c31af7Sopenharmony_ci			#version 300 es
2349e5c31af7Sopenharmony_ci			precision mediump float;
2350e5c31af7Sopenharmony_ci
2351e5c31af7Sopenharmony_ci			${DECLARATIONS}
2352e5c31af7Sopenharmony_ci
2353e5c31af7Sopenharmony_ci			void main()
2354e5c31af7Sopenharmony_ci			{
2355e5c31af7Sopenharmony_ci				${SETUP}
2356e5c31af7Sopenharmony_ci				out0 = in0.xyxy - in1.yxyx;
2357e5c31af7Sopenharmony_ci				${OUTPUT}
2358e5c31af7Sopenharmony_ci			}
2359e5c31af7Sopenharmony_ci		""
2360e5c31af7Sopenharmony_ci	end
2361e5c31af7Sopenharmony_ci
2362e5c31af7Sopenharmony_ci	case mediump_vec4_yzzy_zzyy
2363e5c31af7Sopenharmony_ci		version 300 es
2364e5c31af7Sopenharmony_ci		values
2365e5c31af7Sopenharmony_ci		{
2366e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2367e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2368e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(-0.25, 0.0, 0.25, 0.0) | vec4(0.125, 0.0, -0.125, 0.0) | vec4(2.625, 0.0, -2.625, 0.0) | vec4(115.0, 0.0, -115.0, 0.0) | vec4(-0.0848896434635, 0.0, 0.0848896434635, 0.0) ];
2369e5c31af7Sopenharmony_ci		}
2370e5c31af7Sopenharmony_ci
2371e5c31af7Sopenharmony_ci		both ""
2372e5c31af7Sopenharmony_ci			#version 300 es
2373e5c31af7Sopenharmony_ci			precision mediump float;
2374e5c31af7Sopenharmony_ci
2375e5c31af7Sopenharmony_ci			${DECLARATIONS}
2376e5c31af7Sopenharmony_ci
2377e5c31af7Sopenharmony_ci			void main()
2378e5c31af7Sopenharmony_ci			{
2379e5c31af7Sopenharmony_ci				${SETUP}
2380e5c31af7Sopenharmony_ci				out0 = in0.yzzy - in1.zzyy;
2381e5c31af7Sopenharmony_ci				${OUTPUT}
2382e5c31af7Sopenharmony_ci			}
2383e5c31af7Sopenharmony_ci		""
2384e5c31af7Sopenharmony_ci	end
2385e5c31af7Sopenharmony_ci
2386e5c31af7Sopenharmony_ci	case mediump_vec4_wxww_xwww
2387e5c31af7Sopenharmony_ci		version 300 es
2388e5c31af7Sopenharmony_ci		values
2389e5c31af7Sopenharmony_ci		{
2390e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2391e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2392e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.725, -0.725, 0.0, 0.0) | vec4(0.75, -0.75, 0.0, 0.0) | vec4(9.5, -9.5, 0.0, 0.0) | vec4(56.0, -56.0, 0.0, 0.0) | vec4(1.0, -1.0, 0.0, 0.0) ];
2393e5c31af7Sopenharmony_ci		}
2394e5c31af7Sopenharmony_ci
2395e5c31af7Sopenharmony_ci		both ""
2396e5c31af7Sopenharmony_ci			#version 300 es
2397e5c31af7Sopenharmony_ci			precision mediump float;
2398e5c31af7Sopenharmony_ci
2399e5c31af7Sopenharmony_ci			${DECLARATIONS}
2400e5c31af7Sopenharmony_ci
2401e5c31af7Sopenharmony_ci			void main()
2402e5c31af7Sopenharmony_ci			{
2403e5c31af7Sopenharmony_ci				${SETUP}
2404e5c31af7Sopenharmony_ci				out0 = in0.wxww - in1.xwww;
2405e5c31af7Sopenharmony_ci				${OUTPUT}
2406e5c31af7Sopenharmony_ci			}
2407e5c31af7Sopenharmony_ci		""
2408e5c31af7Sopenharmony_ci	end
2409e5c31af7Sopenharmony_ci
2410e5c31af7Sopenharmony_ci	case mediump_vec4_xyxx_yxxx
2411e5c31af7Sopenharmony_ci		version 300 es
2412e5c31af7Sopenharmony_ci		values
2413e5c31af7Sopenharmony_ci		{
2414e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2415e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2416e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(-0.4, 0.4, 0.0, 0.0) | vec4(-0.25, 0.25, 0.0, 0.0) | vec4(1.75, -1.75, 0.0, 0.0) | vec4(-96.0, 96.0, 0.0, 0.0) | vec4(-0.717741935484, 0.717741935484, 0.0, 0.0) ];
2417e5c31af7Sopenharmony_ci		}
2418e5c31af7Sopenharmony_ci
2419e5c31af7Sopenharmony_ci		both ""
2420e5c31af7Sopenharmony_ci			#version 300 es
2421e5c31af7Sopenharmony_ci			precision mediump float;
2422e5c31af7Sopenharmony_ci
2423e5c31af7Sopenharmony_ci			${DECLARATIONS}
2424e5c31af7Sopenharmony_ci
2425e5c31af7Sopenharmony_ci			void main()
2426e5c31af7Sopenharmony_ci			{
2427e5c31af7Sopenharmony_ci				${SETUP}
2428e5c31af7Sopenharmony_ci				out0 = in0.xyxx - in1.yxxx;
2429e5c31af7Sopenharmony_ci				${OUTPUT}
2430e5c31af7Sopenharmony_ci			}
2431e5c31af7Sopenharmony_ci		""
2432e5c31af7Sopenharmony_ci	end
2433e5c31af7Sopenharmony_ci
2434e5c31af7Sopenharmony_ci	case mediump_vec4_zzzz_zzzz
2435e5c31af7Sopenharmony_ci		version 300 es
2436e5c31af7Sopenharmony_ci		values
2437e5c31af7Sopenharmony_ci		{
2438e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2439e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2440e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.0, 0.0, 0.0, 0.0) | vec4(0.0, 0.0, 0.0, 0.0) | vec4(0.0, 0.0, 0.0, 0.0) | vec4(0.0, 0.0, 0.0, 0.0) | vec4(0.0, 0.0, 0.0, 0.0) ];
2441e5c31af7Sopenharmony_ci		}
2442e5c31af7Sopenharmony_ci
2443e5c31af7Sopenharmony_ci		both ""
2444e5c31af7Sopenharmony_ci			#version 300 es
2445e5c31af7Sopenharmony_ci			precision mediump float;
2446e5c31af7Sopenharmony_ci
2447e5c31af7Sopenharmony_ci			${DECLARATIONS}
2448e5c31af7Sopenharmony_ci
2449e5c31af7Sopenharmony_ci			void main()
2450e5c31af7Sopenharmony_ci			{
2451e5c31af7Sopenharmony_ci				${SETUP}
2452e5c31af7Sopenharmony_ci				out0 = in0.zzzz - in1.zzzz;
2453e5c31af7Sopenharmony_ci				${OUTPUT}
2454e5c31af7Sopenharmony_ci			}
2455e5c31af7Sopenharmony_ci		""
2456e5c31af7Sopenharmony_ci	end
2457e5c31af7Sopenharmony_ci
2458e5c31af7Sopenharmony_ci	case mediump_ivec2_x_x
2459e5c31af7Sopenharmony_ci		version 300 es
2460e5c31af7Sopenharmony_ci		values
2461e5c31af7Sopenharmony_ci		{
2462e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
2463e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
2464e5c31af7Sopenharmony_ci			output int out0 = [ 0 | 0 | 0 ];
2465e5c31af7Sopenharmony_ci		}
2466e5c31af7Sopenharmony_ci
2467e5c31af7Sopenharmony_ci		both ""
2468e5c31af7Sopenharmony_ci			#version 300 es
2469e5c31af7Sopenharmony_ci			precision mediump float;
2470e5c31af7Sopenharmony_ci
2471e5c31af7Sopenharmony_ci			${DECLARATIONS}
2472e5c31af7Sopenharmony_ci
2473e5c31af7Sopenharmony_ci			void main()
2474e5c31af7Sopenharmony_ci			{
2475e5c31af7Sopenharmony_ci				${SETUP}
2476e5c31af7Sopenharmony_ci				out0 = in0.x - in1.x;
2477e5c31af7Sopenharmony_ci				${OUTPUT}
2478e5c31af7Sopenharmony_ci			}
2479e5c31af7Sopenharmony_ci		""
2480e5c31af7Sopenharmony_ci	end
2481e5c31af7Sopenharmony_ci
2482e5c31af7Sopenharmony_ci	case mediump_ivec2_xx_xx
2483e5c31af7Sopenharmony_ci		version 300 es
2484e5c31af7Sopenharmony_ci		values
2485e5c31af7Sopenharmony_ci		{
2486e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
2487e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
2488e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(0, 0) | ivec2(0, 0) | ivec2(0, 0) ];
2489e5c31af7Sopenharmony_ci		}
2490e5c31af7Sopenharmony_ci
2491e5c31af7Sopenharmony_ci		both ""
2492e5c31af7Sopenharmony_ci			#version 300 es
2493e5c31af7Sopenharmony_ci			precision mediump float;
2494e5c31af7Sopenharmony_ci
2495e5c31af7Sopenharmony_ci			${DECLARATIONS}
2496e5c31af7Sopenharmony_ci
2497e5c31af7Sopenharmony_ci			void main()
2498e5c31af7Sopenharmony_ci			{
2499e5c31af7Sopenharmony_ci				${SETUP}
2500e5c31af7Sopenharmony_ci				out0 = in0.xx - in1.xx;
2501e5c31af7Sopenharmony_ci				${OUTPUT}
2502e5c31af7Sopenharmony_ci			}
2503e5c31af7Sopenharmony_ci		""
2504e5c31af7Sopenharmony_ci	end
2505e5c31af7Sopenharmony_ci
2506e5c31af7Sopenharmony_ci	case mediump_ivec2_xy_yx
2507e5c31af7Sopenharmony_ci		version 300 es
2508e5c31af7Sopenharmony_ci		values
2509e5c31af7Sopenharmony_ci		{
2510e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
2511e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
2512e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(-2, 2) | ivec2(-1, 1) | ivec2(1, -1) ];
2513e5c31af7Sopenharmony_ci		}
2514e5c31af7Sopenharmony_ci
2515e5c31af7Sopenharmony_ci		both ""
2516e5c31af7Sopenharmony_ci			#version 300 es
2517e5c31af7Sopenharmony_ci			precision mediump float;
2518e5c31af7Sopenharmony_ci
2519e5c31af7Sopenharmony_ci			${DECLARATIONS}
2520e5c31af7Sopenharmony_ci
2521e5c31af7Sopenharmony_ci			void main()
2522e5c31af7Sopenharmony_ci			{
2523e5c31af7Sopenharmony_ci				${SETUP}
2524e5c31af7Sopenharmony_ci				out0 = in0.xy - in1.yx;
2525e5c31af7Sopenharmony_ci				${OUTPUT}
2526e5c31af7Sopenharmony_ci			}
2527e5c31af7Sopenharmony_ci		""
2528e5c31af7Sopenharmony_ci	end
2529e5c31af7Sopenharmony_ci
2530e5c31af7Sopenharmony_ci	case mediump_ivec2_yx_xy
2531e5c31af7Sopenharmony_ci		version 300 es
2532e5c31af7Sopenharmony_ci		values
2533e5c31af7Sopenharmony_ci		{
2534e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
2535e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
2536e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(2, -2) | ivec2(1, -1) | ivec2(-1, 1) ];
2537e5c31af7Sopenharmony_ci		}
2538e5c31af7Sopenharmony_ci
2539e5c31af7Sopenharmony_ci		both ""
2540e5c31af7Sopenharmony_ci			#version 300 es
2541e5c31af7Sopenharmony_ci			precision mediump float;
2542e5c31af7Sopenharmony_ci
2543e5c31af7Sopenharmony_ci			${DECLARATIONS}
2544e5c31af7Sopenharmony_ci
2545e5c31af7Sopenharmony_ci			void main()
2546e5c31af7Sopenharmony_ci			{
2547e5c31af7Sopenharmony_ci				${SETUP}
2548e5c31af7Sopenharmony_ci				out0 = in0.yx - in1.xy;
2549e5c31af7Sopenharmony_ci				${OUTPUT}
2550e5c31af7Sopenharmony_ci			}
2551e5c31af7Sopenharmony_ci		""
2552e5c31af7Sopenharmony_ci	end
2553e5c31af7Sopenharmony_ci
2554e5c31af7Sopenharmony_ci	case mediump_ivec2_yxy_xyy
2555e5c31af7Sopenharmony_ci		version 300 es
2556e5c31af7Sopenharmony_ci		values
2557e5c31af7Sopenharmony_ci		{
2558e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
2559e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
2560e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(2, -2, 0) | ivec3(1, -1, 0) | ivec3(-1, 1, 0) ];
2561e5c31af7Sopenharmony_ci		}
2562e5c31af7Sopenharmony_ci
2563e5c31af7Sopenharmony_ci		both ""
2564e5c31af7Sopenharmony_ci			#version 300 es
2565e5c31af7Sopenharmony_ci			precision mediump float;
2566e5c31af7Sopenharmony_ci
2567e5c31af7Sopenharmony_ci			${DECLARATIONS}
2568e5c31af7Sopenharmony_ci
2569e5c31af7Sopenharmony_ci			void main()
2570e5c31af7Sopenharmony_ci			{
2571e5c31af7Sopenharmony_ci				${SETUP}
2572e5c31af7Sopenharmony_ci				out0 = in0.yxy - in1.xyy;
2573e5c31af7Sopenharmony_ci				${OUTPUT}
2574e5c31af7Sopenharmony_ci			}
2575e5c31af7Sopenharmony_ci		""
2576e5c31af7Sopenharmony_ci	end
2577e5c31af7Sopenharmony_ci
2578e5c31af7Sopenharmony_ci	case mediump_ivec2_xyxx_yxxx
2579e5c31af7Sopenharmony_ci		version 300 es
2580e5c31af7Sopenharmony_ci		values
2581e5c31af7Sopenharmony_ci		{
2582e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
2583e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
2584e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(-2, 2, 0, 0) | ivec4(-1, 1, 0, 0) | ivec4(1, -1, 0, 0) ];
2585e5c31af7Sopenharmony_ci		}
2586e5c31af7Sopenharmony_ci
2587e5c31af7Sopenharmony_ci		both ""
2588e5c31af7Sopenharmony_ci			#version 300 es
2589e5c31af7Sopenharmony_ci			precision mediump float;
2590e5c31af7Sopenharmony_ci
2591e5c31af7Sopenharmony_ci			${DECLARATIONS}
2592e5c31af7Sopenharmony_ci
2593e5c31af7Sopenharmony_ci			void main()
2594e5c31af7Sopenharmony_ci			{
2595e5c31af7Sopenharmony_ci				${SETUP}
2596e5c31af7Sopenharmony_ci				out0 = in0.xyxx - in1.yxxx;
2597e5c31af7Sopenharmony_ci				${OUTPUT}
2598e5c31af7Sopenharmony_ci			}
2599e5c31af7Sopenharmony_ci		""
2600e5c31af7Sopenharmony_ci	end
2601e5c31af7Sopenharmony_ci
2602e5c31af7Sopenharmony_ci	case mediump_ivec2_yxyx_xyxy
2603e5c31af7Sopenharmony_ci		version 300 es
2604e5c31af7Sopenharmony_ci		values
2605e5c31af7Sopenharmony_ci		{
2606e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
2607e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
2608e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(2, -2, 2, -2) | ivec4(1, -1, 1, -1) | ivec4(-1, 1, -1, 1) ];
2609e5c31af7Sopenharmony_ci		}
2610e5c31af7Sopenharmony_ci
2611e5c31af7Sopenharmony_ci		both ""
2612e5c31af7Sopenharmony_ci			#version 300 es
2613e5c31af7Sopenharmony_ci			precision mediump float;
2614e5c31af7Sopenharmony_ci
2615e5c31af7Sopenharmony_ci			${DECLARATIONS}
2616e5c31af7Sopenharmony_ci
2617e5c31af7Sopenharmony_ci			void main()
2618e5c31af7Sopenharmony_ci			{
2619e5c31af7Sopenharmony_ci				${SETUP}
2620e5c31af7Sopenharmony_ci				out0 = in0.yxyx - in1.xyxy;
2621e5c31af7Sopenharmony_ci				${OUTPUT}
2622e5c31af7Sopenharmony_ci			}
2623e5c31af7Sopenharmony_ci		""
2624e5c31af7Sopenharmony_ci	end
2625e5c31af7Sopenharmony_ci
2626e5c31af7Sopenharmony_ci	case mediump_ivec3_x_x
2627e5c31af7Sopenharmony_ci		version 300 es
2628e5c31af7Sopenharmony_ci		values
2629e5c31af7Sopenharmony_ci		{
2630e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2631e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2632e5c31af7Sopenharmony_ci			output int out0 = [ 0 | 0 | 0 ];
2633e5c31af7Sopenharmony_ci		}
2634e5c31af7Sopenharmony_ci
2635e5c31af7Sopenharmony_ci		both ""
2636e5c31af7Sopenharmony_ci			#version 300 es
2637e5c31af7Sopenharmony_ci			precision mediump float;
2638e5c31af7Sopenharmony_ci
2639e5c31af7Sopenharmony_ci			${DECLARATIONS}
2640e5c31af7Sopenharmony_ci
2641e5c31af7Sopenharmony_ci			void main()
2642e5c31af7Sopenharmony_ci			{
2643e5c31af7Sopenharmony_ci				${SETUP}
2644e5c31af7Sopenharmony_ci				out0 = in0.x - in1.x;
2645e5c31af7Sopenharmony_ci				${OUTPUT}
2646e5c31af7Sopenharmony_ci			}
2647e5c31af7Sopenharmony_ci		""
2648e5c31af7Sopenharmony_ci	end
2649e5c31af7Sopenharmony_ci
2650e5c31af7Sopenharmony_ci	case mediump_ivec3_z_z
2651e5c31af7Sopenharmony_ci		version 300 es
2652e5c31af7Sopenharmony_ci		values
2653e5c31af7Sopenharmony_ci		{
2654e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2655e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2656e5c31af7Sopenharmony_ci			output int out0 = [ 0 | 0 | 0 ];
2657e5c31af7Sopenharmony_ci		}
2658e5c31af7Sopenharmony_ci
2659e5c31af7Sopenharmony_ci		both ""
2660e5c31af7Sopenharmony_ci			#version 300 es
2661e5c31af7Sopenharmony_ci			precision mediump float;
2662e5c31af7Sopenharmony_ci
2663e5c31af7Sopenharmony_ci			${DECLARATIONS}
2664e5c31af7Sopenharmony_ci
2665e5c31af7Sopenharmony_ci			void main()
2666e5c31af7Sopenharmony_ci			{
2667e5c31af7Sopenharmony_ci				${SETUP}
2668e5c31af7Sopenharmony_ci				out0 = in0.z - in1.z;
2669e5c31af7Sopenharmony_ci				${OUTPUT}
2670e5c31af7Sopenharmony_ci			}
2671e5c31af7Sopenharmony_ci		""
2672e5c31af7Sopenharmony_ci	end
2673e5c31af7Sopenharmony_ci
2674e5c31af7Sopenharmony_ci	case mediump_ivec3_xz_zx
2675e5c31af7Sopenharmony_ci		version 300 es
2676e5c31af7Sopenharmony_ci		values
2677e5c31af7Sopenharmony_ci		{
2678e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2679e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2680e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(0, 0) | ivec2(-2, 2) | ivec2(3, -3) ];
2681e5c31af7Sopenharmony_ci		}
2682e5c31af7Sopenharmony_ci
2683e5c31af7Sopenharmony_ci		both ""
2684e5c31af7Sopenharmony_ci			#version 300 es
2685e5c31af7Sopenharmony_ci			precision mediump float;
2686e5c31af7Sopenharmony_ci
2687e5c31af7Sopenharmony_ci			${DECLARATIONS}
2688e5c31af7Sopenharmony_ci
2689e5c31af7Sopenharmony_ci			void main()
2690e5c31af7Sopenharmony_ci			{
2691e5c31af7Sopenharmony_ci				${SETUP}
2692e5c31af7Sopenharmony_ci				out0 = in0.xz - in1.zx;
2693e5c31af7Sopenharmony_ci				${OUTPUT}
2694e5c31af7Sopenharmony_ci			}
2695e5c31af7Sopenharmony_ci		""
2696e5c31af7Sopenharmony_ci	end
2697e5c31af7Sopenharmony_ci
2698e5c31af7Sopenharmony_ci	case mediump_ivec3_zz_zz
2699e5c31af7Sopenharmony_ci		version 300 es
2700e5c31af7Sopenharmony_ci		values
2701e5c31af7Sopenharmony_ci		{
2702e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2703e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2704e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(0, 0) | ivec2(0, 0) | ivec2(0, 0) ];
2705e5c31af7Sopenharmony_ci		}
2706e5c31af7Sopenharmony_ci
2707e5c31af7Sopenharmony_ci		both ""
2708e5c31af7Sopenharmony_ci			#version 300 es
2709e5c31af7Sopenharmony_ci			precision mediump float;
2710e5c31af7Sopenharmony_ci
2711e5c31af7Sopenharmony_ci			${DECLARATIONS}
2712e5c31af7Sopenharmony_ci
2713e5c31af7Sopenharmony_ci			void main()
2714e5c31af7Sopenharmony_ci			{
2715e5c31af7Sopenharmony_ci				${SETUP}
2716e5c31af7Sopenharmony_ci				out0 = in0.zz - in1.zz;
2717e5c31af7Sopenharmony_ci				${OUTPUT}
2718e5c31af7Sopenharmony_ci			}
2719e5c31af7Sopenharmony_ci		""
2720e5c31af7Sopenharmony_ci	end
2721e5c31af7Sopenharmony_ci
2722e5c31af7Sopenharmony_ci	case mediump_ivec3_xyz_yzx
2723e5c31af7Sopenharmony_ci		version 300 es
2724e5c31af7Sopenharmony_ci		values
2725e5c31af7Sopenharmony_ci		{
2726e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2727e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2728e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(-2, 2, 0) | ivec3(-1, -1, 2) | ivec3(1, 2, -3) ];
2729e5c31af7Sopenharmony_ci		}
2730e5c31af7Sopenharmony_ci
2731e5c31af7Sopenharmony_ci		both ""
2732e5c31af7Sopenharmony_ci			#version 300 es
2733e5c31af7Sopenharmony_ci			precision mediump float;
2734e5c31af7Sopenharmony_ci
2735e5c31af7Sopenharmony_ci			${DECLARATIONS}
2736e5c31af7Sopenharmony_ci
2737e5c31af7Sopenharmony_ci			void main()
2738e5c31af7Sopenharmony_ci			{
2739e5c31af7Sopenharmony_ci				${SETUP}
2740e5c31af7Sopenharmony_ci				out0 = in0.xyz - in1.yzx;
2741e5c31af7Sopenharmony_ci				${OUTPUT}
2742e5c31af7Sopenharmony_ci			}
2743e5c31af7Sopenharmony_ci		""
2744e5c31af7Sopenharmony_ci	end
2745e5c31af7Sopenharmony_ci
2746e5c31af7Sopenharmony_ci	case mediump_ivec3_zyx_yxz
2747e5c31af7Sopenharmony_ci		version 300 es
2748e5c31af7Sopenharmony_ci		values
2749e5c31af7Sopenharmony_ci		{
2750e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2751e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2752e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(-2, 2, 0) | ivec3(1, 1, -2) | ivec3(-2, -1, 3) ];
2753e5c31af7Sopenharmony_ci		}
2754e5c31af7Sopenharmony_ci
2755e5c31af7Sopenharmony_ci		both ""
2756e5c31af7Sopenharmony_ci			#version 300 es
2757e5c31af7Sopenharmony_ci			precision mediump float;
2758e5c31af7Sopenharmony_ci
2759e5c31af7Sopenharmony_ci			${DECLARATIONS}
2760e5c31af7Sopenharmony_ci
2761e5c31af7Sopenharmony_ci			void main()
2762e5c31af7Sopenharmony_ci			{
2763e5c31af7Sopenharmony_ci				${SETUP}
2764e5c31af7Sopenharmony_ci				out0 = in0.zyx - in1.yxz;
2765e5c31af7Sopenharmony_ci				${OUTPUT}
2766e5c31af7Sopenharmony_ci			}
2767e5c31af7Sopenharmony_ci		""
2768e5c31af7Sopenharmony_ci	end
2769e5c31af7Sopenharmony_ci
2770e5c31af7Sopenharmony_ci	case mediump_ivec3_xxx_xxx
2771e5c31af7Sopenharmony_ci		version 300 es
2772e5c31af7Sopenharmony_ci		values
2773e5c31af7Sopenharmony_ci		{
2774e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2775e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2776e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(0, 0, 0) | ivec3(0, 0, 0) ];
2777e5c31af7Sopenharmony_ci		}
2778e5c31af7Sopenharmony_ci
2779e5c31af7Sopenharmony_ci		both ""
2780e5c31af7Sopenharmony_ci			#version 300 es
2781e5c31af7Sopenharmony_ci			precision mediump float;
2782e5c31af7Sopenharmony_ci
2783e5c31af7Sopenharmony_ci			${DECLARATIONS}
2784e5c31af7Sopenharmony_ci
2785e5c31af7Sopenharmony_ci			void main()
2786e5c31af7Sopenharmony_ci			{
2787e5c31af7Sopenharmony_ci				${SETUP}
2788e5c31af7Sopenharmony_ci				out0 = in0.xxx - in1.xxx;
2789e5c31af7Sopenharmony_ci				${OUTPUT}
2790e5c31af7Sopenharmony_ci			}
2791e5c31af7Sopenharmony_ci		""
2792e5c31af7Sopenharmony_ci	end
2793e5c31af7Sopenharmony_ci
2794e5c31af7Sopenharmony_ci	case mediump_ivec3_zzz_zzz
2795e5c31af7Sopenharmony_ci		version 300 es
2796e5c31af7Sopenharmony_ci		values
2797e5c31af7Sopenharmony_ci		{
2798e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2799e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2800e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(0, 0, 0) | ivec3(0, 0, 0) ];
2801e5c31af7Sopenharmony_ci		}
2802e5c31af7Sopenharmony_ci
2803e5c31af7Sopenharmony_ci		both ""
2804e5c31af7Sopenharmony_ci			#version 300 es
2805e5c31af7Sopenharmony_ci			precision mediump float;
2806e5c31af7Sopenharmony_ci
2807e5c31af7Sopenharmony_ci			${DECLARATIONS}
2808e5c31af7Sopenharmony_ci
2809e5c31af7Sopenharmony_ci			void main()
2810e5c31af7Sopenharmony_ci			{
2811e5c31af7Sopenharmony_ci				${SETUP}
2812e5c31af7Sopenharmony_ci				out0 = in0.zzz - in1.zzz;
2813e5c31af7Sopenharmony_ci				${OUTPUT}
2814e5c31af7Sopenharmony_ci			}
2815e5c31af7Sopenharmony_ci		""
2816e5c31af7Sopenharmony_ci	end
2817e5c31af7Sopenharmony_ci
2818e5c31af7Sopenharmony_ci	case mediump_ivec3_zzy_zyz
2819e5c31af7Sopenharmony_ci		version 300 es
2820e5c31af7Sopenharmony_ci		values
2821e5c31af7Sopenharmony_ci		{
2822e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2823e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2824e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(0, -2, 2) | ivec3(0, 1, -1) | ivec3(0, -2, 2) ];
2825e5c31af7Sopenharmony_ci		}
2826e5c31af7Sopenharmony_ci
2827e5c31af7Sopenharmony_ci		both ""
2828e5c31af7Sopenharmony_ci			#version 300 es
2829e5c31af7Sopenharmony_ci			precision mediump float;
2830e5c31af7Sopenharmony_ci
2831e5c31af7Sopenharmony_ci			${DECLARATIONS}
2832e5c31af7Sopenharmony_ci
2833e5c31af7Sopenharmony_ci			void main()
2834e5c31af7Sopenharmony_ci			{
2835e5c31af7Sopenharmony_ci				${SETUP}
2836e5c31af7Sopenharmony_ci				out0 = in0.zzy - in1.zyz;
2837e5c31af7Sopenharmony_ci				${OUTPUT}
2838e5c31af7Sopenharmony_ci			}
2839e5c31af7Sopenharmony_ci		""
2840e5c31af7Sopenharmony_ci	end
2841e5c31af7Sopenharmony_ci
2842e5c31af7Sopenharmony_ci	case mediump_ivec3_yxy_xyy
2843e5c31af7Sopenharmony_ci		version 300 es
2844e5c31af7Sopenharmony_ci		values
2845e5c31af7Sopenharmony_ci		{
2846e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2847e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2848e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(2, -2, 0) | ivec3(1, -1, 0) | ivec3(-1, 1, 0) ];
2849e5c31af7Sopenharmony_ci		}
2850e5c31af7Sopenharmony_ci
2851e5c31af7Sopenharmony_ci		both ""
2852e5c31af7Sopenharmony_ci			#version 300 es
2853e5c31af7Sopenharmony_ci			precision mediump float;
2854e5c31af7Sopenharmony_ci
2855e5c31af7Sopenharmony_ci			${DECLARATIONS}
2856e5c31af7Sopenharmony_ci
2857e5c31af7Sopenharmony_ci			void main()
2858e5c31af7Sopenharmony_ci			{
2859e5c31af7Sopenharmony_ci				${SETUP}
2860e5c31af7Sopenharmony_ci				out0 = in0.yxy - in1.xyy;
2861e5c31af7Sopenharmony_ci				${OUTPUT}
2862e5c31af7Sopenharmony_ci			}
2863e5c31af7Sopenharmony_ci		""
2864e5c31af7Sopenharmony_ci	end
2865e5c31af7Sopenharmony_ci
2866e5c31af7Sopenharmony_ci	case mediump_ivec3_xzx_zxx
2867e5c31af7Sopenharmony_ci		version 300 es
2868e5c31af7Sopenharmony_ci		values
2869e5c31af7Sopenharmony_ci		{
2870e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2871e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2872e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(-2, 2, 0) | ivec3(3, -3, 0) ];
2873e5c31af7Sopenharmony_ci		}
2874e5c31af7Sopenharmony_ci
2875e5c31af7Sopenharmony_ci		both ""
2876e5c31af7Sopenharmony_ci			#version 300 es
2877e5c31af7Sopenharmony_ci			precision mediump float;
2878e5c31af7Sopenharmony_ci
2879e5c31af7Sopenharmony_ci			${DECLARATIONS}
2880e5c31af7Sopenharmony_ci
2881e5c31af7Sopenharmony_ci			void main()
2882e5c31af7Sopenharmony_ci			{
2883e5c31af7Sopenharmony_ci				${SETUP}
2884e5c31af7Sopenharmony_ci				out0 = in0.xzx - in1.zxx;
2885e5c31af7Sopenharmony_ci				${OUTPUT}
2886e5c31af7Sopenharmony_ci			}
2887e5c31af7Sopenharmony_ci		""
2888e5c31af7Sopenharmony_ci	end
2889e5c31af7Sopenharmony_ci
2890e5c31af7Sopenharmony_ci	case mediump_ivec3_xyyx_yyxx
2891e5c31af7Sopenharmony_ci		version 300 es
2892e5c31af7Sopenharmony_ci		values
2893e5c31af7Sopenharmony_ci		{
2894e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2895e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2896e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(-2, 0, 2, 0) | ivec4(-1, 0, 1, 0) | ivec4(1, 0, -1, 0) ];
2897e5c31af7Sopenharmony_ci		}
2898e5c31af7Sopenharmony_ci
2899e5c31af7Sopenharmony_ci		both ""
2900e5c31af7Sopenharmony_ci			#version 300 es
2901e5c31af7Sopenharmony_ci			precision mediump float;
2902e5c31af7Sopenharmony_ci
2903e5c31af7Sopenharmony_ci			${DECLARATIONS}
2904e5c31af7Sopenharmony_ci
2905e5c31af7Sopenharmony_ci			void main()
2906e5c31af7Sopenharmony_ci			{
2907e5c31af7Sopenharmony_ci				${SETUP}
2908e5c31af7Sopenharmony_ci				out0 = in0.xyyx - in1.yyxx;
2909e5c31af7Sopenharmony_ci				${OUTPUT}
2910e5c31af7Sopenharmony_ci			}
2911e5c31af7Sopenharmony_ci		""
2912e5c31af7Sopenharmony_ci	end
2913e5c31af7Sopenharmony_ci
2914e5c31af7Sopenharmony_ci	case mediump_ivec3_zxyz_xyzz
2915e5c31af7Sopenharmony_ci		version 300 es
2916e5c31af7Sopenharmony_ci		values
2917e5c31af7Sopenharmony_ci		{
2918e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2919e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
2920e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(0, -2, 2, 0) | ivec4(2, -1, -1, 0) | ivec4(-3, 1, 2, 0) ];
2921e5c31af7Sopenharmony_ci		}
2922e5c31af7Sopenharmony_ci
2923e5c31af7Sopenharmony_ci		both ""
2924e5c31af7Sopenharmony_ci			#version 300 es
2925e5c31af7Sopenharmony_ci			precision mediump float;
2926e5c31af7Sopenharmony_ci
2927e5c31af7Sopenharmony_ci			${DECLARATIONS}
2928e5c31af7Sopenharmony_ci
2929e5c31af7Sopenharmony_ci			void main()
2930e5c31af7Sopenharmony_ci			{
2931e5c31af7Sopenharmony_ci				${SETUP}
2932e5c31af7Sopenharmony_ci				out0 = in0.zxyz - in1.xyzz;
2933e5c31af7Sopenharmony_ci				${OUTPUT}
2934e5c31af7Sopenharmony_ci			}
2935e5c31af7Sopenharmony_ci		""
2936e5c31af7Sopenharmony_ci	end
2937e5c31af7Sopenharmony_ci
2938e5c31af7Sopenharmony_ci	case mediump_ivec4_x_x
2939e5c31af7Sopenharmony_ci		version 300 es
2940e5c31af7Sopenharmony_ci		values
2941e5c31af7Sopenharmony_ci		{
2942e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
2943e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
2944e5c31af7Sopenharmony_ci			output int out0 = [ 0 | 0 | 0 ];
2945e5c31af7Sopenharmony_ci		}
2946e5c31af7Sopenharmony_ci
2947e5c31af7Sopenharmony_ci		both ""
2948e5c31af7Sopenharmony_ci			#version 300 es
2949e5c31af7Sopenharmony_ci			precision mediump float;
2950e5c31af7Sopenharmony_ci
2951e5c31af7Sopenharmony_ci			${DECLARATIONS}
2952e5c31af7Sopenharmony_ci
2953e5c31af7Sopenharmony_ci			void main()
2954e5c31af7Sopenharmony_ci			{
2955e5c31af7Sopenharmony_ci				${SETUP}
2956e5c31af7Sopenharmony_ci				out0 = in0.x - in1.x;
2957e5c31af7Sopenharmony_ci				${OUTPUT}
2958e5c31af7Sopenharmony_ci			}
2959e5c31af7Sopenharmony_ci		""
2960e5c31af7Sopenharmony_ci	end
2961e5c31af7Sopenharmony_ci
2962e5c31af7Sopenharmony_ci	case mediump_ivec4_w_w
2963e5c31af7Sopenharmony_ci		version 300 es
2964e5c31af7Sopenharmony_ci		values
2965e5c31af7Sopenharmony_ci		{
2966e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
2967e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
2968e5c31af7Sopenharmony_ci			output int out0 = [ 0 | 0 | 0 ];
2969e5c31af7Sopenharmony_ci		}
2970e5c31af7Sopenharmony_ci
2971e5c31af7Sopenharmony_ci		both ""
2972e5c31af7Sopenharmony_ci			#version 300 es
2973e5c31af7Sopenharmony_ci			precision mediump float;
2974e5c31af7Sopenharmony_ci
2975e5c31af7Sopenharmony_ci			${DECLARATIONS}
2976e5c31af7Sopenharmony_ci
2977e5c31af7Sopenharmony_ci			void main()
2978e5c31af7Sopenharmony_ci			{
2979e5c31af7Sopenharmony_ci				${SETUP}
2980e5c31af7Sopenharmony_ci				out0 = in0.w - in1.w;
2981e5c31af7Sopenharmony_ci				${OUTPUT}
2982e5c31af7Sopenharmony_ci			}
2983e5c31af7Sopenharmony_ci		""
2984e5c31af7Sopenharmony_ci	end
2985e5c31af7Sopenharmony_ci
2986e5c31af7Sopenharmony_ci	case mediump_ivec4_wx_xw
2987e5c31af7Sopenharmony_ci		version 300 es
2988e5c31af7Sopenharmony_ci		values
2989e5c31af7Sopenharmony_ci		{
2990e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
2991e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
2992e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(2, -2) | ivec2(3, -3) | ivec2(-8, 8) ];
2993e5c31af7Sopenharmony_ci		}
2994e5c31af7Sopenharmony_ci
2995e5c31af7Sopenharmony_ci		both ""
2996e5c31af7Sopenharmony_ci			#version 300 es
2997e5c31af7Sopenharmony_ci			precision mediump float;
2998e5c31af7Sopenharmony_ci
2999e5c31af7Sopenharmony_ci			${DECLARATIONS}
3000e5c31af7Sopenharmony_ci
3001e5c31af7Sopenharmony_ci			void main()
3002e5c31af7Sopenharmony_ci			{
3003e5c31af7Sopenharmony_ci				${SETUP}
3004e5c31af7Sopenharmony_ci				out0 = in0.wx - in1.xw;
3005e5c31af7Sopenharmony_ci				${OUTPUT}
3006e5c31af7Sopenharmony_ci			}
3007e5c31af7Sopenharmony_ci		""
3008e5c31af7Sopenharmony_ci	end
3009e5c31af7Sopenharmony_ci
3010e5c31af7Sopenharmony_ci	case mediump_ivec4_wz_zw
3011e5c31af7Sopenharmony_ci		version 300 es
3012e5c31af7Sopenharmony_ci		values
3013e5c31af7Sopenharmony_ci		{
3014e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
3015e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
3016e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(2, -2) | ivec2(1, -1) | ivec2(-5, 5) ];
3017e5c31af7Sopenharmony_ci		}
3018e5c31af7Sopenharmony_ci
3019e5c31af7Sopenharmony_ci		both ""
3020e5c31af7Sopenharmony_ci			#version 300 es
3021e5c31af7Sopenharmony_ci			precision mediump float;
3022e5c31af7Sopenharmony_ci
3023e5c31af7Sopenharmony_ci			${DECLARATIONS}
3024e5c31af7Sopenharmony_ci
3025e5c31af7Sopenharmony_ci			void main()
3026e5c31af7Sopenharmony_ci			{
3027e5c31af7Sopenharmony_ci				${SETUP}
3028e5c31af7Sopenharmony_ci				out0 = in0.wz - in1.zw;
3029e5c31af7Sopenharmony_ci				${OUTPUT}
3030e5c31af7Sopenharmony_ci			}
3031e5c31af7Sopenharmony_ci		""
3032e5c31af7Sopenharmony_ci	end
3033e5c31af7Sopenharmony_ci
3034e5c31af7Sopenharmony_ci	case mediump_ivec4_www_www
3035e5c31af7Sopenharmony_ci		version 300 es
3036e5c31af7Sopenharmony_ci		values
3037e5c31af7Sopenharmony_ci		{
3038e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
3039e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
3040e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(0, 0, 0) | ivec3(0, 0, 0) ];
3041e5c31af7Sopenharmony_ci		}
3042e5c31af7Sopenharmony_ci
3043e5c31af7Sopenharmony_ci		both ""
3044e5c31af7Sopenharmony_ci			#version 300 es
3045e5c31af7Sopenharmony_ci			precision mediump float;
3046e5c31af7Sopenharmony_ci
3047e5c31af7Sopenharmony_ci			${DECLARATIONS}
3048e5c31af7Sopenharmony_ci
3049e5c31af7Sopenharmony_ci			void main()
3050e5c31af7Sopenharmony_ci			{
3051e5c31af7Sopenharmony_ci				${SETUP}
3052e5c31af7Sopenharmony_ci				out0 = in0.www - in1.www;
3053e5c31af7Sopenharmony_ci				${OUTPUT}
3054e5c31af7Sopenharmony_ci			}
3055e5c31af7Sopenharmony_ci		""
3056e5c31af7Sopenharmony_ci	end
3057e5c31af7Sopenharmony_ci
3058e5c31af7Sopenharmony_ci	case mediump_ivec4_yyw_ywy
3059e5c31af7Sopenharmony_ci		version 300 es
3060e5c31af7Sopenharmony_ci		values
3061e5c31af7Sopenharmony_ci		{
3062e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
3063e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
3064e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(0, -2, 2) | ivec3(0, 7, -7) ];
3065e5c31af7Sopenharmony_ci		}
3066e5c31af7Sopenharmony_ci
3067e5c31af7Sopenharmony_ci		both ""
3068e5c31af7Sopenharmony_ci			#version 300 es
3069e5c31af7Sopenharmony_ci			precision mediump float;
3070e5c31af7Sopenharmony_ci
3071e5c31af7Sopenharmony_ci			${DECLARATIONS}
3072e5c31af7Sopenharmony_ci
3073e5c31af7Sopenharmony_ci			void main()
3074e5c31af7Sopenharmony_ci			{
3075e5c31af7Sopenharmony_ci				${SETUP}
3076e5c31af7Sopenharmony_ci				out0 = in0.yyw - in1.ywy;
3077e5c31af7Sopenharmony_ci				${OUTPUT}
3078e5c31af7Sopenharmony_ci			}
3079e5c31af7Sopenharmony_ci		""
3080e5c31af7Sopenharmony_ci	end
3081e5c31af7Sopenharmony_ci
3082e5c31af7Sopenharmony_ci	case mediump_ivec4_wzy_zyw
3083e5c31af7Sopenharmony_ci		version 300 es
3084e5c31af7Sopenharmony_ci		values
3085e5c31af7Sopenharmony_ci		{
3086e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
3087e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
3088e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(2, -2, 0) | ivec3(1, 1, -2) | ivec3(-5, -2, 7) ];
3089e5c31af7Sopenharmony_ci		}
3090e5c31af7Sopenharmony_ci
3091e5c31af7Sopenharmony_ci		both ""
3092e5c31af7Sopenharmony_ci			#version 300 es
3093e5c31af7Sopenharmony_ci			precision mediump float;
3094e5c31af7Sopenharmony_ci
3095e5c31af7Sopenharmony_ci			${DECLARATIONS}
3096e5c31af7Sopenharmony_ci
3097e5c31af7Sopenharmony_ci			void main()
3098e5c31af7Sopenharmony_ci			{
3099e5c31af7Sopenharmony_ci				${SETUP}
3100e5c31af7Sopenharmony_ci				out0 = in0.wzy - in1.zyw;
3101e5c31af7Sopenharmony_ci				${OUTPUT}
3102e5c31af7Sopenharmony_ci			}
3103e5c31af7Sopenharmony_ci		""
3104e5c31af7Sopenharmony_ci	end
3105e5c31af7Sopenharmony_ci
3106e5c31af7Sopenharmony_ci	case mediump_ivec4_xyzw_yzwx
3107e5c31af7Sopenharmony_ci		version 300 es
3108e5c31af7Sopenharmony_ci		values
3109e5c31af7Sopenharmony_ci		{
3110e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
3111e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
3112e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(-2, 2, -2, 2) | ivec4(-1, -1, -1, 3) | ivec4(1, 2, 5, -8) ];
3113e5c31af7Sopenharmony_ci		}
3114e5c31af7Sopenharmony_ci
3115e5c31af7Sopenharmony_ci		both ""
3116e5c31af7Sopenharmony_ci			#version 300 es
3117e5c31af7Sopenharmony_ci			precision mediump float;
3118e5c31af7Sopenharmony_ci
3119e5c31af7Sopenharmony_ci			${DECLARATIONS}
3120e5c31af7Sopenharmony_ci
3121e5c31af7Sopenharmony_ci			void main()
3122e5c31af7Sopenharmony_ci			{
3123e5c31af7Sopenharmony_ci				${SETUP}
3124e5c31af7Sopenharmony_ci				out0 = in0.xyzw - in1.yzwx;
3125e5c31af7Sopenharmony_ci				${OUTPUT}
3126e5c31af7Sopenharmony_ci			}
3127e5c31af7Sopenharmony_ci		""
3128e5c31af7Sopenharmony_ci	end
3129e5c31af7Sopenharmony_ci
3130e5c31af7Sopenharmony_ci	case mediump_ivec4_wzyx_zyxw
3131e5c31af7Sopenharmony_ci		version 300 es
3132e5c31af7Sopenharmony_ci		values
3133e5c31af7Sopenharmony_ci		{
3134e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
3135e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
3136e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(2, -2, 2, -2) | ivec4(1, 1, 1, -3) | ivec4(-5, -2, -1, 8) ];
3137e5c31af7Sopenharmony_ci		}
3138e5c31af7Sopenharmony_ci
3139e5c31af7Sopenharmony_ci		both ""
3140e5c31af7Sopenharmony_ci			#version 300 es
3141e5c31af7Sopenharmony_ci			precision mediump float;
3142e5c31af7Sopenharmony_ci
3143e5c31af7Sopenharmony_ci			${DECLARATIONS}
3144e5c31af7Sopenharmony_ci
3145e5c31af7Sopenharmony_ci			void main()
3146e5c31af7Sopenharmony_ci			{
3147e5c31af7Sopenharmony_ci				${SETUP}
3148e5c31af7Sopenharmony_ci				out0 = in0.wzyx - in1.zyxw;
3149e5c31af7Sopenharmony_ci				${OUTPUT}
3150e5c31af7Sopenharmony_ci			}
3151e5c31af7Sopenharmony_ci		""
3152e5c31af7Sopenharmony_ci	end
3153e5c31af7Sopenharmony_ci
3154e5c31af7Sopenharmony_ci	case mediump_ivec4_xyxy_yxyx
3155e5c31af7Sopenharmony_ci		version 300 es
3156e5c31af7Sopenharmony_ci		values
3157e5c31af7Sopenharmony_ci		{
3158e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
3159e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
3160e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(-2, 2, -2, 2) | ivec4(-1, 1, -1, 1) | ivec4(1, -1, 1, -1) ];
3161e5c31af7Sopenharmony_ci		}
3162e5c31af7Sopenharmony_ci
3163e5c31af7Sopenharmony_ci		both ""
3164e5c31af7Sopenharmony_ci			#version 300 es
3165e5c31af7Sopenharmony_ci			precision mediump float;
3166e5c31af7Sopenharmony_ci
3167e5c31af7Sopenharmony_ci			${DECLARATIONS}
3168e5c31af7Sopenharmony_ci
3169e5c31af7Sopenharmony_ci			void main()
3170e5c31af7Sopenharmony_ci			{
3171e5c31af7Sopenharmony_ci				${SETUP}
3172e5c31af7Sopenharmony_ci				out0 = in0.xyxy - in1.yxyx;
3173e5c31af7Sopenharmony_ci				${OUTPUT}
3174e5c31af7Sopenharmony_ci			}
3175e5c31af7Sopenharmony_ci		""
3176e5c31af7Sopenharmony_ci	end
3177e5c31af7Sopenharmony_ci
3178e5c31af7Sopenharmony_ci	case mediump_ivec4_yzzy_zzyy
3179e5c31af7Sopenharmony_ci		version 300 es
3180e5c31af7Sopenharmony_ci		values
3181e5c31af7Sopenharmony_ci		{
3182e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
3183e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
3184e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(2, 0, -2, 0) | ivec4(-1, 0, 1, 0) | ivec4(2, 0, -2, 0) ];
3185e5c31af7Sopenharmony_ci		}
3186e5c31af7Sopenharmony_ci
3187e5c31af7Sopenharmony_ci		both ""
3188e5c31af7Sopenharmony_ci			#version 300 es
3189e5c31af7Sopenharmony_ci			precision mediump float;
3190e5c31af7Sopenharmony_ci
3191e5c31af7Sopenharmony_ci			${DECLARATIONS}
3192e5c31af7Sopenharmony_ci
3193e5c31af7Sopenharmony_ci			void main()
3194e5c31af7Sopenharmony_ci			{
3195e5c31af7Sopenharmony_ci				${SETUP}
3196e5c31af7Sopenharmony_ci				out0 = in0.yzzy - in1.zzyy;
3197e5c31af7Sopenharmony_ci				${OUTPUT}
3198e5c31af7Sopenharmony_ci			}
3199e5c31af7Sopenharmony_ci		""
3200e5c31af7Sopenharmony_ci	end
3201e5c31af7Sopenharmony_ci
3202e5c31af7Sopenharmony_ci	case mediump_ivec4_wxww_xwww
3203e5c31af7Sopenharmony_ci		version 300 es
3204e5c31af7Sopenharmony_ci		values
3205e5c31af7Sopenharmony_ci		{
3206e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
3207e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
3208e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(2, -2, 0, 0) | ivec4(3, -3, 0, 0) | ivec4(-8, 8, 0, 0) ];
3209e5c31af7Sopenharmony_ci		}
3210e5c31af7Sopenharmony_ci
3211e5c31af7Sopenharmony_ci		both ""
3212e5c31af7Sopenharmony_ci			#version 300 es
3213e5c31af7Sopenharmony_ci			precision mediump float;
3214e5c31af7Sopenharmony_ci
3215e5c31af7Sopenharmony_ci			${DECLARATIONS}
3216e5c31af7Sopenharmony_ci
3217e5c31af7Sopenharmony_ci			void main()
3218e5c31af7Sopenharmony_ci			{
3219e5c31af7Sopenharmony_ci				${SETUP}
3220e5c31af7Sopenharmony_ci				out0 = in0.wxww - in1.xwww;
3221e5c31af7Sopenharmony_ci				${OUTPUT}
3222e5c31af7Sopenharmony_ci			}
3223e5c31af7Sopenharmony_ci		""
3224e5c31af7Sopenharmony_ci	end
3225e5c31af7Sopenharmony_ci
3226e5c31af7Sopenharmony_ci	case mediump_ivec4_xyxx_yxxx
3227e5c31af7Sopenharmony_ci		version 300 es
3228e5c31af7Sopenharmony_ci		values
3229e5c31af7Sopenharmony_ci		{
3230e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
3231e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
3232e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(-2, 2, 0, 0) | ivec4(-1, 1, 0, 0) | ivec4(1, -1, 0, 0) ];
3233e5c31af7Sopenharmony_ci		}
3234e5c31af7Sopenharmony_ci
3235e5c31af7Sopenharmony_ci		both ""
3236e5c31af7Sopenharmony_ci			#version 300 es
3237e5c31af7Sopenharmony_ci			precision mediump float;
3238e5c31af7Sopenharmony_ci
3239e5c31af7Sopenharmony_ci			${DECLARATIONS}
3240e5c31af7Sopenharmony_ci
3241e5c31af7Sopenharmony_ci			void main()
3242e5c31af7Sopenharmony_ci			{
3243e5c31af7Sopenharmony_ci				${SETUP}
3244e5c31af7Sopenharmony_ci				out0 = in0.xyxx - in1.yxxx;
3245e5c31af7Sopenharmony_ci				${OUTPUT}
3246e5c31af7Sopenharmony_ci			}
3247e5c31af7Sopenharmony_ci		""
3248e5c31af7Sopenharmony_ci	end
3249e5c31af7Sopenharmony_ci
3250e5c31af7Sopenharmony_ci	case mediump_ivec4_zzzz_zzzz
3251e5c31af7Sopenharmony_ci		version 300 es
3252e5c31af7Sopenharmony_ci		values
3253e5c31af7Sopenharmony_ci		{
3254e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
3255e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
3256e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(0, 0, 0, 0) | ivec4(0, 0, 0, 0) ];
3257e5c31af7Sopenharmony_ci		}
3258e5c31af7Sopenharmony_ci
3259e5c31af7Sopenharmony_ci		both ""
3260e5c31af7Sopenharmony_ci			#version 300 es
3261e5c31af7Sopenharmony_ci			precision mediump float;
3262e5c31af7Sopenharmony_ci
3263e5c31af7Sopenharmony_ci			${DECLARATIONS}
3264e5c31af7Sopenharmony_ci
3265e5c31af7Sopenharmony_ci			void main()
3266e5c31af7Sopenharmony_ci			{
3267e5c31af7Sopenharmony_ci				${SETUP}
3268e5c31af7Sopenharmony_ci				out0 = in0.zzzz - in1.zzzz;
3269e5c31af7Sopenharmony_ci				${OUTPUT}
3270e5c31af7Sopenharmony_ci			}
3271e5c31af7Sopenharmony_ci		""
3272e5c31af7Sopenharmony_ci	end
3273e5c31af7Sopenharmony_ci
3274e5c31af7Sopenharmony_ci
3275e5c31af7Sopenharmony_ciend # vector_subtract
3276e5c31af7Sopenharmony_cigroup vector_multiply "Vector swizzle math operations"
3277e5c31af7Sopenharmony_ci
3278e5c31af7Sopenharmony_ci	case mediump_vec2_x_x
3279e5c31af7Sopenharmony_ci		version 300 es
3280e5c31af7Sopenharmony_ci		values
3281e5c31af7Sopenharmony_ci		{
3282e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
3283e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
3284e5c31af7Sopenharmony_ci			output float out0 = [ 0.01 | 1.0 | 0.25 | 1024.0 | 0.5625 ];
3285e5c31af7Sopenharmony_ci		}
3286e5c31af7Sopenharmony_ci
3287e5c31af7Sopenharmony_ci		both ""
3288e5c31af7Sopenharmony_ci			#version 300 es
3289e5c31af7Sopenharmony_ci			precision mediump float;
3290e5c31af7Sopenharmony_ci
3291e5c31af7Sopenharmony_ci			${DECLARATIONS}
3292e5c31af7Sopenharmony_ci
3293e5c31af7Sopenharmony_ci			void main()
3294e5c31af7Sopenharmony_ci			{
3295e5c31af7Sopenharmony_ci				${SETUP}
3296e5c31af7Sopenharmony_ci				out0 = in0.x * in1.x;
3297e5c31af7Sopenharmony_ci				${OUTPUT}
3298e5c31af7Sopenharmony_ci			}
3299e5c31af7Sopenharmony_ci		""
3300e5c31af7Sopenharmony_ci	end
3301e5c31af7Sopenharmony_ci
3302e5c31af7Sopenharmony_ci	case mediump_vec2_xx_xx
3303e5c31af7Sopenharmony_ci		version 300 es
3304e5c31af7Sopenharmony_ci		values
3305e5c31af7Sopenharmony_ci		{
3306e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
3307e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
3308e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(0.01, 0.01) | vec2(1.0, 1.0) | vec2(0.25, 0.25) | vec2(1024.0, 1024.0) | vec2(0.5625, 0.5625) ];
3309e5c31af7Sopenharmony_ci		}
3310e5c31af7Sopenharmony_ci
3311e5c31af7Sopenharmony_ci		both ""
3312e5c31af7Sopenharmony_ci			#version 300 es
3313e5c31af7Sopenharmony_ci			precision mediump float;
3314e5c31af7Sopenharmony_ci
3315e5c31af7Sopenharmony_ci			${DECLARATIONS}
3316e5c31af7Sopenharmony_ci
3317e5c31af7Sopenharmony_ci			void main()
3318e5c31af7Sopenharmony_ci			{
3319e5c31af7Sopenharmony_ci				${SETUP}
3320e5c31af7Sopenharmony_ci				out0 = in0.xx * in1.xx;
3321e5c31af7Sopenharmony_ci				${OUTPUT}
3322e5c31af7Sopenharmony_ci			}
3323e5c31af7Sopenharmony_ci		""
3324e5c31af7Sopenharmony_ci	end
3325e5c31af7Sopenharmony_ci
3326e5c31af7Sopenharmony_ci	case mediump_vec2_xy_yx
3327e5c31af7Sopenharmony_ci		version 300 es
3328e5c31af7Sopenharmony_ci		values
3329e5c31af7Sopenharmony_ci		{
3330e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
3331e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
3332e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(0.05, 0.05) | vec2(1.25, 1.25) | vec2(1.125, 1.125) | vec2(-2048.0, -2048.0) | vec2(0.0241935483871, 0.0241935483871) ];
3333e5c31af7Sopenharmony_ci		}
3334e5c31af7Sopenharmony_ci
3335e5c31af7Sopenharmony_ci		both ""
3336e5c31af7Sopenharmony_ci			#version 300 es
3337e5c31af7Sopenharmony_ci			precision mediump float;
3338e5c31af7Sopenharmony_ci
3339e5c31af7Sopenharmony_ci			${DECLARATIONS}
3340e5c31af7Sopenharmony_ci
3341e5c31af7Sopenharmony_ci			void main()
3342e5c31af7Sopenharmony_ci			{
3343e5c31af7Sopenharmony_ci				${SETUP}
3344e5c31af7Sopenharmony_ci				out0 = in0.xy * in1.yx;
3345e5c31af7Sopenharmony_ci				${OUTPUT}
3346e5c31af7Sopenharmony_ci			}
3347e5c31af7Sopenharmony_ci		""
3348e5c31af7Sopenharmony_ci	end
3349e5c31af7Sopenharmony_ci
3350e5c31af7Sopenharmony_ci	case mediump_vec2_yx_xy
3351e5c31af7Sopenharmony_ci		version 300 es
3352e5c31af7Sopenharmony_ci		values
3353e5c31af7Sopenharmony_ci		{
3354e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
3355e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
3356e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(0.05, 0.05) | vec2(1.25, 1.25) | vec2(1.125, 1.125) | vec2(-2048.0, -2048.0) | vec2(0.0241935483871, 0.0241935483871) ];
3357e5c31af7Sopenharmony_ci		}
3358e5c31af7Sopenharmony_ci
3359e5c31af7Sopenharmony_ci		both ""
3360e5c31af7Sopenharmony_ci			#version 300 es
3361e5c31af7Sopenharmony_ci			precision mediump float;
3362e5c31af7Sopenharmony_ci
3363e5c31af7Sopenharmony_ci			${DECLARATIONS}
3364e5c31af7Sopenharmony_ci
3365e5c31af7Sopenharmony_ci			void main()
3366e5c31af7Sopenharmony_ci			{
3367e5c31af7Sopenharmony_ci				${SETUP}
3368e5c31af7Sopenharmony_ci				out0 = in0.yx * in1.xy;
3369e5c31af7Sopenharmony_ci				${OUTPUT}
3370e5c31af7Sopenharmony_ci			}
3371e5c31af7Sopenharmony_ci		""
3372e5c31af7Sopenharmony_ci	end
3373e5c31af7Sopenharmony_ci
3374e5c31af7Sopenharmony_ci	case mediump_vec2_yxy_xyy
3375e5c31af7Sopenharmony_ci		version 300 es
3376e5c31af7Sopenharmony_ci		values
3377e5c31af7Sopenharmony_ci		{
3378e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
3379e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
3380e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.05, 0.05, 0.25) | vec3(1.25, 1.25, 1.5625) | vec3(1.125, 1.125, 5.0625) | vec3(-2048.0, -2048.0, 4096.0) | vec3(0.0241935483871, 0.0241935483871, 0.00104058272633) ];
3381e5c31af7Sopenharmony_ci		}
3382e5c31af7Sopenharmony_ci
3383e5c31af7Sopenharmony_ci		both ""
3384e5c31af7Sopenharmony_ci			#version 300 es
3385e5c31af7Sopenharmony_ci			precision mediump float;
3386e5c31af7Sopenharmony_ci
3387e5c31af7Sopenharmony_ci			${DECLARATIONS}
3388e5c31af7Sopenharmony_ci
3389e5c31af7Sopenharmony_ci			void main()
3390e5c31af7Sopenharmony_ci			{
3391e5c31af7Sopenharmony_ci				${SETUP}
3392e5c31af7Sopenharmony_ci				out0 = in0.yxy * in1.xyy;
3393e5c31af7Sopenharmony_ci				${OUTPUT}
3394e5c31af7Sopenharmony_ci			}
3395e5c31af7Sopenharmony_ci		""
3396e5c31af7Sopenharmony_ci	end
3397e5c31af7Sopenharmony_ci
3398e5c31af7Sopenharmony_ci	case mediump_vec2_xyxx_yxxx
3399e5c31af7Sopenharmony_ci		version 300 es
3400e5c31af7Sopenharmony_ci		values
3401e5c31af7Sopenharmony_ci		{
3402e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
3403e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
3404e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.05, 0.05, 0.01, 0.01) | vec4(1.25, 1.25, 1.0, 1.0) | vec4(1.125, 1.125, 0.25, 0.25) | vec4(-2048.0, -2048.0, 1024.0, 1024.0) | vec4(0.0241935483871, 0.0241935483871, 0.5625, 0.5625) ];
3405e5c31af7Sopenharmony_ci		}
3406e5c31af7Sopenharmony_ci
3407e5c31af7Sopenharmony_ci		both ""
3408e5c31af7Sopenharmony_ci			#version 300 es
3409e5c31af7Sopenharmony_ci			precision mediump float;
3410e5c31af7Sopenharmony_ci
3411e5c31af7Sopenharmony_ci			${DECLARATIONS}
3412e5c31af7Sopenharmony_ci
3413e5c31af7Sopenharmony_ci			void main()
3414e5c31af7Sopenharmony_ci			{
3415e5c31af7Sopenharmony_ci				${SETUP}
3416e5c31af7Sopenharmony_ci				out0 = in0.xyxx * in1.yxxx;
3417e5c31af7Sopenharmony_ci				${OUTPUT}
3418e5c31af7Sopenharmony_ci			}
3419e5c31af7Sopenharmony_ci		""
3420e5c31af7Sopenharmony_ci	end
3421e5c31af7Sopenharmony_ci
3422e5c31af7Sopenharmony_ci	case mediump_vec2_yxyx_xyxy
3423e5c31af7Sopenharmony_ci		version 300 es
3424e5c31af7Sopenharmony_ci		values
3425e5c31af7Sopenharmony_ci		{
3426e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
3427e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
3428e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.05, 0.05, 0.05, 0.05) | vec4(1.25, 1.25, 1.25, 1.25) | vec4(1.125, 1.125, 1.125, 1.125) | vec4(-2048.0, -2048.0, -2048.0, -2048.0) | vec4(0.0241935483871, 0.0241935483871, 0.0241935483871, 0.0241935483871) ];
3429e5c31af7Sopenharmony_ci		}
3430e5c31af7Sopenharmony_ci
3431e5c31af7Sopenharmony_ci		both ""
3432e5c31af7Sopenharmony_ci			#version 300 es
3433e5c31af7Sopenharmony_ci			precision mediump float;
3434e5c31af7Sopenharmony_ci
3435e5c31af7Sopenharmony_ci			${DECLARATIONS}
3436e5c31af7Sopenharmony_ci
3437e5c31af7Sopenharmony_ci			void main()
3438e5c31af7Sopenharmony_ci			{
3439e5c31af7Sopenharmony_ci				${SETUP}
3440e5c31af7Sopenharmony_ci				out0 = in0.yxyx * in1.xyxy;
3441e5c31af7Sopenharmony_ci				${OUTPUT}
3442e5c31af7Sopenharmony_ci			}
3443e5c31af7Sopenharmony_ci		""
3444e5c31af7Sopenharmony_ci	end
3445e5c31af7Sopenharmony_ci
3446e5c31af7Sopenharmony_ci	case mediump_vec3_x_x
3447e5c31af7Sopenharmony_ci		version 300 es
3448e5c31af7Sopenharmony_ci		values
3449e5c31af7Sopenharmony_ci		{
3450e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3451e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3452e5c31af7Sopenharmony_ci			output float out0 = [ 0.01 | 1.0 | 0.25 | 1024.0 | 0.5625 ];
3453e5c31af7Sopenharmony_ci		}
3454e5c31af7Sopenharmony_ci
3455e5c31af7Sopenharmony_ci		both ""
3456e5c31af7Sopenharmony_ci			#version 300 es
3457e5c31af7Sopenharmony_ci			precision mediump float;
3458e5c31af7Sopenharmony_ci
3459e5c31af7Sopenharmony_ci			${DECLARATIONS}
3460e5c31af7Sopenharmony_ci
3461e5c31af7Sopenharmony_ci			void main()
3462e5c31af7Sopenharmony_ci			{
3463e5c31af7Sopenharmony_ci				${SETUP}
3464e5c31af7Sopenharmony_ci				out0 = in0.x * in1.x;
3465e5c31af7Sopenharmony_ci				${OUTPUT}
3466e5c31af7Sopenharmony_ci			}
3467e5c31af7Sopenharmony_ci		""
3468e5c31af7Sopenharmony_ci	end
3469e5c31af7Sopenharmony_ci
3470e5c31af7Sopenharmony_ci	case mediump_vec3_z_z
3471e5c31af7Sopenharmony_ci		version 300 es
3472e5c31af7Sopenharmony_ci		values
3473e5c31af7Sopenharmony_ci		{
3474e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3475e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3476e5c31af7Sopenharmony_ci			output float out0 = [ 0.5625 | 1.265625 | 23.765625 | 2601.0 | 0.00277008310249 ];
3477e5c31af7Sopenharmony_ci		}
3478e5c31af7Sopenharmony_ci
3479e5c31af7Sopenharmony_ci		both ""
3480e5c31af7Sopenharmony_ci			#version 300 es
3481e5c31af7Sopenharmony_ci			precision mediump float;
3482e5c31af7Sopenharmony_ci
3483e5c31af7Sopenharmony_ci			${DECLARATIONS}
3484e5c31af7Sopenharmony_ci
3485e5c31af7Sopenharmony_ci			void main()
3486e5c31af7Sopenharmony_ci			{
3487e5c31af7Sopenharmony_ci				${SETUP}
3488e5c31af7Sopenharmony_ci				out0 = in0.z * in1.z;
3489e5c31af7Sopenharmony_ci				${OUTPUT}
3490e5c31af7Sopenharmony_ci			}
3491e5c31af7Sopenharmony_ci		""
3492e5c31af7Sopenharmony_ci	end
3493e5c31af7Sopenharmony_ci
3494e5c31af7Sopenharmony_ci	case mediump_vec3_xz_zx
3495e5c31af7Sopenharmony_ci		version 300 es
3496e5c31af7Sopenharmony_ci		values
3497e5c31af7Sopenharmony_ci		{
3498e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3499e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3500e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(0.075, 0.075) | vec2(1.125, 1.125) | vec2(2.4375, 2.4375) | vec2(1632.0, 1632.0) | vec2(-0.0394736842105, -0.0394736842105) ];
3501e5c31af7Sopenharmony_ci		}
3502e5c31af7Sopenharmony_ci
3503e5c31af7Sopenharmony_ci		both ""
3504e5c31af7Sopenharmony_ci			#version 300 es
3505e5c31af7Sopenharmony_ci			precision mediump float;
3506e5c31af7Sopenharmony_ci
3507e5c31af7Sopenharmony_ci			${DECLARATIONS}
3508e5c31af7Sopenharmony_ci
3509e5c31af7Sopenharmony_ci			void main()
3510e5c31af7Sopenharmony_ci			{
3511e5c31af7Sopenharmony_ci				${SETUP}
3512e5c31af7Sopenharmony_ci				out0 = in0.xz * in1.zx;
3513e5c31af7Sopenharmony_ci				${OUTPUT}
3514e5c31af7Sopenharmony_ci			}
3515e5c31af7Sopenharmony_ci		""
3516e5c31af7Sopenharmony_ci	end
3517e5c31af7Sopenharmony_ci
3518e5c31af7Sopenharmony_ci	case mediump_vec3_zz_zz
3519e5c31af7Sopenharmony_ci		version 300 es
3520e5c31af7Sopenharmony_ci		values
3521e5c31af7Sopenharmony_ci		{
3522e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3523e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3524e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(0.5625, 0.5625) | vec2(1.265625, 1.265625) | vec2(23.765625, 23.765625) | vec2(2601.0, 2601.0) | vec2(0.00277008310249, 0.00277008310249) ];
3525e5c31af7Sopenharmony_ci		}
3526e5c31af7Sopenharmony_ci
3527e5c31af7Sopenharmony_ci		both ""
3528e5c31af7Sopenharmony_ci			#version 300 es
3529e5c31af7Sopenharmony_ci			precision mediump float;
3530e5c31af7Sopenharmony_ci
3531e5c31af7Sopenharmony_ci			${DECLARATIONS}
3532e5c31af7Sopenharmony_ci
3533e5c31af7Sopenharmony_ci			void main()
3534e5c31af7Sopenharmony_ci			{
3535e5c31af7Sopenharmony_ci				${SETUP}
3536e5c31af7Sopenharmony_ci				out0 = in0.zz * in1.zz;
3537e5c31af7Sopenharmony_ci				${OUTPUT}
3538e5c31af7Sopenharmony_ci			}
3539e5c31af7Sopenharmony_ci		""
3540e5c31af7Sopenharmony_ci	end
3541e5c31af7Sopenharmony_ci
3542e5c31af7Sopenharmony_ci	case mediump_vec3_xyz_yzx
3543e5c31af7Sopenharmony_ci		version 300 es
3544e5c31af7Sopenharmony_ci		values
3545e5c31af7Sopenharmony_ci		{
3546e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3547e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3548e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.05, 0.375, 0.075) | vec3(1.25, 1.40625, 1.125) | vec3(1.125, 10.96875, 2.4375) | vec3(-2048.0, -3264.0, 1632.0) | vec3(0.0241935483871, -0.00169779286927, -0.0394736842105) ];
3549e5c31af7Sopenharmony_ci		}
3550e5c31af7Sopenharmony_ci
3551e5c31af7Sopenharmony_ci		both ""
3552e5c31af7Sopenharmony_ci			#version 300 es
3553e5c31af7Sopenharmony_ci			precision mediump float;
3554e5c31af7Sopenharmony_ci
3555e5c31af7Sopenharmony_ci			${DECLARATIONS}
3556e5c31af7Sopenharmony_ci
3557e5c31af7Sopenharmony_ci			void main()
3558e5c31af7Sopenharmony_ci			{
3559e5c31af7Sopenharmony_ci				${SETUP}
3560e5c31af7Sopenharmony_ci				out0 = in0.xyz * in1.yzx;
3561e5c31af7Sopenharmony_ci				${OUTPUT}
3562e5c31af7Sopenharmony_ci			}
3563e5c31af7Sopenharmony_ci		""
3564e5c31af7Sopenharmony_ci	end
3565e5c31af7Sopenharmony_ci
3566e5c31af7Sopenharmony_ci	case mediump_vec3_zyx_yxz
3567e5c31af7Sopenharmony_ci		version 300 es
3568e5c31af7Sopenharmony_ci		values
3569e5c31af7Sopenharmony_ci		{
3570e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3571e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3572e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.375, 0.05, 0.075) | vec3(1.40625, 1.25, 1.125) | vec3(10.96875, 1.125, 2.4375) | vec3(-3264.0, -2048.0, 1632.0) | vec3(-0.00169779286927, 0.0241935483871, -0.0394736842105) ];
3573e5c31af7Sopenharmony_ci		}
3574e5c31af7Sopenharmony_ci
3575e5c31af7Sopenharmony_ci		both ""
3576e5c31af7Sopenharmony_ci			#version 300 es
3577e5c31af7Sopenharmony_ci			precision mediump float;
3578e5c31af7Sopenharmony_ci
3579e5c31af7Sopenharmony_ci			${DECLARATIONS}
3580e5c31af7Sopenharmony_ci
3581e5c31af7Sopenharmony_ci			void main()
3582e5c31af7Sopenharmony_ci			{
3583e5c31af7Sopenharmony_ci				${SETUP}
3584e5c31af7Sopenharmony_ci				out0 = in0.zyx * in1.yxz;
3585e5c31af7Sopenharmony_ci				${OUTPUT}
3586e5c31af7Sopenharmony_ci			}
3587e5c31af7Sopenharmony_ci		""
3588e5c31af7Sopenharmony_ci	end
3589e5c31af7Sopenharmony_ci
3590e5c31af7Sopenharmony_ci	case mediump_vec3_xxx_xxx
3591e5c31af7Sopenharmony_ci		version 300 es
3592e5c31af7Sopenharmony_ci		values
3593e5c31af7Sopenharmony_ci		{
3594e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3595e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3596e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.01, 0.01, 0.01) | vec3(1.0, 1.0, 1.0) | vec3(0.25, 0.25, 0.25) | vec3(1024.0, 1024.0, 1024.0) | vec3(0.5625, 0.5625, 0.5625) ];
3597e5c31af7Sopenharmony_ci		}
3598e5c31af7Sopenharmony_ci
3599e5c31af7Sopenharmony_ci		both ""
3600e5c31af7Sopenharmony_ci			#version 300 es
3601e5c31af7Sopenharmony_ci			precision mediump float;
3602e5c31af7Sopenharmony_ci
3603e5c31af7Sopenharmony_ci			${DECLARATIONS}
3604e5c31af7Sopenharmony_ci
3605e5c31af7Sopenharmony_ci			void main()
3606e5c31af7Sopenharmony_ci			{
3607e5c31af7Sopenharmony_ci				${SETUP}
3608e5c31af7Sopenharmony_ci				out0 = in0.xxx * in1.xxx;
3609e5c31af7Sopenharmony_ci				${OUTPUT}
3610e5c31af7Sopenharmony_ci			}
3611e5c31af7Sopenharmony_ci		""
3612e5c31af7Sopenharmony_ci	end
3613e5c31af7Sopenharmony_ci
3614e5c31af7Sopenharmony_ci	case mediump_vec3_zzz_zzz
3615e5c31af7Sopenharmony_ci		version 300 es
3616e5c31af7Sopenharmony_ci		values
3617e5c31af7Sopenharmony_ci		{
3618e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3619e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3620e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.5625, 0.5625, 0.5625) | vec3(1.265625, 1.265625, 1.265625) | vec3(23.765625, 23.765625, 23.765625) | vec3(2601.0, 2601.0, 2601.0) | vec3(0.00277008310249, 0.00277008310249, 0.00277008310249) ];
3621e5c31af7Sopenharmony_ci		}
3622e5c31af7Sopenharmony_ci
3623e5c31af7Sopenharmony_ci		both ""
3624e5c31af7Sopenharmony_ci			#version 300 es
3625e5c31af7Sopenharmony_ci			precision mediump float;
3626e5c31af7Sopenharmony_ci
3627e5c31af7Sopenharmony_ci			${DECLARATIONS}
3628e5c31af7Sopenharmony_ci
3629e5c31af7Sopenharmony_ci			void main()
3630e5c31af7Sopenharmony_ci			{
3631e5c31af7Sopenharmony_ci				${SETUP}
3632e5c31af7Sopenharmony_ci				out0 = in0.zzz * in1.zzz;
3633e5c31af7Sopenharmony_ci				${OUTPUT}
3634e5c31af7Sopenharmony_ci			}
3635e5c31af7Sopenharmony_ci		""
3636e5c31af7Sopenharmony_ci	end
3637e5c31af7Sopenharmony_ci
3638e5c31af7Sopenharmony_ci	case mediump_vec3_zzy_zyz
3639e5c31af7Sopenharmony_ci		version 300 es
3640e5c31af7Sopenharmony_ci		values
3641e5c31af7Sopenharmony_ci		{
3642e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3643e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3644e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.5625, 0.375, 0.375) | vec3(1.265625, 1.40625, 1.40625) | vec3(23.765625, 10.96875, 10.96875) | vec3(2601.0, -3264.0, -3264.0) | vec3(0.00277008310249, -0.00169779286927, -0.00169779286927) ];
3645e5c31af7Sopenharmony_ci		}
3646e5c31af7Sopenharmony_ci
3647e5c31af7Sopenharmony_ci		both ""
3648e5c31af7Sopenharmony_ci			#version 300 es
3649e5c31af7Sopenharmony_ci			precision mediump float;
3650e5c31af7Sopenharmony_ci
3651e5c31af7Sopenharmony_ci			${DECLARATIONS}
3652e5c31af7Sopenharmony_ci
3653e5c31af7Sopenharmony_ci			void main()
3654e5c31af7Sopenharmony_ci			{
3655e5c31af7Sopenharmony_ci				${SETUP}
3656e5c31af7Sopenharmony_ci				out0 = in0.zzy * in1.zyz;
3657e5c31af7Sopenharmony_ci				${OUTPUT}
3658e5c31af7Sopenharmony_ci			}
3659e5c31af7Sopenharmony_ci		""
3660e5c31af7Sopenharmony_ci	end
3661e5c31af7Sopenharmony_ci
3662e5c31af7Sopenharmony_ci	case mediump_vec3_yxy_xyy
3663e5c31af7Sopenharmony_ci		version 300 es
3664e5c31af7Sopenharmony_ci		values
3665e5c31af7Sopenharmony_ci		{
3666e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3667e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3668e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.05, 0.05, 0.25) | vec3(1.25, 1.25, 1.5625) | vec3(1.125, 1.125, 5.0625) | vec3(-2048.0, -2048.0, 4096.0) | vec3(0.0241935483871, 0.0241935483871, 0.00104058272633) ];
3669e5c31af7Sopenharmony_ci		}
3670e5c31af7Sopenharmony_ci
3671e5c31af7Sopenharmony_ci		both ""
3672e5c31af7Sopenharmony_ci			#version 300 es
3673e5c31af7Sopenharmony_ci			precision mediump float;
3674e5c31af7Sopenharmony_ci
3675e5c31af7Sopenharmony_ci			${DECLARATIONS}
3676e5c31af7Sopenharmony_ci
3677e5c31af7Sopenharmony_ci			void main()
3678e5c31af7Sopenharmony_ci			{
3679e5c31af7Sopenharmony_ci				${SETUP}
3680e5c31af7Sopenharmony_ci				out0 = in0.yxy * in1.xyy;
3681e5c31af7Sopenharmony_ci				${OUTPUT}
3682e5c31af7Sopenharmony_ci			}
3683e5c31af7Sopenharmony_ci		""
3684e5c31af7Sopenharmony_ci	end
3685e5c31af7Sopenharmony_ci
3686e5c31af7Sopenharmony_ci	case mediump_vec3_xzx_zxx
3687e5c31af7Sopenharmony_ci		version 300 es
3688e5c31af7Sopenharmony_ci		values
3689e5c31af7Sopenharmony_ci		{
3690e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3691e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3692e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.075, 0.075, 0.01) | vec3(1.125, 1.125, 1.0) | vec3(2.4375, 2.4375, 0.25) | vec3(1632.0, 1632.0, 1024.0) | vec3(-0.0394736842105, -0.0394736842105, 0.5625) ];
3693e5c31af7Sopenharmony_ci		}
3694e5c31af7Sopenharmony_ci
3695e5c31af7Sopenharmony_ci		both ""
3696e5c31af7Sopenharmony_ci			#version 300 es
3697e5c31af7Sopenharmony_ci			precision mediump float;
3698e5c31af7Sopenharmony_ci
3699e5c31af7Sopenharmony_ci			${DECLARATIONS}
3700e5c31af7Sopenharmony_ci
3701e5c31af7Sopenharmony_ci			void main()
3702e5c31af7Sopenharmony_ci			{
3703e5c31af7Sopenharmony_ci				${SETUP}
3704e5c31af7Sopenharmony_ci				out0 = in0.xzx * in1.zxx;
3705e5c31af7Sopenharmony_ci				${OUTPUT}
3706e5c31af7Sopenharmony_ci			}
3707e5c31af7Sopenharmony_ci		""
3708e5c31af7Sopenharmony_ci	end
3709e5c31af7Sopenharmony_ci
3710e5c31af7Sopenharmony_ci	case mediump_vec3_xyyx_yyxx
3711e5c31af7Sopenharmony_ci		version 300 es
3712e5c31af7Sopenharmony_ci		values
3713e5c31af7Sopenharmony_ci		{
3714e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3715e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3716e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.05, 0.25, 0.05, 0.01) | vec4(1.25, 1.5625, 1.25, 1.0) | vec4(1.125, 5.0625, 1.125, 0.25) | vec4(-2048.0, 4096.0, -2048.0, 1024.0) | vec4(0.0241935483871, 0.00104058272633, 0.0241935483871, 0.5625) ];
3717e5c31af7Sopenharmony_ci		}
3718e5c31af7Sopenharmony_ci
3719e5c31af7Sopenharmony_ci		both ""
3720e5c31af7Sopenharmony_ci			#version 300 es
3721e5c31af7Sopenharmony_ci			precision mediump float;
3722e5c31af7Sopenharmony_ci
3723e5c31af7Sopenharmony_ci			${DECLARATIONS}
3724e5c31af7Sopenharmony_ci
3725e5c31af7Sopenharmony_ci			void main()
3726e5c31af7Sopenharmony_ci			{
3727e5c31af7Sopenharmony_ci				${SETUP}
3728e5c31af7Sopenharmony_ci				out0 = in0.xyyx * in1.yyxx;
3729e5c31af7Sopenharmony_ci				${OUTPUT}
3730e5c31af7Sopenharmony_ci			}
3731e5c31af7Sopenharmony_ci		""
3732e5c31af7Sopenharmony_ci	end
3733e5c31af7Sopenharmony_ci
3734e5c31af7Sopenharmony_ci	case mediump_vec3_zxyz_xyzz
3735e5c31af7Sopenharmony_ci		version 300 es
3736e5c31af7Sopenharmony_ci		values
3737e5c31af7Sopenharmony_ci		{
3738e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3739e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
3740e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.075, 0.05, 0.375, 0.5625) | vec4(1.125, 1.25, 1.40625, 1.265625) | vec4(2.4375, 1.125, 10.96875, 23.765625) | vec4(1632.0, -2048.0, -3264.0, 2601.0) | vec4(-0.0394736842105, 0.0241935483871, -0.00169779286927, 0.00277008310249) ];
3741e5c31af7Sopenharmony_ci		}
3742e5c31af7Sopenharmony_ci
3743e5c31af7Sopenharmony_ci		both ""
3744e5c31af7Sopenharmony_ci			#version 300 es
3745e5c31af7Sopenharmony_ci			precision mediump float;
3746e5c31af7Sopenharmony_ci
3747e5c31af7Sopenharmony_ci			${DECLARATIONS}
3748e5c31af7Sopenharmony_ci
3749e5c31af7Sopenharmony_ci			void main()
3750e5c31af7Sopenharmony_ci			{
3751e5c31af7Sopenharmony_ci				${SETUP}
3752e5c31af7Sopenharmony_ci				out0 = in0.zxyz * in1.xyzz;
3753e5c31af7Sopenharmony_ci				${OUTPUT}
3754e5c31af7Sopenharmony_ci			}
3755e5c31af7Sopenharmony_ci		""
3756e5c31af7Sopenharmony_ci	end
3757e5c31af7Sopenharmony_ci
3758e5c31af7Sopenharmony_ci	case mediump_vec4_x_x
3759e5c31af7Sopenharmony_ci		version 300 es
3760e5c31af7Sopenharmony_ci		values
3761e5c31af7Sopenharmony_ci		{
3762e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
3763e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
3764e5c31af7Sopenharmony_ci			output float out0 = [ 0.01 | 1.0 | 0.25 | 1024.0 | 0.5625 ];
3765e5c31af7Sopenharmony_ci		}
3766e5c31af7Sopenharmony_ci
3767e5c31af7Sopenharmony_ci		both ""
3768e5c31af7Sopenharmony_ci			#version 300 es
3769e5c31af7Sopenharmony_ci			precision mediump float;
3770e5c31af7Sopenharmony_ci
3771e5c31af7Sopenharmony_ci			${DECLARATIONS}
3772e5c31af7Sopenharmony_ci
3773e5c31af7Sopenharmony_ci			void main()
3774e5c31af7Sopenharmony_ci			{
3775e5c31af7Sopenharmony_ci				${SETUP}
3776e5c31af7Sopenharmony_ci				out0 = in0.x * in1.x;
3777e5c31af7Sopenharmony_ci				${OUTPUT}
3778e5c31af7Sopenharmony_ci			}
3779e5c31af7Sopenharmony_ci		""
3780e5c31af7Sopenharmony_ci	end
3781e5c31af7Sopenharmony_ci
3782e5c31af7Sopenharmony_ci	case mediump_vec4_w_w
3783e5c31af7Sopenharmony_ci		version 300 es
3784e5c31af7Sopenharmony_ci		values
3785e5c31af7Sopenharmony_ci		{
3786e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
3787e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
3788e5c31af7Sopenharmony_ci			output float out0 = [ 0.680625 | 3.0625 | 81.0 | 576.0 | 0.0625 ];
3789e5c31af7Sopenharmony_ci		}
3790e5c31af7Sopenharmony_ci
3791e5c31af7Sopenharmony_ci		both ""
3792e5c31af7Sopenharmony_ci			#version 300 es
3793e5c31af7Sopenharmony_ci			precision mediump float;
3794e5c31af7Sopenharmony_ci
3795e5c31af7Sopenharmony_ci			${DECLARATIONS}
3796e5c31af7Sopenharmony_ci
3797e5c31af7Sopenharmony_ci			void main()
3798e5c31af7Sopenharmony_ci			{
3799e5c31af7Sopenharmony_ci				${SETUP}
3800e5c31af7Sopenharmony_ci				out0 = in0.w * in1.w;
3801e5c31af7Sopenharmony_ci				${OUTPUT}
3802e5c31af7Sopenharmony_ci			}
3803e5c31af7Sopenharmony_ci		""
3804e5c31af7Sopenharmony_ci	end
3805e5c31af7Sopenharmony_ci
3806e5c31af7Sopenharmony_ci	case mediump_vec4_wx_xw
3807e5c31af7Sopenharmony_ci		version 300 es
3808e5c31af7Sopenharmony_ci		values
3809e5c31af7Sopenharmony_ci		{
3810e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
3811e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
3812e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(0.0825, 0.0825) | vec2(1.75, 1.75) | vec2(-4.5, -4.5) | vec2(-768.0, -768.0) | vec2(-0.1875, -0.1875) ];
3813e5c31af7Sopenharmony_ci		}
3814e5c31af7Sopenharmony_ci
3815e5c31af7Sopenharmony_ci		both ""
3816e5c31af7Sopenharmony_ci			#version 300 es
3817e5c31af7Sopenharmony_ci			precision mediump float;
3818e5c31af7Sopenharmony_ci
3819e5c31af7Sopenharmony_ci			${DECLARATIONS}
3820e5c31af7Sopenharmony_ci
3821e5c31af7Sopenharmony_ci			void main()
3822e5c31af7Sopenharmony_ci			{
3823e5c31af7Sopenharmony_ci				${SETUP}
3824e5c31af7Sopenharmony_ci				out0 = in0.wx * in1.xw;
3825e5c31af7Sopenharmony_ci				${OUTPUT}
3826e5c31af7Sopenharmony_ci			}
3827e5c31af7Sopenharmony_ci		""
3828e5c31af7Sopenharmony_ci	end
3829e5c31af7Sopenharmony_ci
3830e5c31af7Sopenharmony_ci	case mediump_vec4_wz_zw
3831e5c31af7Sopenharmony_ci		version 300 es
3832e5c31af7Sopenharmony_ci		values
3833e5c31af7Sopenharmony_ci		{
3834e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
3835e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
3836e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(0.61875, 0.61875) | vec2(1.96875, 1.96875) | vec2(-43.875, -43.875) | vec2(-1224.0, -1224.0) | vec2(0.0131578947368, 0.0131578947368) ];
3837e5c31af7Sopenharmony_ci		}
3838e5c31af7Sopenharmony_ci
3839e5c31af7Sopenharmony_ci		both ""
3840e5c31af7Sopenharmony_ci			#version 300 es
3841e5c31af7Sopenharmony_ci			precision mediump float;
3842e5c31af7Sopenharmony_ci
3843e5c31af7Sopenharmony_ci			${DECLARATIONS}
3844e5c31af7Sopenharmony_ci
3845e5c31af7Sopenharmony_ci			void main()
3846e5c31af7Sopenharmony_ci			{
3847e5c31af7Sopenharmony_ci				${SETUP}
3848e5c31af7Sopenharmony_ci				out0 = in0.wz * in1.zw;
3849e5c31af7Sopenharmony_ci				${OUTPUT}
3850e5c31af7Sopenharmony_ci			}
3851e5c31af7Sopenharmony_ci		""
3852e5c31af7Sopenharmony_ci	end
3853e5c31af7Sopenharmony_ci
3854e5c31af7Sopenharmony_ci	case mediump_vec4_www_www
3855e5c31af7Sopenharmony_ci		version 300 es
3856e5c31af7Sopenharmony_ci		values
3857e5c31af7Sopenharmony_ci		{
3858e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
3859e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
3860e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.680625, 0.680625, 0.680625) | vec3(3.0625, 3.0625, 3.0625) | vec3(81.0, 81.0, 81.0) | vec3(576.0, 576.0, 576.0) | vec3(0.0625, 0.0625, 0.0625) ];
3861e5c31af7Sopenharmony_ci		}
3862e5c31af7Sopenharmony_ci
3863e5c31af7Sopenharmony_ci		both ""
3864e5c31af7Sopenharmony_ci			#version 300 es
3865e5c31af7Sopenharmony_ci			precision mediump float;
3866e5c31af7Sopenharmony_ci
3867e5c31af7Sopenharmony_ci			${DECLARATIONS}
3868e5c31af7Sopenharmony_ci
3869e5c31af7Sopenharmony_ci			void main()
3870e5c31af7Sopenharmony_ci			{
3871e5c31af7Sopenharmony_ci				${SETUP}
3872e5c31af7Sopenharmony_ci				out0 = in0.www * in1.www;
3873e5c31af7Sopenharmony_ci				${OUTPUT}
3874e5c31af7Sopenharmony_ci			}
3875e5c31af7Sopenharmony_ci		""
3876e5c31af7Sopenharmony_ci	end
3877e5c31af7Sopenharmony_ci
3878e5c31af7Sopenharmony_ci	case mediump_vec4_yyw_ywy
3879e5c31af7Sopenharmony_ci		version 300 es
3880e5c31af7Sopenharmony_ci		values
3881e5c31af7Sopenharmony_ci		{
3882e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
3883e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
3884e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.25, 0.4125, 0.4125) | vec3(1.5625, 2.1875, 2.1875) | vec3(5.0625, -20.25, -20.25) | vec3(4096.0, 1536.0, 1536.0) | vec3(0.00104058272633, -0.00806451612903, -0.00806451612903) ];
3885e5c31af7Sopenharmony_ci		}
3886e5c31af7Sopenharmony_ci
3887e5c31af7Sopenharmony_ci		both ""
3888e5c31af7Sopenharmony_ci			#version 300 es
3889e5c31af7Sopenharmony_ci			precision mediump float;
3890e5c31af7Sopenharmony_ci
3891e5c31af7Sopenharmony_ci			${DECLARATIONS}
3892e5c31af7Sopenharmony_ci
3893e5c31af7Sopenharmony_ci			void main()
3894e5c31af7Sopenharmony_ci			{
3895e5c31af7Sopenharmony_ci				${SETUP}
3896e5c31af7Sopenharmony_ci				out0 = in0.yyw * in1.ywy;
3897e5c31af7Sopenharmony_ci				${OUTPUT}
3898e5c31af7Sopenharmony_ci			}
3899e5c31af7Sopenharmony_ci		""
3900e5c31af7Sopenharmony_ci	end
3901e5c31af7Sopenharmony_ci
3902e5c31af7Sopenharmony_ci	case mediump_vec4_wzy_zyw
3903e5c31af7Sopenharmony_ci		version 300 es
3904e5c31af7Sopenharmony_ci		values
3905e5c31af7Sopenharmony_ci		{
3906e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
3907e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
3908e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.61875, 0.375, 0.4125) | vec3(1.96875, 1.40625, 2.1875) | vec3(-43.875, 10.96875, -20.25) | vec3(-1224.0, -3264.0, 1536.0) | vec3(0.0131578947368, -0.00169779286927, -0.00806451612903) ];
3909e5c31af7Sopenharmony_ci		}
3910e5c31af7Sopenharmony_ci
3911e5c31af7Sopenharmony_ci		both ""
3912e5c31af7Sopenharmony_ci			#version 300 es
3913e5c31af7Sopenharmony_ci			precision mediump float;
3914e5c31af7Sopenharmony_ci
3915e5c31af7Sopenharmony_ci			${DECLARATIONS}
3916e5c31af7Sopenharmony_ci
3917e5c31af7Sopenharmony_ci			void main()
3918e5c31af7Sopenharmony_ci			{
3919e5c31af7Sopenharmony_ci				${SETUP}
3920e5c31af7Sopenharmony_ci				out0 = in0.wzy * in1.zyw;
3921e5c31af7Sopenharmony_ci				${OUTPUT}
3922e5c31af7Sopenharmony_ci			}
3923e5c31af7Sopenharmony_ci		""
3924e5c31af7Sopenharmony_ci	end
3925e5c31af7Sopenharmony_ci
3926e5c31af7Sopenharmony_ci	case mediump_vec4_xyzw_yzwx
3927e5c31af7Sopenharmony_ci		version 300 es
3928e5c31af7Sopenharmony_ci		values
3929e5c31af7Sopenharmony_ci		{
3930e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
3931e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
3932e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.05, 0.375, 0.61875, 0.0825) | vec4(1.25, 1.40625, 1.96875, 1.75) | vec4(1.125, 10.96875, -43.875, -4.5) | vec4(-2048.0, -3264.0, -1224.0, -768.0) | vec4(0.0241935483871, -0.00169779286927, 0.0131578947368, -0.1875) ];
3933e5c31af7Sopenharmony_ci		}
3934e5c31af7Sopenharmony_ci
3935e5c31af7Sopenharmony_ci		both ""
3936e5c31af7Sopenharmony_ci			#version 300 es
3937e5c31af7Sopenharmony_ci			precision mediump float;
3938e5c31af7Sopenharmony_ci
3939e5c31af7Sopenharmony_ci			${DECLARATIONS}
3940e5c31af7Sopenharmony_ci
3941e5c31af7Sopenharmony_ci			void main()
3942e5c31af7Sopenharmony_ci			{
3943e5c31af7Sopenharmony_ci				${SETUP}
3944e5c31af7Sopenharmony_ci				out0 = in0.xyzw * in1.yzwx;
3945e5c31af7Sopenharmony_ci				${OUTPUT}
3946e5c31af7Sopenharmony_ci			}
3947e5c31af7Sopenharmony_ci		""
3948e5c31af7Sopenharmony_ci	end
3949e5c31af7Sopenharmony_ci
3950e5c31af7Sopenharmony_ci	case mediump_vec4_wzyx_zyxw
3951e5c31af7Sopenharmony_ci		version 300 es
3952e5c31af7Sopenharmony_ci		values
3953e5c31af7Sopenharmony_ci		{
3954e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
3955e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
3956e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.61875, 0.375, 0.05, 0.0825) | vec4(1.96875, 1.40625, 1.25, 1.75) | vec4(-43.875, 10.96875, 1.125, -4.5) | vec4(-1224.0, -3264.0, -2048.0, -768.0) | vec4(0.0131578947368, -0.00169779286927, 0.0241935483871, -0.1875) ];
3957e5c31af7Sopenharmony_ci		}
3958e5c31af7Sopenharmony_ci
3959e5c31af7Sopenharmony_ci		both ""
3960e5c31af7Sopenharmony_ci			#version 300 es
3961e5c31af7Sopenharmony_ci			precision mediump float;
3962e5c31af7Sopenharmony_ci
3963e5c31af7Sopenharmony_ci			${DECLARATIONS}
3964e5c31af7Sopenharmony_ci
3965e5c31af7Sopenharmony_ci			void main()
3966e5c31af7Sopenharmony_ci			{
3967e5c31af7Sopenharmony_ci				${SETUP}
3968e5c31af7Sopenharmony_ci				out0 = in0.wzyx * in1.zyxw;
3969e5c31af7Sopenharmony_ci				${OUTPUT}
3970e5c31af7Sopenharmony_ci			}
3971e5c31af7Sopenharmony_ci		""
3972e5c31af7Sopenharmony_ci	end
3973e5c31af7Sopenharmony_ci
3974e5c31af7Sopenharmony_ci	case mediump_vec4_xyxy_yxyx
3975e5c31af7Sopenharmony_ci		version 300 es
3976e5c31af7Sopenharmony_ci		values
3977e5c31af7Sopenharmony_ci		{
3978e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
3979e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
3980e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.05, 0.05, 0.05, 0.05) | vec4(1.25, 1.25, 1.25, 1.25) | vec4(1.125, 1.125, 1.125, 1.125) | vec4(-2048.0, -2048.0, -2048.0, -2048.0) | vec4(0.0241935483871, 0.0241935483871, 0.0241935483871, 0.0241935483871) ];
3981e5c31af7Sopenharmony_ci		}
3982e5c31af7Sopenharmony_ci
3983e5c31af7Sopenharmony_ci		both ""
3984e5c31af7Sopenharmony_ci			#version 300 es
3985e5c31af7Sopenharmony_ci			precision mediump float;
3986e5c31af7Sopenharmony_ci
3987e5c31af7Sopenharmony_ci			${DECLARATIONS}
3988e5c31af7Sopenharmony_ci
3989e5c31af7Sopenharmony_ci			void main()
3990e5c31af7Sopenharmony_ci			{
3991e5c31af7Sopenharmony_ci				${SETUP}
3992e5c31af7Sopenharmony_ci				out0 = in0.xyxy * in1.yxyx;
3993e5c31af7Sopenharmony_ci				${OUTPUT}
3994e5c31af7Sopenharmony_ci			}
3995e5c31af7Sopenharmony_ci		""
3996e5c31af7Sopenharmony_ci	end
3997e5c31af7Sopenharmony_ci
3998e5c31af7Sopenharmony_ci	case mediump_vec4_yzzy_zzyy
3999e5c31af7Sopenharmony_ci		version 300 es
4000e5c31af7Sopenharmony_ci		values
4001e5c31af7Sopenharmony_ci		{
4002e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
4003e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
4004e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.375, 0.5625, 0.375, 0.25) | vec4(1.40625, 1.265625, 1.40625, 1.5625) | vec4(10.96875, 23.765625, 10.96875, 5.0625) | vec4(-3264.0, 2601.0, -3264.0, 4096.0) | vec4(-0.00169779286927, 0.00277008310249, -0.00169779286927, 0.00104058272633) ];
4005e5c31af7Sopenharmony_ci		}
4006e5c31af7Sopenharmony_ci
4007e5c31af7Sopenharmony_ci		both ""
4008e5c31af7Sopenharmony_ci			#version 300 es
4009e5c31af7Sopenharmony_ci			precision mediump float;
4010e5c31af7Sopenharmony_ci
4011e5c31af7Sopenharmony_ci			${DECLARATIONS}
4012e5c31af7Sopenharmony_ci
4013e5c31af7Sopenharmony_ci			void main()
4014e5c31af7Sopenharmony_ci			{
4015e5c31af7Sopenharmony_ci				${SETUP}
4016e5c31af7Sopenharmony_ci				out0 = in0.yzzy * in1.zzyy;
4017e5c31af7Sopenharmony_ci				${OUTPUT}
4018e5c31af7Sopenharmony_ci			}
4019e5c31af7Sopenharmony_ci		""
4020e5c31af7Sopenharmony_ci	end
4021e5c31af7Sopenharmony_ci
4022e5c31af7Sopenharmony_ci	case mediump_vec4_wxww_xwww
4023e5c31af7Sopenharmony_ci		version 300 es
4024e5c31af7Sopenharmony_ci		values
4025e5c31af7Sopenharmony_ci		{
4026e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
4027e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
4028e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.0825, 0.0825, 0.680625, 0.680625) | vec4(1.75, 1.75, 3.0625, 3.0625) | vec4(-4.5, -4.5, 81.0, 81.0) | vec4(-768.0, -768.0, 576.0, 576.0) | vec4(-0.1875, -0.1875, 0.0625, 0.0625) ];
4029e5c31af7Sopenharmony_ci		}
4030e5c31af7Sopenharmony_ci
4031e5c31af7Sopenharmony_ci		both ""
4032e5c31af7Sopenharmony_ci			#version 300 es
4033e5c31af7Sopenharmony_ci			precision mediump float;
4034e5c31af7Sopenharmony_ci
4035e5c31af7Sopenharmony_ci			${DECLARATIONS}
4036e5c31af7Sopenharmony_ci
4037e5c31af7Sopenharmony_ci			void main()
4038e5c31af7Sopenharmony_ci			{
4039e5c31af7Sopenharmony_ci				${SETUP}
4040e5c31af7Sopenharmony_ci				out0 = in0.wxww * in1.xwww;
4041e5c31af7Sopenharmony_ci				${OUTPUT}
4042e5c31af7Sopenharmony_ci			}
4043e5c31af7Sopenharmony_ci		""
4044e5c31af7Sopenharmony_ci	end
4045e5c31af7Sopenharmony_ci
4046e5c31af7Sopenharmony_ci	case mediump_vec4_xyxx_yxxx
4047e5c31af7Sopenharmony_ci		version 300 es
4048e5c31af7Sopenharmony_ci		values
4049e5c31af7Sopenharmony_ci		{
4050e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
4051e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
4052e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.05, 0.05, 0.01, 0.01) | vec4(1.25, 1.25, 1.0, 1.0) | vec4(1.125, 1.125, 0.25, 0.25) | vec4(-2048.0, -2048.0, 1024.0, 1024.0) | vec4(0.0241935483871, 0.0241935483871, 0.5625, 0.5625) ];
4053e5c31af7Sopenharmony_ci		}
4054e5c31af7Sopenharmony_ci
4055e5c31af7Sopenharmony_ci		both ""
4056e5c31af7Sopenharmony_ci			#version 300 es
4057e5c31af7Sopenharmony_ci			precision mediump float;
4058e5c31af7Sopenharmony_ci
4059e5c31af7Sopenharmony_ci			${DECLARATIONS}
4060e5c31af7Sopenharmony_ci
4061e5c31af7Sopenharmony_ci			void main()
4062e5c31af7Sopenharmony_ci			{
4063e5c31af7Sopenharmony_ci				${SETUP}
4064e5c31af7Sopenharmony_ci				out0 = in0.xyxx * in1.yxxx;
4065e5c31af7Sopenharmony_ci				${OUTPUT}
4066e5c31af7Sopenharmony_ci			}
4067e5c31af7Sopenharmony_ci		""
4068e5c31af7Sopenharmony_ci	end
4069e5c31af7Sopenharmony_ci
4070e5c31af7Sopenharmony_ci	case mediump_vec4_zzzz_zzzz
4071e5c31af7Sopenharmony_ci		version 300 es
4072e5c31af7Sopenharmony_ci		values
4073e5c31af7Sopenharmony_ci		{
4074e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
4075e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
4076e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.5625, 0.5625, 0.5625, 0.5625) | vec4(1.265625, 1.265625, 1.265625, 1.265625) | vec4(23.765625, 23.765625, 23.765625, 23.765625) | vec4(2601.0, 2601.0, 2601.0, 2601.0) | vec4(0.00277008310249, 0.00277008310249, 0.00277008310249, 0.00277008310249) ];
4077e5c31af7Sopenharmony_ci		}
4078e5c31af7Sopenharmony_ci
4079e5c31af7Sopenharmony_ci		both ""
4080e5c31af7Sopenharmony_ci			#version 300 es
4081e5c31af7Sopenharmony_ci			precision mediump float;
4082e5c31af7Sopenharmony_ci
4083e5c31af7Sopenharmony_ci			${DECLARATIONS}
4084e5c31af7Sopenharmony_ci
4085e5c31af7Sopenharmony_ci			void main()
4086e5c31af7Sopenharmony_ci			{
4087e5c31af7Sopenharmony_ci				${SETUP}
4088e5c31af7Sopenharmony_ci				out0 = in0.zzzz * in1.zzzz;
4089e5c31af7Sopenharmony_ci				${OUTPUT}
4090e5c31af7Sopenharmony_ci			}
4091e5c31af7Sopenharmony_ci		""
4092e5c31af7Sopenharmony_ci	end
4093e5c31af7Sopenharmony_ci
4094e5c31af7Sopenharmony_ci	case mediump_ivec2_x_x
4095e5c31af7Sopenharmony_ci		version 300 es
4096e5c31af7Sopenharmony_ci		values
4097e5c31af7Sopenharmony_ci		{
4098e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
4099e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
4100e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 1 | 1 ];
4101e5c31af7Sopenharmony_ci		}
4102e5c31af7Sopenharmony_ci
4103e5c31af7Sopenharmony_ci		both ""
4104e5c31af7Sopenharmony_ci			#version 300 es
4105e5c31af7Sopenharmony_ci			precision mediump float;
4106e5c31af7Sopenharmony_ci
4107e5c31af7Sopenharmony_ci			${DECLARATIONS}
4108e5c31af7Sopenharmony_ci
4109e5c31af7Sopenharmony_ci			void main()
4110e5c31af7Sopenharmony_ci			{
4111e5c31af7Sopenharmony_ci				${SETUP}
4112e5c31af7Sopenharmony_ci				out0 = in0.x * in1.x;
4113e5c31af7Sopenharmony_ci				${OUTPUT}
4114e5c31af7Sopenharmony_ci			}
4115e5c31af7Sopenharmony_ci		""
4116e5c31af7Sopenharmony_ci	end
4117e5c31af7Sopenharmony_ci
4118e5c31af7Sopenharmony_ci	case mediump_ivec2_xx_xx
4119e5c31af7Sopenharmony_ci		version 300 es
4120e5c31af7Sopenharmony_ci		values
4121e5c31af7Sopenharmony_ci		{
4122e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
4123e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
4124e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(1, 1) | ivec2(1, 1) | ivec2(1, 1) ];
4125e5c31af7Sopenharmony_ci		}
4126e5c31af7Sopenharmony_ci
4127e5c31af7Sopenharmony_ci		both ""
4128e5c31af7Sopenharmony_ci			#version 300 es
4129e5c31af7Sopenharmony_ci			precision mediump float;
4130e5c31af7Sopenharmony_ci
4131e5c31af7Sopenharmony_ci			${DECLARATIONS}
4132e5c31af7Sopenharmony_ci
4133e5c31af7Sopenharmony_ci			void main()
4134e5c31af7Sopenharmony_ci			{
4135e5c31af7Sopenharmony_ci				${SETUP}
4136e5c31af7Sopenharmony_ci				out0 = in0.xx * in1.xx;
4137e5c31af7Sopenharmony_ci				${OUTPUT}
4138e5c31af7Sopenharmony_ci			}
4139e5c31af7Sopenharmony_ci		""
4140e5c31af7Sopenharmony_ci	end
4141e5c31af7Sopenharmony_ci
4142e5c31af7Sopenharmony_ci	case mediump_ivec2_xy_yx
4143e5c31af7Sopenharmony_ci		version 300 es
4144e5c31af7Sopenharmony_ci		values
4145e5c31af7Sopenharmony_ci		{
4146e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
4147e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
4148e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(-1, -1) | ivec2(2, 2) | ivec2(2, 2) ];
4149e5c31af7Sopenharmony_ci		}
4150e5c31af7Sopenharmony_ci
4151e5c31af7Sopenharmony_ci		both ""
4152e5c31af7Sopenharmony_ci			#version 300 es
4153e5c31af7Sopenharmony_ci			precision mediump float;
4154e5c31af7Sopenharmony_ci
4155e5c31af7Sopenharmony_ci			${DECLARATIONS}
4156e5c31af7Sopenharmony_ci
4157e5c31af7Sopenharmony_ci			void main()
4158e5c31af7Sopenharmony_ci			{
4159e5c31af7Sopenharmony_ci				${SETUP}
4160e5c31af7Sopenharmony_ci				out0 = in0.xy * in1.yx;
4161e5c31af7Sopenharmony_ci				${OUTPUT}
4162e5c31af7Sopenharmony_ci			}
4163e5c31af7Sopenharmony_ci		""
4164e5c31af7Sopenharmony_ci	end
4165e5c31af7Sopenharmony_ci
4166e5c31af7Sopenharmony_ci	case mediump_ivec2_yx_xy
4167e5c31af7Sopenharmony_ci		version 300 es
4168e5c31af7Sopenharmony_ci		values
4169e5c31af7Sopenharmony_ci		{
4170e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
4171e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
4172e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(-1, -1) | ivec2(2, 2) | ivec2(2, 2) ];
4173e5c31af7Sopenharmony_ci		}
4174e5c31af7Sopenharmony_ci
4175e5c31af7Sopenharmony_ci		both ""
4176e5c31af7Sopenharmony_ci			#version 300 es
4177e5c31af7Sopenharmony_ci			precision mediump float;
4178e5c31af7Sopenharmony_ci
4179e5c31af7Sopenharmony_ci			${DECLARATIONS}
4180e5c31af7Sopenharmony_ci
4181e5c31af7Sopenharmony_ci			void main()
4182e5c31af7Sopenharmony_ci			{
4183e5c31af7Sopenharmony_ci				${SETUP}
4184e5c31af7Sopenharmony_ci				out0 = in0.yx * in1.xy;
4185e5c31af7Sopenharmony_ci				${OUTPUT}
4186e5c31af7Sopenharmony_ci			}
4187e5c31af7Sopenharmony_ci		""
4188e5c31af7Sopenharmony_ci	end
4189e5c31af7Sopenharmony_ci
4190e5c31af7Sopenharmony_ci	case mediump_ivec2_yxy_xyy
4191e5c31af7Sopenharmony_ci		version 300 es
4192e5c31af7Sopenharmony_ci		values
4193e5c31af7Sopenharmony_ci		{
4194e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
4195e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
4196e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(-1, -1, 1) | ivec3(2, 2, 4) | ivec3(2, 2, 4) ];
4197e5c31af7Sopenharmony_ci		}
4198e5c31af7Sopenharmony_ci
4199e5c31af7Sopenharmony_ci		both ""
4200e5c31af7Sopenharmony_ci			#version 300 es
4201e5c31af7Sopenharmony_ci			precision mediump float;
4202e5c31af7Sopenharmony_ci
4203e5c31af7Sopenharmony_ci			${DECLARATIONS}
4204e5c31af7Sopenharmony_ci
4205e5c31af7Sopenharmony_ci			void main()
4206e5c31af7Sopenharmony_ci			{
4207e5c31af7Sopenharmony_ci				${SETUP}
4208e5c31af7Sopenharmony_ci				out0 = in0.yxy * in1.xyy;
4209e5c31af7Sopenharmony_ci				${OUTPUT}
4210e5c31af7Sopenharmony_ci			}
4211e5c31af7Sopenharmony_ci		""
4212e5c31af7Sopenharmony_ci	end
4213e5c31af7Sopenharmony_ci
4214e5c31af7Sopenharmony_ci	case mediump_ivec2_xyxx_yxxx
4215e5c31af7Sopenharmony_ci		version 300 es
4216e5c31af7Sopenharmony_ci		values
4217e5c31af7Sopenharmony_ci		{
4218e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
4219e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
4220e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(-1, -1, 1, 1) | ivec4(2, 2, 1, 1) | ivec4(2, 2, 1, 1) ];
4221e5c31af7Sopenharmony_ci		}
4222e5c31af7Sopenharmony_ci
4223e5c31af7Sopenharmony_ci		both ""
4224e5c31af7Sopenharmony_ci			#version 300 es
4225e5c31af7Sopenharmony_ci			precision mediump float;
4226e5c31af7Sopenharmony_ci
4227e5c31af7Sopenharmony_ci			${DECLARATIONS}
4228e5c31af7Sopenharmony_ci
4229e5c31af7Sopenharmony_ci			void main()
4230e5c31af7Sopenharmony_ci			{
4231e5c31af7Sopenharmony_ci				${SETUP}
4232e5c31af7Sopenharmony_ci				out0 = in0.xyxx * in1.yxxx;
4233e5c31af7Sopenharmony_ci				${OUTPUT}
4234e5c31af7Sopenharmony_ci			}
4235e5c31af7Sopenharmony_ci		""
4236e5c31af7Sopenharmony_ci	end
4237e5c31af7Sopenharmony_ci
4238e5c31af7Sopenharmony_ci	case mediump_ivec2_yxyx_xyxy
4239e5c31af7Sopenharmony_ci		version 300 es
4240e5c31af7Sopenharmony_ci		values
4241e5c31af7Sopenharmony_ci		{
4242e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
4243e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
4244e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(-1, -1, -1, -1) | ivec4(2, 2, 2, 2) | ivec4(2, 2, 2, 2) ];
4245e5c31af7Sopenharmony_ci		}
4246e5c31af7Sopenharmony_ci
4247e5c31af7Sopenharmony_ci		both ""
4248e5c31af7Sopenharmony_ci			#version 300 es
4249e5c31af7Sopenharmony_ci			precision mediump float;
4250e5c31af7Sopenharmony_ci
4251e5c31af7Sopenharmony_ci			${DECLARATIONS}
4252e5c31af7Sopenharmony_ci
4253e5c31af7Sopenharmony_ci			void main()
4254e5c31af7Sopenharmony_ci			{
4255e5c31af7Sopenharmony_ci				${SETUP}
4256e5c31af7Sopenharmony_ci				out0 = in0.yxyx * in1.xyxy;
4257e5c31af7Sopenharmony_ci				${OUTPUT}
4258e5c31af7Sopenharmony_ci			}
4259e5c31af7Sopenharmony_ci		""
4260e5c31af7Sopenharmony_ci	end
4261e5c31af7Sopenharmony_ci
4262e5c31af7Sopenharmony_ci	case mediump_ivec3_x_x
4263e5c31af7Sopenharmony_ci		version 300 es
4264e5c31af7Sopenharmony_ci		values
4265e5c31af7Sopenharmony_ci		{
4266e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4267e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4268e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 1 | 1 ];
4269e5c31af7Sopenharmony_ci		}
4270e5c31af7Sopenharmony_ci
4271e5c31af7Sopenharmony_ci		both ""
4272e5c31af7Sopenharmony_ci			#version 300 es
4273e5c31af7Sopenharmony_ci			precision mediump float;
4274e5c31af7Sopenharmony_ci
4275e5c31af7Sopenharmony_ci			${DECLARATIONS}
4276e5c31af7Sopenharmony_ci
4277e5c31af7Sopenharmony_ci			void main()
4278e5c31af7Sopenharmony_ci			{
4279e5c31af7Sopenharmony_ci				${SETUP}
4280e5c31af7Sopenharmony_ci				out0 = in0.x * in1.x;
4281e5c31af7Sopenharmony_ci				${OUTPUT}
4282e5c31af7Sopenharmony_ci			}
4283e5c31af7Sopenharmony_ci		""
4284e5c31af7Sopenharmony_ci	end
4285e5c31af7Sopenharmony_ci
4286e5c31af7Sopenharmony_ci	case mediump_ivec3_z_z
4287e5c31af7Sopenharmony_ci		version 300 es
4288e5c31af7Sopenharmony_ci		values
4289e5c31af7Sopenharmony_ci		{
4290e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4291e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4292e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 9 | 16 ];
4293e5c31af7Sopenharmony_ci		}
4294e5c31af7Sopenharmony_ci
4295e5c31af7Sopenharmony_ci		both ""
4296e5c31af7Sopenharmony_ci			#version 300 es
4297e5c31af7Sopenharmony_ci			precision mediump float;
4298e5c31af7Sopenharmony_ci
4299e5c31af7Sopenharmony_ci			${DECLARATIONS}
4300e5c31af7Sopenharmony_ci
4301e5c31af7Sopenharmony_ci			void main()
4302e5c31af7Sopenharmony_ci			{
4303e5c31af7Sopenharmony_ci				${SETUP}
4304e5c31af7Sopenharmony_ci				out0 = in0.z * in1.z;
4305e5c31af7Sopenharmony_ci				${OUTPUT}
4306e5c31af7Sopenharmony_ci			}
4307e5c31af7Sopenharmony_ci		""
4308e5c31af7Sopenharmony_ci	end
4309e5c31af7Sopenharmony_ci
4310e5c31af7Sopenharmony_ci	case mediump_ivec3_xz_zx
4311e5c31af7Sopenharmony_ci		version 300 es
4312e5c31af7Sopenharmony_ci		values
4313e5c31af7Sopenharmony_ci		{
4314e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4315e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4316e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(1, 1) | ivec2(3, 3) | ivec2(4, 4) ];
4317e5c31af7Sopenharmony_ci		}
4318e5c31af7Sopenharmony_ci
4319e5c31af7Sopenharmony_ci		both ""
4320e5c31af7Sopenharmony_ci			#version 300 es
4321e5c31af7Sopenharmony_ci			precision mediump float;
4322e5c31af7Sopenharmony_ci
4323e5c31af7Sopenharmony_ci			${DECLARATIONS}
4324e5c31af7Sopenharmony_ci
4325e5c31af7Sopenharmony_ci			void main()
4326e5c31af7Sopenharmony_ci			{
4327e5c31af7Sopenharmony_ci				${SETUP}
4328e5c31af7Sopenharmony_ci				out0 = in0.xz * in1.zx;
4329e5c31af7Sopenharmony_ci				${OUTPUT}
4330e5c31af7Sopenharmony_ci			}
4331e5c31af7Sopenharmony_ci		""
4332e5c31af7Sopenharmony_ci	end
4333e5c31af7Sopenharmony_ci
4334e5c31af7Sopenharmony_ci	case mediump_ivec3_zz_zz
4335e5c31af7Sopenharmony_ci		version 300 es
4336e5c31af7Sopenharmony_ci		values
4337e5c31af7Sopenharmony_ci		{
4338e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4339e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4340e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(1, 1) | ivec2(9, 9) | ivec2(16, 16) ];
4341e5c31af7Sopenharmony_ci		}
4342e5c31af7Sopenharmony_ci
4343e5c31af7Sopenharmony_ci		both ""
4344e5c31af7Sopenharmony_ci			#version 300 es
4345e5c31af7Sopenharmony_ci			precision mediump float;
4346e5c31af7Sopenharmony_ci
4347e5c31af7Sopenharmony_ci			${DECLARATIONS}
4348e5c31af7Sopenharmony_ci
4349e5c31af7Sopenharmony_ci			void main()
4350e5c31af7Sopenharmony_ci			{
4351e5c31af7Sopenharmony_ci				${SETUP}
4352e5c31af7Sopenharmony_ci				out0 = in0.zz * in1.zz;
4353e5c31af7Sopenharmony_ci				${OUTPUT}
4354e5c31af7Sopenharmony_ci			}
4355e5c31af7Sopenharmony_ci		""
4356e5c31af7Sopenharmony_ci	end
4357e5c31af7Sopenharmony_ci
4358e5c31af7Sopenharmony_ci	case mediump_ivec3_xyz_yzx
4359e5c31af7Sopenharmony_ci		version 300 es
4360e5c31af7Sopenharmony_ci		values
4361e5c31af7Sopenharmony_ci		{
4362e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4363e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4364e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(-1, -1, 1) | ivec3(2, 6, 3) | ivec3(2, 8, 4) ];
4365e5c31af7Sopenharmony_ci		}
4366e5c31af7Sopenharmony_ci
4367e5c31af7Sopenharmony_ci		both ""
4368e5c31af7Sopenharmony_ci			#version 300 es
4369e5c31af7Sopenharmony_ci			precision mediump float;
4370e5c31af7Sopenharmony_ci
4371e5c31af7Sopenharmony_ci			${DECLARATIONS}
4372e5c31af7Sopenharmony_ci
4373e5c31af7Sopenharmony_ci			void main()
4374e5c31af7Sopenharmony_ci			{
4375e5c31af7Sopenharmony_ci				${SETUP}
4376e5c31af7Sopenharmony_ci				out0 = in0.xyz * in1.yzx;
4377e5c31af7Sopenharmony_ci				${OUTPUT}
4378e5c31af7Sopenharmony_ci			}
4379e5c31af7Sopenharmony_ci		""
4380e5c31af7Sopenharmony_ci	end
4381e5c31af7Sopenharmony_ci
4382e5c31af7Sopenharmony_ci	case mediump_ivec3_zyx_yxz
4383e5c31af7Sopenharmony_ci		version 300 es
4384e5c31af7Sopenharmony_ci		values
4385e5c31af7Sopenharmony_ci		{
4386e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4387e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4388e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(-1, -1, 1) | ivec3(6, 2, 3) | ivec3(8, 2, 4) ];
4389e5c31af7Sopenharmony_ci		}
4390e5c31af7Sopenharmony_ci
4391e5c31af7Sopenharmony_ci		both ""
4392e5c31af7Sopenharmony_ci			#version 300 es
4393e5c31af7Sopenharmony_ci			precision mediump float;
4394e5c31af7Sopenharmony_ci
4395e5c31af7Sopenharmony_ci			${DECLARATIONS}
4396e5c31af7Sopenharmony_ci
4397e5c31af7Sopenharmony_ci			void main()
4398e5c31af7Sopenharmony_ci			{
4399e5c31af7Sopenharmony_ci				${SETUP}
4400e5c31af7Sopenharmony_ci				out0 = in0.zyx * in1.yxz;
4401e5c31af7Sopenharmony_ci				${OUTPUT}
4402e5c31af7Sopenharmony_ci			}
4403e5c31af7Sopenharmony_ci		""
4404e5c31af7Sopenharmony_ci	end
4405e5c31af7Sopenharmony_ci
4406e5c31af7Sopenharmony_ci	case mediump_ivec3_xxx_xxx
4407e5c31af7Sopenharmony_ci		version 300 es
4408e5c31af7Sopenharmony_ci		values
4409e5c31af7Sopenharmony_ci		{
4410e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4411e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4412e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(1, 1, 1) | ivec3(1, 1, 1) | ivec3(1, 1, 1) ];
4413e5c31af7Sopenharmony_ci		}
4414e5c31af7Sopenharmony_ci
4415e5c31af7Sopenharmony_ci		both ""
4416e5c31af7Sopenharmony_ci			#version 300 es
4417e5c31af7Sopenharmony_ci			precision mediump float;
4418e5c31af7Sopenharmony_ci
4419e5c31af7Sopenharmony_ci			${DECLARATIONS}
4420e5c31af7Sopenharmony_ci
4421e5c31af7Sopenharmony_ci			void main()
4422e5c31af7Sopenharmony_ci			{
4423e5c31af7Sopenharmony_ci				${SETUP}
4424e5c31af7Sopenharmony_ci				out0 = in0.xxx * in1.xxx;
4425e5c31af7Sopenharmony_ci				${OUTPUT}
4426e5c31af7Sopenharmony_ci			}
4427e5c31af7Sopenharmony_ci		""
4428e5c31af7Sopenharmony_ci	end
4429e5c31af7Sopenharmony_ci
4430e5c31af7Sopenharmony_ci	case mediump_ivec3_zzz_zzz
4431e5c31af7Sopenharmony_ci		version 300 es
4432e5c31af7Sopenharmony_ci		values
4433e5c31af7Sopenharmony_ci		{
4434e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4435e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4436e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(1, 1, 1) | ivec3(9, 9, 9) | ivec3(16, 16, 16) ];
4437e5c31af7Sopenharmony_ci		}
4438e5c31af7Sopenharmony_ci
4439e5c31af7Sopenharmony_ci		both ""
4440e5c31af7Sopenharmony_ci			#version 300 es
4441e5c31af7Sopenharmony_ci			precision mediump float;
4442e5c31af7Sopenharmony_ci
4443e5c31af7Sopenharmony_ci			${DECLARATIONS}
4444e5c31af7Sopenharmony_ci
4445e5c31af7Sopenharmony_ci			void main()
4446e5c31af7Sopenharmony_ci			{
4447e5c31af7Sopenharmony_ci				${SETUP}
4448e5c31af7Sopenharmony_ci				out0 = in0.zzz * in1.zzz;
4449e5c31af7Sopenharmony_ci				${OUTPUT}
4450e5c31af7Sopenharmony_ci			}
4451e5c31af7Sopenharmony_ci		""
4452e5c31af7Sopenharmony_ci	end
4453e5c31af7Sopenharmony_ci
4454e5c31af7Sopenharmony_ci	case mediump_ivec3_zzy_zyz
4455e5c31af7Sopenharmony_ci		version 300 es
4456e5c31af7Sopenharmony_ci		values
4457e5c31af7Sopenharmony_ci		{
4458e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4459e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4460e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(1, -1, -1) | ivec3(9, 6, 6) | ivec3(16, 8, 8) ];
4461e5c31af7Sopenharmony_ci		}
4462e5c31af7Sopenharmony_ci
4463e5c31af7Sopenharmony_ci		both ""
4464e5c31af7Sopenharmony_ci			#version 300 es
4465e5c31af7Sopenharmony_ci			precision mediump float;
4466e5c31af7Sopenharmony_ci
4467e5c31af7Sopenharmony_ci			${DECLARATIONS}
4468e5c31af7Sopenharmony_ci
4469e5c31af7Sopenharmony_ci			void main()
4470e5c31af7Sopenharmony_ci			{
4471e5c31af7Sopenharmony_ci				${SETUP}
4472e5c31af7Sopenharmony_ci				out0 = in0.zzy * in1.zyz;
4473e5c31af7Sopenharmony_ci				${OUTPUT}
4474e5c31af7Sopenharmony_ci			}
4475e5c31af7Sopenharmony_ci		""
4476e5c31af7Sopenharmony_ci	end
4477e5c31af7Sopenharmony_ci
4478e5c31af7Sopenharmony_ci	case mediump_ivec3_yxy_xyy
4479e5c31af7Sopenharmony_ci		version 300 es
4480e5c31af7Sopenharmony_ci		values
4481e5c31af7Sopenharmony_ci		{
4482e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4483e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4484e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(-1, -1, 1) | ivec3(2, 2, 4) | ivec3(2, 2, 4) ];
4485e5c31af7Sopenharmony_ci		}
4486e5c31af7Sopenharmony_ci
4487e5c31af7Sopenharmony_ci		both ""
4488e5c31af7Sopenharmony_ci			#version 300 es
4489e5c31af7Sopenharmony_ci			precision mediump float;
4490e5c31af7Sopenharmony_ci
4491e5c31af7Sopenharmony_ci			${DECLARATIONS}
4492e5c31af7Sopenharmony_ci
4493e5c31af7Sopenharmony_ci			void main()
4494e5c31af7Sopenharmony_ci			{
4495e5c31af7Sopenharmony_ci				${SETUP}
4496e5c31af7Sopenharmony_ci				out0 = in0.yxy * in1.xyy;
4497e5c31af7Sopenharmony_ci				${OUTPUT}
4498e5c31af7Sopenharmony_ci			}
4499e5c31af7Sopenharmony_ci		""
4500e5c31af7Sopenharmony_ci	end
4501e5c31af7Sopenharmony_ci
4502e5c31af7Sopenharmony_ci	case mediump_ivec3_xzx_zxx
4503e5c31af7Sopenharmony_ci		version 300 es
4504e5c31af7Sopenharmony_ci		values
4505e5c31af7Sopenharmony_ci		{
4506e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4507e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4508e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(1, 1, 1) | ivec3(3, 3, 1) | ivec3(4, 4, 1) ];
4509e5c31af7Sopenharmony_ci		}
4510e5c31af7Sopenharmony_ci
4511e5c31af7Sopenharmony_ci		both ""
4512e5c31af7Sopenharmony_ci			#version 300 es
4513e5c31af7Sopenharmony_ci			precision mediump float;
4514e5c31af7Sopenharmony_ci
4515e5c31af7Sopenharmony_ci			${DECLARATIONS}
4516e5c31af7Sopenharmony_ci
4517e5c31af7Sopenharmony_ci			void main()
4518e5c31af7Sopenharmony_ci			{
4519e5c31af7Sopenharmony_ci				${SETUP}
4520e5c31af7Sopenharmony_ci				out0 = in0.xzx * in1.zxx;
4521e5c31af7Sopenharmony_ci				${OUTPUT}
4522e5c31af7Sopenharmony_ci			}
4523e5c31af7Sopenharmony_ci		""
4524e5c31af7Sopenharmony_ci	end
4525e5c31af7Sopenharmony_ci
4526e5c31af7Sopenharmony_ci	case mediump_ivec3_xyyx_yyxx
4527e5c31af7Sopenharmony_ci		version 300 es
4528e5c31af7Sopenharmony_ci		values
4529e5c31af7Sopenharmony_ci		{
4530e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4531e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4532e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(-1, 1, -1, 1) | ivec4(2, 4, 2, 1) | ivec4(2, 4, 2, 1) ];
4533e5c31af7Sopenharmony_ci		}
4534e5c31af7Sopenharmony_ci
4535e5c31af7Sopenharmony_ci		both ""
4536e5c31af7Sopenharmony_ci			#version 300 es
4537e5c31af7Sopenharmony_ci			precision mediump float;
4538e5c31af7Sopenharmony_ci
4539e5c31af7Sopenharmony_ci			${DECLARATIONS}
4540e5c31af7Sopenharmony_ci
4541e5c31af7Sopenharmony_ci			void main()
4542e5c31af7Sopenharmony_ci			{
4543e5c31af7Sopenharmony_ci				${SETUP}
4544e5c31af7Sopenharmony_ci				out0 = in0.xyyx * in1.yyxx;
4545e5c31af7Sopenharmony_ci				${OUTPUT}
4546e5c31af7Sopenharmony_ci			}
4547e5c31af7Sopenharmony_ci		""
4548e5c31af7Sopenharmony_ci	end
4549e5c31af7Sopenharmony_ci
4550e5c31af7Sopenharmony_ci	case mediump_ivec3_zxyz_xyzz
4551e5c31af7Sopenharmony_ci		version 300 es
4552e5c31af7Sopenharmony_ci		values
4553e5c31af7Sopenharmony_ci		{
4554e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4555e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
4556e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(1, -1, -1, 1) | ivec4(3, 2, 6, 9) | ivec4(4, 2, 8, 16) ];
4557e5c31af7Sopenharmony_ci		}
4558e5c31af7Sopenharmony_ci
4559e5c31af7Sopenharmony_ci		both ""
4560e5c31af7Sopenharmony_ci			#version 300 es
4561e5c31af7Sopenharmony_ci			precision mediump float;
4562e5c31af7Sopenharmony_ci
4563e5c31af7Sopenharmony_ci			${DECLARATIONS}
4564e5c31af7Sopenharmony_ci
4565e5c31af7Sopenharmony_ci			void main()
4566e5c31af7Sopenharmony_ci			{
4567e5c31af7Sopenharmony_ci				${SETUP}
4568e5c31af7Sopenharmony_ci				out0 = in0.zxyz * in1.xyzz;
4569e5c31af7Sopenharmony_ci				${OUTPUT}
4570e5c31af7Sopenharmony_ci			}
4571e5c31af7Sopenharmony_ci		""
4572e5c31af7Sopenharmony_ci	end
4573e5c31af7Sopenharmony_ci
4574e5c31af7Sopenharmony_ci	case mediump_ivec4_x_x
4575e5c31af7Sopenharmony_ci		version 300 es
4576e5c31af7Sopenharmony_ci		values
4577e5c31af7Sopenharmony_ci		{
4578e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4579e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4580e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 1 | 1 ];
4581e5c31af7Sopenharmony_ci		}
4582e5c31af7Sopenharmony_ci
4583e5c31af7Sopenharmony_ci		both ""
4584e5c31af7Sopenharmony_ci			#version 300 es
4585e5c31af7Sopenharmony_ci			precision mediump float;
4586e5c31af7Sopenharmony_ci
4587e5c31af7Sopenharmony_ci			${DECLARATIONS}
4588e5c31af7Sopenharmony_ci
4589e5c31af7Sopenharmony_ci			void main()
4590e5c31af7Sopenharmony_ci			{
4591e5c31af7Sopenharmony_ci				${SETUP}
4592e5c31af7Sopenharmony_ci				out0 = in0.x * in1.x;
4593e5c31af7Sopenharmony_ci				${OUTPUT}
4594e5c31af7Sopenharmony_ci			}
4595e5c31af7Sopenharmony_ci		""
4596e5c31af7Sopenharmony_ci	end
4597e5c31af7Sopenharmony_ci
4598e5c31af7Sopenharmony_ci	case mediump_ivec4_w_w
4599e5c31af7Sopenharmony_ci		version 300 es
4600e5c31af7Sopenharmony_ci		values
4601e5c31af7Sopenharmony_ci		{
4602e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4603e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4604e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 16 | 81 ];
4605e5c31af7Sopenharmony_ci		}
4606e5c31af7Sopenharmony_ci
4607e5c31af7Sopenharmony_ci		both ""
4608e5c31af7Sopenharmony_ci			#version 300 es
4609e5c31af7Sopenharmony_ci			precision mediump float;
4610e5c31af7Sopenharmony_ci
4611e5c31af7Sopenharmony_ci			${DECLARATIONS}
4612e5c31af7Sopenharmony_ci
4613e5c31af7Sopenharmony_ci			void main()
4614e5c31af7Sopenharmony_ci			{
4615e5c31af7Sopenharmony_ci				${SETUP}
4616e5c31af7Sopenharmony_ci				out0 = in0.w * in1.w;
4617e5c31af7Sopenharmony_ci				${OUTPUT}
4618e5c31af7Sopenharmony_ci			}
4619e5c31af7Sopenharmony_ci		""
4620e5c31af7Sopenharmony_ci	end
4621e5c31af7Sopenharmony_ci
4622e5c31af7Sopenharmony_ci	case mediump_ivec4_wx_xw
4623e5c31af7Sopenharmony_ci		version 300 es
4624e5c31af7Sopenharmony_ci		values
4625e5c31af7Sopenharmony_ci		{
4626e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4627e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4628e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(-1, -1) | ivec2(4, 4) | ivec2(9, 9) ];
4629e5c31af7Sopenharmony_ci		}
4630e5c31af7Sopenharmony_ci
4631e5c31af7Sopenharmony_ci		both ""
4632e5c31af7Sopenharmony_ci			#version 300 es
4633e5c31af7Sopenharmony_ci			precision mediump float;
4634e5c31af7Sopenharmony_ci
4635e5c31af7Sopenharmony_ci			${DECLARATIONS}
4636e5c31af7Sopenharmony_ci
4637e5c31af7Sopenharmony_ci			void main()
4638e5c31af7Sopenharmony_ci			{
4639e5c31af7Sopenharmony_ci				${SETUP}
4640e5c31af7Sopenharmony_ci				out0 = in0.wx * in1.xw;
4641e5c31af7Sopenharmony_ci				${OUTPUT}
4642e5c31af7Sopenharmony_ci			}
4643e5c31af7Sopenharmony_ci		""
4644e5c31af7Sopenharmony_ci	end
4645e5c31af7Sopenharmony_ci
4646e5c31af7Sopenharmony_ci	case mediump_ivec4_wz_zw
4647e5c31af7Sopenharmony_ci		version 300 es
4648e5c31af7Sopenharmony_ci		values
4649e5c31af7Sopenharmony_ci		{
4650e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4651e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4652e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(-1, -1) | ivec2(12, 12) | ivec2(36, 36) ];
4653e5c31af7Sopenharmony_ci		}
4654e5c31af7Sopenharmony_ci
4655e5c31af7Sopenharmony_ci		both ""
4656e5c31af7Sopenharmony_ci			#version 300 es
4657e5c31af7Sopenharmony_ci			precision mediump float;
4658e5c31af7Sopenharmony_ci
4659e5c31af7Sopenharmony_ci			${DECLARATIONS}
4660e5c31af7Sopenharmony_ci
4661e5c31af7Sopenharmony_ci			void main()
4662e5c31af7Sopenharmony_ci			{
4663e5c31af7Sopenharmony_ci				${SETUP}
4664e5c31af7Sopenharmony_ci				out0 = in0.wz * in1.zw;
4665e5c31af7Sopenharmony_ci				${OUTPUT}
4666e5c31af7Sopenharmony_ci			}
4667e5c31af7Sopenharmony_ci		""
4668e5c31af7Sopenharmony_ci	end
4669e5c31af7Sopenharmony_ci
4670e5c31af7Sopenharmony_ci	case mediump_ivec4_www_www
4671e5c31af7Sopenharmony_ci		version 300 es
4672e5c31af7Sopenharmony_ci		values
4673e5c31af7Sopenharmony_ci		{
4674e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4675e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4676e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(1, 1, 1) | ivec3(16, 16, 16) | ivec3(81, 81, 81) ];
4677e5c31af7Sopenharmony_ci		}
4678e5c31af7Sopenharmony_ci
4679e5c31af7Sopenharmony_ci		both ""
4680e5c31af7Sopenharmony_ci			#version 300 es
4681e5c31af7Sopenharmony_ci			precision mediump float;
4682e5c31af7Sopenharmony_ci
4683e5c31af7Sopenharmony_ci			${DECLARATIONS}
4684e5c31af7Sopenharmony_ci
4685e5c31af7Sopenharmony_ci			void main()
4686e5c31af7Sopenharmony_ci			{
4687e5c31af7Sopenharmony_ci				${SETUP}
4688e5c31af7Sopenharmony_ci				out0 = in0.www * in1.www;
4689e5c31af7Sopenharmony_ci				${OUTPUT}
4690e5c31af7Sopenharmony_ci			}
4691e5c31af7Sopenharmony_ci		""
4692e5c31af7Sopenharmony_ci	end
4693e5c31af7Sopenharmony_ci
4694e5c31af7Sopenharmony_ci	case mediump_ivec4_yyw_ywy
4695e5c31af7Sopenharmony_ci		version 300 es
4696e5c31af7Sopenharmony_ci		values
4697e5c31af7Sopenharmony_ci		{
4698e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4699e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4700e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(1, 1, 1) | ivec3(4, 8, 8) | ivec3(4, 18, 18) ];
4701e5c31af7Sopenharmony_ci		}
4702e5c31af7Sopenharmony_ci
4703e5c31af7Sopenharmony_ci		both ""
4704e5c31af7Sopenharmony_ci			#version 300 es
4705e5c31af7Sopenharmony_ci			precision mediump float;
4706e5c31af7Sopenharmony_ci
4707e5c31af7Sopenharmony_ci			${DECLARATIONS}
4708e5c31af7Sopenharmony_ci
4709e5c31af7Sopenharmony_ci			void main()
4710e5c31af7Sopenharmony_ci			{
4711e5c31af7Sopenharmony_ci				${SETUP}
4712e5c31af7Sopenharmony_ci				out0 = in0.yyw * in1.ywy;
4713e5c31af7Sopenharmony_ci				${OUTPUT}
4714e5c31af7Sopenharmony_ci			}
4715e5c31af7Sopenharmony_ci		""
4716e5c31af7Sopenharmony_ci	end
4717e5c31af7Sopenharmony_ci
4718e5c31af7Sopenharmony_ci	case mediump_ivec4_wzy_zyw
4719e5c31af7Sopenharmony_ci		version 300 es
4720e5c31af7Sopenharmony_ci		values
4721e5c31af7Sopenharmony_ci		{
4722e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4723e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4724e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(-1, -1, 1) | ivec3(12, 6, 8) | ivec3(36, 8, 18) ];
4725e5c31af7Sopenharmony_ci		}
4726e5c31af7Sopenharmony_ci
4727e5c31af7Sopenharmony_ci		both ""
4728e5c31af7Sopenharmony_ci			#version 300 es
4729e5c31af7Sopenharmony_ci			precision mediump float;
4730e5c31af7Sopenharmony_ci
4731e5c31af7Sopenharmony_ci			${DECLARATIONS}
4732e5c31af7Sopenharmony_ci
4733e5c31af7Sopenharmony_ci			void main()
4734e5c31af7Sopenharmony_ci			{
4735e5c31af7Sopenharmony_ci				${SETUP}
4736e5c31af7Sopenharmony_ci				out0 = in0.wzy * in1.zyw;
4737e5c31af7Sopenharmony_ci				${OUTPUT}
4738e5c31af7Sopenharmony_ci			}
4739e5c31af7Sopenharmony_ci		""
4740e5c31af7Sopenharmony_ci	end
4741e5c31af7Sopenharmony_ci
4742e5c31af7Sopenharmony_ci	case mediump_ivec4_xyzw_yzwx
4743e5c31af7Sopenharmony_ci		version 300 es
4744e5c31af7Sopenharmony_ci		values
4745e5c31af7Sopenharmony_ci		{
4746e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4747e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4748e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(-1, -1, -1, -1) | ivec4(2, 6, 12, 4) | ivec4(2, 8, 36, 9) ];
4749e5c31af7Sopenharmony_ci		}
4750e5c31af7Sopenharmony_ci
4751e5c31af7Sopenharmony_ci		both ""
4752e5c31af7Sopenharmony_ci			#version 300 es
4753e5c31af7Sopenharmony_ci			precision mediump float;
4754e5c31af7Sopenharmony_ci
4755e5c31af7Sopenharmony_ci			${DECLARATIONS}
4756e5c31af7Sopenharmony_ci
4757e5c31af7Sopenharmony_ci			void main()
4758e5c31af7Sopenharmony_ci			{
4759e5c31af7Sopenharmony_ci				${SETUP}
4760e5c31af7Sopenharmony_ci				out0 = in0.xyzw * in1.yzwx;
4761e5c31af7Sopenharmony_ci				${OUTPUT}
4762e5c31af7Sopenharmony_ci			}
4763e5c31af7Sopenharmony_ci		""
4764e5c31af7Sopenharmony_ci	end
4765e5c31af7Sopenharmony_ci
4766e5c31af7Sopenharmony_ci	case mediump_ivec4_wzyx_zyxw
4767e5c31af7Sopenharmony_ci		version 300 es
4768e5c31af7Sopenharmony_ci		values
4769e5c31af7Sopenharmony_ci		{
4770e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4771e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4772e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(-1, -1, -1, -1) | ivec4(12, 6, 2, 4) | ivec4(36, 8, 2, 9) ];
4773e5c31af7Sopenharmony_ci		}
4774e5c31af7Sopenharmony_ci
4775e5c31af7Sopenharmony_ci		both ""
4776e5c31af7Sopenharmony_ci			#version 300 es
4777e5c31af7Sopenharmony_ci			precision mediump float;
4778e5c31af7Sopenharmony_ci
4779e5c31af7Sopenharmony_ci			${DECLARATIONS}
4780e5c31af7Sopenharmony_ci
4781e5c31af7Sopenharmony_ci			void main()
4782e5c31af7Sopenharmony_ci			{
4783e5c31af7Sopenharmony_ci				${SETUP}
4784e5c31af7Sopenharmony_ci				out0 = in0.wzyx * in1.zyxw;
4785e5c31af7Sopenharmony_ci				${OUTPUT}
4786e5c31af7Sopenharmony_ci			}
4787e5c31af7Sopenharmony_ci		""
4788e5c31af7Sopenharmony_ci	end
4789e5c31af7Sopenharmony_ci
4790e5c31af7Sopenharmony_ci	case mediump_ivec4_xyxy_yxyx
4791e5c31af7Sopenharmony_ci		version 300 es
4792e5c31af7Sopenharmony_ci		values
4793e5c31af7Sopenharmony_ci		{
4794e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4795e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4796e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(-1, -1, -1, -1) | ivec4(2, 2, 2, 2) | ivec4(2, 2, 2, 2) ];
4797e5c31af7Sopenharmony_ci		}
4798e5c31af7Sopenharmony_ci
4799e5c31af7Sopenharmony_ci		both ""
4800e5c31af7Sopenharmony_ci			#version 300 es
4801e5c31af7Sopenharmony_ci			precision mediump float;
4802e5c31af7Sopenharmony_ci
4803e5c31af7Sopenharmony_ci			${DECLARATIONS}
4804e5c31af7Sopenharmony_ci
4805e5c31af7Sopenharmony_ci			void main()
4806e5c31af7Sopenharmony_ci			{
4807e5c31af7Sopenharmony_ci				${SETUP}
4808e5c31af7Sopenharmony_ci				out0 = in0.xyxy * in1.yxyx;
4809e5c31af7Sopenharmony_ci				${OUTPUT}
4810e5c31af7Sopenharmony_ci			}
4811e5c31af7Sopenharmony_ci		""
4812e5c31af7Sopenharmony_ci	end
4813e5c31af7Sopenharmony_ci
4814e5c31af7Sopenharmony_ci	case mediump_ivec4_yzzy_zzyy
4815e5c31af7Sopenharmony_ci		version 300 es
4816e5c31af7Sopenharmony_ci		values
4817e5c31af7Sopenharmony_ci		{
4818e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4819e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4820e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(-1, 1, -1, 1) | ivec4(6, 9, 6, 4) | ivec4(8, 16, 8, 4) ];
4821e5c31af7Sopenharmony_ci		}
4822e5c31af7Sopenharmony_ci
4823e5c31af7Sopenharmony_ci		both ""
4824e5c31af7Sopenharmony_ci			#version 300 es
4825e5c31af7Sopenharmony_ci			precision mediump float;
4826e5c31af7Sopenharmony_ci
4827e5c31af7Sopenharmony_ci			${DECLARATIONS}
4828e5c31af7Sopenharmony_ci
4829e5c31af7Sopenharmony_ci			void main()
4830e5c31af7Sopenharmony_ci			{
4831e5c31af7Sopenharmony_ci				${SETUP}
4832e5c31af7Sopenharmony_ci				out0 = in0.yzzy * in1.zzyy;
4833e5c31af7Sopenharmony_ci				${OUTPUT}
4834e5c31af7Sopenharmony_ci			}
4835e5c31af7Sopenharmony_ci		""
4836e5c31af7Sopenharmony_ci	end
4837e5c31af7Sopenharmony_ci
4838e5c31af7Sopenharmony_ci	case mediump_ivec4_wxww_xwww
4839e5c31af7Sopenharmony_ci		version 300 es
4840e5c31af7Sopenharmony_ci		values
4841e5c31af7Sopenharmony_ci		{
4842e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4843e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4844e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(-1, -1, 1, 1) | ivec4(4, 4, 16, 16) | ivec4(9, 9, 81, 81) ];
4845e5c31af7Sopenharmony_ci		}
4846e5c31af7Sopenharmony_ci
4847e5c31af7Sopenharmony_ci		both ""
4848e5c31af7Sopenharmony_ci			#version 300 es
4849e5c31af7Sopenharmony_ci			precision mediump float;
4850e5c31af7Sopenharmony_ci
4851e5c31af7Sopenharmony_ci			${DECLARATIONS}
4852e5c31af7Sopenharmony_ci
4853e5c31af7Sopenharmony_ci			void main()
4854e5c31af7Sopenharmony_ci			{
4855e5c31af7Sopenharmony_ci				${SETUP}
4856e5c31af7Sopenharmony_ci				out0 = in0.wxww * in1.xwww;
4857e5c31af7Sopenharmony_ci				${OUTPUT}
4858e5c31af7Sopenharmony_ci			}
4859e5c31af7Sopenharmony_ci		""
4860e5c31af7Sopenharmony_ci	end
4861e5c31af7Sopenharmony_ci
4862e5c31af7Sopenharmony_ci	case mediump_ivec4_xyxx_yxxx
4863e5c31af7Sopenharmony_ci		version 300 es
4864e5c31af7Sopenharmony_ci		values
4865e5c31af7Sopenharmony_ci		{
4866e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4867e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4868e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(-1, -1, 1, 1) | ivec4(2, 2, 1, 1) | ivec4(2, 2, 1, 1) ];
4869e5c31af7Sopenharmony_ci		}
4870e5c31af7Sopenharmony_ci
4871e5c31af7Sopenharmony_ci		both ""
4872e5c31af7Sopenharmony_ci			#version 300 es
4873e5c31af7Sopenharmony_ci			precision mediump float;
4874e5c31af7Sopenharmony_ci
4875e5c31af7Sopenharmony_ci			${DECLARATIONS}
4876e5c31af7Sopenharmony_ci
4877e5c31af7Sopenharmony_ci			void main()
4878e5c31af7Sopenharmony_ci			{
4879e5c31af7Sopenharmony_ci				${SETUP}
4880e5c31af7Sopenharmony_ci				out0 = in0.xyxx * in1.yxxx;
4881e5c31af7Sopenharmony_ci				${OUTPUT}
4882e5c31af7Sopenharmony_ci			}
4883e5c31af7Sopenharmony_ci		""
4884e5c31af7Sopenharmony_ci	end
4885e5c31af7Sopenharmony_ci
4886e5c31af7Sopenharmony_ci	case mediump_ivec4_zzzz_zzzz
4887e5c31af7Sopenharmony_ci		version 300 es
4888e5c31af7Sopenharmony_ci		values
4889e5c31af7Sopenharmony_ci		{
4890e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4891e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
4892e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(1, 1, 1, 1) | ivec4(9, 9, 9, 9) | ivec4(16, 16, 16, 16) ];
4893e5c31af7Sopenharmony_ci		}
4894e5c31af7Sopenharmony_ci
4895e5c31af7Sopenharmony_ci		both ""
4896e5c31af7Sopenharmony_ci			#version 300 es
4897e5c31af7Sopenharmony_ci			precision mediump float;
4898e5c31af7Sopenharmony_ci
4899e5c31af7Sopenharmony_ci			${DECLARATIONS}
4900e5c31af7Sopenharmony_ci
4901e5c31af7Sopenharmony_ci			void main()
4902e5c31af7Sopenharmony_ci			{
4903e5c31af7Sopenharmony_ci				${SETUP}
4904e5c31af7Sopenharmony_ci				out0 = in0.zzzz * in1.zzzz;
4905e5c31af7Sopenharmony_ci				${OUTPUT}
4906e5c31af7Sopenharmony_ci			}
4907e5c31af7Sopenharmony_ci		""
4908e5c31af7Sopenharmony_ci	end
4909e5c31af7Sopenharmony_ci
4910e5c31af7Sopenharmony_ci
4911e5c31af7Sopenharmony_ciend # vector_multiply
4912e5c31af7Sopenharmony_cigroup vector_divide "Vector swizzle math operations"
4913e5c31af7Sopenharmony_ci
4914e5c31af7Sopenharmony_ci	case mediump_vec2_x_x
4915e5c31af7Sopenharmony_ci		version 300 es
4916e5c31af7Sopenharmony_ci		values
4917e5c31af7Sopenharmony_ci		{
4918e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
4919e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
4920e5c31af7Sopenharmony_ci			output float out0 = [ 1.0 | 1.0 | 1.0 | 1.0 | 1.0 ];
4921e5c31af7Sopenharmony_ci		}
4922e5c31af7Sopenharmony_ci
4923e5c31af7Sopenharmony_ci		both ""
4924e5c31af7Sopenharmony_ci			#version 300 es
4925e5c31af7Sopenharmony_ci			precision mediump float;
4926e5c31af7Sopenharmony_ci
4927e5c31af7Sopenharmony_ci			${DECLARATIONS}
4928e5c31af7Sopenharmony_ci
4929e5c31af7Sopenharmony_ci			void main()
4930e5c31af7Sopenharmony_ci			{
4931e5c31af7Sopenharmony_ci				${SETUP}
4932e5c31af7Sopenharmony_ci				out0 = in0.x / in1.x;
4933e5c31af7Sopenharmony_ci				${OUTPUT}
4934e5c31af7Sopenharmony_ci			}
4935e5c31af7Sopenharmony_ci		""
4936e5c31af7Sopenharmony_ci	end
4937e5c31af7Sopenharmony_ci
4938e5c31af7Sopenharmony_ci	case mediump_vec2_xx_xx
4939e5c31af7Sopenharmony_ci		version 300 es
4940e5c31af7Sopenharmony_ci		values
4941e5c31af7Sopenharmony_ci		{
4942e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
4943e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
4944e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(1.0, 1.0) | vec2(1.0, 1.0) | vec2(1.0, 1.0) | vec2(1.0, 1.0) | vec2(1.0, 1.0) ];
4945e5c31af7Sopenharmony_ci		}
4946e5c31af7Sopenharmony_ci
4947e5c31af7Sopenharmony_ci		both ""
4948e5c31af7Sopenharmony_ci			#version 300 es
4949e5c31af7Sopenharmony_ci			precision mediump float;
4950e5c31af7Sopenharmony_ci
4951e5c31af7Sopenharmony_ci			${DECLARATIONS}
4952e5c31af7Sopenharmony_ci
4953e5c31af7Sopenharmony_ci			void main()
4954e5c31af7Sopenharmony_ci			{
4955e5c31af7Sopenharmony_ci				${SETUP}
4956e5c31af7Sopenharmony_ci				out0 = in0.xx / in1.xx;
4957e5c31af7Sopenharmony_ci				${OUTPUT}
4958e5c31af7Sopenharmony_ci			}
4959e5c31af7Sopenharmony_ci		""
4960e5c31af7Sopenharmony_ci	end
4961e5c31af7Sopenharmony_ci
4962e5c31af7Sopenharmony_ci	case mediump_vec2_xy_yx
4963e5c31af7Sopenharmony_ci		version 300 es
4964e5c31af7Sopenharmony_ci		values
4965e5c31af7Sopenharmony_ci		{
4966e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
4967e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
4968e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(0.2, 5.0) | vec2(0.8, 1.25) | vec2(0.222222222222, 4.5) | vec2(-0.5, -2.0) | vec2(23.25, 0.0430107526882) ];
4969e5c31af7Sopenharmony_ci		}
4970e5c31af7Sopenharmony_ci
4971e5c31af7Sopenharmony_ci		both ""
4972e5c31af7Sopenharmony_ci			#version 300 es
4973e5c31af7Sopenharmony_ci			precision mediump float;
4974e5c31af7Sopenharmony_ci
4975e5c31af7Sopenharmony_ci			${DECLARATIONS}
4976e5c31af7Sopenharmony_ci
4977e5c31af7Sopenharmony_ci			void main()
4978e5c31af7Sopenharmony_ci			{
4979e5c31af7Sopenharmony_ci				${SETUP}
4980e5c31af7Sopenharmony_ci				out0 = in0.xy / in1.yx;
4981e5c31af7Sopenharmony_ci				${OUTPUT}
4982e5c31af7Sopenharmony_ci			}
4983e5c31af7Sopenharmony_ci		""
4984e5c31af7Sopenharmony_ci	end
4985e5c31af7Sopenharmony_ci
4986e5c31af7Sopenharmony_ci	case mediump_vec2_yx_xy
4987e5c31af7Sopenharmony_ci		version 300 es
4988e5c31af7Sopenharmony_ci		values
4989e5c31af7Sopenharmony_ci		{
4990e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
4991e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
4992e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(5.0, 0.2) | vec2(1.25, 0.8) | vec2(4.5, 0.222222222222) | vec2(-2.0, -0.5) | vec2(0.0430107526882, 23.25) ];
4993e5c31af7Sopenharmony_ci		}
4994e5c31af7Sopenharmony_ci
4995e5c31af7Sopenharmony_ci		both ""
4996e5c31af7Sopenharmony_ci			#version 300 es
4997e5c31af7Sopenharmony_ci			precision mediump float;
4998e5c31af7Sopenharmony_ci
4999e5c31af7Sopenharmony_ci			${DECLARATIONS}
5000e5c31af7Sopenharmony_ci
5001e5c31af7Sopenharmony_ci			void main()
5002e5c31af7Sopenharmony_ci			{
5003e5c31af7Sopenharmony_ci				${SETUP}
5004e5c31af7Sopenharmony_ci				out0 = in0.yx / in1.xy;
5005e5c31af7Sopenharmony_ci				${OUTPUT}
5006e5c31af7Sopenharmony_ci			}
5007e5c31af7Sopenharmony_ci		""
5008e5c31af7Sopenharmony_ci	end
5009e5c31af7Sopenharmony_ci
5010e5c31af7Sopenharmony_ci	case mediump_vec2_yxy_xyy
5011e5c31af7Sopenharmony_ci		version 300 es
5012e5c31af7Sopenharmony_ci		values
5013e5c31af7Sopenharmony_ci		{
5014e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
5015e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
5016e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(5.0, 0.2, 1.0) | vec3(1.25, 0.8, 1.0) | vec3(4.5, 0.222222222222, 1.0) | vec3(-2.0, -0.5, 1.0) | vec3(0.0430107526882, 23.25, 1.0) ];
5017e5c31af7Sopenharmony_ci		}
5018e5c31af7Sopenharmony_ci
5019e5c31af7Sopenharmony_ci		both ""
5020e5c31af7Sopenharmony_ci			#version 300 es
5021e5c31af7Sopenharmony_ci			precision mediump float;
5022e5c31af7Sopenharmony_ci
5023e5c31af7Sopenharmony_ci			${DECLARATIONS}
5024e5c31af7Sopenharmony_ci
5025e5c31af7Sopenharmony_ci			void main()
5026e5c31af7Sopenharmony_ci			{
5027e5c31af7Sopenharmony_ci				${SETUP}
5028e5c31af7Sopenharmony_ci				out0 = in0.yxy / in1.xyy;
5029e5c31af7Sopenharmony_ci				${OUTPUT}
5030e5c31af7Sopenharmony_ci			}
5031e5c31af7Sopenharmony_ci		""
5032e5c31af7Sopenharmony_ci	end
5033e5c31af7Sopenharmony_ci
5034e5c31af7Sopenharmony_ci	case mediump_vec2_xyxx_yxxx
5035e5c31af7Sopenharmony_ci		version 300 es
5036e5c31af7Sopenharmony_ci		values
5037e5c31af7Sopenharmony_ci		{
5038e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
5039e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
5040e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.2, 5.0, 1.0, 1.0) | vec4(0.8, 1.25, 1.0, 1.0) | vec4(0.222222222222, 4.5, 1.0, 1.0) | vec4(-0.5, -2.0, 1.0, 1.0) | vec4(23.25, 0.0430107526882, 1.0, 1.0) ];
5041e5c31af7Sopenharmony_ci		}
5042e5c31af7Sopenharmony_ci
5043e5c31af7Sopenharmony_ci		both ""
5044e5c31af7Sopenharmony_ci			#version 300 es
5045e5c31af7Sopenharmony_ci			precision mediump float;
5046e5c31af7Sopenharmony_ci
5047e5c31af7Sopenharmony_ci			${DECLARATIONS}
5048e5c31af7Sopenharmony_ci
5049e5c31af7Sopenharmony_ci			void main()
5050e5c31af7Sopenharmony_ci			{
5051e5c31af7Sopenharmony_ci				${SETUP}
5052e5c31af7Sopenharmony_ci				out0 = in0.xyxx / in1.yxxx;
5053e5c31af7Sopenharmony_ci				${OUTPUT}
5054e5c31af7Sopenharmony_ci			}
5055e5c31af7Sopenharmony_ci		""
5056e5c31af7Sopenharmony_ci	end
5057e5c31af7Sopenharmony_ci
5058e5c31af7Sopenharmony_ci	case mediump_vec2_yxyx_xyxy
5059e5c31af7Sopenharmony_ci		version 300 es
5060e5c31af7Sopenharmony_ci		values
5061e5c31af7Sopenharmony_ci		{
5062e5c31af7Sopenharmony_ci			input vec2 in0 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
5063e5c31af7Sopenharmony_ci			input vec2 in1 = [ vec2(0.1, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
5064e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(5.0, 0.2, 5.0, 0.2) | vec4(1.25, 0.8, 1.25, 0.8) | vec4(4.5, 0.222222222222, 4.5, 0.222222222222) | vec4(-2.0, -0.5, -2.0, -0.5) | vec4(0.0430107526882, 23.25, 0.0430107526882, 23.25) ];
5065e5c31af7Sopenharmony_ci		}
5066e5c31af7Sopenharmony_ci
5067e5c31af7Sopenharmony_ci		both ""
5068e5c31af7Sopenharmony_ci			#version 300 es
5069e5c31af7Sopenharmony_ci			precision mediump float;
5070e5c31af7Sopenharmony_ci
5071e5c31af7Sopenharmony_ci			${DECLARATIONS}
5072e5c31af7Sopenharmony_ci
5073e5c31af7Sopenharmony_ci			void main()
5074e5c31af7Sopenharmony_ci			{
5075e5c31af7Sopenharmony_ci				${SETUP}
5076e5c31af7Sopenharmony_ci				out0 = in0.yxyx / in1.xyxy;
5077e5c31af7Sopenharmony_ci				${OUTPUT}
5078e5c31af7Sopenharmony_ci			}
5079e5c31af7Sopenharmony_ci		""
5080e5c31af7Sopenharmony_ci	end
5081e5c31af7Sopenharmony_ci
5082e5c31af7Sopenharmony_ci	case mediump_vec3_x_x
5083e5c31af7Sopenharmony_ci		version 300 es
5084e5c31af7Sopenharmony_ci		values
5085e5c31af7Sopenharmony_ci		{
5086e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5087e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5088e5c31af7Sopenharmony_ci			output float out0 = [ 1.0 | 1.0 | 1.0 | 1.0 | 1.0 ];
5089e5c31af7Sopenharmony_ci		}
5090e5c31af7Sopenharmony_ci
5091e5c31af7Sopenharmony_ci		both ""
5092e5c31af7Sopenharmony_ci			#version 300 es
5093e5c31af7Sopenharmony_ci			precision mediump float;
5094e5c31af7Sopenharmony_ci
5095e5c31af7Sopenharmony_ci			${DECLARATIONS}
5096e5c31af7Sopenharmony_ci
5097e5c31af7Sopenharmony_ci			void main()
5098e5c31af7Sopenharmony_ci			{
5099e5c31af7Sopenharmony_ci				${SETUP}
5100e5c31af7Sopenharmony_ci				out0 = in0.x / in1.x;
5101e5c31af7Sopenharmony_ci				${OUTPUT}
5102e5c31af7Sopenharmony_ci			}
5103e5c31af7Sopenharmony_ci		""
5104e5c31af7Sopenharmony_ci	end
5105e5c31af7Sopenharmony_ci
5106e5c31af7Sopenharmony_ci	case mediump_vec3_z_z
5107e5c31af7Sopenharmony_ci		version 300 es
5108e5c31af7Sopenharmony_ci		values
5109e5c31af7Sopenharmony_ci		{
5110e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5111e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5112e5c31af7Sopenharmony_ci			output float out0 = [ 1.0 | 1.0 | 1.0 | 1.0 | 1.0 ];
5113e5c31af7Sopenharmony_ci		}
5114e5c31af7Sopenharmony_ci
5115e5c31af7Sopenharmony_ci		both ""
5116e5c31af7Sopenharmony_ci			#version 300 es
5117e5c31af7Sopenharmony_ci			precision mediump float;
5118e5c31af7Sopenharmony_ci
5119e5c31af7Sopenharmony_ci			${DECLARATIONS}
5120e5c31af7Sopenharmony_ci
5121e5c31af7Sopenharmony_ci			void main()
5122e5c31af7Sopenharmony_ci			{
5123e5c31af7Sopenharmony_ci				${SETUP}
5124e5c31af7Sopenharmony_ci				out0 = in0.z / in1.z;
5125e5c31af7Sopenharmony_ci				${OUTPUT}
5126e5c31af7Sopenharmony_ci			}
5127e5c31af7Sopenharmony_ci		""
5128e5c31af7Sopenharmony_ci	end
5129e5c31af7Sopenharmony_ci
5130e5c31af7Sopenharmony_ci	case mediump_vec3_xz_zx
5131e5c31af7Sopenharmony_ci		version 300 es
5132e5c31af7Sopenharmony_ci		values
5133e5c31af7Sopenharmony_ci		{
5134e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5135e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5136e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(0.133333333333, 7.5) | vec2(0.888888888889, 1.125) | vec2(0.102564102564, 9.75) | vec2(0.627450980392, 1.59375) | vec2(-14.25, -0.0701754385965) ];
5137e5c31af7Sopenharmony_ci		}
5138e5c31af7Sopenharmony_ci
5139e5c31af7Sopenharmony_ci		both ""
5140e5c31af7Sopenharmony_ci			#version 300 es
5141e5c31af7Sopenharmony_ci			precision mediump float;
5142e5c31af7Sopenharmony_ci
5143e5c31af7Sopenharmony_ci			${DECLARATIONS}
5144e5c31af7Sopenharmony_ci
5145e5c31af7Sopenharmony_ci			void main()
5146e5c31af7Sopenharmony_ci			{
5147e5c31af7Sopenharmony_ci				${SETUP}
5148e5c31af7Sopenharmony_ci				out0 = in0.xz / in1.zx;
5149e5c31af7Sopenharmony_ci				${OUTPUT}
5150e5c31af7Sopenharmony_ci			}
5151e5c31af7Sopenharmony_ci		""
5152e5c31af7Sopenharmony_ci	end
5153e5c31af7Sopenharmony_ci
5154e5c31af7Sopenharmony_ci	case mediump_vec3_zz_zz
5155e5c31af7Sopenharmony_ci		version 300 es
5156e5c31af7Sopenharmony_ci		values
5157e5c31af7Sopenharmony_ci		{
5158e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5159e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5160e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(1.0, 1.0) | vec2(1.0, 1.0) | vec2(1.0, 1.0) | vec2(1.0, 1.0) | vec2(1.0, 1.0) ];
5161e5c31af7Sopenharmony_ci		}
5162e5c31af7Sopenharmony_ci
5163e5c31af7Sopenharmony_ci		both ""
5164e5c31af7Sopenharmony_ci			#version 300 es
5165e5c31af7Sopenharmony_ci			precision mediump float;
5166e5c31af7Sopenharmony_ci
5167e5c31af7Sopenharmony_ci			${DECLARATIONS}
5168e5c31af7Sopenharmony_ci
5169e5c31af7Sopenharmony_ci			void main()
5170e5c31af7Sopenharmony_ci			{
5171e5c31af7Sopenharmony_ci				${SETUP}
5172e5c31af7Sopenharmony_ci				out0 = in0.zz / in1.zz;
5173e5c31af7Sopenharmony_ci				${OUTPUT}
5174e5c31af7Sopenharmony_ci			}
5175e5c31af7Sopenharmony_ci		""
5176e5c31af7Sopenharmony_ci	end
5177e5c31af7Sopenharmony_ci
5178e5c31af7Sopenharmony_ci	case mediump_vec3_xyz_yzx
5179e5c31af7Sopenharmony_ci		version 300 es
5180e5c31af7Sopenharmony_ci		values
5181e5c31af7Sopenharmony_ci		{
5182e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5183e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5184e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.2, 0.666666666667, 7.5) | vec3(0.8, 1.11111111111, 1.125) | vec3(0.222222222222, 0.461538461538, 9.75) | vec3(-0.5, -1.25490196078, 1.59375) | vec3(23.25, -0.612903225806, -0.0701754385965) ];
5185e5c31af7Sopenharmony_ci		}
5186e5c31af7Sopenharmony_ci
5187e5c31af7Sopenharmony_ci		both ""
5188e5c31af7Sopenharmony_ci			#version 300 es
5189e5c31af7Sopenharmony_ci			precision mediump float;
5190e5c31af7Sopenharmony_ci
5191e5c31af7Sopenharmony_ci			${DECLARATIONS}
5192e5c31af7Sopenharmony_ci
5193e5c31af7Sopenharmony_ci			void main()
5194e5c31af7Sopenharmony_ci			{
5195e5c31af7Sopenharmony_ci				${SETUP}
5196e5c31af7Sopenharmony_ci				out0 = in0.xyz / in1.yzx;
5197e5c31af7Sopenharmony_ci				${OUTPUT}
5198e5c31af7Sopenharmony_ci			}
5199e5c31af7Sopenharmony_ci		""
5200e5c31af7Sopenharmony_ci	end
5201e5c31af7Sopenharmony_ci
5202e5c31af7Sopenharmony_ci	case mediump_vec3_zyx_yxz
5203e5c31af7Sopenharmony_ci		version 300 es
5204e5c31af7Sopenharmony_ci		values
5205e5c31af7Sopenharmony_ci		{
5206e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5207e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5208e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(1.5, 5.0, 0.133333333333) | vec3(0.9, 1.25, 0.888888888889) | vec3(2.16666666667, 4.5, 0.102564102564) | vec3(-0.796875, -2.0, 0.627450980392) | vec3(-1.63157894737, 0.0430107526882, -14.25) ];
5209e5c31af7Sopenharmony_ci		}
5210e5c31af7Sopenharmony_ci
5211e5c31af7Sopenharmony_ci		both ""
5212e5c31af7Sopenharmony_ci			#version 300 es
5213e5c31af7Sopenharmony_ci			precision mediump float;
5214e5c31af7Sopenharmony_ci
5215e5c31af7Sopenharmony_ci			${DECLARATIONS}
5216e5c31af7Sopenharmony_ci
5217e5c31af7Sopenharmony_ci			void main()
5218e5c31af7Sopenharmony_ci			{
5219e5c31af7Sopenharmony_ci				${SETUP}
5220e5c31af7Sopenharmony_ci				out0 = in0.zyx / in1.yxz;
5221e5c31af7Sopenharmony_ci				${OUTPUT}
5222e5c31af7Sopenharmony_ci			}
5223e5c31af7Sopenharmony_ci		""
5224e5c31af7Sopenharmony_ci	end
5225e5c31af7Sopenharmony_ci
5226e5c31af7Sopenharmony_ci	case mediump_vec3_xxx_xxx
5227e5c31af7Sopenharmony_ci		version 300 es
5228e5c31af7Sopenharmony_ci		values
5229e5c31af7Sopenharmony_ci		{
5230e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5231e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5232e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(1.0, 1.0, 1.0) | vec3(1.0, 1.0, 1.0) | vec3(1.0, 1.0, 1.0) | vec3(1.0, 1.0, 1.0) | vec3(1.0, 1.0, 1.0) ];
5233e5c31af7Sopenharmony_ci		}
5234e5c31af7Sopenharmony_ci
5235e5c31af7Sopenharmony_ci		both ""
5236e5c31af7Sopenharmony_ci			#version 300 es
5237e5c31af7Sopenharmony_ci			precision mediump float;
5238e5c31af7Sopenharmony_ci
5239e5c31af7Sopenharmony_ci			${DECLARATIONS}
5240e5c31af7Sopenharmony_ci
5241e5c31af7Sopenharmony_ci			void main()
5242e5c31af7Sopenharmony_ci			{
5243e5c31af7Sopenharmony_ci				${SETUP}
5244e5c31af7Sopenharmony_ci				out0 = in0.xxx / in1.xxx;
5245e5c31af7Sopenharmony_ci				${OUTPUT}
5246e5c31af7Sopenharmony_ci			}
5247e5c31af7Sopenharmony_ci		""
5248e5c31af7Sopenharmony_ci	end
5249e5c31af7Sopenharmony_ci
5250e5c31af7Sopenharmony_ci	case mediump_vec3_zzz_zzz
5251e5c31af7Sopenharmony_ci		version 300 es
5252e5c31af7Sopenharmony_ci		values
5253e5c31af7Sopenharmony_ci		{
5254e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5255e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5256e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(1.0, 1.0, 1.0) | vec3(1.0, 1.0, 1.0) | vec3(1.0, 1.0, 1.0) | vec3(1.0, 1.0, 1.0) | vec3(1.0, 1.0, 1.0) ];
5257e5c31af7Sopenharmony_ci		}
5258e5c31af7Sopenharmony_ci
5259e5c31af7Sopenharmony_ci		both ""
5260e5c31af7Sopenharmony_ci			#version 300 es
5261e5c31af7Sopenharmony_ci			precision mediump float;
5262e5c31af7Sopenharmony_ci
5263e5c31af7Sopenharmony_ci			${DECLARATIONS}
5264e5c31af7Sopenharmony_ci
5265e5c31af7Sopenharmony_ci			void main()
5266e5c31af7Sopenharmony_ci			{
5267e5c31af7Sopenharmony_ci				${SETUP}
5268e5c31af7Sopenharmony_ci				out0 = in0.zzz / in1.zzz;
5269e5c31af7Sopenharmony_ci				${OUTPUT}
5270e5c31af7Sopenharmony_ci			}
5271e5c31af7Sopenharmony_ci		""
5272e5c31af7Sopenharmony_ci	end
5273e5c31af7Sopenharmony_ci
5274e5c31af7Sopenharmony_ci	case mediump_vec3_zzy_zyz
5275e5c31af7Sopenharmony_ci		version 300 es
5276e5c31af7Sopenharmony_ci		values
5277e5c31af7Sopenharmony_ci		{
5278e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5279e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5280e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(1.0, 1.5, 0.666666666667) | vec3(1.0, 0.9, 1.11111111111) | vec3(1.0, 2.16666666667, 0.461538461538) | vec3(1.0, -0.796875, -1.25490196078) | vec3(1.0, -1.63157894737, -0.612903225806) ];
5281e5c31af7Sopenharmony_ci		}
5282e5c31af7Sopenharmony_ci
5283e5c31af7Sopenharmony_ci		both ""
5284e5c31af7Sopenharmony_ci			#version 300 es
5285e5c31af7Sopenharmony_ci			precision mediump float;
5286e5c31af7Sopenharmony_ci
5287e5c31af7Sopenharmony_ci			${DECLARATIONS}
5288e5c31af7Sopenharmony_ci
5289e5c31af7Sopenharmony_ci			void main()
5290e5c31af7Sopenharmony_ci			{
5291e5c31af7Sopenharmony_ci				${SETUP}
5292e5c31af7Sopenharmony_ci				out0 = in0.zzy / in1.zyz;
5293e5c31af7Sopenharmony_ci				${OUTPUT}
5294e5c31af7Sopenharmony_ci			}
5295e5c31af7Sopenharmony_ci		""
5296e5c31af7Sopenharmony_ci	end
5297e5c31af7Sopenharmony_ci
5298e5c31af7Sopenharmony_ci	case mediump_vec3_yxy_xyy
5299e5c31af7Sopenharmony_ci		version 300 es
5300e5c31af7Sopenharmony_ci		values
5301e5c31af7Sopenharmony_ci		{
5302e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5303e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5304e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(5.0, 0.2, 1.0) | vec3(1.25, 0.8, 1.0) | vec3(4.5, 0.222222222222, 1.0) | vec3(-2.0, -0.5, 1.0) | vec3(0.0430107526882, 23.25, 1.0) ];
5305e5c31af7Sopenharmony_ci		}
5306e5c31af7Sopenharmony_ci
5307e5c31af7Sopenharmony_ci		both ""
5308e5c31af7Sopenharmony_ci			#version 300 es
5309e5c31af7Sopenharmony_ci			precision mediump float;
5310e5c31af7Sopenharmony_ci
5311e5c31af7Sopenharmony_ci			${DECLARATIONS}
5312e5c31af7Sopenharmony_ci
5313e5c31af7Sopenharmony_ci			void main()
5314e5c31af7Sopenharmony_ci			{
5315e5c31af7Sopenharmony_ci				${SETUP}
5316e5c31af7Sopenharmony_ci				out0 = in0.yxy / in1.xyy;
5317e5c31af7Sopenharmony_ci				${OUTPUT}
5318e5c31af7Sopenharmony_ci			}
5319e5c31af7Sopenharmony_ci		""
5320e5c31af7Sopenharmony_ci	end
5321e5c31af7Sopenharmony_ci
5322e5c31af7Sopenharmony_ci	case mediump_vec3_xzx_zxx
5323e5c31af7Sopenharmony_ci		version 300 es
5324e5c31af7Sopenharmony_ci		values
5325e5c31af7Sopenharmony_ci		{
5326e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5327e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5328e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(0.133333333333, 7.5, 1.0) | vec3(0.888888888889, 1.125, 1.0) | vec3(0.102564102564, 9.75, 1.0) | vec3(0.627450980392, 1.59375, 1.0) | vec3(-14.25, -0.0701754385965, 1.0) ];
5329e5c31af7Sopenharmony_ci		}
5330e5c31af7Sopenharmony_ci
5331e5c31af7Sopenharmony_ci		both ""
5332e5c31af7Sopenharmony_ci			#version 300 es
5333e5c31af7Sopenharmony_ci			precision mediump float;
5334e5c31af7Sopenharmony_ci
5335e5c31af7Sopenharmony_ci			${DECLARATIONS}
5336e5c31af7Sopenharmony_ci
5337e5c31af7Sopenharmony_ci			void main()
5338e5c31af7Sopenharmony_ci			{
5339e5c31af7Sopenharmony_ci				${SETUP}
5340e5c31af7Sopenharmony_ci				out0 = in0.xzx / in1.zxx;
5341e5c31af7Sopenharmony_ci				${OUTPUT}
5342e5c31af7Sopenharmony_ci			}
5343e5c31af7Sopenharmony_ci		""
5344e5c31af7Sopenharmony_ci	end
5345e5c31af7Sopenharmony_ci
5346e5c31af7Sopenharmony_ci	case mediump_vec3_xyyx_yyxx
5347e5c31af7Sopenharmony_ci		version 300 es
5348e5c31af7Sopenharmony_ci		values
5349e5c31af7Sopenharmony_ci		{
5350e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5351e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5352e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.2, 1.0, 5.0, 1.0) | vec4(0.8, 1.0, 1.25, 1.0) | vec4(0.222222222222, 1.0, 4.5, 1.0) | vec4(-0.5, 1.0, -2.0, 1.0) | vec4(23.25, 1.0, 0.0430107526882, 1.0) ];
5353e5c31af7Sopenharmony_ci		}
5354e5c31af7Sopenharmony_ci
5355e5c31af7Sopenharmony_ci		both ""
5356e5c31af7Sopenharmony_ci			#version 300 es
5357e5c31af7Sopenharmony_ci			precision mediump float;
5358e5c31af7Sopenharmony_ci
5359e5c31af7Sopenharmony_ci			${DECLARATIONS}
5360e5c31af7Sopenharmony_ci
5361e5c31af7Sopenharmony_ci			void main()
5362e5c31af7Sopenharmony_ci			{
5363e5c31af7Sopenharmony_ci				${SETUP}
5364e5c31af7Sopenharmony_ci				out0 = in0.xyyx / in1.yyxx;
5365e5c31af7Sopenharmony_ci				${OUTPUT}
5366e5c31af7Sopenharmony_ci			}
5367e5c31af7Sopenharmony_ci		""
5368e5c31af7Sopenharmony_ci	end
5369e5c31af7Sopenharmony_ci
5370e5c31af7Sopenharmony_ci	case mediump_vec3_zxyz_xyzz
5371e5c31af7Sopenharmony_ci		version 300 es
5372e5c31af7Sopenharmony_ci		values
5373e5c31af7Sopenharmony_ci		{
5374e5c31af7Sopenharmony_ci			input vec3 in0 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5375e5c31af7Sopenharmony_ci			input vec3 in1 = [ vec3(0.1, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
5376e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(7.5, 0.2, 0.666666666667, 1.0) | vec4(1.125, 0.8, 1.11111111111, 1.0) | vec4(9.75, 0.222222222222, 0.461538461538, 1.0) | vec4(1.59375, -0.5, -1.25490196078, 1.0) | vec4(-0.0701754385965, 23.25, -0.612903225806, 1.0) ];
5377e5c31af7Sopenharmony_ci		}
5378e5c31af7Sopenharmony_ci
5379e5c31af7Sopenharmony_ci		both ""
5380e5c31af7Sopenharmony_ci			#version 300 es
5381e5c31af7Sopenharmony_ci			precision mediump float;
5382e5c31af7Sopenharmony_ci
5383e5c31af7Sopenharmony_ci			${DECLARATIONS}
5384e5c31af7Sopenharmony_ci
5385e5c31af7Sopenharmony_ci			void main()
5386e5c31af7Sopenharmony_ci			{
5387e5c31af7Sopenharmony_ci				${SETUP}
5388e5c31af7Sopenharmony_ci				out0 = in0.zxyz / in1.xyzz;
5389e5c31af7Sopenharmony_ci				${OUTPUT}
5390e5c31af7Sopenharmony_ci			}
5391e5c31af7Sopenharmony_ci		""
5392e5c31af7Sopenharmony_ci	end
5393e5c31af7Sopenharmony_ci
5394e5c31af7Sopenharmony_ci	case mediump_vec4_x_x
5395e5c31af7Sopenharmony_ci		version 300 es
5396e5c31af7Sopenharmony_ci		values
5397e5c31af7Sopenharmony_ci		{
5398e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5399e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5400e5c31af7Sopenharmony_ci			output float out0 = [ 1.0 | 1.0 | 1.0 | 1.0 | 1.0 ];
5401e5c31af7Sopenharmony_ci		}
5402e5c31af7Sopenharmony_ci
5403e5c31af7Sopenharmony_ci		both ""
5404e5c31af7Sopenharmony_ci			#version 300 es
5405e5c31af7Sopenharmony_ci			precision mediump float;
5406e5c31af7Sopenharmony_ci
5407e5c31af7Sopenharmony_ci			${DECLARATIONS}
5408e5c31af7Sopenharmony_ci
5409e5c31af7Sopenharmony_ci			void main()
5410e5c31af7Sopenharmony_ci			{
5411e5c31af7Sopenharmony_ci				${SETUP}
5412e5c31af7Sopenharmony_ci				out0 = in0.x / in1.x;
5413e5c31af7Sopenharmony_ci				${OUTPUT}
5414e5c31af7Sopenharmony_ci			}
5415e5c31af7Sopenharmony_ci		""
5416e5c31af7Sopenharmony_ci	end
5417e5c31af7Sopenharmony_ci
5418e5c31af7Sopenharmony_ci	case mediump_vec4_w_w
5419e5c31af7Sopenharmony_ci		version 300 es
5420e5c31af7Sopenharmony_ci		values
5421e5c31af7Sopenharmony_ci		{
5422e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5423e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5424e5c31af7Sopenharmony_ci			output float out0 = [ 1.0 | 1.0 | 1.0 | 1.0 | 1.0 ];
5425e5c31af7Sopenharmony_ci		}
5426e5c31af7Sopenharmony_ci
5427e5c31af7Sopenharmony_ci		both ""
5428e5c31af7Sopenharmony_ci			#version 300 es
5429e5c31af7Sopenharmony_ci			precision mediump float;
5430e5c31af7Sopenharmony_ci
5431e5c31af7Sopenharmony_ci			${DECLARATIONS}
5432e5c31af7Sopenharmony_ci
5433e5c31af7Sopenharmony_ci			void main()
5434e5c31af7Sopenharmony_ci			{
5435e5c31af7Sopenharmony_ci				${SETUP}
5436e5c31af7Sopenharmony_ci				out0 = in0.w / in1.w;
5437e5c31af7Sopenharmony_ci				${OUTPUT}
5438e5c31af7Sopenharmony_ci			}
5439e5c31af7Sopenharmony_ci		""
5440e5c31af7Sopenharmony_ci	end
5441e5c31af7Sopenharmony_ci
5442e5c31af7Sopenharmony_ci	case mediump_vec4_wx_xw
5443e5c31af7Sopenharmony_ci		version 300 es
5444e5c31af7Sopenharmony_ci		values
5445e5c31af7Sopenharmony_ci		{
5446e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5447e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5448e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(8.25, 0.121212121212) | vec2(1.75, 0.571428571429) | vec2(-18.0, -0.0555555555556) | vec2(-0.75, -1.33333333333) | vec2(-0.333333333333, -3.0) ];
5449e5c31af7Sopenharmony_ci		}
5450e5c31af7Sopenharmony_ci
5451e5c31af7Sopenharmony_ci		both ""
5452e5c31af7Sopenharmony_ci			#version 300 es
5453e5c31af7Sopenharmony_ci			precision mediump float;
5454e5c31af7Sopenharmony_ci
5455e5c31af7Sopenharmony_ci			${DECLARATIONS}
5456e5c31af7Sopenharmony_ci
5457e5c31af7Sopenharmony_ci			void main()
5458e5c31af7Sopenharmony_ci			{
5459e5c31af7Sopenharmony_ci				${SETUP}
5460e5c31af7Sopenharmony_ci				out0 = in0.wx / in1.xw;
5461e5c31af7Sopenharmony_ci				${OUTPUT}
5462e5c31af7Sopenharmony_ci			}
5463e5c31af7Sopenharmony_ci		""
5464e5c31af7Sopenharmony_ci	end
5465e5c31af7Sopenharmony_ci
5466e5c31af7Sopenharmony_ci	case mediump_vec4_wz_zw
5467e5c31af7Sopenharmony_ci		version 300 es
5468e5c31af7Sopenharmony_ci		values
5469e5c31af7Sopenharmony_ci		{
5470e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5471e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5472e5c31af7Sopenharmony_ci			output vec2 out0 = [ vec2(1.1, 0.909090909091) | vec2(1.55555555556, 0.642857142857) | vec2(-1.84615384615, -0.541666666667) | vec2(-0.470588235294, -2.125) | vec2(4.75, 0.210526315789) ];
5473e5c31af7Sopenharmony_ci		}
5474e5c31af7Sopenharmony_ci
5475e5c31af7Sopenharmony_ci		both ""
5476e5c31af7Sopenharmony_ci			#version 300 es
5477e5c31af7Sopenharmony_ci			precision mediump float;
5478e5c31af7Sopenharmony_ci
5479e5c31af7Sopenharmony_ci			${DECLARATIONS}
5480e5c31af7Sopenharmony_ci
5481e5c31af7Sopenharmony_ci			void main()
5482e5c31af7Sopenharmony_ci			{
5483e5c31af7Sopenharmony_ci				${SETUP}
5484e5c31af7Sopenharmony_ci				out0 = in0.wz / in1.zw;
5485e5c31af7Sopenharmony_ci				${OUTPUT}
5486e5c31af7Sopenharmony_ci			}
5487e5c31af7Sopenharmony_ci		""
5488e5c31af7Sopenharmony_ci	end
5489e5c31af7Sopenharmony_ci
5490e5c31af7Sopenharmony_ci	case mediump_vec4_www_www
5491e5c31af7Sopenharmony_ci		version 300 es
5492e5c31af7Sopenharmony_ci		values
5493e5c31af7Sopenharmony_ci		{
5494e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5495e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5496e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(1.0, 1.0, 1.0) | vec3(1.0, 1.0, 1.0) | vec3(1.0, 1.0, 1.0) | vec3(1.0, 1.0, 1.0) | vec3(1.0, 1.0, 1.0) ];
5497e5c31af7Sopenharmony_ci		}
5498e5c31af7Sopenharmony_ci
5499e5c31af7Sopenharmony_ci		both ""
5500e5c31af7Sopenharmony_ci			#version 300 es
5501e5c31af7Sopenharmony_ci			precision mediump float;
5502e5c31af7Sopenharmony_ci
5503e5c31af7Sopenharmony_ci			${DECLARATIONS}
5504e5c31af7Sopenharmony_ci
5505e5c31af7Sopenharmony_ci			void main()
5506e5c31af7Sopenharmony_ci			{
5507e5c31af7Sopenharmony_ci				${SETUP}
5508e5c31af7Sopenharmony_ci				out0 = in0.www / in1.www;
5509e5c31af7Sopenharmony_ci				${OUTPUT}
5510e5c31af7Sopenharmony_ci			}
5511e5c31af7Sopenharmony_ci		""
5512e5c31af7Sopenharmony_ci	end
5513e5c31af7Sopenharmony_ci
5514e5c31af7Sopenharmony_ci	case mediump_vec4_yyw_ywy
5515e5c31af7Sopenharmony_ci		version 300 es
5516e5c31af7Sopenharmony_ci		values
5517e5c31af7Sopenharmony_ci		{
5518e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5519e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5520e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(1.0, 0.606060606061, 1.65) | vec3(1.0, 0.714285714286, 1.4) | vec3(1.0, -0.25, -4.0) | vec3(1.0, 2.66666666667, 0.375) | vec3(1.0, -0.129032258065, -7.75) ];
5521e5c31af7Sopenharmony_ci		}
5522e5c31af7Sopenharmony_ci
5523e5c31af7Sopenharmony_ci		both ""
5524e5c31af7Sopenharmony_ci			#version 300 es
5525e5c31af7Sopenharmony_ci			precision mediump float;
5526e5c31af7Sopenharmony_ci
5527e5c31af7Sopenharmony_ci			${DECLARATIONS}
5528e5c31af7Sopenharmony_ci
5529e5c31af7Sopenharmony_ci			void main()
5530e5c31af7Sopenharmony_ci			{
5531e5c31af7Sopenharmony_ci				${SETUP}
5532e5c31af7Sopenharmony_ci				out0 = in0.yyw / in1.ywy;
5533e5c31af7Sopenharmony_ci				${OUTPUT}
5534e5c31af7Sopenharmony_ci			}
5535e5c31af7Sopenharmony_ci		""
5536e5c31af7Sopenharmony_ci	end
5537e5c31af7Sopenharmony_ci
5538e5c31af7Sopenharmony_ci	case mediump_vec4_wzy_zyw
5539e5c31af7Sopenharmony_ci		version 300 es
5540e5c31af7Sopenharmony_ci		values
5541e5c31af7Sopenharmony_ci		{
5542e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5543e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5544e5c31af7Sopenharmony_ci			output vec3 out0 = [ vec3(1.1, 1.5, 0.606060606061) | vec3(1.55555555556, 0.9, 0.714285714286) | vec3(-1.84615384615, 2.16666666667, -0.25) | vec3(-0.470588235294, -0.796875, 2.66666666667) | vec3(4.75, -1.63157894737, -0.129032258065) ];
5545e5c31af7Sopenharmony_ci		}
5546e5c31af7Sopenharmony_ci
5547e5c31af7Sopenharmony_ci		both ""
5548e5c31af7Sopenharmony_ci			#version 300 es
5549e5c31af7Sopenharmony_ci			precision mediump float;
5550e5c31af7Sopenharmony_ci
5551e5c31af7Sopenharmony_ci			${DECLARATIONS}
5552e5c31af7Sopenharmony_ci
5553e5c31af7Sopenharmony_ci			void main()
5554e5c31af7Sopenharmony_ci			{
5555e5c31af7Sopenharmony_ci				${SETUP}
5556e5c31af7Sopenharmony_ci				out0 = in0.wzy / in1.zyw;
5557e5c31af7Sopenharmony_ci				${OUTPUT}
5558e5c31af7Sopenharmony_ci			}
5559e5c31af7Sopenharmony_ci		""
5560e5c31af7Sopenharmony_ci	end
5561e5c31af7Sopenharmony_ci
5562e5c31af7Sopenharmony_ci	case mediump_vec4_xyzw_yzwx
5563e5c31af7Sopenharmony_ci		version 300 es
5564e5c31af7Sopenharmony_ci		values
5565e5c31af7Sopenharmony_ci		{
5566e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5567e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5568e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.2, 0.666666666667, 0.909090909091, 8.25) | vec4(0.8, 1.11111111111, 0.642857142857, 1.75) | vec4(0.222222222222, 0.461538461538, -0.541666666667, -18.0) | vec4(-0.5, -1.25490196078, -2.125, -0.75) | vec4(23.25, -0.612903225806, 0.210526315789, -0.333333333333) ];
5569e5c31af7Sopenharmony_ci		}
5570e5c31af7Sopenharmony_ci
5571e5c31af7Sopenharmony_ci		both ""
5572e5c31af7Sopenharmony_ci			#version 300 es
5573e5c31af7Sopenharmony_ci			precision mediump float;
5574e5c31af7Sopenharmony_ci
5575e5c31af7Sopenharmony_ci			${DECLARATIONS}
5576e5c31af7Sopenharmony_ci
5577e5c31af7Sopenharmony_ci			void main()
5578e5c31af7Sopenharmony_ci			{
5579e5c31af7Sopenharmony_ci				${SETUP}
5580e5c31af7Sopenharmony_ci				out0 = in0.xyzw / in1.yzwx;
5581e5c31af7Sopenharmony_ci				${OUTPUT}
5582e5c31af7Sopenharmony_ci			}
5583e5c31af7Sopenharmony_ci		""
5584e5c31af7Sopenharmony_ci	end
5585e5c31af7Sopenharmony_ci
5586e5c31af7Sopenharmony_ci	case mediump_vec4_wzyx_zyxw
5587e5c31af7Sopenharmony_ci		version 300 es
5588e5c31af7Sopenharmony_ci		values
5589e5c31af7Sopenharmony_ci		{
5590e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5591e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5592e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(1.1, 1.5, 5.0, 0.121212121212) | vec4(1.55555555556, 0.9, 1.25, 0.571428571429) | vec4(-1.84615384615, 2.16666666667, 4.5, -0.0555555555556) | vec4(-0.470588235294, -0.796875, -2.0, -1.33333333333) | vec4(4.75, -1.63157894737, 0.0430107526882, -3.0) ];
5593e5c31af7Sopenharmony_ci		}
5594e5c31af7Sopenharmony_ci
5595e5c31af7Sopenharmony_ci		both ""
5596e5c31af7Sopenharmony_ci			#version 300 es
5597e5c31af7Sopenharmony_ci			precision mediump float;
5598e5c31af7Sopenharmony_ci
5599e5c31af7Sopenharmony_ci			${DECLARATIONS}
5600e5c31af7Sopenharmony_ci
5601e5c31af7Sopenharmony_ci			void main()
5602e5c31af7Sopenharmony_ci			{
5603e5c31af7Sopenharmony_ci				${SETUP}
5604e5c31af7Sopenharmony_ci				out0 = in0.wzyx / in1.zyxw;
5605e5c31af7Sopenharmony_ci				${OUTPUT}
5606e5c31af7Sopenharmony_ci			}
5607e5c31af7Sopenharmony_ci		""
5608e5c31af7Sopenharmony_ci	end
5609e5c31af7Sopenharmony_ci
5610e5c31af7Sopenharmony_ci	case mediump_vec4_xyxy_yxyx
5611e5c31af7Sopenharmony_ci		version 300 es
5612e5c31af7Sopenharmony_ci		values
5613e5c31af7Sopenharmony_ci		{
5614e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5615e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5616e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.2, 5.0, 0.2, 5.0) | vec4(0.8, 1.25, 0.8, 1.25) | vec4(0.222222222222, 4.5, 0.222222222222, 4.5) | vec4(-0.5, -2.0, -0.5, -2.0) | vec4(23.25, 0.0430107526882, 23.25, 0.0430107526882) ];
5617e5c31af7Sopenharmony_ci		}
5618e5c31af7Sopenharmony_ci
5619e5c31af7Sopenharmony_ci		both ""
5620e5c31af7Sopenharmony_ci			#version 300 es
5621e5c31af7Sopenharmony_ci			precision mediump float;
5622e5c31af7Sopenharmony_ci
5623e5c31af7Sopenharmony_ci			${DECLARATIONS}
5624e5c31af7Sopenharmony_ci
5625e5c31af7Sopenharmony_ci			void main()
5626e5c31af7Sopenharmony_ci			{
5627e5c31af7Sopenharmony_ci				${SETUP}
5628e5c31af7Sopenharmony_ci				out0 = in0.xyxy / in1.yxyx;
5629e5c31af7Sopenharmony_ci				${OUTPUT}
5630e5c31af7Sopenharmony_ci			}
5631e5c31af7Sopenharmony_ci		""
5632e5c31af7Sopenharmony_ci	end
5633e5c31af7Sopenharmony_ci
5634e5c31af7Sopenharmony_ci	case mediump_vec4_yzzy_zzyy
5635e5c31af7Sopenharmony_ci		version 300 es
5636e5c31af7Sopenharmony_ci		values
5637e5c31af7Sopenharmony_ci		{
5638e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5639e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5640e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.666666666667, 1.0, 1.5, 1.0) | vec4(1.11111111111, 1.0, 0.9, 1.0) | vec4(0.461538461538, 1.0, 2.16666666667, 1.0) | vec4(-1.25490196078, 1.0, -0.796875, 1.0) | vec4(-0.612903225806, 1.0, -1.63157894737, 1.0) ];
5641e5c31af7Sopenharmony_ci		}
5642e5c31af7Sopenharmony_ci
5643e5c31af7Sopenharmony_ci		both ""
5644e5c31af7Sopenharmony_ci			#version 300 es
5645e5c31af7Sopenharmony_ci			precision mediump float;
5646e5c31af7Sopenharmony_ci
5647e5c31af7Sopenharmony_ci			${DECLARATIONS}
5648e5c31af7Sopenharmony_ci
5649e5c31af7Sopenharmony_ci			void main()
5650e5c31af7Sopenharmony_ci			{
5651e5c31af7Sopenharmony_ci				${SETUP}
5652e5c31af7Sopenharmony_ci				out0 = in0.yzzy / in1.zzyy;
5653e5c31af7Sopenharmony_ci				${OUTPUT}
5654e5c31af7Sopenharmony_ci			}
5655e5c31af7Sopenharmony_ci		""
5656e5c31af7Sopenharmony_ci	end
5657e5c31af7Sopenharmony_ci
5658e5c31af7Sopenharmony_ci	case mediump_vec4_wxww_xwww
5659e5c31af7Sopenharmony_ci		version 300 es
5660e5c31af7Sopenharmony_ci		values
5661e5c31af7Sopenharmony_ci		{
5662e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5663e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5664e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(8.25, 0.121212121212, 1.0, 1.0) | vec4(1.75, 0.571428571429, 1.0, 1.0) | vec4(-18.0, -0.0555555555556, 1.0, 1.0) | vec4(-0.75, -1.33333333333, 1.0, 1.0) | vec4(-0.333333333333, -3.0, 1.0, 1.0) ];
5665e5c31af7Sopenharmony_ci		}
5666e5c31af7Sopenharmony_ci
5667e5c31af7Sopenharmony_ci		both ""
5668e5c31af7Sopenharmony_ci			#version 300 es
5669e5c31af7Sopenharmony_ci			precision mediump float;
5670e5c31af7Sopenharmony_ci
5671e5c31af7Sopenharmony_ci			${DECLARATIONS}
5672e5c31af7Sopenharmony_ci
5673e5c31af7Sopenharmony_ci			void main()
5674e5c31af7Sopenharmony_ci			{
5675e5c31af7Sopenharmony_ci				${SETUP}
5676e5c31af7Sopenharmony_ci				out0 = in0.wxww / in1.xwww;
5677e5c31af7Sopenharmony_ci				${OUTPUT}
5678e5c31af7Sopenharmony_ci			}
5679e5c31af7Sopenharmony_ci		""
5680e5c31af7Sopenharmony_ci	end
5681e5c31af7Sopenharmony_ci
5682e5c31af7Sopenharmony_ci	case mediump_vec4_xyxx_yxxx
5683e5c31af7Sopenharmony_ci		version 300 es
5684e5c31af7Sopenharmony_ci		values
5685e5c31af7Sopenharmony_ci		{
5686e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5687e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5688e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(0.2, 5.0, 1.0, 1.0) | vec4(0.8, 1.25, 1.0, 1.0) | vec4(0.222222222222, 4.5, 1.0, 1.0) | vec4(-0.5, -2.0, 1.0, 1.0) | vec4(23.25, 0.0430107526882, 1.0, 1.0) ];
5689e5c31af7Sopenharmony_ci		}
5690e5c31af7Sopenharmony_ci
5691e5c31af7Sopenharmony_ci		both ""
5692e5c31af7Sopenharmony_ci			#version 300 es
5693e5c31af7Sopenharmony_ci			precision mediump float;
5694e5c31af7Sopenharmony_ci
5695e5c31af7Sopenharmony_ci			${DECLARATIONS}
5696e5c31af7Sopenharmony_ci
5697e5c31af7Sopenharmony_ci			void main()
5698e5c31af7Sopenharmony_ci			{
5699e5c31af7Sopenharmony_ci				${SETUP}
5700e5c31af7Sopenharmony_ci				out0 = in0.xyxx / in1.yxxx;
5701e5c31af7Sopenharmony_ci				${OUTPUT}
5702e5c31af7Sopenharmony_ci			}
5703e5c31af7Sopenharmony_ci		""
5704e5c31af7Sopenharmony_ci	end
5705e5c31af7Sopenharmony_ci
5706e5c31af7Sopenharmony_ci	case mediump_vec4_zzzz_zzzz
5707e5c31af7Sopenharmony_ci		version 300 es
5708e5c31af7Sopenharmony_ci		values
5709e5c31af7Sopenharmony_ci		{
5710e5c31af7Sopenharmony_ci			input vec4 in0 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5711e5c31af7Sopenharmony_ci			input vec4 in1 = [ vec4(0.1, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
5712e5c31af7Sopenharmony_ci			output vec4 out0 = [ vec4(1.0, 1.0, 1.0, 1.0) | vec4(1.0, 1.0, 1.0, 1.0) | vec4(1.0, 1.0, 1.0, 1.0) | vec4(1.0, 1.0, 1.0, 1.0) | vec4(1.0, 1.0, 1.0, 1.0) ];
5713e5c31af7Sopenharmony_ci		}
5714e5c31af7Sopenharmony_ci
5715e5c31af7Sopenharmony_ci		both ""
5716e5c31af7Sopenharmony_ci			#version 300 es
5717e5c31af7Sopenharmony_ci			precision mediump float;
5718e5c31af7Sopenharmony_ci
5719e5c31af7Sopenharmony_ci			${DECLARATIONS}
5720e5c31af7Sopenharmony_ci
5721e5c31af7Sopenharmony_ci			void main()
5722e5c31af7Sopenharmony_ci			{
5723e5c31af7Sopenharmony_ci				${SETUP}
5724e5c31af7Sopenharmony_ci				out0 = in0.zzzz / in1.zzzz;
5725e5c31af7Sopenharmony_ci				${OUTPUT}
5726e5c31af7Sopenharmony_ci			}
5727e5c31af7Sopenharmony_ci		""
5728e5c31af7Sopenharmony_ci	end
5729e5c31af7Sopenharmony_ci
5730e5c31af7Sopenharmony_ci	case mediump_ivec2_x_x
5731e5c31af7Sopenharmony_ci		version 300 es
5732e5c31af7Sopenharmony_ci		values
5733e5c31af7Sopenharmony_ci		{
5734e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
5735e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
5736e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 1 | 1 ];
5737e5c31af7Sopenharmony_ci		}
5738e5c31af7Sopenharmony_ci
5739e5c31af7Sopenharmony_ci		both ""
5740e5c31af7Sopenharmony_ci			#version 300 es
5741e5c31af7Sopenharmony_ci			precision mediump float;
5742e5c31af7Sopenharmony_ci
5743e5c31af7Sopenharmony_ci			${DECLARATIONS}
5744e5c31af7Sopenharmony_ci
5745e5c31af7Sopenharmony_ci			void main()
5746e5c31af7Sopenharmony_ci			{
5747e5c31af7Sopenharmony_ci				${SETUP}
5748e5c31af7Sopenharmony_ci				out0 = in0.x / in1.x;
5749e5c31af7Sopenharmony_ci				${OUTPUT}
5750e5c31af7Sopenharmony_ci			}
5751e5c31af7Sopenharmony_ci		""
5752e5c31af7Sopenharmony_ci	end
5753e5c31af7Sopenharmony_ci
5754e5c31af7Sopenharmony_ci	case mediump_ivec2_xx_xx
5755e5c31af7Sopenharmony_ci		version 300 es
5756e5c31af7Sopenharmony_ci		values
5757e5c31af7Sopenharmony_ci		{
5758e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
5759e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
5760e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(1, 1) | ivec2(1, 1) | ivec2(1, 1) ];
5761e5c31af7Sopenharmony_ci		}
5762e5c31af7Sopenharmony_ci
5763e5c31af7Sopenharmony_ci		both ""
5764e5c31af7Sopenharmony_ci			#version 300 es
5765e5c31af7Sopenharmony_ci			precision mediump float;
5766e5c31af7Sopenharmony_ci
5767e5c31af7Sopenharmony_ci			${DECLARATIONS}
5768e5c31af7Sopenharmony_ci
5769e5c31af7Sopenharmony_ci			void main()
5770e5c31af7Sopenharmony_ci			{
5771e5c31af7Sopenharmony_ci				${SETUP}
5772e5c31af7Sopenharmony_ci				out0 = in0.xx / in1.xx;
5773e5c31af7Sopenharmony_ci				${OUTPUT}
5774e5c31af7Sopenharmony_ci			}
5775e5c31af7Sopenharmony_ci		""
5776e5c31af7Sopenharmony_ci	end
5777e5c31af7Sopenharmony_ci
5778e5c31af7Sopenharmony_ci	case mediump_ivec2_xy_yx
5779e5c31af7Sopenharmony_ci		version 300 es
5780e5c31af7Sopenharmony_ci		values
5781e5c31af7Sopenharmony_ci		{
5782e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
5783e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
5784e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(-1, -1) | ivec2(0, 2) | ivec2(0, 2) ];
5785e5c31af7Sopenharmony_ci		}
5786e5c31af7Sopenharmony_ci
5787e5c31af7Sopenharmony_ci		both ""
5788e5c31af7Sopenharmony_ci			#version 300 es
5789e5c31af7Sopenharmony_ci			precision mediump float;
5790e5c31af7Sopenharmony_ci
5791e5c31af7Sopenharmony_ci			${DECLARATIONS}
5792e5c31af7Sopenharmony_ci
5793e5c31af7Sopenharmony_ci			void main()
5794e5c31af7Sopenharmony_ci			{
5795e5c31af7Sopenharmony_ci				${SETUP}
5796e5c31af7Sopenharmony_ci				out0 = in0.xy / in1.yx;
5797e5c31af7Sopenharmony_ci				${OUTPUT}
5798e5c31af7Sopenharmony_ci			}
5799e5c31af7Sopenharmony_ci		""
5800e5c31af7Sopenharmony_ci	end
5801e5c31af7Sopenharmony_ci
5802e5c31af7Sopenharmony_ci	case mediump_ivec2_yx_xy
5803e5c31af7Sopenharmony_ci		version 300 es
5804e5c31af7Sopenharmony_ci		values
5805e5c31af7Sopenharmony_ci		{
5806e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
5807e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
5808e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(-1, -1) | ivec2(2, 0) | ivec2(2, 0) ];
5809e5c31af7Sopenharmony_ci		}
5810e5c31af7Sopenharmony_ci
5811e5c31af7Sopenharmony_ci		both ""
5812e5c31af7Sopenharmony_ci			#version 300 es
5813e5c31af7Sopenharmony_ci			precision mediump float;
5814e5c31af7Sopenharmony_ci
5815e5c31af7Sopenharmony_ci			${DECLARATIONS}
5816e5c31af7Sopenharmony_ci
5817e5c31af7Sopenharmony_ci			void main()
5818e5c31af7Sopenharmony_ci			{
5819e5c31af7Sopenharmony_ci				${SETUP}
5820e5c31af7Sopenharmony_ci				out0 = in0.yx / in1.xy;
5821e5c31af7Sopenharmony_ci				${OUTPUT}
5822e5c31af7Sopenharmony_ci			}
5823e5c31af7Sopenharmony_ci		""
5824e5c31af7Sopenharmony_ci	end
5825e5c31af7Sopenharmony_ci
5826e5c31af7Sopenharmony_ci	case mediump_ivec2_yxy_xyy
5827e5c31af7Sopenharmony_ci		version 300 es
5828e5c31af7Sopenharmony_ci		values
5829e5c31af7Sopenharmony_ci		{
5830e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
5831e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
5832e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(-1, -1, 1) | ivec3(2, 0, 1) | ivec3(2, 0, 1) ];
5833e5c31af7Sopenharmony_ci		}
5834e5c31af7Sopenharmony_ci
5835e5c31af7Sopenharmony_ci		both ""
5836e5c31af7Sopenharmony_ci			#version 300 es
5837e5c31af7Sopenharmony_ci			precision mediump float;
5838e5c31af7Sopenharmony_ci
5839e5c31af7Sopenharmony_ci			${DECLARATIONS}
5840e5c31af7Sopenharmony_ci
5841e5c31af7Sopenharmony_ci			void main()
5842e5c31af7Sopenharmony_ci			{
5843e5c31af7Sopenharmony_ci				${SETUP}
5844e5c31af7Sopenharmony_ci				out0 = in0.yxy / in1.xyy;
5845e5c31af7Sopenharmony_ci				${OUTPUT}
5846e5c31af7Sopenharmony_ci			}
5847e5c31af7Sopenharmony_ci		""
5848e5c31af7Sopenharmony_ci	end
5849e5c31af7Sopenharmony_ci
5850e5c31af7Sopenharmony_ci	case mediump_ivec2_xyxx_yxxx
5851e5c31af7Sopenharmony_ci		version 300 es
5852e5c31af7Sopenharmony_ci		values
5853e5c31af7Sopenharmony_ci		{
5854e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
5855e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
5856e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(-1, -1, 1, 1) | ivec4(0, 2, 1, 1) | ivec4(0, 2, 1, 1) ];
5857e5c31af7Sopenharmony_ci		}
5858e5c31af7Sopenharmony_ci
5859e5c31af7Sopenharmony_ci		both ""
5860e5c31af7Sopenharmony_ci			#version 300 es
5861e5c31af7Sopenharmony_ci			precision mediump float;
5862e5c31af7Sopenharmony_ci
5863e5c31af7Sopenharmony_ci			${DECLARATIONS}
5864e5c31af7Sopenharmony_ci
5865e5c31af7Sopenharmony_ci			void main()
5866e5c31af7Sopenharmony_ci			{
5867e5c31af7Sopenharmony_ci				${SETUP}
5868e5c31af7Sopenharmony_ci				out0 = in0.xyxx / in1.yxxx;
5869e5c31af7Sopenharmony_ci				${OUTPUT}
5870e5c31af7Sopenharmony_ci			}
5871e5c31af7Sopenharmony_ci		""
5872e5c31af7Sopenharmony_ci	end
5873e5c31af7Sopenharmony_ci
5874e5c31af7Sopenharmony_ci	case mediump_ivec2_yxyx_xyxy
5875e5c31af7Sopenharmony_ci		version 300 es
5876e5c31af7Sopenharmony_ci		values
5877e5c31af7Sopenharmony_ci		{
5878e5c31af7Sopenharmony_ci			input ivec2 in0 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
5879e5c31af7Sopenharmony_ci			input ivec2 in1 = [ ivec2(-1, 1) | ivec2(1, 2) | ivec2(-1, -2) ];
5880e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(-1, -1, -1, -1) | ivec4(2, 0, 2, 0) | ivec4(2, 0, 2, 0) ];
5881e5c31af7Sopenharmony_ci		}
5882e5c31af7Sopenharmony_ci
5883e5c31af7Sopenharmony_ci		both ""
5884e5c31af7Sopenharmony_ci			#version 300 es
5885e5c31af7Sopenharmony_ci			precision mediump float;
5886e5c31af7Sopenharmony_ci
5887e5c31af7Sopenharmony_ci			${DECLARATIONS}
5888e5c31af7Sopenharmony_ci
5889e5c31af7Sopenharmony_ci			void main()
5890e5c31af7Sopenharmony_ci			{
5891e5c31af7Sopenharmony_ci				${SETUP}
5892e5c31af7Sopenharmony_ci				out0 = in0.yxyx / in1.xyxy;
5893e5c31af7Sopenharmony_ci				${OUTPUT}
5894e5c31af7Sopenharmony_ci			}
5895e5c31af7Sopenharmony_ci		""
5896e5c31af7Sopenharmony_ci	end
5897e5c31af7Sopenharmony_ci
5898e5c31af7Sopenharmony_ci	case mediump_ivec3_x_x
5899e5c31af7Sopenharmony_ci		version 300 es
5900e5c31af7Sopenharmony_ci		values
5901e5c31af7Sopenharmony_ci		{
5902e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
5903e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
5904e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 1 | 1 ];
5905e5c31af7Sopenharmony_ci		}
5906e5c31af7Sopenharmony_ci
5907e5c31af7Sopenharmony_ci		both ""
5908e5c31af7Sopenharmony_ci			#version 300 es
5909e5c31af7Sopenharmony_ci			precision mediump float;
5910e5c31af7Sopenharmony_ci
5911e5c31af7Sopenharmony_ci			${DECLARATIONS}
5912e5c31af7Sopenharmony_ci
5913e5c31af7Sopenharmony_ci			void main()
5914e5c31af7Sopenharmony_ci			{
5915e5c31af7Sopenharmony_ci				${SETUP}
5916e5c31af7Sopenharmony_ci				out0 = in0.x / in1.x;
5917e5c31af7Sopenharmony_ci				${OUTPUT}
5918e5c31af7Sopenharmony_ci			}
5919e5c31af7Sopenharmony_ci		""
5920e5c31af7Sopenharmony_ci	end
5921e5c31af7Sopenharmony_ci
5922e5c31af7Sopenharmony_ci	case mediump_ivec3_z_z
5923e5c31af7Sopenharmony_ci		version 300 es
5924e5c31af7Sopenharmony_ci		values
5925e5c31af7Sopenharmony_ci		{
5926e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
5927e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
5928e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 1 | 1 ];
5929e5c31af7Sopenharmony_ci		}
5930e5c31af7Sopenharmony_ci
5931e5c31af7Sopenharmony_ci		both ""
5932e5c31af7Sopenharmony_ci			#version 300 es
5933e5c31af7Sopenharmony_ci			precision mediump float;
5934e5c31af7Sopenharmony_ci
5935e5c31af7Sopenharmony_ci			${DECLARATIONS}
5936e5c31af7Sopenharmony_ci
5937e5c31af7Sopenharmony_ci			void main()
5938e5c31af7Sopenharmony_ci			{
5939e5c31af7Sopenharmony_ci				${SETUP}
5940e5c31af7Sopenharmony_ci				out0 = in0.z / in1.z;
5941e5c31af7Sopenharmony_ci				${OUTPUT}
5942e5c31af7Sopenharmony_ci			}
5943e5c31af7Sopenharmony_ci		""
5944e5c31af7Sopenharmony_ci	end
5945e5c31af7Sopenharmony_ci
5946e5c31af7Sopenharmony_ci	case mediump_ivec3_xz_zx
5947e5c31af7Sopenharmony_ci		version 300 es
5948e5c31af7Sopenharmony_ci		values
5949e5c31af7Sopenharmony_ci		{
5950e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
5951e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
5952e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(1, 1) | ivec2(0, 3) | ivec2(0, 4) ];
5953e5c31af7Sopenharmony_ci		}
5954e5c31af7Sopenharmony_ci
5955e5c31af7Sopenharmony_ci		both ""
5956e5c31af7Sopenharmony_ci			#version 300 es
5957e5c31af7Sopenharmony_ci			precision mediump float;
5958e5c31af7Sopenharmony_ci
5959e5c31af7Sopenharmony_ci			${DECLARATIONS}
5960e5c31af7Sopenharmony_ci
5961e5c31af7Sopenharmony_ci			void main()
5962e5c31af7Sopenharmony_ci			{
5963e5c31af7Sopenharmony_ci				${SETUP}
5964e5c31af7Sopenharmony_ci				out0 = in0.xz / in1.zx;
5965e5c31af7Sopenharmony_ci				${OUTPUT}
5966e5c31af7Sopenharmony_ci			}
5967e5c31af7Sopenharmony_ci		""
5968e5c31af7Sopenharmony_ci	end
5969e5c31af7Sopenharmony_ci
5970e5c31af7Sopenharmony_ci	case mediump_ivec3_zz_zz
5971e5c31af7Sopenharmony_ci		version 300 es
5972e5c31af7Sopenharmony_ci		values
5973e5c31af7Sopenharmony_ci		{
5974e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
5975e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
5976e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(1, 1) | ivec2(1, 1) | ivec2(1, 1) ];
5977e5c31af7Sopenharmony_ci		}
5978e5c31af7Sopenharmony_ci
5979e5c31af7Sopenharmony_ci		both ""
5980e5c31af7Sopenharmony_ci			#version 300 es
5981e5c31af7Sopenharmony_ci			precision mediump float;
5982e5c31af7Sopenharmony_ci
5983e5c31af7Sopenharmony_ci			${DECLARATIONS}
5984e5c31af7Sopenharmony_ci
5985e5c31af7Sopenharmony_ci			void main()
5986e5c31af7Sopenharmony_ci			{
5987e5c31af7Sopenharmony_ci				${SETUP}
5988e5c31af7Sopenharmony_ci				out0 = in0.zz / in1.zz;
5989e5c31af7Sopenharmony_ci				${OUTPUT}
5990e5c31af7Sopenharmony_ci			}
5991e5c31af7Sopenharmony_ci		""
5992e5c31af7Sopenharmony_ci	end
5993e5c31af7Sopenharmony_ci
5994e5c31af7Sopenharmony_ci	case mediump_ivec3_xyz_yzx
5995e5c31af7Sopenharmony_ci		version 300 es
5996e5c31af7Sopenharmony_ci		values
5997e5c31af7Sopenharmony_ci		{
5998e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
5999e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
6000e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(-1, -1, 1) | ivec3(0, 0, 3) | ivec3(0, 0, 4) ];
6001e5c31af7Sopenharmony_ci		}
6002e5c31af7Sopenharmony_ci
6003e5c31af7Sopenharmony_ci		both ""
6004e5c31af7Sopenharmony_ci			#version 300 es
6005e5c31af7Sopenharmony_ci			precision mediump float;
6006e5c31af7Sopenharmony_ci
6007e5c31af7Sopenharmony_ci			${DECLARATIONS}
6008e5c31af7Sopenharmony_ci
6009e5c31af7Sopenharmony_ci			void main()
6010e5c31af7Sopenharmony_ci			{
6011e5c31af7Sopenharmony_ci				${SETUP}
6012e5c31af7Sopenharmony_ci				out0 = in0.xyz / in1.yzx;
6013e5c31af7Sopenharmony_ci				${OUTPUT}
6014e5c31af7Sopenharmony_ci			}
6015e5c31af7Sopenharmony_ci		""
6016e5c31af7Sopenharmony_ci	end
6017e5c31af7Sopenharmony_ci
6018e5c31af7Sopenharmony_ci	case mediump_ivec3_zyx_yxz
6019e5c31af7Sopenharmony_ci		version 300 es
6020e5c31af7Sopenharmony_ci		values
6021e5c31af7Sopenharmony_ci		{
6022e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
6023e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
6024e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(-1, -1, 1) | ivec3(1, 2, 0) | ivec3(2, 2, 0) ];
6025e5c31af7Sopenharmony_ci		}
6026e5c31af7Sopenharmony_ci
6027e5c31af7Sopenharmony_ci		both ""
6028e5c31af7Sopenharmony_ci			#version 300 es
6029e5c31af7Sopenharmony_ci			precision mediump float;
6030e5c31af7Sopenharmony_ci
6031e5c31af7Sopenharmony_ci			${DECLARATIONS}
6032e5c31af7Sopenharmony_ci
6033e5c31af7Sopenharmony_ci			void main()
6034e5c31af7Sopenharmony_ci			{
6035e5c31af7Sopenharmony_ci				${SETUP}
6036e5c31af7Sopenharmony_ci				out0 = in0.zyx / in1.yxz;
6037e5c31af7Sopenharmony_ci				${OUTPUT}
6038e5c31af7Sopenharmony_ci			}
6039e5c31af7Sopenharmony_ci		""
6040e5c31af7Sopenharmony_ci	end
6041e5c31af7Sopenharmony_ci
6042e5c31af7Sopenharmony_ci	case mediump_ivec3_xxx_xxx
6043e5c31af7Sopenharmony_ci		version 300 es
6044e5c31af7Sopenharmony_ci		values
6045e5c31af7Sopenharmony_ci		{
6046e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
6047e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
6048e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(1, 1, 1) | ivec3(1, 1, 1) | ivec3(1, 1, 1) ];
6049e5c31af7Sopenharmony_ci		}
6050e5c31af7Sopenharmony_ci
6051e5c31af7Sopenharmony_ci		both ""
6052e5c31af7Sopenharmony_ci			#version 300 es
6053e5c31af7Sopenharmony_ci			precision mediump float;
6054e5c31af7Sopenharmony_ci
6055e5c31af7Sopenharmony_ci			${DECLARATIONS}
6056e5c31af7Sopenharmony_ci
6057e5c31af7Sopenharmony_ci			void main()
6058e5c31af7Sopenharmony_ci			{
6059e5c31af7Sopenharmony_ci				${SETUP}
6060e5c31af7Sopenharmony_ci				out0 = in0.xxx / in1.xxx;
6061e5c31af7Sopenharmony_ci				${OUTPUT}
6062e5c31af7Sopenharmony_ci			}
6063e5c31af7Sopenharmony_ci		""
6064e5c31af7Sopenharmony_ci	end
6065e5c31af7Sopenharmony_ci
6066e5c31af7Sopenharmony_ci	case mediump_ivec3_zzz_zzz
6067e5c31af7Sopenharmony_ci		version 300 es
6068e5c31af7Sopenharmony_ci		values
6069e5c31af7Sopenharmony_ci		{
6070e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
6071e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
6072e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(1, 1, 1) | ivec3(1, 1, 1) | ivec3(1, 1, 1) ];
6073e5c31af7Sopenharmony_ci		}
6074e5c31af7Sopenharmony_ci
6075e5c31af7Sopenharmony_ci		both ""
6076e5c31af7Sopenharmony_ci			#version 300 es
6077e5c31af7Sopenharmony_ci			precision mediump float;
6078e5c31af7Sopenharmony_ci
6079e5c31af7Sopenharmony_ci			${DECLARATIONS}
6080e5c31af7Sopenharmony_ci
6081e5c31af7Sopenharmony_ci			void main()
6082e5c31af7Sopenharmony_ci			{
6083e5c31af7Sopenharmony_ci				${SETUP}
6084e5c31af7Sopenharmony_ci				out0 = in0.zzz / in1.zzz;
6085e5c31af7Sopenharmony_ci				${OUTPUT}
6086e5c31af7Sopenharmony_ci			}
6087e5c31af7Sopenharmony_ci		""
6088e5c31af7Sopenharmony_ci	end
6089e5c31af7Sopenharmony_ci
6090e5c31af7Sopenharmony_ci	case mediump_ivec3_zzy_zyz
6091e5c31af7Sopenharmony_ci		version 300 es
6092e5c31af7Sopenharmony_ci		values
6093e5c31af7Sopenharmony_ci		{
6094e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
6095e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
6096e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(1, -1, -1) | ivec3(1, 1, 0) | ivec3(1, 2, 0) ];
6097e5c31af7Sopenharmony_ci		}
6098e5c31af7Sopenharmony_ci
6099e5c31af7Sopenharmony_ci		both ""
6100e5c31af7Sopenharmony_ci			#version 300 es
6101e5c31af7Sopenharmony_ci			precision mediump float;
6102e5c31af7Sopenharmony_ci
6103e5c31af7Sopenharmony_ci			${DECLARATIONS}
6104e5c31af7Sopenharmony_ci
6105e5c31af7Sopenharmony_ci			void main()
6106e5c31af7Sopenharmony_ci			{
6107e5c31af7Sopenharmony_ci				${SETUP}
6108e5c31af7Sopenharmony_ci				out0 = in0.zzy / in1.zyz;
6109e5c31af7Sopenharmony_ci				${OUTPUT}
6110e5c31af7Sopenharmony_ci			}
6111e5c31af7Sopenharmony_ci		""
6112e5c31af7Sopenharmony_ci	end
6113e5c31af7Sopenharmony_ci
6114e5c31af7Sopenharmony_ci	case mediump_ivec3_yxy_xyy
6115e5c31af7Sopenharmony_ci		version 300 es
6116e5c31af7Sopenharmony_ci		values
6117e5c31af7Sopenharmony_ci		{
6118e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
6119e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
6120e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(-1, -1, 1) | ivec3(2, 0, 1) | ivec3(2, 0, 1) ];
6121e5c31af7Sopenharmony_ci		}
6122e5c31af7Sopenharmony_ci
6123e5c31af7Sopenharmony_ci		both ""
6124e5c31af7Sopenharmony_ci			#version 300 es
6125e5c31af7Sopenharmony_ci			precision mediump float;
6126e5c31af7Sopenharmony_ci
6127e5c31af7Sopenharmony_ci			${DECLARATIONS}
6128e5c31af7Sopenharmony_ci
6129e5c31af7Sopenharmony_ci			void main()
6130e5c31af7Sopenharmony_ci			{
6131e5c31af7Sopenharmony_ci				${SETUP}
6132e5c31af7Sopenharmony_ci				out0 = in0.yxy / in1.xyy;
6133e5c31af7Sopenharmony_ci				${OUTPUT}
6134e5c31af7Sopenharmony_ci			}
6135e5c31af7Sopenharmony_ci		""
6136e5c31af7Sopenharmony_ci	end
6137e5c31af7Sopenharmony_ci
6138e5c31af7Sopenharmony_ci	case mediump_ivec3_xzx_zxx
6139e5c31af7Sopenharmony_ci		version 300 es
6140e5c31af7Sopenharmony_ci		values
6141e5c31af7Sopenharmony_ci		{
6142e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
6143e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
6144e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(1, 1, 1) | ivec3(0, 3, 1) | ivec3(0, 4, 1) ];
6145e5c31af7Sopenharmony_ci		}
6146e5c31af7Sopenharmony_ci
6147e5c31af7Sopenharmony_ci		both ""
6148e5c31af7Sopenharmony_ci			#version 300 es
6149e5c31af7Sopenharmony_ci			precision mediump float;
6150e5c31af7Sopenharmony_ci
6151e5c31af7Sopenharmony_ci			${DECLARATIONS}
6152e5c31af7Sopenharmony_ci
6153e5c31af7Sopenharmony_ci			void main()
6154e5c31af7Sopenharmony_ci			{
6155e5c31af7Sopenharmony_ci				${SETUP}
6156e5c31af7Sopenharmony_ci				out0 = in0.xzx / in1.zxx;
6157e5c31af7Sopenharmony_ci				${OUTPUT}
6158e5c31af7Sopenharmony_ci			}
6159e5c31af7Sopenharmony_ci		""
6160e5c31af7Sopenharmony_ci	end
6161e5c31af7Sopenharmony_ci
6162e5c31af7Sopenharmony_ci	case mediump_ivec3_xyyx_yyxx
6163e5c31af7Sopenharmony_ci		version 300 es
6164e5c31af7Sopenharmony_ci		values
6165e5c31af7Sopenharmony_ci		{
6166e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
6167e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
6168e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(-1, 1, -1, 1) | ivec4(0, 1, 2, 1) | ivec4(0, 1, 2, 1) ];
6169e5c31af7Sopenharmony_ci		}
6170e5c31af7Sopenharmony_ci
6171e5c31af7Sopenharmony_ci		both ""
6172e5c31af7Sopenharmony_ci			#version 300 es
6173e5c31af7Sopenharmony_ci			precision mediump float;
6174e5c31af7Sopenharmony_ci
6175e5c31af7Sopenharmony_ci			${DECLARATIONS}
6176e5c31af7Sopenharmony_ci
6177e5c31af7Sopenharmony_ci			void main()
6178e5c31af7Sopenharmony_ci			{
6179e5c31af7Sopenharmony_ci				${SETUP}
6180e5c31af7Sopenharmony_ci				out0 = in0.xyyx / in1.yyxx;
6181e5c31af7Sopenharmony_ci				${OUTPUT}
6182e5c31af7Sopenharmony_ci			}
6183e5c31af7Sopenharmony_ci		""
6184e5c31af7Sopenharmony_ci	end
6185e5c31af7Sopenharmony_ci
6186e5c31af7Sopenharmony_ci	case mediump_ivec3_zxyz_xyzz
6187e5c31af7Sopenharmony_ci		version 300 es
6188e5c31af7Sopenharmony_ci		values
6189e5c31af7Sopenharmony_ci		{
6190e5c31af7Sopenharmony_ci			input ivec3 in0 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
6191e5c31af7Sopenharmony_ci			input ivec3 in1 = [ ivec3(-1, 1, -1) | ivec3(1, 2, 3) | ivec3(-1, -2, -4) ];
6192e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(1, -1, -1, 1) | ivec4(3, 0, 0, 1) | ivec4(4, 0, 0, 1) ];
6193e5c31af7Sopenharmony_ci		}
6194e5c31af7Sopenharmony_ci
6195e5c31af7Sopenharmony_ci		both ""
6196e5c31af7Sopenharmony_ci			#version 300 es
6197e5c31af7Sopenharmony_ci			precision mediump float;
6198e5c31af7Sopenharmony_ci
6199e5c31af7Sopenharmony_ci			${DECLARATIONS}
6200e5c31af7Sopenharmony_ci
6201e5c31af7Sopenharmony_ci			void main()
6202e5c31af7Sopenharmony_ci			{
6203e5c31af7Sopenharmony_ci				${SETUP}
6204e5c31af7Sopenharmony_ci				out0 = in0.zxyz / in1.xyzz;
6205e5c31af7Sopenharmony_ci				${OUTPUT}
6206e5c31af7Sopenharmony_ci			}
6207e5c31af7Sopenharmony_ci		""
6208e5c31af7Sopenharmony_ci	end
6209e5c31af7Sopenharmony_ci
6210e5c31af7Sopenharmony_ci	case mediump_ivec4_x_x
6211e5c31af7Sopenharmony_ci		version 300 es
6212e5c31af7Sopenharmony_ci		values
6213e5c31af7Sopenharmony_ci		{
6214e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6215e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6216e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 1 | 1 ];
6217e5c31af7Sopenharmony_ci		}
6218e5c31af7Sopenharmony_ci
6219e5c31af7Sopenharmony_ci		both ""
6220e5c31af7Sopenharmony_ci			#version 300 es
6221e5c31af7Sopenharmony_ci			precision mediump float;
6222e5c31af7Sopenharmony_ci
6223e5c31af7Sopenharmony_ci			${DECLARATIONS}
6224e5c31af7Sopenharmony_ci
6225e5c31af7Sopenharmony_ci			void main()
6226e5c31af7Sopenharmony_ci			{
6227e5c31af7Sopenharmony_ci				${SETUP}
6228e5c31af7Sopenharmony_ci				out0 = in0.x / in1.x;
6229e5c31af7Sopenharmony_ci				${OUTPUT}
6230e5c31af7Sopenharmony_ci			}
6231e5c31af7Sopenharmony_ci		""
6232e5c31af7Sopenharmony_ci	end
6233e5c31af7Sopenharmony_ci
6234e5c31af7Sopenharmony_ci	case mediump_ivec4_w_w
6235e5c31af7Sopenharmony_ci		version 300 es
6236e5c31af7Sopenharmony_ci		values
6237e5c31af7Sopenharmony_ci		{
6238e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6239e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6240e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 1 | 1 ];
6241e5c31af7Sopenharmony_ci		}
6242e5c31af7Sopenharmony_ci
6243e5c31af7Sopenharmony_ci		both ""
6244e5c31af7Sopenharmony_ci			#version 300 es
6245e5c31af7Sopenharmony_ci			precision mediump float;
6246e5c31af7Sopenharmony_ci
6247e5c31af7Sopenharmony_ci			${DECLARATIONS}
6248e5c31af7Sopenharmony_ci
6249e5c31af7Sopenharmony_ci			void main()
6250e5c31af7Sopenharmony_ci			{
6251e5c31af7Sopenharmony_ci				${SETUP}
6252e5c31af7Sopenharmony_ci				out0 = in0.w / in1.w;
6253e5c31af7Sopenharmony_ci				${OUTPUT}
6254e5c31af7Sopenharmony_ci			}
6255e5c31af7Sopenharmony_ci		""
6256e5c31af7Sopenharmony_ci	end
6257e5c31af7Sopenharmony_ci
6258e5c31af7Sopenharmony_ci	case mediump_ivec4_wx_xw
6259e5c31af7Sopenharmony_ci		version 300 es
6260e5c31af7Sopenharmony_ci		values
6261e5c31af7Sopenharmony_ci		{
6262e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6263e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6264e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(-1, -1) | ivec2(4, 0) | ivec2(9, 0) ];
6265e5c31af7Sopenharmony_ci		}
6266e5c31af7Sopenharmony_ci
6267e5c31af7Sopenharmony_ci		both ""
6268e5c31af7Sopenharmony_ci			#version 300 es
6269e5c31af7Sopenharmony_ci			precision mediump float;
6270e5c31af7Sopenharmony_ci
6271e5c31af7Sopenharmony_ci			${DECLARATIONS}
6272e5c31af7Sopenharmony_ci
6273e5c31af7Sopenharmony_ci			void main()
6274e5c31af7Sopenharmony_ci			{
6275e5c31af7Sopenharmony_ci				${SETUP}
6276e5c31af7Sopenharmony_ci				out0 = in0.wx / in1.xw;
6277e5c31af7Sopenharmony_ci				${OUTPUT}
6278e5c31af7Sopenharmony_ci			}
6279e5c31af7Sopenharmony_ci		""
6280e5c31af7Sopenharmony_ci	end
6281e5c31af7Sopenharmony_ci
6282e5c31af7Sopenharmony_ci	case mediump_ivec4_wz_zw
6283e5c31af7Sopenharmony_ci		version 300 es
6284e5c31af7Sopenharmony_ci		values
6285e5c31af7Sopenharmony_ci		{
6286e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6287e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6288e5c31af7Sopenharmony_ci			output ivec2 out0 = [ ivec2(-1, -1) | ivec2(1, 0) | ivec2(2, 0) ];
6289e5c31af7Sopenharmony_ci		}
6290e5c31af7Sopenharmony_ci
6291e5c31af7Sopenharmony_ci		both ""
6292e5c31af7Sopenharmony_ci			#version 300 es
6293e5c31af7Sopenharmony_ci			precision mediump float;
6294e5c31af7Sopenharmony_ci
6295e5c31af7Sopenharmony_ci			${DECLARATIONS}
6296e5c31af7Sopenharmony_ci
6297e5c31af7Sopenharmony_ci			void main()
6298e5c31af7Sopenharmony_ci			{
6299e5c31af7Sopenharmony_ci				${SETUP}
6300e5c31af7Sopenharmony_ci				out0 = in0.wz / in1.zw;
6301e5c31af7Sopenharmony_ci				${OUTPUT}
6302e5c31af7Sopenharmony_ci			}
6303e5c31af7Sopenharmony_ci		""
6304e5c31af7Sopenharmony_ci	end
6305e5c31af7Sopenharmony_ci
6306e5c31af7Sopenharmony_ci	case mediump_ivec4_www_www
6307e5c31af7Sopenharmony_ci		version 300 es
6308e5c31af7Sopenharmony_ci		values
6309e5c31af7Sopenharmony_ci		{
6310e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6311e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6312e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(1, 1, 1) | ivec3(1, 1, 1) | ivec3(1, 1, 1) ];
6313e5c31af7Sopenharmony_ci		}
6314e5c31af7Sopenharmony_ci
6315e5c31af7Sopenharmony_ci		both ""
6316e5c31af7Sopenharmony_ci			#version 300 es
6317e5c31af7Sopenharmony_ci			precision mediump float;
6318e5c31af7Sopenharmony_ci
6319e5c31af7Sopenharmony_ci			${DECLARATIONS}
6320e5c31af7Sopenharmony_ci
6321e5c31af7Sopenharmony_ci			void main()
6322e5c31af7Sopenharmony_ci			{
6323e5c31af7Sopenharmony_ci				${SETUP}
6324e5c31af7Sopenharmony_ci				out0 = in0.www / in1.www;
6325e5c31af7Sopenharmony_ci				${OUTPUT}
6326e5c31af7Sopenharmony_ci			}
6327e5c31af7Sopenharmony_ci		""
6328e5c31af7Sopenharmony_ci	end
6329e5c31af7Sopenharmony_ci
6330e5c31af7Sopenharmony_ci	case mediump_ivec4_yyw_ywy
6331e5c31af7Sopenharmony_ci		version 300 es
6332e5c31af7Sopenharmony_ci		values
6333e5c31af7Sopenharmony_ci		{
6334e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6335e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6336e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(1, 1, 1) | ivec3(1, 0, 2) | ivec3(1, 0, 4) ];
6337e5c31af7Sopenharmony_ci		}
6338e5c31af7Sopenharmony_ci
6339e5c31af7Sopenharmony_ci		both ""
6340e5c31af7Sopenharmony_ci			#version 300 es
6341e5c31af7Sopenharmony_ci			precision mediump float;
6342e5c31af7Sopenharmony_ci
6343e5c31af7Sopenharmony_ci			${DECLARATIONS}
6344e5c31af7Sopenharmony_ci
6345e5c31af7Sopenharmony_ci			void main()
6346e5c31af7Sopenharmony_ci			{
6347e5c31af7Sopenharmony_ci				${SETUP}
6348e5c31af7Sopenharmony_ci				out0 = in0.yyw / in1.ywy;
6349e5c31af7Sopenharmony_ci				${OUTPUT}
6350e5c31af7Sopenharmony_ci			}
6351e5c31af7Sopenharmony_ci		""
6352e5c31af7Sopenharmony_ci	end
6353e5c31af7Sopenharmony_ci
6354e5c31af7Sopenharmony_ci	case mediump_ivec4_wzy_zyw
6355e5c31af7Sopenharmony_ci		version 300 es
6356e5c31af7Sopenharmony_ci		values
6357e5c31af7Sopenharmony_ci		{
6358e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6359e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6360e5c31af7Sopenharmony_ci			output ivec3 out0 = [ ivec3(-1, -1, 1) | ivec3(1, 1, 0) | ivec3(2, 2, 0) ];
6361e5c31af7Sopenharmony_ci		}
6362e5c31af7Sopenharmony_ci
6363e5c31af7Sopenharmony_ci		both ""
6364e5c31af7Sopenharmony_ci			#version 300 es
6365e5c31af7Sopenharmony_ci			precision mediump float;
6366e5c31af7Sopenharmony_ci
6367e5c31af7Sopenharmony_ci			${DECLARATIONS}
6368e5c31af7Sopenharmony_ci
6369e5c31af7Sopenharmony_ci			void main()
6370e5c31af7Sopenharmony_ci			{
6371e5c31af7Sopenharmony_ci				${SETUP}
6372e5c31af7Sopenharmony_ci				out0 = in0.wzy / in1.zyw;
6373e5c31af7Sopenharmony_ci				${OUTPUT}
6374e5c31af7Sopenharmony_ci			}
6375e5c31af7Sopenharmony_ci		""
6376e5c31af7Sopenharmony_ci	end
6377e5c31af7Sopenharmony_ci
6378e5c31af7Sopenharmony_ci	case mediump_ivec4_xyzw_yzwx
6379e5c31af7Sopenharmony_ci		version 300 es
6380e5c31af7Sopenharmony_ci		values
6381e5c31af7Sopenharmony_ci		{
6382e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6383e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6384e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(-1, -1, -1, -1) | ivec4(0, 0, 0, 4) | ivec4(0, 0, 0, 9) ];
6385e5c31af7Sopenharmony_ci		}
6386e5c31af7Sopenharmony_ci
6387e5c31af7Sopenharmony_ci		both ""
6388e5c31af7Sopenharmony_ci			#version 300 es
6389e5c31af7Sopenharmony_ci			precision mediump float;
6390e5c31af7Sopenharmony_ci
6391e5c31af7Sopenharmony_ci			${DECLARATIONS}
6392e5c31af7Sopenharmony_ci
6393e5c31af7Sopenharmony_ci			void main()
6394e5c31af7Sopenharmony_ci			{
6395e5c31af7Sopenharmony_ci				${SETUP}
6396e5c31af7Sopenharmony_ci				out0 = in0.xyzw / in1.yzwx;
6397e5c31af7Sopenharmony_ci				${OUTPUT}
6398e5c31af7Sopenharmony_ci			}
6399e5c31af7Sopenharmony_ci		""
6400e5c31af7Sopenharmony_ci	end
6401e5c31af7Sopenharmony_ci
6402e5c31af7Sopenharmony_ci	case mediump_ivec4_wzyx_zyxw
6403e5c31af7Sopenharmony_ci		version 300 es
6404e5c31af7Sopenharmony_ci		values
6405e5c31af7Sopenharmony_ci		{
6406e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6407e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6408e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(-1, -1, -1, -1) | ivec4(1, 1, 2, 0) | ivec4(2, 2, 2, 0) ];
6409e5c31af7Sopenharmony_ci		}
6410e5c31af7Sopenharmony_ci
6411e5c31af7Sopenharmony_ci		both ""
6412e5c31af7Sopenharmony_ci			#version 300 es
6413e5c31af7Sopenharmony_ci			precision mediump float;
6414e5c31af7Sopenharmony_ci
6415e5c31af7Sopenharmony_ci			${DECLARATIONS}
6416e5c31af7Sopenharmony_ci
6417e5c31af7Sopenharmony_ci			void main()
6418e5c31af7Sopenharmony_ci			{
6419e5c31af7Sopenharmony_ci				${SETUP}
6420e5c31af7Sopenharmony_ci				out0 = in0.wzyx / in1.zyxw;
6421e5c31af7Sopenharmony_ci				${OUTPUT}
6422e5c31af7Sopenharmony_ci			}
6423e5c31af7Sopenharmony_ci		""
6424e5c31af7Sopenharmony_ci	end
6425e5c31af7Sopenharmony_ci
6426e5c31af7Sopenharmony_ci	case mediump_ivec4_xyxy_yxyx
6427e5c31af7Sopenharmony_ci		version 300 es
6428e5c31af7Sopenharmony_ci		values
6429e5c31af7Sopenharmony_ci		{
6430e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6431e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6432e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(-1, -1, -1, -1) | ivec4(0, 2, 0, 2) | ivec4(0, 2, 0, 2) ];
6433e5c31af7Sopenharmony_ci		}
6434e5c31af7Sopenharmony_ci
6435e5c31af7Sopenharmony_ci		both ""
6436e5c31af7Sopenharmony_ci			#version 300 es
6437e5c31af7Sopenharmony_ci			precision mediump float;
6438e5c31af7Sopenharmony_ci
6439e5c31af7Sopenharmony_ci			${DECLARATIONS}
6440e5c31af7Sopenharmony_ci
6441e5c31af7Sopenharmony_ci			void main()
6442e5c31af7Sopenharmony_ci			{
6443e5c31af7Sopenharmony_ci				${SETUP}
6444e5c31af7Sopenharmony_ci				out0 = in0.xyxy / in1.yxyx;
6445e5c31af7Sopenharmony_ci				${OUTPUT}
6446e5c31af7Sopenharmony_ci			}
6447e5c31af7Sopenharmony_ci		""
6448e5c31af7Sopenharmony_ci	end
6449e5c31af7Sopenharmony_ci
6450e5c31af7Sopenharmony_ci	case mediump_ivec4_yzzy_zzyy
6451e5c31af7Sopenharmony_ci		version 300 es
6452e5c31af7Sopenharmony_ci		values
6453e5c31af7Sopenharmony_ci		{
6454e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6455e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6456e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(-1, 1, -1, 1) | ivec4(0, 1, 1, 1) | ivec4(0, 1, 2, 1) ];
6457e5c31af7Sopenharmony_ci		}
6458e5c31af7Sopenharmony_ci
6459e5c31af7Sopenharmony_ci		both ""
6460e5c31af7Sopenharmony_ci			#version 300 es
6461e5c31af7Sopenharmony_ci			precision mediump float;
6462e5c31af7Sopenharmony_ci
6463e5c31af7Sopenharmony_ci			${DECLARATIONS}
6464e5c31af7Sopenharmony_ci
6465e5c31af7Sopenharmony_ci			void main()
6466e5c31af7Sopenharmony_ci			{
6467e5c31af7Sopenharmony_ci				${SETUP}
6468e5c31af7Sopenharmony_ci				out0 = in0.yzzy / in1.zzyy;
6469e5c31af7Sopenharmony_ci				${OUTPUT}
6470e5c31af7Sopenharmony_ci			}
6471e5c31af7Sopenharmony_ci		""
6472e5c31af7Sopenharmony_ci	end
6473e5c31af7Sopenharmony_ci
6474e5c31af7Sopenharmony_ci	case mediump_ivec4_wxww_xwww
6475e5c31af7Sopenharmony_ci		version 300 es
6476e5c31af7Sopenharmony_ci		values
6477e5c31af7Sopenharmony_ci		{
6478e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6479e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6480e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(-1, -1, 1, 1) | ivec4(4, 0, 1, 1) | ivec4(9, 0, 1, 1) ];
6481e5c31af7Sopenharmony_ci		}
6482e5c31af7Sopenharmony_ci
6483e5c31af7Sopenharmony_ci		both ""
6484e5c31af7Sopenharmony_ci			#version 300 es
6485e5c31af7Sopenharmony_ci			precision mediump float;
6486e5c31af7Sopenharmony_ci
6487e5c31af7Sopenharmony_ci			${DECLARATIONS}
6488e5c31af7Sopenharmony_ci
6489e5c31af7Sopenharmony_ci			void main()
6490e5c31af7Sopenharmony_ci			{
6491e5c31af7Sopenharmony_ci				${SETUP}
6492e5c31af7Sopenharmony_ci				out0 = in0.wxww / in1.xwww;
6493e5c31af7Sopenharmony_ci				${OUTPUT}
6494e5c31af7Sopenharmony_ci			}
6495e5c31af7Sopenharmony_ci		""
6496e5c31af7Sopenharmony_ci	end
6497e5c31af7Sopenharmony_ci
6498e5c31af7Sopenharmony_ci	case mediump_ivec4_xyxx_yxxx
6499e5c31af7Sopenharmony_ci		version 300 es
6500e5c31af7Sopenharmony_ci		values
6501e5c31af7Sopenharmony_ci		{
6502e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6503e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6504e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(-1, -1, 1, 1) | ivec4(0, 2, 1, 1) | ivec4(0, 2, 1, 1) ];
6505e5c31af7Sopenharmony_ci		}
6506e5c31af7Sopenharmony_ci
6507e5c31af7Sopenharmony_ci		both ""
6508e5c31af7Sopenharmony_ci			#version 300 es
6509e5c31af7Sopenharmony_ci			precision mediump float;
6510e5c31af7Sopenharmony_ci
6511e5c31af7Sopenharmony_ci			${DECLARATIONS}
6512e5c31af7Sopenharmony_ci
6513e5c31af7Sopenharmony_ci			void main()
6514e5c31af7Sopenharmony_ci			{
6515e5c31af7Sopenharmony_ci				${SETUP}
6516e5c31af7Sopenharmony_ci				out0 = in0.xyxx / in1.yxxx;
6517e5c31af7Sopenharmony_ci				${OUTPUT}
6518e5c31af7Sopenharmony_ci			}
6519e5c31af7Sopenharmony_ci		""
6520e5c31af7Sopenharmony_ci	end
6521e5c31af7Sopenharmony_ci
6522e5c31af7Sopenharmony_ci	case mediump_ivec4_zzzz_zzzz
6523e5c31af7Sopenharmony_ci		version 300 es
6524e5c31af7Sopenharmony_ci		values
6525e5c31af7Sopenharmony_ci		{
6526e5c31af7Sopenharmony_ci			input ivec4 in0 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6527e5c31af7Sopenharmony_ci			input ivec4 in1 = [ ivec4(-1, 1, -1, 1) | ivec4(1, 2, 3, 4) | ivec4(-1, -2, -4, -9) ];
6528e5c31af7Sopenharmony_ci			output ivec4 out0 = [ ivec4(1, 1, 1, 1) | ivec4(1, 1, 1, 1) | ivec4(1, 1, 1, 1) ];
6529e5c31af7Sopenharmony_ci		}
6530e5c31af7Sopenharmony_ci
6531e5c31af7Sopenharmony_ci		both ""
6532e5c31af7Sopenharmony_ci			#version 300 es
6533e5c31af7Sopenharmony_ci			precision mediump float;
6534e5c31af7Sopenharmony_ci
6535e5c31af7Sopenharmony_ci			${DECLARATIONS}
6536e5c31af7Sopenharmony_ci
6537e5c31af7Sopenharmony_ci			void main()
6538e5c31af7Sopenharmony_ci			{
6539e5c31af7Sopenharmony_ci				${SETUP}
6540e5c31af7Sopenharmony_ci				out0 = in0.zzzz / in1.zzzz;
6541e5c31af7Sopenharmony_ci				${OUTPUT}
6542e5c31af7Sopenharmony_ci			}
6543e5c31af7Sopenharmony_ci		""
6544e5c31af7Sopenharmony_ci	end
6545e5c31af7Sopenharmony_ci
6546e5c31af7Sopenharmony_ci
6547e5c31af7Sopenharmony_ciend # vector_divide
6548