diff options
author | Brian Paul <[email protected]> | 2009-12-14 15:24:31 -0700 |
---|---|---|
committer | Brian Paul <[email protected]> | 2009-12-14 15:24:31 -0700 |
commit | 6e2a93739e2bbd857c62e1c3959a9032d591717a (patch) | |
tree | c57e3b093569f8ec42c1c4d24d29fc48c14cf1b1 /src | |
parent | b06b3a492519de85a53604e8b72a201d284584ea (diff) |
llvmpipe: fix broken lp_build_abs()
Diffstat (limited to 'src')
-rw-r--r-- | 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 d27ef0de041..e7eb5f833b6 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, ""); |