From: Dave Airlie Date: Mon, 20 Jan 2020 04:56:36 +0000 (+1000) Subject: gallivm: fix find lsb X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=48ab21109cf2eb114ea0b0a298e4c58954323ff6;p=mesa.git gallivm: fix find lsb the GLSL return value is different than the llvm intrinsic. Fixes arb gpu shader5 tests Reviewed-by: Roland Scheidegger Tested-by: Marge Bot Part-of: --- diff --git a/src/gallium/auxiliary/gallivm/lp_bld_bitarit.c b/src/gallium/auxiliary/gallivm/lp_bld_bitarit.c index eee3cba2fb5..97e5a137e89 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_bitarit.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_bitarit.c @@ -276,7 +276,8 @@ lp_build_cttz(struct lp_build_context *bld, LLVMValueRef a) LLVMValueRef undef_val = LLVMConstNull(LLVMInt1TypeInContext(bld->gallivm->context)); result = lp_build_intrinsic_binary(builder, intr_str, bld->vec_type, a, undef_val); - return result; + return LLVMBuildSelect(builder, LLVMBuildICmp(builder, LLVMIntEQ, a, bld->zero, ""), + lp_build_const_int_vec(bld->gallivm, bld->type, -1), result, ""); } LLVMValueRef