From 8bde7fb3fcf9d85fd311e2e09f5bec4724a66300 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sat, 25 Feb 2017 23:48:23 +0100 Subject: [PATCH] ac: replace SI.vs.load.input with amdgcn.buffer.load.format Reviewed-by: Dave Airlie --- src/amd/common/ac_llvm_build.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) 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, -- 2.30.2