[Mesa-dev] [PATCH 2/2] ac: use new LLVM 8 intrinsic when loading 16-bit values
Bas Nieuwenhuizen
bas at basnieuwenhuizen.nl
Mon Feb 18 10:35:00 UTC 2019
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
for both.
On Thu, Feb 14, 2019 at 2:39 PM Samuel Pitoiset
<samuel.pitoiset at gmail.com> wrote:
>
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> ---
> src/amd/common/ac_llvm_build.c | 41 ++++++++++++++++++++++------------
> 1 file changed, 27 insertions(+), 14 deletions(-)
>
> diff --git a/src/amd/common/ac_llvm_build.c b/src/amd/common/ac_llvm_build.c
> index 3acf41728ac..867a13622f9 100644
> --- a/src/amd/common/ac_llvm_build.c
> +++ b/src/amd/common/ac_llvm_build.c
> @@ -1347,20 +1347,33 @@ ac_build_tbuffer_load_short(struct ac_llvm_context *ctx,
> LLVMValueRef immoffset,
> LLVMValueRef glc)
> {
> - const char *name = "llvm.amdgcn.tbuffer.load.i32";
> - LLVMTypeRef type = ctx->i32;
> - LLVMValueRef params[] = {
> - rsrc,
> - vindex,
> - voffset,
> - soffset,
> - immoffset,
> - LLVMConstInt(ctx->i32, V_008F0C_BUF_DATA_FORMAT_16, false),
> - LLVMConstInt(ctx->i32, V_008F0C_BUF_NUM_FORMAT_UINT, false),
> - glc,
> - ctx->i1false,
> - };
> - LLVMValueRef res = ac_build_intrinsic(ctx, name, type, params, 9, 0);
> + unsigned dfmt = V_008F0C_BUF_DATA_FORMAT_16;
> + unsigned nfmt = V_008F0C_BUF_NUM_FORMAT_UINT;
> + LLVMValueRef res;
> +
> + if (HAVE_LLVM >= 0x0800) {
> + voffset = LLVMBuildAdd(ctx->builder, voffset, immoffset, "");
> +
> + res = ac_build_llvm8_tbuffer_load(ctx, rsrc, vindex, voffset,
> + soffset, 1, dfmt, nfmt, glc,
> + false, true, true);
> + } else {
> + const char *name = "llvm.amdgcn.tbuffer.load.i32";
> + LLVMTypeRef type = ctx->i32;
> + LLVMValueRef params[] = {
> + rsrc,
> + vindex,
> + voffset,
> + soffset,
> + immoffset,
> + LLVMConstInt(ctx->i32, dfmt, false),
> + LLVMConstInt(ctx->i32, nfmt, false),
> + glc,
> + ctx->i1false,
> + };
> + res = ac_build_intrinsic(ctx, name, type, params, 9, 0);
> + }
> +
> return LLVMBuildTrunc(ctx->builder, res, ctx->i16, "");
> }
>
> --
> 2.20.1
>
> _______________________________________________
> 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