diff options
author | Dave Airlie <[email protected]> | 2017-02-13 22:08:30 +0000 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2017-02-14 00:02:50 +0000 |
commit | f32955be4374e4fe08c678d440e03d64cf028cc4 (patch) | |
tree | 34557be49a56b40651e9c81501e5c63b37332f00 /src/amd/common/ac_llvm_build.c | |
parent | f77d2871ac7073b81c45c54878c3234e51bcd017 (diff) |
radeon/ac/llvm: add support for sendmsg emission
This lets us use the new intrinsic on the correct
version of llvm.
Reviewed-by: Marek Olšák <[email protected]>
Reviewed-by: Bas Nieuwenhuizen <[email protected]>
Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/amd/common/ac_llvm_build.c')
-rw-r--r-- | src/amd/common/ac_llvm_build.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/amd/common/ac_llvm_build.c b/src/amd/common/ac_llvm_build.c index afcbf319995..20216a74947 100644 --- a/src/amd/common/ac_llvm_build.c +++ b/src/amd/common/ac_llvm_build.c @@ -750,3 +750,16 @@ ac_emit_ddxy(struct ac_llvm_context *ctx, result = LLVMBuildFSub(ctx->builder, trbl, tl, ""); return result; } + +void +ac_emit_sendmsg(struct ac_llvm_context *ctx, + uint32_t msg, + LLVMValueRef wave_id) +{ + LLVMValueRef args[2]; + const char *intr_name = (HAVE_LLVM < 0x0400) ? "llvm.SI.sendmsg" : "llvm.amdgcn.s.sendmsg"; + args[0] = LLVMConstInt(ctx->i32, msg, false); + args[1] = wave_id; + ac_emit_llvm_intrinsic(ctx, intr_name, ctx->voidt, + args, 2, 0); +} |