diff options
author | Dave Airlie <[email protected]> | 2020-01-20 14:56:36 +1000 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2020-01-23 13:48:16 +1000 |
commit | 48ab21109cf2eb114ea0b0a298e4c58954323ff6 (patch) | |
tree | 4163753e0306ca36602ab8e4fdb7b05c18e7ab25 /src/gallium/auxiliary/gallivm | |
parent | 1e433c398ebeacd28cd565569eae0caba2638d18 (diff) |
gallivm: fix find lsb
the GLSL return value is different than the llvm intrinsic.
Fixes arb gpu shader5 tests
Reviewed-by: Roland Scheidegger <[email protected]>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3528>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3528>
Diffstat (limited to 'src/gallium/auxiliary/gallivm')
-rw-r--r-- | src/gallium/auxiliary/gallivm/lp_bld_bitarit.c | 3 |
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 |