Mesa (glsl2): glsl2/builtins: Rework min/max to use scalar/ vector combinations.

Ian Romanick idr at kemper.freedesktop.org
Thu Jul 15 00:18:23 UTC 2010


Module: Mesa
Branch: glsl2
Commit: 8984203abb711d5b9e763afc6afc8f52cc4f7cc2
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8984203abb711d5b9e763afc6afc8f52cc4f7cc2

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Fri Jul  9 12:12:41 2010 -0700

glsl2/builtins: Rework min/max to use scalar/vector combinations.

---

 src/glsl/builtins/110/max |   27 ++--------------------
 src/glsl/builtins/110/min |   27 ++--------------------
 src/glsl/builtins/130/max |   54 +++++----------------------------------------
 src/glsl/builtins/130/min |   54 +++++----------------------------------------
 4 files changed, 18 insertions(+), 144 deletions(-)

diff --git a/src/glsl/builtins/110/max b/src/glsl/builtins/110/max
index c05545f..f91ae41 100644
--- a/src/glsl/builtins/110/max
+++ b/src/glsl/builtins/110/max
@@ -27,38 +27,17 @@
      (parameters
        (declare (in) vec2  arg0)
        (declare (in) float arg1))
-     ((declare () vec2 result)
-      (assign (constant bool (1))   (swiz x (var_ref result))
-              (expression float max (swiz x (var_ref arg0)) (var_ref arg1)))
-      (assign (constant bool (1))   (swiz y (var_ref result))
-              (expression float max (swiz y (var_ref arg0)) (var_ref arg1)))
-      (return (var_ref result))))
+     ((return (expression vec2 max (var_ref arg0) (var_ref arg1)))))
 
    (signature vec3
      (parameters
        (declare (in) vec3  arg0)
        (declare (in) float arg1))
-     ((declare () vec3 result)
-      (assign (constant bool (1))   (swiz x (var_ref result))
-              (expression float max (swiz x (var_ref arg0)) (var_ref arg1)))
-      (assign (constant bool (1))   (swiz y (var_ref result))
-              (expression float max (swiz y (var_ref arg0)) (var_ref arg1)))
-      (assign (constant bool (1))   (swiz z (var_ref result))
-              (expression float max (swiz z (var_ref arg0)) (var_ref arg1)))
-      (return (var_ref result))))
+     ((return (expression vec3 max (var_ref arg0) (var_ref arg1)))))
 
    (signature vec4
      (parameters
        (declare (in) vec4  arg0)
        (declare (in) float arg1))
-     ((declare () vec4 result)
-      (assign (constant bool (1))   (swiz x (var_ref result))
-              (expression float max (swiz x (var_ref arg0)) (var_ref arg1)))
-      (assign (constant bool (1))   (swiz y (var_ref result))
-              (expression float max (swiz y (var_ref arg0)) (var_ref arg1)))
-      (assign (constant bool (1))   (swiz z (var_ref result))
-              (expression float max (swiz z (var_ref arg0)) (var_ref arg1)))
-      (assign (constant bool (1))   (swiz w (var_ref result))
-              (expression float max (swiz w (var_ref arg0)) (var_ref arg1)))
-      (return (var_ref result))))
+     ((return (expression vec4 max (var_ref arg0) (var_ref arg1)))))
 ))
diff --git a/src/glsl/builtins/110/min b/src/glsl/builtins/110/min
index 31e7948..78fc441 100644
--- a/src/glsl/builtins/110/min
+++ b/src/glsl/builtins/110/min
@@ -27,38 +27,17 @@
      (parameters
        (declare (in) vec2  arg0)
        (declare (in) float arg1))
-     ((declare () vec2 result)
-      (assign (constant bool (1))   (swiz x (var_ref result))
-              (expression float min (swiz x (var_ref arg0)) (var_ref arg1)))
-      (assign (constant bool (1))   (swiz y (var_ref result))
-              (expression float min (swiz y (var_ref arg0)) (var_ref arg1)))
-      (return (var_ref result))))
+     ((return (expression vec2 min (var_ref arg0) (var_ref arg1)))))
 
    (signature vec3
      (parameters
        (declare (in) vec3  arg0)
        (declare (in) float arg1))
-     ((declare () vec3 result)
-      (assign (constant bool (1))   (swiz x (var_ref result))
-              (expression float min (swiz x (var_ref arg0)) (var_ref arg1)))
-      (assign (constant bool (1))   (swiz y (var_ref result))
-              (expression float min (swiz y (var_ref arg0)) (var_ref arg1)))
-      (assign (constant bool (1))   (swiz z (var_ref result))
-              (expression float min (swiz z (var_ref arg0)) (var_ref arg1)))
-      (return (var_ref result))))
+     ((return (expression vec3 min (var_ref arg0) (var_ref arg1)))))
 
    (signature vec4
      (parameters
        (declare (in) vec4  arg0)
        (declare (in) float arg1))
-     ((declare () vec4 result)
-      (assign (constant bool (1))   (swiz x (var_ref result))
-              (expression float min (swiz x (var_ref arg0)) (var_ref arg1)))
-      (assign (constant bool (1))   (swiz y (var_ref result))
-              (expression float min (swiz y (var_ref arg0)) (var_ref arg1)))
-      (assign (constant bool (1))   (swiz z (var_ref result))
-              (expression float min (swiz z (var_ref arg0)) (var_ref arg1)))
-      (assign (constant bool (1))   (swiz w (var_ref result))
-              (expression float min (swiz w (var_ref arg0)) (var_ref arg1)))
-      (return (var_ref result))))
+     ((return (expression vec4 min (var_ref arg0) (var_ref arg1)))))
 ))
diff --git a/src/glsl/builtins/130/max b/src/glsl/builtins/130/max
index 45a6089..0863e41 100644
--- a/src/glsl/builtins/130/max
+++ b/src/glsl/builtins/130/max
@@ -27,40 +27,19 @@
      (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))))
+     ((return (expression ivec2 max (var_ref arg0) (var_ref arg1)))))
 
    (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))))
+     ((return (expression ivec3 max (var_ref arg0) (var_ref arg1)))))
 
    (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))))
+     ((return (expression ivec4 max (var_ref arg0) (var_ref arg1)))))
 
    (signature uint
      (parameters
@@ -90,38 +69,17 @@
      (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))))
+     ((return (expression uvec2 max (var_ref arg0) (var_ref arg1)))))
 
    (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))))
+     ((return (expression uvec3 max (var_ref arg0) (var_ref arg1)))))
 
    (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))))
+     ((return (expression uvec4 max (var_ref arg0) (var_ref arg1)))))
 ))
diff --git a/src/glsl/builtins/130/min b/src/glsl/builtins/130/min
index d98ec1e..576546f 100644
--- a/src/glsl/builtins/130/min
+++ b/src/glsl/builtins/130/min
@@ -27,40 +27,19 @@
      (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))))
+     ((return (expression ivec2 min (var_ref arg0) (var_ref arg1)))))
 
    (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))))
+     ((return (expression ivec3 min (var_ref arg0) (var_ref arg1)))))
 
    (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))))
+     ((return (expression ivec4 min (var_ref arg0) (var_ref arg1)))))
 
    (signature uint
      (parameters
@@ -90,38 +69,17 @@
      (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))))
+     ((return (expression uvec2 min (var_ref arg0) (var_ref arg1)))))
 
    (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))))
+     ((return (expression uvec3 min (var_ref arg0) (var_ref arg1)))))
 
    (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))))
+     ((return (expression uvec4 min (var_ref arg0) (var_ref arg1)))))
 ))




More information about the mesa-commit mailing list