[Mesa-dev] [PATCH] amd/common: use llvm.amdgcn.wqm for explicit derivatives
Nicolai Hähnle
nhaehnle at gmail.com
Thu May 3 15:18:41 UTC 2018
From: Nicolai Hähnle <nicolai.haehnle at amd.com>
To comply with an upcoming change in LLVM, see
https://reviews.llvm.org/D46051
---
src/amd/common/ac_llvm_build.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/amd/common/ac_llvm_build.c b/src/amd/common/ac_llvm_build.c
index f21a5d2623c..c9b2e36b632 100644
--- a/src/amd/common/ac_llvm_build.c
+++ b/src/amd/common/ac_llvm_build.c
@@ -1241,20 +1241,27 @@ ac_build_ddxy(struct ac_llvm_context *ctx,
trbl = ac_build_intrinsic(ctx,
"llvm.amdgcn.ds.swizzle", ctx->i32,
args, 2,
AC_FUNC_ATTR_READNONE |
AC_FUNC_ATTR_CONVERGENT);
}
tl = LLVMBuildBitCast(ctx->builder, tl, ctx->f32, "");
trbl = LLVMBuildBitCast(ctx->builder, trbl, ctx->f32, "");
result = LLVMBuildFSub(ctx->builder, trbl, tl, "");
+
+ if (HAVE_LLVM >= 0x0700) {
+ result = ac_build_intrinsic(ctx,
+ "llvm.amdgcn.wqm.f32", ctx->f32,
+ &result, 1, 0);
+ }
+
return result;
}
void
ac_build_sendmsg(struct ac_llvm_context *ctx,
uint32_t msg,
LLVMValueRef wave_id)
{
LLVMValueRef args[2];
args[0] = LLVMConstInt(ctx->i32, msg, false);
--
2.14.1
More information about the mesa-dev
mailing list