summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2020-01-20 14:56:36 +1000
committerDave Airlie <airlied@redhat.com>2020-01-23 13:48:16 +1000
commit48ab21109cf2eb114ea0b0a298e4c58954323ff6 (patch)
tree4163753e0306ca36602ab8e4fdb7b05c18e7ab25
parent1e433c398ebeacd28cd565569eae0caba2638d18 (diff)
gallivm: fix find lsb
the GLSL return value is different than the llvm intrinsic. Fixes arb gpu shader5 tests Reviewed-by: Roland Scheidegger <sroland@vmware.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3528> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3528>
-rw-r--r--src/gallium/auxiliary/gallivm/lp_bld_bitarit.c3
1 files changed, 2 insertions, 1 deletions
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