Mesa (master): gallivm: Fix lp_build_sum_vector.

Jose Fonseca jrfonseca at kemper.freedesktop.org
Mon Aug 30 13:12:28 UTC 2010


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

Author: José Fonseca <jfonseca at vmware.com>
Date:   Sat Aug 21 11:31:22 2010 +0100

gallivm: Fix lp_build_sum_vector.

The result is scalar, so when argument is zero/undef we can pass vector
zero/undef.

Also, support the scalar case.

---

 src/gallium/auxiliary/gallivm/lp_bld_arit.c |   10 ++++------
 1 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_arit.c b/src/gallium/auxiliary/gallivm/lp_bld_arit.c
index 7bb5706..e0d30be 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_arit.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_arit.c
@@ -259,7 +259,7 @@ lp_build_add(struct lp_build_context *bld,
 }
 
 
-/** Return the sum of the elements of a */
+/** Return the scalar sum of the elements of a */
 LLVMValueRef
 lp_build_sum_vector(struct lp_build_context *bld,
                     LLVMValueRef a)
@@ -270,11 +270,9 @@ lp_build_sum_vector(struct lp_build_context *bld,
 
    assert(lp_check_value(type, a));
 
-   if (a == bld->zero)
-      return bld->zero;
-   if (a == bld->undef)
-      return bld->undef;
-   assert(type.length > 1);
+   if (type.length == 1) {
+      return a;
+   }
 
    assert(!bld->type.norm);
 




More information about the mesa-commit mailing list