From: Marek Olšák Date: Sat, 25 Feb 2017 22:48:23 +0000 (+0100) Subject: ac: replace SI.vs.load.input with amdgcn.buffer.load.format X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8bde7fb3fcf9d85fd311e2e09f5bec4724a66300;p=mesa.git ac: replace SI.vs.load.input with amdgcn.buffer.load.format Reviewed-by: Dave Airlie --- diff --git a/src/amd/common/ac_llvm_build.c b/src/amd/common/ac_llvm_build.c index 8fac89ccd7b..6364657e679 100644 --- a/src/amd/common/ac_llvm_build.c +++ b/src/amd/common/ac_llvm_build.c @@ -736,6 +736,26 @@ LLVMValueRef ac_build_buffer_load_format(struct ac_llvm_context *ctx, LLVMValueRef voffset, bool readonly_memory) { + if (HAVE_LLVM >= 0x0309) { + LLVMValueRef args [] = { + LLVMBuildBitCast(ctx->builder, rsrc, ctx->v4i32, ""), + vindex, + voffset, + LLVMConstInt(ctx->i1, 0, 0), /* glc */ + LLVMConstInt(ctx->i1, 0, 0), /* slc */ + }; + + return ac_emit_llvm_intrinsic(ctx, + "llvm.amdgcn.buffer.load.format.v4f32", + ctx->v4f32, args, ARRAY_SIZE(args), + /* READNONE means writes can't + * affect it, while READONLY means + * that writes can affect it. */ + readonly_memory ? + AC_FUNC_ATTR_READNONE : + AC_FUNC_ATTR_READONLY); + } + LLVMValueRef args[] = { rsrc, voffset,