[Mesa-dev] [PATCH v2 06/41] ac/nir: fix 16-bit ssbo stores

Rhys Perry pendingchaos02 at gmail.com
Mon Feb 18 13:23:33 UTC 2019


I don't see a 16-bit version of tbuffer.store in IntrinsicsAMDGPU.td
and simply changing "llvm.amdgcn.tbuffer.store.i32" to
"llvm.amdgcn.tbuffer.store.i16" and removing the zext doesn't seem to
work.

On Mon, 18 Feb 2019 at 08:55, Samuel Pitoiset <samuel.pitoiset at gmail.com> wrote:
>
> Does this fix anything know? There is a 16-bit version of tbuffer.store,
> maybe we should use it?
>
> On 2/16/19 1:21 AM, Rhys Perry wrote:
> > Signed-off-by: Rhys Perry <pendingchaos02 at gmail.com>
> > ---
> >   src/amd/common/ac_nir_to_llvm.c | 2 ++
> >   1 file changed, 2 insertions(+)
> >
> > diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
> > index 89a78b43c6f..b260142c177 100644
> > --- a/src/amd/common/ac_nir_to_llvm.c
> > +++ b/src/amd/common/ac_nir_to_llvm.c
> > @@ -1586,6 +1586,8 @@ static void visit_store_ssbo(struct ac_nir_context *ctx,
> >               } else if (num_bytes == 2) {
> >                       store_name = "llvm.amdgcn.tbuffer.store.i32";
> >                       data_type = ctx->ac.i32;
> > +                     data = LLVMBuildBitCast(ctx->ac.builder, data, ctx->ac.i16, "");
> > +                     data = LLVMBuildZExt(ctx->ac.builder, data, data_type, "");
> >                       LLVMValueRef tbuffer_params[] = {
> >                               data,
> >                               rsrc,


More information about the mesa-dev mailing list