From: Roland Scheidegger Date: Fri, 1 Feb 2013 16:34:36 +0000 (-0800) Subject: gallivm: fix typo in lp_build_mul_norm X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=49f8825c49871ca956c7ed21b096f3835311f57e;p=mesa.git gallivm: fix typo in lp_build_mul_norm The signed case didn't do what the comment indicated. Should increase rounding precision (at the expense of performance since the former code was effectively a no-op). Reviewed-by: Jose Fonseca --- diff --git a/src/gallium/auxiliary/gallivm/lp_bld_arit.c b/src/gallium/auxiliary/gallivm/lp_bld_arit.c index d930f09acc3..b4e9f23dcc9 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_arit.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_arit.c @@ -769,7 +769,7 @@ lp_build_mul_norm(struct gallivm_state *gallivm, half = lp_build_const_int_vec(gallivm, wide_type, 1 << (n - 1)); if (wide_type.sign) { LLVMValueRef minus_half = LLVMBuildNeg(builder, half, ""); - LLVMValueRef sign = lp_build_shr_imm(&bld, half, wide_type.width - 1); + LLVMValueRef sign = lp_build_shr_imm(&bld, ab, wide_type.width - 1); half = lp_build_select(&bld, sign, minus_half, half); } ab = LLVMBuildAdd(builder, ab, half, "");