1 /* DO NOT MODIFY - automatically generated by generate_builtins.pl */
3 * Copyright © 2010 Intel Corporation
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
12 * The above copyright notice and this permission notice (including the next
13 * paragraph) shall be included in all copies or substantial portions of the
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
26 #include "glsl_parser_extras.h"
27 #include "ir_reader.h"
30 read_builtins(_mesa_glsl_parse_state *st, exec_list *instructions,
31 const char **functions, unsigned count)
36 for (unsigned i = 0; i < count; i++) {
37 _mesa_glsl_read_ir(st, instructions, functions[i]);
40 printf("error reading builtin: %.35s ...\n", functions[i]);
46 /* Version 110 builtins */
48 static const char *builtins_110_abs = {
52 " (declare (in) float arg0))\n"
53 " ((return (expression float abs (var_ref arg0)))))\n"
57 " (declare (in) vec2 arg0))\n"
58 " ((return (expression vec2 abs (var_ref arg0)))))\n"
62 " (declare (in) vec3 arg0))\n"
63 " ((return (expression vec3 abs (var_ref arg0)))))\n"
67 " (declare (in) vec4 arg0))\n"
68 " ((return (expression vec4 abs (var_ref arg0)))))\n"
72 static const char *builtins_110_all = {
76 " (declare (in) bvec2 arg0))\n"
77 " ((return (expression bool && (swiz x (var_ref arg0))(swiz y (var_ref arg0))))))\n"
81 " (declare (in) bvec3 arg0))\n"
82 " ((return (expression bool && (expression bool && (swiz x (var_ref arg0))(swiz y (var_ref arg0))) (swiz z (var_ref arg0))))))\n"
86 " (declare (in) bvec4 arg0))\n"
87 " ((return (expression bool && (expression bool && (expression bool && (swiz x (var_ref arg0))(swiz y (var_ref arg0))) (swiz z (var_ref arg0))) (swiz w (var_ref arg0))))))\n"
91 static const char *builtins_110_any = {
95 " (declare (in) bvec2 arg0))\n"
96 " ((return (expression bool || (swiz x (var_ref arg0))(swiz y (var_ref arg0))))))\n"
100 " (declare (in) bvec3 arg0))\n"
101 " ((return (expression bool || (expression bool || (swiz x (var_ref arg0))(swiz y (var_ref arg0))) (swiz z (var_ref arg0))))))\n"
105 " (declare (in) bvec4 arg0))\n"
106 " ((return (expression bool || (expression bool || (expression bool || (swiz x (var_ref arg0))(swiz y (var_ref arg0))) (swiz z (var_ref arg0))) (swiz w (var_ref arg0))))))\n"
110 static const char *builtins_110_ceil = {
112 " (signature float\n"
114 " (declare (in) float arg0))\n"
115 " ((return (expression float ceil (var_ref arg0)))))\n"
119 " (declare (in) vec2 arg0))\n"
120 " ((return (expression vec2 ceil (var_ref arg0)))))\n"
124 " (declare (in) vec3 arg0))\n"
125 " ((return (expression vec3 ceil (var_ref arg0)))))\n"
129 " (declare (in) vec4 arg0))\n"
130 " ((return (expression vec4 ceil (var_ref arg0)))))\n"
134 static const char *builtins_110_clamp = {
136 " (signature float\n"
138 " (declare (in) float arg0)\n"
139 " (declare (in) float arg1)\n"
140 " (declare (in) float arg2))\n"
141 " ((return (expression float max (expression float min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
145 " (declare (in) vec2 arg0)\n"
146 " (declare (in) vec2 arg1)\n"
147 " (declare (in) vec2 arg2))\n"
148 " ((return (expression vec2 max (expression vec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
152 " (declare (in) vec3 arg0)\n"
153 " (declare (in) vec3 arg1)\n"
154 " (declare (in) vec3 arg2))\n"
155 " ((return (expression vec3 max (expression vec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
159 " (declare (in) vec4 arg0)\n"
160 " (declare (in) vec4 arg1)\n"
161 " (declare (in) vec4 arg2))\n"
162 " ((return (expression vec4 max (expression vec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
166 static const char *builtins_110_cos = {
168 " (signature float\n"
170 " (declare (in) float angle))\n"
171 " ((return (expression float cos (var_ref angle)))))\n"
175 " (declare (in) vec2 angle))\n"
176 " ((return (expression vec2 cos (var_ref angle)))))\n"
180 " (declare (in) vec3 angle))\n"
181 " ((return (expression vec3 cos (var_ref angle)))))\n"
185 " (declare (in) vec4 angle))\n"
186 " ((return (expression vec4 cos (var_ref angle)))))\n"
190 static const char *builtins_110_cross = {
194 " (declare (in) vec3 arg0)\n"
195 " (declare (in) vec3 arg1))\n"
196 " ((declare () vec3 t)\n"
197 " (assign (constant bool (1)) (swiz x (var_ref t))\n"
198 " (expression float - (expression float * (swiz y (var_ref arg0)) (swiz z (var_ref arg1)))\n"
199 " (expression float * (swiz y (var_ref arg1)) (swiz z (var_ref arg0)))))\n"
200 " (assign (constant bool (1)) (swiz y (var_ref t))\n"
201 " (expression float - (expression float * (swiz z (var_ref arg0)) (swiz x (var_ref arg1)))\n"
202 " (expression float * (swiz z (var_ref arg1)) (swiz x (var_ref arg0)))))\n"
203 " (assign (constant bool (1)) (swiz z (var_ref t))\n"
204 " (expression float - (expression float * (swiz x (var_ref arg0)) (swiz y (var_ref arg1)))\n"
205 " (expression float * (swiz x (var_ref arg1)) (swiz y (var_ref arg0)))))\n"
206 " (return (var_ref t))))\n"
210 static const char *builtins_110_degrees = {
211 "((function degrees\n"
212 " (signature float\n"
214 " (declare (in) float arg0))\n"
215 " ((return (expression float * (var_ref arg0) (constant float (57.295780))))))\n"
219 " (declare (in) vec2 arg0))\n"
220 " ((return (expression vec2 * (var_ref arg0) (constant float (57.295780))))))\n"
224 " (declare (in) vec3 arg0))\n"
225 " ((return (expression vec3 * (var_ref arg0) (constant float (57.295780))))))\n"
229 " (declare (in) vec4 arg0))\n"
230 " ((return (expression vec4 * (var_ref arg0) (constant float (57.295780))))))\n"
234 static const char *builtins_110_dot = {
236 " (signature float\n"
238 " (declare (in) float arg0)\n"
239 " (declare (in) float arg1))\n"
240 " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n"
242 " (signature float\n"
244 " (declare (in) vec2 arg0)\n"
245 " (declare (in) vec2 arg1))\n"
246 " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n"
248 " (signature float\n"
250 " (declare (in) vec3 arg0)\n"
251 " (declare (in) vec3 arg1))\n"
252 " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n"
254 " (signature float\n"
256 " (declare (in) vec4 arg0)\n"
257 " (declare (in) vec4 arg1))\n"
258 " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n"
262 static const char *builtins_110_equal = {
264 " (signature bvec2\n"
266 " (declare (in) vec2 arg0)\n"
267 " (declare (in) vec2 arg1))\n"
268 " ((declare () bvec2 temp)\n"
269 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
270 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
271 " (return (var_ref temp))))\n"
273 " (signature bvec3\n"
275 " (declare (in) vec3 arg0)\n"
276 " (declare (in) vec3 arg1))\n"
277 " ((declare () bvec3 temp)\n"
278 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
279 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
280 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
281 " (return (var_ref temp))))\n"
283 " (signature bvec4\n"
285 " (declare (in) vec4 arg0)\n"
286 " (declare (in) vec4 arg1))\n"
287 " ((declare () bvec4 temp)\n"
288 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
289 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
290 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
291 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool == (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
292 " (return (var_ref temp))))\n"
294 " (signature bvec2\n"
296 " (declare (in) ivec2 arg0)\n"
297 " (declare (in) ivec2 arg1))\n"
298 " ((declare () bvec2 temp)\n"
299 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
300 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
301 " (return (var_ref temp))))\n"
303 " (signature bvec3\n"
305 " (declare (in) ivec3 arg0)\n"
306 " (declare (in) ivec3 arg1))\n"
307 " ((declare () bvec3 temp)\n"
308 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
309 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
310 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
311 " (return (var_ref temp))))\n"
313 " (signature bvec4\n"
315 " (declare (in) ivec4 arg0)\n"
316 " (declare (in) ivec4 arg1))\n"
317 " ((declare () bvec4 temp)\n"
318 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
319 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
320 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
321 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool == (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
322 " (return (var_ref temp))))\n"
326 static const char *builtins_110_exp = {
328 " (signature float\n"
330 " (declare (in) float arg0))\n"
331 " ((return (expression float exp (var_ref arg0)))))\n"
335 " (declare (in) vec2 arg0))\n"
336 " ((return (expression vec2 exp (var_ref arg0)))))\n"
340 " (declare (in) vec3 arg0))\n"
341 " ((return (expression vec3 exp (var_ref arg0)))))\n"
345 " (declare (in) vec4 arg0))\n"
346 " ((return (expression vec4 exp (var_ref arg0)))))\n"
350 static const char *builtins_110_exp2 = {
352 " (signature float\n"
354 " (declare (in) float arg0))\n"
355 " ((return (expression float exp2 (var_ref arg0)))))\n"
359 " (declare (in) vec2 arg0))\n"
360 " ((return (expression vec2 exp2 (var_ref arg0)))))\n"
364 " (declare (in) vec3 arg0))\n"
365 " ((return (expression vec3 exp2 (var_ref arg0)))))\n"
369 " (declare (in) vec4 arg0))\n"
370 " ((return (expression vec4 exp2 (var_ref arg0)))))\n"
374 static const char *builtins_110_floor = {
376 " (signature float\n"
378 " (declare (in) float arg0))\n"
379 " ((return (expression float floor (var_ref arg0)))))\n"
383 " (declare (in) vec2 arg0))\n"
384 " ((return (expression vec2 floor (var_ref arg0)))))\n"
388 " (declare (in) vec3 arg0))\n"
389 " ((return (expression vec3 floor (var_ref arg0)))))\n"
393 " (declare (in) vec4 arg0))\n"
394 " ((return (expression vec4 floor (var_ref arg0)))))\n"
398 static const char *builtins_110_fract = {
400 " (signature float\n"
402 " (declare (in) float x))\n"
403 " ((return (expression float - (var_ref x) (expression float floor (var_ref x))))))\n"
407 " (declare (in) vec2 x))\n"
408 " ((declare () vec2 t)\n"
409 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float - (swiz x (var_ref x)) (expression float floor (swiz x (var_ref x)))))\n"
410 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float - (swiz y (var_ref x)) (expression float floor (swiz y (var_ref x)))))\n"
411 " (return (var_ref t))))\n"
415 " (declare (in) vec3 x))\n"
416 " ((declare () vec3 t)\n"
417 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float - (swiz x (var_ref x)) (expression float floor (swiz x (var_ref x)))))\n"
418 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float - (swiz y (var_ref x)) (expression float floor (swiz y (var_ref x)))))\n"
419 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float - (swiz z (var_ref x)) (expression float floor (swiz z (var_ref x)))))\n"
420 " (return (var_ref t))))\n"
424 " (declare (in) vec4 x))\n"
425 " ((declare () vec4 t)\n"
426 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float - (swiz x (var_ref x)) (expression float floor (swiz x (var_ref x)))))\n"
427 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float - (swiz y (var_ref x)) (expression float floor (swiz y (var_ref x)))))\n"
428 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float - (swiz z (var_ref x)) (expression float floor (swiz z (var_ref x)))))\n"
429 " (assign (constant bool (1)) (swiz w (var_ref t)) (expression float - (swiz w (var_ref x)) (expression float floor (swiz w (var_ref x)))))\n"
430 " (return (var_ref t))))\n"
435 static const char *builtins_110_greaterThan = {
436 "((function greaterThan\n"
437 " (signature bvec2\n"
439 " (declare (in) vec2 arg0)\n"
440 " (declare (in) vec2 arg1))\n"
441 " ((declare () bvec2 temp)\n"
442 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
443 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
444 " (return (var_ref temp))))\n"
446 " (signature bvec3\n"
448 " (declare (in) vec3 arg0)\n"
449 " (declare (in) vec3 arg1))\n"
450 " ((declare () bvec3 temp)\n"
451 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
452 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
453 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
454 " (return (var_ref temp))))\n"
456 " (signature bvec4\n"
458 " (declare (in) vec4 arg0)\n"
459 " (declare (in) vec4 arg1))\n"
460 " ((declare () bvec4 temp)\n"
461 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
462 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
463 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
464 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool > (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
465 " (return (var_ref temp))))\n"
467 " (signature bvec2\n"
469 " (declare (in) ivec2 arg0)\n"
470 " (declare (in) ivec2 arg1))\n"
471 " ((declare () bvec2 temp)\n"
472 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
473 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
474 " (return (var_ref temp))))\n"
476 " (signature bvec3\n"
478 " (declare (in) ivec3 arg0)\n"
479 " (declare (in) ivec3 arg1))\n"
480 " ((declare () bvec3 temp)\n"
481 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
482 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
483 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
484 " (return (var_ref temp))))\n"
486 " (signature bvec4\n"
488 " (declare (in) ivec4 arg0)\n"
489 " (declare (in) ivec4 arg1))\n"
490 " ((declare () bvec4 temp)\n"
491 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
492 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
493 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
494 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool > (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
495 " (return (var_ref temp))))\n"
499 static const char *builtins_110_greaterThanEqual = {
500 "((function greaterThanEqual\n"
501 " (signature bvec2\n"
503 " (declare (in) vec2 arg0)\n"
504 " (declare (in) vec2 arg1))\n"
505 " ((declare () bvec2 temp)\n"
506 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
507 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
508 " (return (var_ref temp))))\n"
510 " (signature bvec3\n"
512 " (declare (in) vec3 arg0)\n"
513 " (declare (in) vec3 arg1))\n"
514 " ((declare () bvec3 temp)\n"
515 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
516 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
517 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
518 " (return (var_ref temp))))\n"
520 " (signature bvec4\n"
522 " (declare (in) vec4 arg0)\n"
523 " (declare (in) vec4 arg1))\n"
524 " ((declare () bvec4 temp)\n"
525 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
526 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
527 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
528 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool >= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
529 " (return (var_ref temp))))\n"
531 " (signature bvec2\n"
533 " (declare (in) ivec2 arg0)\n"
534 " (declare (in) ivec2 arg1))\n"
535 " ((declare () bvec2 temp)\n"
536 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
537 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
538 " (return (var_ref temp))))\n"
540 " (signature bvec3\n"
542 " (declare (in) ivec3 arg0)\n"
543 " (declare (in) ivec3 arg1))\n"
544 " ((declare () bvec3 temp)\n"
545 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
546 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
547 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
548 " (return (var_ref temp))))\n"
550 " (signature bvec4\n"
552 " (declare (in) ivec4 arg0)\n"
553 " (declare (in) ivec4 arg1))\n"
554 " ((declare () bvec4 temp)\n"
555 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
556 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
557 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
558 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool >= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
559 " (return (var_ref temp))))\n"
563 static const char *builtins_110_inversesqrt = {
564 "((function inversesqrt\n"
565 " (signature float\n"
567 " (declare (in) float arg0))\n"
568 " ((return (expression float rsq (var_ref arg0)))))\n"
572 " (declare (in) vec2 arg0))\n"
573 " ((return (expression vec2 rsq (var_ref arg0)))))\n"
577 " (declare (in) vec3 arg0))\n"
578 " ((return (expression vec3 rsq (var_ref arg0)))))\n"
582 " (declare (in) vec4 arg0))\n"
583 " ((return (expression vec4 rsq (var_ref arg0)))))\n"
587 static const char *builtins_110_length = {
588 "((function length\n"
589 " (signature float\n"
591 " (declare (in) float arg0))\n"
592 " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n"
594 " (signature float\n"
596 " (declare (in) vec2 arg0))\n"
597 " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n"
599 " (signature float\n"
601 " (declare (in) vec3 arg0))\n"
602 " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n"
604 " (signature float\n"
606 " (declare (in) vec4 arg0))\n"
607 " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n"
611 static const char *builtins_110_lessThan = {
612 "((function lessThan\n"
613 " (signature bvec2\n"
615 " (declare (in) vec2 arg0)\n"
616 " (declare (in) vec2 arg1))\n"
617 " ((declare () bvec2 temp)\n"
618 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
619 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
620 " (return (var_ref temp))))\n"
622 " (signature bvec3\n"
624 " (declare (in) vec3 arg0)\n"
625 " (declare (in) vec3 arg1))\n"
626 " ((declare () bvec3 temp)\n"
627 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
628 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
629 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
630 " (return (var_ref temp))))\n"
632 " (signature bvec4\n"
634 " (declare (in) vec4 arg0)\n"
635 " (declare (in) vec4 arg1))\n"
636 " ((declare () bvec4 temp)\n"
637 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
638 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
639 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
640 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool < (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
641 " (return (var_ref temp))))\n"
643 " (signature bvec2\n"
645 " (declare (in) ivec2 arg0)\n"
646 " (declare (in) ivec2 arg1))\n"
647 " ((declare () bvec2 temp)\n"
648 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
649 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
650 " (return (var_ref temp))))\n"
652 " (signature bvec3\n"
654 " (declare (in) ivec3 arg0)\n"
655 " (declare (in) ivec3 arg1))\n"
656 " ((declare () bvec3 temp)\n"
657 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
658 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
659 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
660 " (return (var_ref temp))))\n"
662 " (signature bvec4\n"
664 " (declare (in) ivec4 arg0)\n"
665 " (declare (in) ivec4 arg1))\n"
666 " ((declare () bvec4 temp)\n"
667 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
668 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
669 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
670 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool < (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
671 " (return (var_ref temp))))\n"
675 static const char *builtins_110_lessThanEqual = {
676 "((function lessThanEqual\n"
677 " (signature bvec2\n"
679 " (declare (in) vec2 arg0)\n"
680 " (declare (in) vec2 arg1))\n"
681 " ((declare () bvec2 temp)\n"
682 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
683 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
684 " (return (var_ref temp))))\n"
686 " (signature bvec3\n"
688 " (declare (in) vec3 arg0)\n"
689 " (declare (in) vec3 arg1))\n"
690 " ((declare () bvec3 temp)\n"
691 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
692 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
693 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
694 " (return (var_ref temp))))\n"
696 " (signature bvec4\n"
698 " (declare (in) vec4 arg0)\n"
699 " (declare (in) vec4 arg1))\n"
700 " ((declare () bvec4 temp)\n"
701 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
702 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
703 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
704 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool <= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
705 " (return (var_ref temp))))\n"
707 " (signature bvec2\n"
709 " (declare (in) ivec2 arg0)\n"
710 " (declare (in) ivec2 arg1))\n"
711 " ((declare () bvec2 temp)\n"
712 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
713 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
714 " (return (var_ref temp))))\n"
716 " (signature bvec3\n"
718 " (declare (in) ivec3 arg0)\n"
719 " (declare (in) ivec3 arg1))\n"
720 " ((declare () bvec3 temp)\n"
721 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
722 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
723 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
724 " (return (var_ref temp))))\n"
726 " (signature bvec4\n"
728 " (declare (in) ivec4 arg0)\n"
729 " (declare (in) ivec4 arg1))\n"
730 " ((declare () bvec4 temp)\n"
731 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
732 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
733 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
734 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool <= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
735 " (return (var_ref temp))))\n"
739 static const char *builtins_110_log = {
741 " (signature float\n"
743 " (declare (in) float arg0))\n"
744 " ((return (expression float log (var_ref arg0)))))\n"
748 " (declare (in) vec2 arg0))\n"
749 " ((return (expression vec2 log (var_ref arg0)))))\n"
753 " (declare (in) vec3 arg0))\n"
754 " ((return (expression vec3 log (var_ref arg0)))))\n"
758 " (declare (in) vec4 arg0))\n"
759 " ((return (expression vec4 log (var_ref arg0)))))\n"
763 static const char *builtins_110_log2 = {
765 " (signature float\n"
767 " (declare (in) float arg0))\n"
768 " ((return (expression float log2 (var_ref arg0)))))\n"
772 " (declare (in) vec2 arg0))\n"
773 " ((return (expression vec2 log2 (var_ref arg0)))))\n"
777 " (declare (in) vec3 arg0))\n"
778 " ((return (expression vec3 log2 (var_ref arg0)))))\n"
782 " (declare (in) vec4 arg0))\n"
783 " ((return (expression vec4 log2 (var_ref arg0)))))\n"
787 static const char *builtins_110_max = {
789 " (signature float\n"
791 " (declare (in) float arg0)\n"
792 " (declare (in) float arg1))\n"
793 " ((return (expression float max (var_ref arg0) (var_ref arg1)))))\n"
797 " (declare (in) vec2 arg0)\n"
798 " (declare (in) vec2 arg1))\n"
799 " ((return (expression vec2 max (var_ref arg0) (var_ref arg1)))))\n"
803 " (declare (in) vec3 arg0)\n"
804 " (declare (in) vec3 arg1))\n"
805 " ((return (expression vec3 max (var_ref arg0) (var_ref arg1)))))\n"
809 " (declare (in) vec4 arg0)\n"
810 " (declare (in) vec4 arg1))\n"
811 " ((return (expression vec4 max (var_ref arg0) (var_ref arg1)))))\n"
815 static const char *builtins_110_min = {
817 " (signature float\n"
819 " (declare (in) float arg0)\n"
820 " (declare (in) float arg1))\n"
821 " ((return (expression float min (var_ref arg0) (var_ref arg1)))))\n"
825 " (declare (in) vec2 arg0)\n"
826 " (declare (in) vec2 arg1))\n"
827 " ((return (expression vec2 min (var_ref arg0) (var_ref arg1)))))\n"
831 " (declare (in) vec3 arg0)\n"
832 " (declare (in) vec3 arg1))\n"
833 " ((return (expression vec3 min (var_ref arg0) (var_ref arg1)))))\n"
837 " (declare (in) vec4 arg0)\n"
838 " (declare (in) vec4 arg1))\n"
839 " ((return (expression vec4 min (var_ref arg0) (var_ref arg1)))))\n"
843 static const char *builtins_110_mix = {
845 " (signature float\n"
847 " (declare (in) float arg0)\n"
848 " (declare (in) float arg1)\n"
849 " (declare (in) float arg2))\n"
850 " ((return (expression float + (expression float * (var_ref arg0) (expression float - (constant float (1.000000)) (var_ref arg2))) (expression float * (var_ref arg1) (var_ref arg2))))))\n"
854 " (declare (in) vec2 arg0)\n"
855 " (declare (in) vec2 arg1)\n"
856 " (declare (in) vec2 arg2))\n"
857 " ((return (expression vec2 + (expression vec2 * (var_ref arg0) (expression vec2 - (constant float (1.000000)) (var_ref arg2))) (expression vec2 * (var_ref arg1) (var_ref arg2))))))\n"
861 " (declare (in) vec3 arg0)\n"
862 " (declare (in) vec3 arg1)\n"
863 " (declare (in) vec3 arg2))\n"
864 " ((return (expression vec3 + (expression vec3 * (var_ref arg0) (expression vec3 - (constant float (1.000000)) (var_ref arg2))) (expression vec3 * (var_ref arg1) (var_ref arg2))))))\n"
868 " (declare (in) vec4 arg0)\n"
869 " (declare (in) vec4 arg1)\n"
870 " (declare (in) vec4 arg2))\n"
871 " ((return (expression vec4 + (expression vec4 * (var_ref arg0) (expression vec4 - (constant float (1.000000)) (var_ref arg2))) (expression vec4 * (var_ref arg1) (var_ref arg2))))))\n"
875 static const char *builtins_110_mod = {
877 " (signature float\n"
879 " (declare (in) float arg0)\n"
880 " (declare (in) float arg1))\n"
881 " ((return (expression float % (var_ref arg0) (var_ref arg1)))))\n"
885 " (declare (in) vec2 arg0)\n"
886 " (declare (in) vec2 arg1))\n"
887 " ((return (expression vec2 % (var_ref arg0) (var_ref arg1)))))\n"
891 " (declare (in) vec3 arg0)\n"
892 " (declare (in) vec3 arg1))\n"
893 " ((return (expression vec3 % (var_ref arg0) (var_ref arg1)))))\n"
897 " (declare (in) vec4 arg0)\n"
898 " (declare (in) vec4 arg1))\n"
899 " ((return (expression vec4 % (var_ref arg0) (var_ref arg1)))))\n"
903 static const char *builtins_110_normalize = {
904 "((function normalize\n"
905 " (signature float\n"
907 " (declare (in) float arg0))\n"
908 " ((return (expression float * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n"
912 " (declare (in) vec2 arg0))\n"
913 " ((return (expression vec2 * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n"
917 " (declare (in) vec3 arg0))\n"
918 " ((return (expression vec3 * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n"
922 " (declare (in) vec4 arg0))\n"
923 " ((return (expression vec4 * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n"
927 static const char *builtins_110_not = {
929 " (signature bvec2\n"
931 " (declare (in) bvec2 arg0))\n"
932 " ((return (expression bvec2 ! (var_ref arg0)))))\n"
934 " (signature bvec3\n"
936 " (declare (in) bvec3 arg0))\n"
937 " ((return (expression bvec3 ! (var_ref arg0)))))\n"
939 " (signature bvec4\n"
941 " (declare (in) bvec4 arg0))\n"
942 " ((return (expression bvec4 ! (var_ref arg0)))))\n"
946 static const char *builtins_110_notEqual = {
947 "((function notEqual\n"
948 " (signature bvec2\n"
950 " (declare (in) vec2 arg0)\n"
951 " (declare (in) vec2 arg1))\n"
952 " ((declare () bvec2 temp)\n"
953 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression float != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
954 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression float != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
955 " (return (var_ref temp))))\n"
957 " (signature bvec3\n"
959 " (declare (in) vec3 arg0)\n"
960 " (declare (in) vec3 arg1))\n"
961 " ((declare () bvec3 temp)\n"
962 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression float != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
963 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression float != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
964 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression float != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
965 " (return (var_ref temp))))\n"
967 " (signature bvec4\n"
969 " (declare (in) vec4 arg0)\n"
970 " (declare (in) vec4 arg1))\n"
971 " ((declare () bvec4 temp)\n"
972 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression float != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
973 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression float != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
974 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression float != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
975 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression float != (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
976 " (return (var_ref temp))))\n"
978 " (signature bvec2\n"
980 " (declare (in) ivec2 arg0)\n"
981 " (declare (in) ivec2 arg1))\n"
982 " ((declare () bvec2 temp)\n"
983 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression int != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
984 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression int != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
985 " (return (var_ref temp))))\n"
987 " (signature bvec3\n"
989 " (declare (in) ivec3 arg0)\n"
990 " (declare (in) ivec3 arg1))\n"
991 " ((declare () bvec3 temp)\n"
992 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression int != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
993 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression int != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
994 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression int != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
995 " (return (var_ref temp))))\n"
997 " (signature bvec4\n"
999 " (declare (in) ivec4 arg0)\n"
1000 " (declare (in) ivec4 arg1))\n"
1001 " ((declare () bvec4 temp)\n"
1002 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression int != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1003 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression int != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1004 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression int != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1005 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression int != (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
1006 " (return (var_ref temp))))\n"
1010 static const char *builtins_110_pow = {
1012 " (signature float\n"
1014 " (declare (in) float arg0)\n"
1015 " (declare (in) float arg1))\n"
1016 " ((return (expression float pow (var_ref arg0) (var_ref arg1)))))\n"
1018 " (signature vec2\n"
1020 " (declare (in) vec2 arg0)\n"
1021 " (declare (in) vec2 arg1))\n"
1022 " ((return (expression vec2 pow (var_ref arg0) (var_ref arg1)))))\n"
1024 " (signature vec3\n"
1026 " (declare (in) vec3 arg0)\n"
1027 " (declare (in) vec3 arg1))\n"
1028 " ((return (expression vec3 pow (var_ref arg0) (var_ref arg1)))))\n"
1030 " (signature vec4\n"
1032 " (declare (in) vec4 arg0)\n"
1033 " (declare (in) vec4 arg1))\n"
1034 " ((return (expression vec4 pow (var_ref arg0) (var_ref arg1)))))\n"
1038 static const char *builtins_110_radians = {
1039 "((function radians\n"
1040 " (signature float\n"
1042 " (declare (in) float arg0))\n"
1043 " ((return (expression float * (var_ref arg0) (constant float (0.017453))))))\n"
1045 " (signature vec2\n"
1047 " (declare (in) vec2 arg0))\n"
1048 " ((return (expression vec2 * (var_ref arg0) (constant float (0.017453))))))\n"
1050 " (signature vec3\n"
1052 " (declare (in) vec3 arg0))\n"
1053 " ((return (expression vec3 * (var_ref arg0) (constant float (0.017453))))))\n"
1055 " (signature vec4\n"
1057 " (declare (in) vec4 arg0))\n"
1058 " ((return (expression vec4 * (var_ref arg0) (constant float (0.017453))))))\n"
1062 static const char *builtins_110_sign = {
1064 " (signature float\n"
1066 " (declare (in) float x))\n"
1067 " ((return (expression float sign (var_ref x)))))\n"
1069 " (signature vec2\n"
1071 " (declare (in) vec2 x))\n"
1072 " ((declare () vec2 t)\n"
1073 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float sign (swiz x (var_ref x))))\n"
1074 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float sign (swiz y (var_ref x))))\n"
1075 " (return (var_ref t))))\n"
1077 " (signature vec3\n"
1079 " (declare (in) vec3 x))\n"
1080 " ((declare () vec3 t)\n"
1081 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float sign (swiz x (var_ref x))))\n"
1082 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float sign (swiz y (var_ref x))))\n"
1083 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float sign (swiz z (var_ref x))))\n"
1084 " (return (var_ref t))))\n"
1086 " (signature vec4\n"
1088 " (declare (in) vec4 x))\n"
1089 " ((declare () vec4 t)\n"
1090 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float sign (swiz x (var_ref x))))\n"
1091 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float sign (swiz y (var_ref x))))\n"
1092 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float sign (swiz z (var_ref x))))\n"
1093 " (assign (constant bool (1)) (swiz w (var_ref t)) (expression float sign (swiz w (var_ref x))))\n"
1094 " (return (var_ref t))))\n"
1099 static const char *builtins_110_sin = {
1101 " (signature float\n"
1103 " (declare (in) float angle))\n"
1104 " ((return (expression float sin (var_ref angle)))))\n"
1106 " (signature vec2\n"
1108 " (declare (in) vec2 angle))\n"
1109 " ((return (expression vec2 sin (var_ref angle)))))\n"
1111 " (signature vec3\n"
1113 " (declare (in) vec3 angle))\n"
1114 " ((return (expression vec3 sin (var_ref angle)))))\n"
1116 " (signature vec4\n"
1118 " (declare (in) vec4 angle))\n"
1119 " ((return (expression vec4 sin (var_ref angle)))))\n"
1123 static const char *builtins_110_smoothstep = {
1124 "((function smoothstep\n"
1125 " (signature float\n"
1127 " (declare (in) float edge0)\n"
1128 " (declare (in) float edge1)\n"
1129 " (declare (in) float x))\n"
1130 " ((declare () float t)\n"
1132 " (assign (constant bool (1)) (var_ref t)\n"
1133 " (expression float max\n"
1134 " (expression float min\n"
1135 " (expression float / (expression float - (var_ref x) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1136 " (constant float (1.0)))\n"
1137 " (constant float (0.0))))\n"
1138 " (return (expression float * (var_ref t) (expression float * (var_ref t) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (var_ref t))))))))\n"
1140 " (signature vec2\n"
1142 " (declare (in) float edge0)\n"
1143 " (declare (in) float edge1)\n"
1144 " (declare (in) vec2 x))\n"
1145 " ((declare () vec2 t)\n"
1146 " (declare () vec2 retval)\n"
1148 " (assign (constant bool (1)) (swiz x (var_ref t))\n"
1149 " (expression float max\n"
1150 " (expression float min\n"
1151 " (expression float / (expression float - (swiz x (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1152 " (constant float (1.0)))\n"
1153 " (constant float (0.0))))\n"
1154 " (assign (constant bool (1)) (swiz x (var_ref retval)) (expression float * (swiz x (var_ref t)) (expression float * (swiz x (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz x (var_ref t)))))))\n"
1156 " (assign (constant bool (1)) (swiz y (var_ref t))\n"
1157 " (expression float max\n"
1158 " (expression float min\n"
1159 " (expression float / (expression float - (swiz y (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1160 " (constant float (1.0)))\n"
1161 " (constant float (0.0))))\n"
1162 " (assign (constant bool (1)) (swiz y (var_ref retval)) (expression float * (swiz y (var_ref t)) (expression float * (swiz y (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz y (var_ref t)))))))\n"
1163 " (return (var_ref retval))\n"
1166 " (signature vec3\n"
1168 " (declare (in) float edge0)\n"
1169 " (declare (in) float edge1)\n"
1170 " (declare (in) vec3 x))\n"
1171 " ((declare () vec3 t)\n"
1172 " (declare () vec3 retval)\n"
1174 " (assign (constant bool (1)) (swiz x (var_ref t))\n"
1175 " (expression float max\n"
1176 " (expression float min\n"
1177 " (expression float / (expression float - (swiz x (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1178 " (constant float (1.0)))\n"
1179 " (constant float (0.0))))\n"
1180 " (assign (constant bool (1)) (swiz x (var_ref retval)) (expression float * (swiz x (var_ref t)) (expression float * (swiz x (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz x (var_ref t)))))))\n"
1182 " (assign (constant bool (1)) (swiz y (var_ref t))\n"
1183 " (expression float max\n"
1184 " (expression float min\n"
1185 " (expression float / (expression float - (swiz y (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1186 " (constant float (1.0)))\n"
1187 " (constant float (0.0))))\n"
1188 " (assign (constant bool (1)) (swiz y (var_ref retval)) (expression float * (swiz y (var_ref t)) (expression float * (swiz y (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz y (var_ref t)))))))\n"
1190 " (assign (constant bool (1)) (swiz z (var_ref t))\n"
1191 " (expression float max\n"
1192 " (expression float min\n"
1193 " (expression float / (expression float - (swiz z (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1194 " (constant float (1.0)))\n"
1195 " (constant float (0.0))))\n"
1196 " (assign (constant bool (1)) (swiz z (var_ref retval)) (expression float * (swiz z (var_ref t)) (expression float * (swiz z (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz z (var_ref t)))))))\n"
1197 " (return (var_ref retval))\n"
1201 " (signature vec4\n"
1203 " (declare (in) float edge0)\n"
1204 " (declare (in) float edge1)\n"
1205 " (declare (in) vec4 x))\n"
1206 " ((declare () vec4 t)\n"
1207 " (declare () vec4 retval)\n"
1209 " (assign (constant bool (1)) (swiz x (var_ref t))\n"
1210 " (expression float max\n"
1211 " (expression float min\n"
1212 " (expression float / (expression float - (swiz x (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1213 " (constant float (1.0)))\n"
1214 " (constant float (0.0))))\n"
1215 " (assign (constant bool (1)) (swiz x (var_ref retval)) (expression float * (swiz x (var_ref t)) (expression float * (swiz x (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz x (var_ref t)))))))\n"
1217 " (assign (constant bool (1)) (swiz y (var_ref t))\n"
1218 " (expression float max\n"
1219 " (expression float min\n"
1220 " (expression float / (expression float - (swiz y (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1221 " (constant float (1.0)))\n"
1222 " (constant float (0.0))))\n"
1223 " (assign (constant bool (1)) (swiz y (var_ref retval)) (expression float * (swiz y (var_ref t)) (expression float * (swiz y (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz y (var_ref t)))))))\n"
1225 " (assign (constant bool (1)) (swiz z (var_ref t))\n"
1226 " (expression float max\n"
1227 " (expression float min\n"
1228 " (expression float / (expression float - (swiz z (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1229 " (constant float (1.0)))\n"
1230 " (constant float (0.0))))\n"
1231 " (assign (constant bool (1)) (swiz z (var_ref retval)) (expression float * (swiz z (var_ref t)) (expression float * (swiz z (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz z (var_ref t)))))))\n"
1233 " (assign (constant bool (1)) (swiz w (var_ref t))\n"
1234 " (expression float max\n"
1235 " (expression float min\n"
1236 " (expression float / (expression float - (swiz w (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1237 " (constant float (1.0)))\n"
1238 " (constant float (0.0))))\n"
1239 " (assign (constant bool (1)) (swiz w (var_ref retval)) (expression float * (swiz w (var_ref t)) (expression float * (swiz w (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz w (var_ref t)))))))\n"
1240 " (return (var_ref retval))\n"
1243 " (signature vec2\n"
1245 " (declare (in) vec2 edge0)\n"
1246 " (declare (in) vec2 edge1)\n"
1247 " (declare (in) vec2 x))\n"
1248 " ((declare () vec2 t)\n"
1249 " (declare () vec2 retval)\n"
1251 " (assign (constant bool (1)) (swiz x (var_ref t))\n"
1252 " (expression float max\n"
1253 " (expression float min\n"
1254 " (expression float / (expression float - (swiz x (var_ref x)) (swiz x (var_ref edge0))) (expression float - (swiz x (var_ref edge1)) (swiz x (var_ref edge0))))\n"
1255 " (constant float (1.0)))\n"
1256 " (constant float (0.0))))\n"
1257 " (assign (constant bool (1)) (swiz x (var_ref retval)) (expression float * (swiz x (var_ref t)) (expression float * (swiz x (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz x (var_ref t)))))))\n"
1259 " (assign (constant bool (1)) (swiz y (var_ref t))\n"
1260 " (expression float max\n"
1261 " (expression float min\n"
1262 " (expression float / (expression float - (swiz y (var_ref x)) (swiz y (var_ref edge0))) (expression float - (swiz y (var_ref edge1)) (swiz y (var_ref edge0))))\n"
1263 " (constant float (1.0)))\n"
1264 " (constant float (0.0))))\n"
1265 " (assign (constant bool (1)) (swiz y (var_ref retval)) (expression float * (swiz y (var_ref t)) (expression float * (swiz y (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz y (var_ref t)))))))\n"
1266 " (return (var_ref retval))\n"
1269 " (signature vec3\n"
1271 " (declare (in) vec3 edge0)\n"
1272 " (declare (in) vec3 edge1)\n"
1273 " (declare (in) vec3 x))\n"
1274 " ((declare () vec3 t)\n"
1275 " (declare () vec3 retval)\n"
1277 " (assign (constant bool (1)) (swiz x (var_ref t))\n"
1278 " (expression float max\n"
1279 " (expression float min\n"
1280 " (expression float / (expression float - (swiz x (var_ref x)) (swiz x (var_ref edge0))) (expression float - (swiz x (var_ref edge1)) (swiz x (var_ref edge0))))\n"
1281 " (constant float (1.0)))\n"
1282 " (constant float (0.0))))\n"
1283 " (assign (constant bool (1)) (swiz x (var_ref retval)) (expression float * (swiz x (var_ref t)) (expression float * (swiz x (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz x (var_ref t)))))))\n"
1285 " (assign (constant bool (1)) (swiz y (var_ref t))\n"
1286 " (expression float max\n"
1287 " (expression float min\n"
1288 " (expression float / (expression float - (swiz y (var_ref x)) (swiz y (var_ref edge0))) (expression float - (swiz y (var_ref edge1)) (swiz y (var_ref edge0))))\n"
1289 " (constant float (1.0)))\n"
1290 " (constant float (0.0))))\n"
1291 " (assign (constant bool (1)) (swiz y (var_ref retval)) (expression float * (swiz y (var_ref t)) (expression float * (swiz y (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz y (var_ref t)))))))\n"
1293 " (assign (constant bool (1)) (swiz z (var_ref t))\n"
1294 " (expression float max\n"
1295 " (expression float min\n"
1296 " (expression float / (expression float - (swiz z (var_ref x)) (swiz z (var_ref edge0))) (expression float - (swiz z (var_ref edge1)) (swiz z (var_ref edge0))))\n"
1297 " (constant float (1.0)))\n"
1298 " (constant float (0.0))))\n"
1299 " (assign (constant bool (1)) (swiz z (var_ref retval)) (expression float * (swiz z (var_ref t)) (expression float * (swiz z (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz z (var_ref t)))))))\n"
1300 " (return (var_ref retval))\n"
1304 " (signature vec4\n"
1306 " (declare (in) vec4 edge0)\n"
1307 " (declare (in) vec4 edge1)\n"
1308 " (declare (in) vec4 x))\n"
1309 " ((declare () vec4 t)\n"
1310 " (declare () vec4 retval)\n"
1312 " (assign (constant bool (1)) (swiz x (var_ref t))\n"
1313 " (expression float max\n"
1314 " (expression float min\n"
1315 " (expression float / (expression float - (swiz x (var_ref x)) (swiz x (var_ref edge0))) (expression float - (swiz x (var_ref edge1)) (swiz x (var_ref edge0))))\n"
1316 " (constant float (1.0)))\n"
1317 " (constant float (0.0))))\n"
1318 " (assign (constant bool (1)) (swiz x (var_ref retval)) (expression float * (swiz x (var_ref t)) (expression float * (swiz x (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz x (var_ref t)))))))\n"
1320 " (assign (constant bool (1)) (swiz y (var_ref t))\n"
1321 " (expression float max\n"
1322 " (expression float min\n"
1323 " (expression float / (expression float - (swiz y (var_ref x)) (swiz y (var_ref edge0))) (expression float - (swiz y (var_ref edge1)) (swiz y (var_ref edge0))))\n"
1324 " (constant float (1.0)))\n"
1325 " (constant float (0.0))))\n"
1326 " (assign (constant bool (1)) (swiz y (var_ref retval)) (expression float * (swiz y (var_ref t)) (expression float * (swiz y (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz y (var_ref t)))))))\n"
1328 " (assign (constant bool (1)) (swiz z (var_ref t))\n"
1329 " (expression float max\n"
1330 " (expression float min\n"
1331 " (expression float / (expression float - (swiz z (var_ref x)) (swiz z (var_ref edge0))) (expression float - (swiz z (var_ref edge1)) (swiz z (var_ref edge0))))\n"
1332 " (constant float (1.0)))\n"
1333 " (constant float (0.0))))\n"
1334 " (assign (constant bool (1)) (swiz z (var_ref retval)) (expression float * (swiz z (var_ref t)) (expression float * (swiz z (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz z (var_ref t)))))))\n"
1336 " (assign (constant bool (1)) (swiz w (var_ref t))\n"
1337 " (expression float max\n"
1338 " (expression float min\n"
1339 " (expression float / (expression float - (swiz w (var_ref x)) (swiz w (var_ref edge0))) (expression float - (swiz w (var_ref edge1)) (swiz w (var_ref edge0))))\n"
1340 " (constant float (1.0)))\n"
1341 " (constant float (0.0))))\n"
1342 " (assign (constant bool (1)) (swiz w (var_ref retval)) (expression float * (swiz w (var_ref t)) (expression float * (swiz w (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz w (var_ref t)))))))\n"
1343 " (return (var_ref retval))\n"
1350 static const char *builtins_110_sqrt = {
1352 " (signature float\n"
1354 " (declare (in) float arg0))\n"
1355 " ((return (expression float sqrt (var_ref arg0)))))\n"
1357 " (signature vec2\n"
1359 " (declare (in) vec2 arg0))\n"
1360 " ((return (expression vec2 sqrt (var_ref arg0)))))\n"
1362 " (signature vec3\n"
1364 " (declare (in) vec3 arg0))\n"
1365 " ((return (expression vec3 sqrt (var_ref arg0)))))\n"
1367 " (signature vec4\n"
1369 " (declare (in) vec4 arg0))\n"
1370 " ((return (expression vec4 sqrt (var_ref arg0)))))\n"
1374 static const char *builtins_110_step = {
1376 " (signature float\n"
1378 " (declare (in) float edge)\n"
1379 " (declare (in) float x))\n"
1380 " ((return (expression float b2f (expression bool < (var_ref x) (var_ref edge))))))\n"
1382 " (signature vec2\n"
1384 " (declare (in) float edge)\n"
1385 " (declare (in) vec2 x))\n"
1386 " ((declare () vec2 t)\n"
1387 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool < (swiz x (var_ref x))(var_ref edge))))\n"
1388 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool < (swiz y (var_ref x))(var_ref edge))))\n"
1389 " (return (var_ref t))))\n"
1391 " (signature vec3\n"
1393 " (declare (in) float edge)\n"
1394 " (declare (in) vec3 x))\n"
1395 " ((declare () vec3 t)\n"
1396 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool < (swiz x (var_ref x))(var_ref edge))))\n"
1397 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool < (swiz y (var_ref x))(var_ref edge))))\n"
1398 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float b2f (expression bool < (swiz z (var_ref x))(var_ref edge))))\n"
1399 " (return (var_ref t))))\n"
1401 " (signature vec4\n"
1403 " (declare (in) float edge)\n"
1404 " (declare (in) vec4 x))\n"
1405 " ((declare () vec4 t)\n"
1406 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool < (swiz x (var_ref x))(var_ref edge))))\n"
1407 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool < (swiz y (var_ref x))(var_ref edge))))\n"
1408 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float b2f (expression bool < (swiz z (var_ref x))(var_ref edge))))\n"
1409 " (assign (constant bool (1)) (swiz w (var_ref t)) (expression float b2f (expression bool < (swiz w (var_ref x))(var_ref edge))))\n"
1410 " (return (var_ref t))))\n"
1412 " (signature vec2\n"
1414 " (declare (in) vec2 edge)\n"
1415 " (declare (in) vec2 x))\n"
1416 " ((declare () vec2 t)\n"
1417 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool < (swiz x (var_ref x))(swiz x (var_ref edge)))))\n"
1418 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool < (swiz y (var_ref x))(swiz y (var_ref edge)))))\n"
1419 " (return (var_ref t))))\n"
1421 " (signature vec3\n"
1423 " (declare (in) vec3 edge)\n"
1424 " (declare (in) vec3 x))\n"
1425 " ((declare () vec3 t)\n"
1426 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool < (swiz x (var_ref x))(swiz x (var_ref edge)))))\n"
1427 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool < (swiz y (var_ref x))(swiz y (var_ref edge)))))\n"
1428 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float b2f (expression bool < (swiz z (var_ref x))(swiz z (var_ref edge)))))\n"
1429 " (return (var_ref t))))\n"
1431 " (signature vec4\n"
1433 " (declare (in) vec4 edge)\n"
1434 " (declare (in) vec4 x))\n"
1435 " ((declare () vec4 t)\n"
1436 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool < (swiz x (var_ref x))(swiz x (var_ref edge)))))\n"
1437 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool < (swiz y (var_ref x))(swiz y (var_ref edge)))))\n"
1438 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float b2f (expression bool < (swiz y (var_ref x))(swiz z (var_ref edge)))))\n"
1439 " (assign (constant bool (1)) (swiz w (var_ref t)) (expression float b2f (expression bool < (swiz w (var_ref x))(swiz w (var_ref edge)))))\n"
1440 " (return (var_ref t))))\n"
1445 static const char *builtins_110_tan = {
1447 " (signature float\n"
1449 " (declare (in) float angle))\n"
1450 " ((return (expression float / (expression float sin (var_ref angle)) (expression float cos (var_ref angle))))))\n"
1452 " (signature vec2\n"
1454 " (declare (in) vec2 angle))\n"
1455 " ((return (expression float / (expression float sin (var_ref angle)) (expression vec2 cos (var_ref angle))))))\n"
1457 " (signature vec3\n"
1459 " (declare (in) vec3 angle))\n"
1460 " ((return (expression float / (expression float sin (var_ref angle)) (expression vec3 cos (var_ref angle))))))\n"
1462 " (signature vec4\n"
1464 " (declare (in) vec4 angle))\n"
1465 " ((return (expression float / (expression float sin (var_ref angle)) (expression vec4 cos (var_ref angle))))))\n"
1469 static const char *functions_for_110 [] = {
1477 builtins_110_degrees,
1484 builtins_110_greaterThan,
1485 builtins_110_greaterThanEqual,
1486 builtins_110_inversesqrt,
1487 builtins_110_length,
1488 builtins_110_lessThan,
1489 builtins_110_lessThanEqual,
1496 builtins_110_normalize,
1498 builtins_110_notEqual,
1500 builtins_110_radians,
1503 builtins_110_smoothstep,
1509 /* Version 130 builtins */
1511 static const char *builtins_130_equal = {
1512 "((function equal\n"
1513 " (signature bvec2\n"
1515 " (declare (in) uvec2 arg0)\n"
1516 " (declare (in) uvec2 arg1))\n"
1517 " ((declare () bvec2 temp)\n"
1518 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1519 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1520 " (return (var_ref temp))))\n"
1522 " (signature bvec3\n"
1524 " (declare (in) uvec3 arg0)\n"
1525 " (declare (in) uvec3 arg1))\n"
1526 " ((declare () bvec3 temp)\n"
1527 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1528 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1529 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1530 " (return (var_ref temp))))\n"
1532 " (signature bvec4\n"
1534 " (declare (in) uvec4 arg0)\n"
1535 " (declare (in) uvec4 arg1))\n"
1536 " ((declare () bvec4 temp)\n"
1537 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1538 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1539 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1540 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool == (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
1541 " (return (var_ref temp))))\n"
1545 static const char *builtins_130_greaterThan = {
1546 "((function greaterThan\n"
1547 " (signature bvec2\n"
1549 " (declare (in) uvec2 arg0)\n"
1550 " (declare (in) uvec2 arg1))\n"
1551 " ((declare () bvec2 temp)\n"
1552 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1553 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1554 " (return (var_ref temp))))\n"
1556 " (signature bvec3\n"
1558 " (declare (in) uvec3 arg0)\n"
1559 " (declare (in) uvec3 arg1))\n"
1560 " ((declare () bvec3 temp)\n"
1561 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1562 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1563 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1564 " (return (var_ref temp))))\n"
1566 " (signature bvec4\n"
1568 " (declare (in) uvec4 arg0)\n"
1569 " (declare (in) uvec4 arg1))\n"
1570 " ((declare () bvec4 temp)\n"
1571 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1572 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1573 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1574 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool > (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
1575 " (return (var_ref temp))))\n"
1579 static const char *builtins_130_greaterThanEqual = {
1580 "((function greaterThanEqual\n"
1581 " (signature bvec2\n"
1583 " (declare (in) uvec2 arg0)\n"
1584 " (declare (in) uvec2 arg1))\n"
1585 " ((declare () bvec2 temp)\n"
1586 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1587 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1588 " (return (var_ref temp))))\n"
1590 " (signature bvec3\n"
1592 " (declare (in) uvec3 arg0)\n"
1593 " (declare (in) uvec3 arg1))\n"
1594 " ((declare () bvec3 temp)\n"
1595 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1596 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1597 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1598 " (return (var_ref temp))))\n"
1600 " (signature bvec4\n"
1602 " (declare (in) uvec4 arg0)\n"
1603 " (declare (in) uvec4 arg1))\n"
1604 " ((declare () bvec4 temp)\n"
1605 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1606 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1607 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1608 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool >= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
1609 " (return (var_ref temp))))\n"
1613 static const char *builtins_130_lessThan = {
1614 "((function lessThan\n"
1615 " (signature bvec2\n"
1617 " (declare (in) uvec2 arg0)\n"
1618 " (declare (in) uvec2 arg1))\n"
1619 " ((declare () bvec2 temp)\n"
1620 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1621 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1622 " (return (var_ref temp))))\n"
1624 " (signature bvec3\n"
1626 " (declare (in) uvec3 arg0)\n"
1627 " (declare (in) uvec3 arg1))\n"
1628 " ((declare () bvec3 temp)\n"
1629 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1630 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1631 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1632 " (return (var_ref temp))))\n"
1634 " (signature bvec4\n"
1636 " (declare (in) uvec4 arg0)\n"
1637 " (declare (in) uvec4 arg1))\n"
1638 " ((declare () bvec4 temp)\n"
1639 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1640 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1641 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1642 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool < (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
1643 " (return (var_ref temp))))\n"
1647 static const char *builtins_130_lessThanEqual = {
1648 "((function lessThanEqual\n"
1649 " (signature bvec2\n"
1651 " (declare (in) uvec2 arg0)\n"
1652 " (declare (in) uvec2 arg1))\n"
1653 " ((declare () bvec2 temp)\n"
1654 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1655 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1656 " (return (var_ref temp))))\n"
1658 " (signature bvec3\n"
1660 " (declare (in) uvec3 arg0)\n"
1661 " (declare (in) uvec3 arg1))\n"
1662 " ((declare () bvec3 temp)\n"
1663 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1664 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1665 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1666 " (return (var_ref temp))))\n"
1668 " (signature bvec4\n"
1670 " (declare (in) uvec4 arg0)\n"
1671 " (declare (in) uvec4 arg1))\n"
1672 " ((declare () bvec4 temp)\n"
1673 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1674 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1675 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1676 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool <= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
1677 " (return (var_ref temp))))\n"
1681 static const char *builtins_130_notEqual = {
1682 "((function notEqual\n"
1683 " (signature bvec2\n"
1685 " (declare (in) uvec2 arg0)\n"
1686 " (declare (in) uvec2 arg1))\n"
1687 " ((declare () bvec2 temp)\n"
1688 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1689 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1690 " (return (var_ref temp))))\n"
1692 " (signature bvec3\n"
1694 " (declare (in) uvec3 arg0)\n"
1695 " (declare (in) uvec3 arg1))\n"
1696 " ((declare () bvec3 temp)\n"
1697 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1698 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1699 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1700 " (return (var_ref temp))))\n"
1702 " (signature bvec4\n"
1704 " (declare (in) uvec4 arg0)\n"
1705 " (declare (in) uvec4 arg1))\n"
1706 " ((declare () bvec4 temp)\n"
1707 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1708 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1709 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1710 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool != (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
1711 " (return (var_ref temp))))\n"
1715 static const char *builtins_130_sign = {
1719 " (declare (in) int x))\n"
1720 " ((return (expression int / (var_ref x) (expression int abs (var_ref x))))))\n"
1722 " (signature ivec2\n"
1724 " (declare (in) ivec2 x))\n"
1725 " ((declare () ivec2 t)\n"
1726 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression int sign (swiz x (var_ref x))))\n"
1727 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression int sign (swiz y (var_ref x))))\n"
1728 " (return (var_ref t))))\n"
1730 " (signature ivec3\n"
1732 " (declare (in) ivec3 x))\n"
1733 " ((declare () ivec3 t)\n"
1734 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression int sign (swiz x (var_ref x))))\n"
1735 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression int sign (swiz y (var_ref x))))\n"
1736 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression int sign (swiz z (var_ref x))))\n"
1737 " (return (var_ref t))))\n"
1739 " (signature ivec4\n"
1741 " (declare (in) ivec4 x))\n"
1742 " ((declare () ivec4 t)\n"
1743 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression int sign (swiz x (var_ref x))))\n"
1744 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression int sign (swiz y (var_ref x))))\n"
1745 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression int sign (swiz z (var_ref x))))\n"
1746 " (assign (constant bool (1)) (swiz w (var_ref t)) (expression int sign (swiz w (var_ref x))))\n"
1747 " (return (var_ref t))))\n"
1752 static const char *functions_for_130 [] = {
1754 builtins_130_greaterThan,
1755 builtins_130_greaterThanEqual,
1756 builtins_130_lessThan,
1757 builtins_130_lessThanEqual,
1758 builtins_130_notEqual,
1763 _mesa_glsl_initialize_functions(exec_list *instructions,
1764 struct _mesa_glsl_parse_state *state)
1766 if (state->language_version >= 110)
1767 read_builtins(state, instructions, functions_for_110,
1768 sizeof(functions_for_110) / sizeof(const char *));
1770 if (state->language_version >= 130)
1771 read_builtins(state, instructions, functions_for_130,
1772 sizeof(functions_for_130) / sizeof(const char *));