[Mesa-dev] [PATCH 1/4] ac: create ac_unpack_64_2x32_split_x() helper

Marek Olšák maraeo at gmail.com
Tue Feb 6 18:02:03 UTC 2018


You don't need this helper. You can just use LLVMBuildTrunc.

Marek

On Tue, Feb 6, 2018 at 5:58 AM, Timothy Arceri <tarceri at itsqueeze.com> wrote:
> This will be used in the following commits.
> ---
>  src/amd/common/ac_llvm_build.c  | 8 ++++++++
>  src/amd/common/ac_llvm_build.h  | 3 +++
>  src/amd/common/ac_nir_to_llvm.c | 6 +-----
>  3 files changed, 12 insertions(+), 5 deletions(-)
>
> diff --git a/src/amd/common/ac_llvm_build.c b/src/amd/common/ac_llvm_build.c
> index a86ba962fa..6375b106f7 100644
> --- a/src/amd/common/ac_llvm_build.c
> +++ b/src/amd/common/ac_llvm_build.c
> @@ -1992,6 +1992,14 @@ LLVMValueRef ac_find_lsb(struct ac_llvm_context *ctx,
>                                LLVMConstInt(ctx->i32, -1, 0), lsb, "");
>  }
>
> +LLVMValueRef ac_unpack_64_2x32_split_x(struct ac_llvm_context *ctx,
> +                                      LLVMValueRef src0)
> +{
> +       LLVMValueRef tmp = LLVMBuildBitCast(ctx->builder, src0,
> +                                           ctx->v2i32, "");
> +       return LLVMBuildExtractElement(ctx->builder, tmp, ctx->i32_0, "");
> +}
> +
>  LLVMTypeRef ac_array_in_const_addr_space(LLVMTypeRef elem_type)
>  {
>         return LLVMPointerType(LLVMArrayType(elem_type, 0),
> diff --git a/src/amd/common/ac_llvm_build.h b/src/amd/common/ac_llvm_build.h
> index 47c843fb4b..78991b3e99 100644
> --- a/src/amd/common/ac_llvm_build.h
> +++ b/src/amd/common/ac_llvm_build.h
> @@ -348,6 +348,9 @@ LLVMValueRef ac_find_lsb(struct ac_llvm_context *ctx,
>                          LLVMTypeRef dst_type,
>                          LLVMValueRef src0);
>
> +LLVMValueRef ac_unpack_64_2x32_split_x(struct ac_llvm_context *ctx,
> +                                      LLVMValueRef src0);
> +
>  LLVMTypeRef ac_array_in_const_addr_space(LLVMTypeRef elem_type);
>
>  #ifdef __cplusplus
> diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
> index 9a9db2dce9..ac4af12b3e 100644
> --- a/src/amd/common/ac_nir_to_llvm.c
> +++ b/src/amd/common/ac_nir_to_llvm.c
> @@ -2042,11 +2042,7 @@ static void visit_alu(struct ac_nir_context *ctx, const nir_alu_instr *instr)
>
>         case nir_op_unpack_64_2x32_split_x: {
>                 assert(instr->src[0].src.ssa->num_components == 1);
> -               LLVMValueRef tmp = LLVMBuildBitCast(ctx->ac.builder, src[0],
> -                                                   ctx->ac.v2i32,
> -                                                   "");
> -               result = LLVMBuildExtractElement(ctx->ac.builder, tmp,
> -                                                ctx->ac.i32_0, "");
> +               result = ac_unpack_64_2x32_split_x(&ctx->ac, src[0]);
>                 break;
>         }
>
> --
> 2.14.3
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list