call = LLVMBuildCall2(ctx->builder, function_type, function, params, param_count, "");
- if (attrib_mask & AC_FUNC_ATTR_READNONE)
- LLVMAddCallSiteAttribute(call, -1, ac_get_llvm_attribute(ctx->context, "readnone"));
+ if (attrib_mask & AC_FUNC_ATTR_READNONE) {
+ if (LLVM_VERSION_MAJOR >= 15)
+ LLVMSetMetadata(call, ctx->invariant_load_md_kind, ctx->empty_md);
+ else
+ LLVMAddCallSiteAttribute(call, -1, ac_get_llvm_attribute(ctx->context, "readnone"));
+ }
if (attrib_mask & AC_FUNC_ATTR_CONVERGENT)
LLVMAddCallSiteAttribute(call, -1, ac_get_llvm_attribute(ctx->context, "convergent"));