From 49f8825c49871ca956c7ed21b096f3835311f57e Mon Sep 17 00:00:00 2001 From: Roland Scheidegger Date: Fri, 1 Feb 2013 08:34:36 -0800 Subject: [PATCH] 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 --- src/gallium/auxiliary/gallivm/lp_bld_arit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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, ""); -- 2.30.2