ac: add ac_build_tbuffer_store_byte() helper
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
@@ -1771,6 +1771,25 @@ ac_build_tbuffer_store_short(struct ac_llvm_context *ctx,
|
|||||||
writeonly_memory);
|
writeonly_memory);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ac_build_tbuffer_store_byte(struct ac_llvm_context *ctx,
|
||||||
|
LLVMValueRef rsrc,
|
||||||
|
LLVMValueRef vdata,
|
||||||
|
LLVMValueRef voffset,
|
||||||
|
LLVMValueRef soffset,
|
||||||
|
bool glc,
|
||||||
|
bool writeonly_memory)
|
||||||
|
{
|
||||||
|
unsigned dfmt = V_008F0C_BUF_DATA_FORMAT_8;
|
||||||
|
unsigned nfmt = V_008F0C_BUF_NUM_FORMAT_UINT;
|
||||||
|
|
||||||
|
vdata = LLVMBuildBitCast(ctx->builder, vdata, ctx->i8, "");
|
||||||
|
vdata = LLVMBuildZExt(ctx->builder, vdata, ctx->i32, "");
|
||||||
|
|
||||||
|
ac_build_raw_tbuffer_store(ctx, rsrc, vdata, voffset, soffset,
|
||||||
|
ctx->i32_0, 1, dfmt, nfmt, glc, false,
|
||||||
|
writeonly_memory);
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Set range metadata on an instruction. This can only be used on load and
|
* Set range metadata on an instruction. This can only be used on load and
|
||||||
* call instructions. If you know an instruction can only produce the values
|
* call instructions. If you know an instruction can only produce the values
|
||||||
|
@@ -362,6 +362,15 @@ ac_build_tbuffer_store_short(struct ac_llvm_context *ctx,
|
|||||||
bool glc,
|
bool glc,
|
||||||
bool writeonly_memory);
|
bool writeonly_memory);
|
||||||
|
|
||||||
|
void
|
||||||
|
ac_build_tbuffer_store_byte(struct ac_llvm_context *ctx,
|
||||||
|
LLVMValueRef rsrc,
|
||||||
|
LLVMValueRef vdata,
|
||||||
|
LLVMValueRef voffset,
|
||||||
|
LLVMValueRef soffset,
|
||||||
|
bool glc,
|
||||||
|
bool writeonly_memory);
|
||||||
|
|
||||||
void
|
void
|
||||||
ac_build_struct_tbuffer_store(struct ac_llvm_context *ctx,
|
ac_build_struct_tbuffer_store(struct ac_llvm_context *ctx,
|
||||||
LLVMValueRef rsrc,
|
LLVMValueRef rsrc,
|
||||||
|
Reference in New Issue
Block a user