Implement 1.30 int/uint variants of min/max/clamp.

This commit is contained in:
Kenneth Graunke 2010-06-09 16:14:45 -07:00
parent c3bf0cbefc
commit af05703826
4 changed files with 766 additions and 0 deletions

View file

@ -3056,6 +3056,132 @@ static const char *functions_for_120 [] = {
/* 130 builtins */
static const char *builtins_130_clamp = {
"((function clamp\n"
" (signature int\n"
" (parameters\n"
" (declare (in) int arg0)\n"
" (declare (in) int arg1)\n"
" (declare (in) int arg2))\n"
" ((return (expression int max (expression int min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"\n"
" (signature ivec2\n"
" (parameters\n"
" (declare (in) ivec2 arg0)\n"
" (declare (in) ivec2 arg1)\n"
" (declare (in) ivec2 arg2))\n"
" ((return (expression ivec2 max (expression ivec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"\n"
" (signature ivec3\n"
" (parameters\n"
" (declare (in) ivec3 arg0)\n"
" (declare (in) ivec3 arg1)\n"
" (declare (in) ivec3 arg2))\n"
" ((return (expression ivec3 max (expression ivec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"\n"
" (signature ivec4\n"
" (parameters\n"
" (declare (in) ivec4 arg0)\n"
" (declare (in) ivec4 arg1)\n"
" (declare (in) ivec4 arg2))\n"
" ((return (expression ivec4 max (expression ivec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"\n"
" (signature ivec2\n"
" (parameters\n"
" (declare (in) ivec2 arg0)\n"
" (declare (in) int arg1)\n"
" (declare (in) int arg2))\n"
" ((declare () ivec2 result)\n"
" (assign (constant bool (1)) (swiz x (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz y (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
" (return (var_ref result))))\n"
"\n"
" (signature ivec3\n"
" (parameters\n"
" (declare (in) ivec3 arg0)\n"
" (declare (in) int arg1)\n"
" (declare (in) int arg2))\n"
" ((declare () ivec3 result)\n"
" (assign (constant bool (1)) (swiz x (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz y (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz z (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz z (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
" (return (var_ref result))))\n"
"\n"
" (signature ivec4\n"
" (parameters\n"
" (declare (in) ivec4 arg0)\n"
" (declare (in) int arg1)\n"
" (declare (in) int arg2))\n"
" ((declare () ivec4 result)\n"
" (assign (constant bool (1)) (swiz x (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz y (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz z (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz z (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz w (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz w (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
" (return (var_ref result))))\n"
"\n"
" (signature uint\n"
" (parameters\n"
" (declare (in) uint arg0)\n"
" (declare (in) uint arg1)\n"
" (declare (in) uint arg2))\n"
" ((return (expression uint max (expression uint min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"\n"
" (signature uvec2\n"
" (parameters\n"
" (declare (in) uvec2 arg0)\n"
" (declare (in) uvec2 arg1)\n"
" (declare (in) uvec2 arg2))\n"
" ((return (expression uvec2 max (expression uvec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"\n"
" (signature uvec3\n"
" (parameters\n"
" (declare (in) uvec3 arg0)\n"
" (declare (in) uvec3 arg1)\n"
" (declare (in) uvec3 arg2))\n"
" ((return (expression uvec3 max (expression uvec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"\n"
" (signature uvec4\n"
" (parameters\n"
" (declare (in) uvec4 arg0)\n"
" (declare (in) uvec4 arg1)\n"
" (declare (in) uvec4 arg2))\n"
" ((return (expression uvec4 max (expression uvec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"\n"
" (signature uvec2\n"
" (parameters\n"
" (declare (in) uvec2 arg0)\n"
" (declare (in) uint arg1)\n"
" (declare (in) uint arg2))\n"
" ((declare () uvec2 result)\n"
" (assign (constant bool (1)) (swiz x (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz y (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
" (return (var_ref result))))\n"
"\n"
" (signature uvec3\n"
" (parameters\n"
" (declare (in) uvec3 arg0)\n"
" (declare (in) uint arg1)\n"
" (declare (in) uint arg2))\n"
" ((declare () uvec3 result)\n"
" (assign (constant bool (1)) (swiz x (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz y (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz z (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz z (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
" (return (var_ref result))))\n"
"\n"
" (signature uvec4\n"
" (parameters\n"
" (declare (in) uvec4 arg0)\n"
" (declare (in) uint arg1)\n"
" (declare (in) uint arg2))\n"
" ((declare () uvec4 result)\n"
" (assign (constant bool (1)) (swiz x (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz y (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz z (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz z (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz w (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz w (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
" (return (var_ref result))))\n"
"))\n"
};
static const char *builtins_130_cosh = {
"((function cosh\n"
" (signature float\n"
@ -3259,6 +3385,266 @@ static const char *builtins_130_lessThanEqual = {
"))\n"
};
static const char *builtins_130_max = {
"((function max\n"
" (signature int\n"
" (parameters\n"
" (declare (in) int arg0)\n"
" (declare (in) int arg1))\n"
" ((return (expression int max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature ivec2\n"
" (parameters\n"
" (declare (in) ivec2 arg0)\n"
" (declare (in) ivec2 arg1))\n"
" ((return (expression ivec2 max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature ivec3\n"
" (parameters\n"
" (declare (in) ivec3 arg0)\n"
" (declare (in) ivec3 arg1))\n"
" ((return (expression ivec3 max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature ivec4\n"
" (parameters\n"
" (declare (in) ivec4 arg0)\n"
" (declare (in) ivec4 arg1))\n"
" ((return (expression ivec4 max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature ivec2\n"
" (parameters\n"
" (declare (in) ivec2 arg0)\n"
" (declare (in) int arg1))\n"
" ((declare () ivec2 result)\n"
" (assign (constant bool (1)) (swiz x (var_ref result))\n"
" (expression int max (swiz x (var_ref arg0)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz y (var_ref result))\n"
" (expression int max (swiz y (var_ref arg0)) (var_ref arg1)))\n"
" (return (var_ref result))))\n"
"\n"
" (signature ivec3\n"
" (parameters\n"
" (declare (in) ivec3 arg0)\n"
" (declare (in) int arg1))\n"
" ((declare () ivec3 result)\n"
" (assign (constant bool (1)) (swiz x (var_ref result))\n"
" (expression int max (swiz x (var_ref arg0)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz y (var_ref result))\n"
" (expression int max (swiz y (var_ref arg0)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz z (var_ref result))\n"
" (expression int max (swiz z (var_ref arg0)) (var_ref arg1)))\n"
" (return (var_ref result))))\n"
"\n"
" (signature ivec4\n"
" (parameters\n"
" (declare (in) ivec4 arg0)\n"
" (declare (in) int arg1))\n"
" ((declare () ivec4 result)\n"
" (assign (constant bool (1)) (swiz x (var_ref result))\n"
" (expression int max (swiz x (var_ref arg0)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz y (var_ref result))\n"
" (expression int max (swiz y (var_ref arg0)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz z (var_ref result))\n"
" (expression int max (swiz z (var_ref arg0)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz w (var_ref result))\n"
" (expression int max (swiz w (var_ref arg0)) (var_ref arg1)))\n"
" (return (var_ref result))))\n"
"\n"
" (signature uint\n"
" (parameters\n"
" (declare (in) uint arg0)\n"
" (declare (in) uint arg1))\n"
" ((return (expression uint max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature uvec2\n"
" (parameters\n"
" (declare (in) uvec2 arg0)\n"
" (declare (in) uvec2 arg1))\n"
" ((return (expression uvec2 max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature uvec3\n"
" (parameters\n"
" (declare (in) uvec3 arg0)\n"
" (declare (in) uvec3 arg1))\n"
" ((return (expression uvec3 max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature uvec4\n"
" (parameters\n"
" (declare (in) uvec4 arg0)\n"
" (declare (in) uvec4 arg1))\n"
" ((return (expression uvec4 max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature uvec2\n"
" (parameters\n"
" (declare (in) uvec2 arg0)\n"
" (declare (in) uint arg1))\n"
" ((declare () uvec2 result)\n"
" (assign (constant bool (1)) (swiz x (var_ref result))\n"
" (expression uint max (swiz x (var_ref arg0)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz y (var_ref result))\n"
" (expression uint max (swiz y (var_ref arg0)) (var_ref arg1)))\n"
" (return (var_ref result))))\n"
"\n"
" (signature uvec3\n"
" (parameters\n"
" (declare (in) uvec3 arg0)\n"
" (declare (in) uint arg1))\n"
" ((declare () uvec3 result)\n"
" (assign (constant bool (1)) (swiz x (var_ref result))\n"
" (expression uint max (swiz x (var_ref arg0)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz y (var_ref result))\n"
" (expression uint max (swiz y (var_ref arg0)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz z (var_ref result))\n"
" (expression uint max (swiz z (var_ref arg0)) (var_ref arg1)))\n"
" (return (var_ref result))))\n"
"\n"
" (signature uvec4\n"
" (parameters\n"
" (declare (in) uvec4 arg0)\n"
" (declare (in) uint arg1))\n"
" ((declare () uvec4 result)\n"
" (assign (constant bool (1)) (swiz x (var_ref result))\n"
" (expression uint max (swiz x (var_ref arg0)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz y (var_ref result))\n"
" (expression uint max (swiz y (var_ref arg0)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz z (var_ref result))\n"
" (expression uint max (swiz z (var_ref arg0)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz w (var_ref result))\n"
" (expression uint max (swiz w (var_ref arg0)) (var_ref arg1)))\n"
" (return (var_ref result))))\n"
"))\n"
};
static const char *builtins_130_min = {
"((function min\n"
" (signature int\n"
" (parameters\n"
" (declare (in) int arg0)\n"
" (declare (in) int arg1))\n"
" ((return (expression int min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature ivec2\n"
" (parameters\n"
" (declare (in) ivec2 arg0)\n"
" (declare (in) ivec2 arg1))\n"
" ((return (expression ivec2 min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature ivec3\n"
" (parameters\n"
" (declare (in) ivec3 arg0)\n"
" (declare (in) ivec3 arg1))\n"
" ((return (expression ivec3 min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature ivec4\n"
" (parameters\n"
" (declare (in) ivec4 arg0)\n"
" (declare (in) ivec4 arg1))\n"
" ((return (expression ivec4 min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature ivec2\n"
" (parameters\n"
" (declare (in) ivec2 arg0)\n"
" (declare (in) int arg1))\n"
" ((declare () ivec2 result)\n"
" (assign (constant bool (1)) (swiz x (var_ref result))\n"
" (expression int min (swiz x (var_ref arg0)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz y (var_ref result))\n"
" (expression int min (swiz y (var_ref arg0)) (var_ref arg1)))\n"
" (return (var_ref result))))\n"
"\n"
" (signature ivec3\n"
" (parameters\n"
" (declare (in) ivec3 arg0)\n"
" (declare (in) int arg1))\n"
" ((declare () ivec3 result)\n"
" (assign (constant bool (1)) (swiz x (var_ref result))\n"
" (expression int min (swiz x (var_ref arg0)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz y (var_ref result))\n"
" (expression int min (swiz y (var_ref arg0)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz z (var_ref result))\n"
" (expression int min (swiz z (var_ref arg0)) (var_ref arg1)))\n"
" (return (var_ref result))))\n"
"\n"
" (signature ivec4\n"
" (parameters\n"
" (declare (in) ivec4 arg0)\n"
" (declare (in) int arg1))\n"
" ((declare () ivec4 result)\n"
" (assign (constant bool (1)) (swiz x (var_ref result))\n"
" (expression int min (swiz x (var_ref arg0)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz y (var_ref result))\n"
" (expression int min (swiz y (var_ref arg0)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz z (var_ref result))\n"
" (expression int min (swiz z (var_ref arg0)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz w (var_ref result))\n"
" (expression int min (swiz w (var_ref arg0)) (var_ref arg1)))\n"
" (return (var_ref result))))\n"
"\n"
" (signature uint\n"
" (parameters\n"
" (declare (in) uint arg0)\n"
" (declare (in) uint arg1))\n"
" ((return (expression uint min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature uvec2\n"
" (parameters\n"
" (declare (in) uvec2 arg0)\n"
" (declare (in) uvec2 arg1))\n"
" ((return (expression uvec2 min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature uvec3\n"
" (parameters\n"
" (declare (in) uvec3 arg0)\n"
" (declare (in) uvec3 arg1))\n"
" ((return (expression uvec3 min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature uvec4\n"
" (parameters\n"
" (declare (in) uvec4 arg0)\n"
" (declare (in) uvec4 arg1))\n"
" ((return (expression uvec4 min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature uvec2\n"
" (parameters\n"
" (declare (in) uvec2 arg0)\n"
" (declare (in) uint arg1))\n"
" ((declare () uvec2 result)\n"
" (assign (constant bool (1)) (swiz x (var_ref result))\n"
" (expression uint min (swiz x (var_ref arg0)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz y (var_ref result))\n"
" (expression uint min (swiz y (var_ref arg0)) (var_ref arg1)))\n"
" (return (var_ref result))))\n"
"\n"
" (signature uvec3\n"
" (parameters\n"
" (declare (in) uvec3 arg0)\n"
" (declare (in) uint arg1))\n"
" ((declare () uvec3 result)\n"
" (assign (constant bool (1)) (swiz x (var_ref result))\n"
" (expression uint min (swiz x (var_ref arg0)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz y (var_ref result))\n"
" (expression uint min (swiz y (var_ref arg0)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz z (var_ref result))\n"
" (expression uint min (swiz z (var_ref arg0)) (var_ref arg1)))\n"
" (return (var_ref result))))\n"
"\n"
" (signature uvec4\n"
" (parameters\n"
" (declare (in) uvec4 arg0)\n"
" (declare (in) uint arg1))\n"
" ((declare () uvec4 result)\n"
" (assign (constant bool (1)) (swiz x (var_ref result))\n"
" (expression uint min (swiz x (var_ref arg0)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz y (var_ref result))\n"
" (expression uint min (swiz y (var_ref arg0)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz z (var_ref result))\n"
" (expression uint min (swiz z (var_ref arg0)) (var_ref arg1)))\n"
" (assign (constant bool (1)) (swiz w (var_ref result))\n"
" (expression uint min (swiz w (var_ref arg0)) (var_ref arg1)))\n"
" (return (var_ref result))))\n"
"))\n"
};
static const char *builtins_130_notEqual = {
"((function notEqual\n"
" (signature bvec2\n"
@ -4243,12 +4629,15 @@ static const char *builtins_130_textureProjLod = {
};
static const char *functions_for_130 [] = {
builtins_130_clamp,
builtins_130_cosh,
builtins_130_equal,
builtins_130_greaterThan,
builtins_130_greaterThanEqual,
builtins_130_lessThan,
builtins_130_lessThanEqual,
builtins_130_max,
builtins_130_min,
builtins_130_notEqual,
builtins_130_sign,
builtins_130_sinh,

123
builtins/130/clamp Normal file
View file

@ -0,0 +1,123 @@
((function clamp
(signature int
(parameters
(declare (in) int arg0)
(declare (in) int arg1)
(declare (in) int arg2))
((return (expression int max (expression int min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))
(signature ivec2
(parameters
(declare (in) ivec2 arg0)
(declare (in) ivec2 arg1)
(declare (in) ivec2 arg2))
((return (expression ivec2 max (expression ivec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))
(signature ivec3
(parameters
(declare (in) ivec3 arg0)
(declare (in) ivec3 arg1)
(declare (in) ivec3 arg2))
((return (expression ivec3 max (expression ivec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))
(signature ivec4
(parameters
(declare (in) ivec4 arg0)
(declare (in) ivec4 arg1)
(declare (in) ivec4 arg2))
((return (expression ivec4 max (expression ivec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))
(signature ivec2
(parameters
(declare (in) ivec2 arg0)
(declare (in) int arg1)
(declare (in) int arg2))
((declare () ivec2 result)
(assign (constant bool (1)) (swiz x (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
(assign (constant bool (1)) (swiz y (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
(return (var_ref result))))
(signature ivec3
(parameters
(declare (in) ivec3 arg0)
(declare (in) int arg1)
(declare (in) int arg2))
((declare () ivec3 result)
(assign (constant bool (1)) (swiz x (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
(assign (constant bool (1)) (swiz y (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
(assign (constant bool (1)) (swiz z (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz z (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
(return (var_ref result))))
(signature ivec4
(parameters
(declare (in) ivec4 arg0)
(declare (in) int arg1)
(declare (in) int arg2))
((declare () ivec4 result)
(assign (constant bool (1)) (swiz x (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
(assign (constant bool (1)) (swiz y (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
(assign (constant bool (1)) (swiz z (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz z (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
(assign (constant bool (1)) (swiz w (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz w (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
(return (var_ref result))))
(signature uint
(parameters
(declare (in) uint arg0)
(declare (in) uint arg1)
(declare (in) uint arg2))
((return (expression uint max (expression uint min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))
(signature uvec2
(parameters
(declare (in) uvec2 arg0)
(declare (in) uvec2 arg1)
(declare (in) uvec2 arg2))
((return (expression uvec2 max (expression uvec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))
(signature uvec3
(parameters
(declare (in) uvec3 arg0)
(declare (in) uvec3 arg1)
(declare (in) uvec3 arg2))
((return (expression uvec3 max (expression uvec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))
(signature uvec4
(parameters
(declare (in) uvec4 arg0)
(declare (in) uvec4 arg1)
(declare (in) uvec4 arg2))
((return (expression uvec4 max (expression uvec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))
(signature uvec2
(parameters
(declare (in) uvec2 arg0)
(declare (in) uint arg1)
(declare (in) uint arg2))
((declare () uvec2 result)
(assign (constant bool (1)) (swiz x (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
(assign (constant bool (1)) (swiz y (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
(return (var_ref result))))
(signature uvec3
(parameters
(declare (in) uvec3 arg0)
(declare (in) uint arg1)
(declare (in) uint arg2))
((declare () uvec3 result)
(assign (constant bool (1)) (swiz x (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
(assign (constant bool (1)) (swiz y (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
(assign (constant bool (1)) (swiz z (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz z (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
(return (var_ref result))))
(signature uvec4
(parameters
(declare (in) uvec4 arg0)
(declare (in) uint arg1)
(declare (in) uint arg2))
((declare () uvec4 result)
(assign (constant bool (1)) (swiz x (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
(assign (constant bool (1)) (swiz y (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
(assign (constant bool (1)) (swiz z (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz z (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
(assign (constant bool (1)) (swiz w (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz w (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
(return (var_ref result))))
))

127
builtins/130/max Normal file
View file

@ -0,0 +1,127 @@
((function max
(signature int
(parameters
(declare (in) int arg0)
(declare (in) int arg1))
((return (expression int max (var_ref arg0) (var_ref arg1)))))
(signature ivec2
(parameters
(declare (in) ivec2 arg0)
(declare (in) ivec2 arg1))
((return (expression ivec2 max (var_ref arg0) (var_ref arg1)))))
(signature ivec3
(parameters
(declare (in) ivec3 arg0)
(declare (in) ivec3 arg1))
((return (expression ivec3 max (var_ref arg0) (var_ref arg1)))))
(signature ivec4
(parameters
(declare (in) ivec4 arg0)
(declare (in) ivec4 arg1))
((return (expression ivec4 max (var_ref arg0) (var_ref arg1)))))
(signature ivec2
(parameters
(declare (in) ivec2 arg0)
(declare (in) int arg1))
((declare () ivec2 result)
(assign (constant bool (1)) (swiz x (var_ref result))
(expression int max (swiz x (var_ref arg0)) (var_ref arg1)))
(assign (constant bool (1)) (swiz y (var_ref result))
(expression int max (swiz y (var_ref arg0)) (var_ref arg1)))
(return (var_ref result))))
(signature ivec3
(parameters
(declare (in) ivec3 arg0)
(declare (in) int arg1))
((declare () ivec3 result)
(assign (constant bool (1)) (swiz x (var_ref result))
(expression int max (swiz x (var_ref arg0)) (var_ref arg1)))
(assign (constant bool (1)) (swiz y (var_ref result))
(expression int max (swiz y (var_ref arg0)) (var_ref arg1)))
(assign (constant bool (1)) (swiz z (var_ref result))
(expression int max (swiz z (var_ref arg0)) (var_ref arg1)))
(return (var_ref result))))
(signature ivec4
(parameters
(declare (in) ivec4 arg0)
(declare (in) int arg1))
((declare () ivec4 result)
(assign (constant bool (1)) (swiz x (var_ref result))
(expression int max (swiz x (var_ref arg0)) (var_ref arg1)))
(assign (constant bool (1)) (swiz y (var_ref result))
(expression int max (swiz y (var_ref arg0)) (var_ref arg1)))
(assign (constant bool (1)) (swiz z (var_ref result))
(expression int max (swiz z (var_ref arg0)) (var_ref arg1)))
(assign (constant bool (1)) (swiz w (var_ref result))
(expression int max (swiz w (var_ref arg0)) (var_ref arg1)))
(return (var_ref result))))
(signature uint
(parameters
(declare (in) uint arg0)
(declare (in) uint arg1))
((return (expression uint max (var_ref arg0) (var_ref arg1)))))
(signature uvec2
(parameters
(declare (in) uvec2 arg0)
(declare (in) uvec2 arg1))
((return (expression uvec2 max (var_ref arg0) (var_ref arg1)))))
(signature uvec3
(parameters
(declare (in) uvec3 arg0)
(declare (in) uvec3 arg1))
((return (expression uvec3 max (var_ref arg0) (var_ref arg1)))))
(signature uvec4
(parameters
(declare (in) uvec4 arg0)
(declare (in) uvec4 arg1))
((return (expression uvec4 max (var_ref arg0) (var_ref arg1)))))
(signature uvec2
(parameters
(declare (in) uvec2 arg0)
(declare (in) uint arg1))
((declare () uvec2 result)
(assign (constant bool (1)) (swiz x (var_ref result))
(expression uint max (swiz x (var_ref arg0)) (var_ref arg1)))
(assign (constant bool (1)) (swiz y (var_ref result))
(expression uint max (swiz y (var_ref arg0)) (var_ref arg1)))
(return (var_ref result))))
(signature uvec3
(parameters
(declare (in) uvec3 arg0)
(declare (in) uint arg1))
((declare () uvec3 result)
(assign (constant bool (1)) (swiz x (var_ref result))
(expression uint max (swiz x (var_ref arg0)) (var_ref arg1)))
(assign (constant bool (1)) (swiz y (var_ref result))
(expression uint max (swiz y (var_ref arg0)) (var_ref arg1)))
(assign (constant bool (1)) (swiz z (var_ref result))
(expression uint max (swiz z (var_ref arg0)) (var_ref arg1)))
(return (var_ref result))))
(signature uvec4
(parameters
(declare (in) uvec4 arg0)
(declare (in) uint arg1))
((declare () uvec4 result)
(assign (constant bool (1)) (swiz x (var_ref result))
(expression uint max (swiz x (var_ref arg0)) (var_ref arg1)))
(assign (constant bool (1)) (swiz y (var_ref result))
(expression uint max (swiz y (var_ref arg0)) (var_ref arg1)))
(assign (constant bool (1)) (swiz z (var_ref result))
(expression uint max (swiz z (var_ref arg0)) (var_ref arg1)))
(assign (constant bool (1)) (swiz w (var_ref result))
(expression uint max (swiz w (var_ref arg0)) (var_ref arg1)))
(return (var_ref result))))
))

127
builtins/130/min Normal file
View file

@ -0,0 +1,127 @@
((function min
(signature int
(parameters
(declare (in) int arg0)
(declare (in) int arg1))
((return (expression int min (var_ref arg0) (var_ref arg1)))))
(signature ivec2
(parameters
(declare (in) ivec2 arg0)
(declare (in) ivec2 arg1))
((return (expression ivec2 min (var_ref arg0) (var_ref arg1)))))
(signature ivec3
(parameters
(declare (in) ivec3 arg0)
(declare (in) ivec3 arg1))
((return (expression ivec3 min (var_ref arg0) (var_ref arg1)))))
(signature ivec4
(parameters
(declare (in) ivec4 arg0)
(declare (in) ivec4 arg1))
((return (expression ivec4 min (var_ref arg0) (var_ref arg1)))))
(signature ivec2
(parameters
(declare (in) ivec2 arg0)
(declare (in) int arg1))
((declare () ivec2 result)
(assign (constant bool (1)) (swiz x (var_ref result))
(expression int min (swiz x (var_ref arg0)) (var_ref arg1)))
(assign (constant bool (1)) (swiz y (var_ref result))
(expression int min (swiz y (var_ref arg0)) (var_ref arg1)))
(return (var_ref result))))
(signature ivec3
(parameters
(declare (in) ivec3 arg0)
(declare (in) int arg1))
((declare () ivec3 result)
(assign (constant bool (1)) (swiz x (var_ref result))
(expression int min (swiz x (var_ref arg0)) (var_ref arg1)))
(assign (constant bool (1)) (swiz y (var_ref result))
(expression int min (swiz y (var_ref arg0)) (var_ref arg1)))
(assign (constant bool (1)) (swiz z (var_ref result))
(expression int min (swiz z (var_ref arg0)) (var_ref arg1)))
(return (var_ref result))))
(signature ivec4
(parameters
(declare (in) ivec4 arg0)
(declare (in) int arg1))
((declare () ivec4 result)
(assign (constant bool (1)) (swiz x (var_ref result))
(expression int min (swiz x (var_ref arg0)) (var_ref arg1)))
(assign (constant bool (1)) (swiz y (var_ref result))
(expression int min (swiz y (var_ref arg0)) (var_ref arg1)))
(assign (constant bool (1)) (swiz z (var_ref result))
(expression int min (swiz z (var_ref arg0)) (var_ref arg1)))
(assign (constant bool (1)) (swiz w (var_ref result))
(expression int min (swiz w (var_ref arg0)) (var_ref arg1)))
(return (var_ref result))))
(signature uint
(parameters
(declare (in) uint arg0)
(declare (in) uint arg1))
((return (expression uint min (var_ref arg0) (var_ref arg1)))))
(signature uvec2
(parameters
(declare (in) uvec2 arg0)
(declare (in) uvec2 arg1))
((return (expression uvec2 min (var_ref arg0) (var_ref arg1)))))
(signature uvec3
(parameters
(declare (in) uvec3 arg0)
(declare (in) uvec3 arg1))
((return (expression uvec3 min (var_ref arg0) (var_ref arg1)))))
(signature uvec4
(parameters
(declare (in) uvec4 arg0)
(declare (in) uvec4 arg1))
((return (expression uvec4 min (var_ref arg0) (var_ref arg1)))))
(signature uvec2
(parameters
(declare (in) uvec2 arg0)
(declare (in) uint arg1))
((declare () uvec2 result)
(assign (constant bool (1)) (swiz x (var_ref result))
(expression uint min (swiz x (var_ref arg0)) (var_ref arg1)))
(assign (constant bool (1)) (swiz y (var_ref result))
(expression uint min (swiz y (var_ref arg0)) (var_ref arg1)))
(return (var_ref result))))
(signature uvec3
(parameters
(declare (in) uvec3 arg0)
(declare (in) uint arg1))
((declare () uvec3 result)
(assign (constant bool (1)) (swiz x (var_ref result))
(expression uint min (swiz x (var_ref arg0)) (var_ref arg1)))
(assign (constant bool (1)) (swiz y (var_ref result))
(expression uint min (swiz y (var_ref arg0)) (var_ref arg1)))
(assign (constant bool (1)) (swiz z (var_ref result))
(expression uint min (swiz z (var_ref arg0)) (var_ref arg1)))
(return (var_ref result))))
(signature uvec4
(parameters
(declare (in) uvec4 arg0)
(declare (in) uint arg1))
((declare () uvec4 result)
(assign (constant bool (1)) (swiz x (var_ref result))
(expression uint min (swiz x (var_ref arg0)) (var_ref arg1)))
(assign (constant bool (1)) (swiz y (var_ref result))
(expression uint min (swiz y (var_ref arg0)) (var_ref arg1)))
(assign (constant bool (1)) (swiz z (var_ref result))
(expression uint min (swiz z (var_ref arg0)) (var_ref arg1)))
(assign (constant bool (1)) (swiz w (var_ref result))
(expression uint min (swiz w (var_ref arg0)) (var_ref arg1)))
(return (var_ref result))))
))