ac/nir: fix 16-bit ssbo stores
authorRhys Perry <pendingchaos02@gmail.com>
Thu, 6 Dec 2018 14:58:50 +0000 (14:58 +0000)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Tue, 12 Mar 2019 14:51:52 +0000 (15:51 +0100)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
src/amd/common/ac_nir_to_llvm.c

index 4598eeccb20875c89d5e53481ba0173b16e7b733..5fb5c8da6094d6c9565db3021c5135bf06b31cb9 100644 (file)
@@ -1576,6 +1576,8 @@ static void visit_store_ssbo(struct ac_nir_context *ctx,
                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,