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