[Mesa-dev] [PATCH] ac/nir: remove the bitfield_extract workaround for LLVM 8
Marek Olšák
maraeo at gmail.com
Thu Dec 20 08:20:49 UTC 2018
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Marek
On Wed, Dec 19, 2018 at 11:50 AM Samuel Pitoiset <samuel.pitoiset at gmail.com>
wrote:
> This workaround has been introduced by 3d41757788a and it
> is no longer needed since LLVM r346422.
>
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> ---
> src/amd/common/ac_nir_to_llvm.c | 24 +++++++++++++++---------
> 1 file changed, 15 insertions(+), 9 deletions(-)
>
> diff --git a/src/amd/common/ac_nir_to_llvm.c
> b/src/amd/common/ac_nir_to_llvm.c
> index 225c930d896..81b76f65b82 100644
> --- a/src/amd/common/ac_nir_to_llvm.c
> +++ b/src/amd/common/ac_nir_to_llvm.c
> @@ -429,16 +429,22 @@ static LLVMValueRef emit_bitfield_extract(struct
> ac_llvm_context *ctx,
> {
> LLVMValueRef result;
>
> - /* FIXME: LLVM 7+ returns incorrect result when count is 0.
> - * https://bugs.freedesktop.org/show_bug.cgi?id=107276
> - */
> - LLVMValueRef zero = ctx->i32_0;
> - LLVMValueRef icond1 = LLVMBuildICmp(ctx->builder, LLVMIntEQ,
> srcs[2], LLVMConstInt(ctx->i32, 32, false), "");
> - LLVMValueRef icond2 = LLVMBuildICmp(ctx->builder, LLVMIntEQ,
> srcs[2], zero, "");
> + if (HAVE_LLVM >= 0x0800) {
> + LLVMValueRef icond = LLVMBuildICmp(ctx->builder,
> LLVMIntEQ, srcs[2], LLVMConstInt(ctx->i32, 32, false), "");
> + result = ac_build_bfe(ctx, srcs[0], srcs[1], srcs[2],
> is_signed);
> + result = LLVMBuildSelect(ctx->builder, icond, srcs[0],
> result, "");
> + } else {
> + /* FIXME: LLVM 7+ returns incorrect result when count is 0.
> + * https://bugs.freedesktop.org/show_bug.cgi?id=107276
> + */
> + LLVMValueRef zero = ctx->i32_0;
> + LLVMValueRef icond1 = LLVMBuildICmp(ctx->builder,
> LLVMIntEQ, srcs[2], LLVMConstInt(ctx->i32, 32, false), "");
> + LLVMValueRef icond2 = LLVMBuildICmp(ctx->builder,
> LLVMIntEQ, srcs[2], zero, "");
>
> - result = ac_build_bfe(ctx, srcs[0], srcs[1], srcs[2], is_signed);
> - result = LLVMBuildSelect(ctx->builder, icond1, srcs[0], result,
> "");
> - result = LLVMBuildSelect(ctx->builder, icond2, zero, result, "");
> + result = ac_build_bfe(ctx, srcs[0], srcs[1], srcs[2],
> is_signed);
> + result = LLVMBuildSelect(ctx->builder, icond1, srcs[0],
> result, "");
> + result = LLVMBuildSelect(ctx->builder, icond2, zero,
> result, "");
> + }
>
> return result;
> }
> --
> 2.20.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20181220/fe5559c4/attachment.html>
More information about the mesa-dev
mailing list