Module: Mesa
Branch: master
Commit: 6829c18609fc3c979133b462173141dd7dfd09c3
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6829c18609fc3c979133b462173141dd7dfd09c3

Author: Matt Turner <matts...@gmail.com>
Date:   Tue Apr 23 17:10:20 2013 -0700

glsl: Add new fma built-in IR and prototype from ARB_gpu_shader5.

Reviewed-by: Paul Berry <stereotype...@gmail.com>
Reviewed-by: Ian Romanick <ian.d.roman...@intel.com>

---

 src/glsl/builtins/ir/fma.ir                     |   29 +++++++++++++++++++++++
 src/glsl/builtins/profiles/ARB_gpu_shader5.glsl |    5 ++++
 2 files changed, 34 insertions(+), 0 deletions(-)

diff --git a/src/glsl/builtins/ir/fma.ir b/src/glsl/builtins/ir/fma.ir
new file mode 100644
index 0000000..c369563
--- /dev/null
+++ b/src/glsl/builtins/ir/fma.ir
@@ -0,0 +1,29 @@
+((function fma
+   (signature float
+     (parameters
+       (declare (in) float a)
+       (declare (in) float b)
+       (declare (in) float c))
+     ((return (expression float fma (var_ref a) (var_ref b) (var_ref c)))))
+
+   (signature vec2
+     (parameters
+       (declare (in) vec2 a)
+       (declare (in) vec2 b)
+       (declare (in) vec2 c))
+     ((return (expression vec2 fma (var_ref a) (var_ref b) (var_ref c)))))
+
+   (signature vec3
+     (parameters
+       (declare (in) vec3 a)
+       (declare (in) vec3 b)
+       (declare (in) vec3 c))
+     ((return (expression vec3 fma (var_ref a) (var_ref b) (var_ref c)))))
+
+   (signature vec4
+     (parameters
+       (declare (in) vec4 a)
+       (declare (in) vec4 b)
+       (declare (in) vec4 c))
+     ((return (expression vec4 fma (var_ref a) (var_ref b) (var_ref c)))))
+))
diff --git a/src/glsl/builtins/profiles/ARB_gpu_shader5.glsl 
b/src/glsl/builtins/profiles/ARB_gpu_shader5.glsl
index 458300f..3f76283 100644
--- a/src/glsl/builtins/profiles/ARB_gpu_shader5.glsl
+++ b/src/glsl/builtins/profiles/ARB_gpu_shader5.glsl
@@ -54,3 +54,8 @@ int   findMSB(uint  value);
 ivec2 findMSB(uvec2 value);
 ivec3 findMSB(uvec3 value);
 ivec4 findMSB(uvec4 value);
+
+float fma(float a, float b, float c);
+vec2  fma(vec2  a, vec2  b, vec2  c);
+vec3  fma(vec3  a, vec3  b, vec3  c);
+vec4  fma(vec4  a, vec4  b, vec4  c);

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to