radeonsi: use new function ac_build_umin for edgeflag clamping
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
@@ -908,6 +908,13 @@ ac_build_umsb(struct ac_llvm_context *ctx,
|
||||
LLVMConstInt(ctx->i32, -1, true), msb, "");
|
||||
}
|
||||
|
||||
LLVMValueRef ac_build_umin(struct ac_llvm_context *ctx, LLVMValueRef a,
|
||||
LLVMValueRef b)
|
||||
{
|
||||
LLVMValueRef cmp = LLVMBuildICmp(ctx->builder, LLVMIntULE, a, b, "");
|
||||
return LLVMBuildSelect(ctx->builder, cmp, a, b, "");
|
||||
}
|
||||
|
||||
LLVMValueRef ac_build_clamp(struct ac_llvm_context *ctx, LLVMValueRef value)
|
||||
{
|
||||
if (HAVE_LLVM >= 0x0500) {
|
||||
|
@@ -197,6 +197,7 @@ LLVMValueRef ac_build_umsb(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef arg,
|
||||
LLVMTypeRef dst_type);
|
||||
|
||||
LLVMValueRef ac_build_umin(struct ac_llvm_context *ctx, LLVMValueRef a, LLVMValueRef b);
|
||||
LLVMValueRef ac_build_clamp(struct ac_llvm_context *ctx, LLVMValueRef value);
|
||||
|
||||
struct ac_export_args {
|
||||
|
@@ -2502,7 +2502,7 @@ static void si_llvm_export_vs(struct lp_build_tgsi_context *bld_base,
|
||||
edgeflag_value = LLVMBuildFPToUI(ctx->gallivm.builder,
|
||||
edgeflag_value,
|
||||
ctx->i32, "");
|
||||
edgeflag_value = lp_build_min(&bld_base->int_bld,
|
||||
edgeflag_value = ac_build_umin(&ctx->ac,
|
||||
edgeflag_value,
|
||||
ctx->i32_1);
|
||||
|
||||
|
Reference in New Issue
Block a user