Mesa (lp-binning): llvmpipe: fix broken lp_build_abs()
Brian Paul
brianp at kemper.freedesktop.org
Mon Dec 14 22:25:20 UTC 2009
Module: Mesa
Branch: lp-binning
Commit: 6e2a93739e2bbd857c62e1c3959a9032d591717a
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6e2a93739e2bbd857c62e1c3959a9032d591717a
Author: Brian Paul <brianp at vmware.com>
Date: Mon Dec 14 15:24:31 2009 -0700
llvmpipe: fix broken lp_build_abs()
---
src/gallium/drivers/llvmpipe/lp_bld_arit.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/src/gallium/drivers/llvmpipe/lp_bld_arit.c b/src/gallium/drivers/llvmpipe/lp_bld_arit.c
index d27ef0d..e7eb5f8 100644
--- a/src/gallium/drivers/llvmpipe/lp_bld_arit.c
+++ b/src/gallium/drivers/llvmpipe/lp_bld_arit.c
@@ -591,7 +591,8 @@ lp_build_abs(struct lp_build_context *bld,
if(type.floating) {
/* Mask out the sign bit */
LLVMTypeRef int_vec_type = lp_build_int_vec_type(type);
- LLVMValueRef mask = lp_build_int_const_scalar(type, ((unsigned long long)1 << type.width) - 1);
+ unsigned long absMask = ~(1 << (type.width - 1));
+ LLVMValueRef mask = lp_build_int_const_scalar(type, ((unsigned long long) absMask));
a = LLVMBuildBitCast(bld->builder, a, int_vec_type, "");
a = LLVMBuildAnd(bld->builder, a, mask, "");
a = LLVMBuildBitCast(bld->builder, a, vec_type, "");
More information about the mesa-commit
mailing list