summaryrefslogtreecommitdiff
path: root/src/amd/vulkan/radv_nir_to_llvm.c
diff options
context:
space:
mode:
authorMarek Olšák <marek.olsak@amd.com>2022-12-04 06:00:15 -0500
committerMarge Bot <emma+marge@anholt.net>2022-12-06 13:27:16 +0000
commitd3a03d24fce06d99e8e0b6c379fe904a8b0febca (patch)
tree78e4ce808b3caac0b8fdaa00133505f8aef45de9 /src/amd/vulkan/radv_nir_to_llvm.c
parent50bece9322c6d89a49456b31a132f5058f9b5981 (diff)
ac/llvm: don't set "readnone" on non-memory intrinsics
It's illegal and LLVM always knows which intrinsics don't read memory. This started failing IR validation with LLVM 16. Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20146>
Diffstat (limited to 'src/amd/vulkan/radv_nir_to_llvm.c')
-rw-r--r--src/amd/vulkan/radv_nir_to_llvm.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/amd/vulkan/radv_nir_to_llvm.c b/src/amd/vulkan/radv_nir_to_llvm.c
index e2f9361be23..c6fd844c244 100644
--- a/src/amd/vulkan/radv_nir_to_llvm.c
+++ b/src/amd/vulkan/radv_nir_to_llvm.c
@@ -175,8 +175,7 @@ create_function(struct radv_shader_context *ctx, gl_shader_stage stage, bool has
ctx->max_workgroup_size, ctx->options);
ctx->ring_offsets = ac_build_intrinsic(&ctx->ac, "llvm.amdgcn.implicit.buffer.ptr",
- LLVMPointerType(ctx->ac.i8, AC_ADDR_SPACE_CONST), NULL, 0,
- AC_FUNC_ATTR_READNONE);
+ LLVMPointerType(ctx->ac.i8, AC_ADDR_SPACE_CONST), NULL, 0, 0);
ctx->ring_offsets = LLVMBuildBitCast(ctx->ac.builder, ctx->ring_offsets,
ac_array_in_const_addr_space(ctx->ac.v4i32), "");
@@ -657,7 +656,7 @@ si_llvm_init_export_args(struct radv_shader_context *ctx, LLVMValueRef *values,
LLVMValueRef class_args[2] = {values[i],
LLVMConstInt(ctx->ac.i32, S_NAN | Q_NAN, false)};
LLVMValueRef isnan = ac_build_intrinsic(&ctx->ac, "llvm.amdgcn.class.f32", ctx->ac.i1,
- class_args, 2, AC_FUNC_ATTR_READNONE);
+ class_args, 2, 0);
values[i] = LLVMBuildSelect(ctx->ac.builder, isnan, ctx->ac.f32_0, values[i], "");
}
}