mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 06:40:11 +01:00
ac/nir: make ac_build_clamp work on all bit sizes
v2: don't use ac_get_zerof() and ac_get_onef() v3: rename "intr" to "name" Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
This commit is contained in:
parent
7e5004e30a
commit
bbbfdef683
1 changed files with 9 additions and 4 deletions
|
|
@ -1604,16 +1604,20 @@ ac_build_umsb(struct ac_llvm_context *ctx,
|
|||
LLVMValueRef ac_build_fmin(struct ac_llvm_context *ctx, LLVMValueRef a,
|
||||
LLVMValueRef b)
|
||||
{
|
||||
char name[64];
|
||||
snprintf(name, sizeof(name), "llvm.minnum.f%d", ac_get_elem_bits(ctx, LLVMTypeOf(a)));
|
||||
LLVMValueRef args[2] = {a, b};
|
||||
return ac_build_intrinsic(ctx, "llvm.minnum.f32", ctx->f32, args, 2,
|
||||
return ac_build_intrinsic(ctx, name, LLVMTypeOf(a), args, 2,
|
||||
AC_FUNC_ATTR_READNONE);
|
||||
}
|
||||
|
||||
LLVMValueRef ac_build_fmax(struct ac_llvm_context *ctx, LLVMValueRef a,
|
||||
LLVMValueRef b)
|
||||
{
|
||||
char name[64];
|
||||
snprintf(name, sizeof(name), "llvm.maxnum.f%d", ac_get_elem_bits(ctx, LLVMTypeOf(a)));
|
||||
LLVMValueRef args[2] = {a, b};
|
||||
return ac_build_intrinsic(ctx, "llvm.maxnum.f32", ctx->f32, args, 2,
|
||||
return ac_build_intrinsic(ctx, name, LLVMTypeOf(a), args, 2,
|
||||
AC_FUNC_ATTR_READNONE);
|
||||
}
|
||||
|
||||
|
|
@ -1640,8 +1644,9 @@ LLVMValueRef ac_build_umin(struct ac_llvm_context *ctx, LLVMValueRef a,
|
|||
|
||||
LLVMValueRef ac_build_clamp(struct ac_llvm_context *ctx, LLVMValueRef value)
|
||||
{
|
||||
return ac_build_fmin(ctx, ac_build_fmax(ctx, value, ctx->f32_0),
|
||||
ctx->f32_1);
|
||||
LLVMTypeRef t = LLVMTypeOf(value);
|
||||
return ac_build_fmin(ctx, ac_build_fmax(ctx, value, LLVMConstReal(t, 0.0)),
|
||||
LLVMConstReal(t, 1.0));
|
||||
}
|
||||
|
||||
void ac_build_export(struct ac_llvm_context *ctx, struct ac_export_args *a)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue