mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 09:38:07 +02:00
radeonsi: stop using lp_build_emit_llvm_unary/binary
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
parent
0810f15046
commit
7888245ef3
3 changed files with 18 additions and 23 deletions
|
|
@ -2141,9 +2141,8 @@ void si_load_system_value(struct si_shader_context *ctx,
|
|||
LLVMGetParam(ctx->main_fn, SI_PARAM_POS_X_FLOAT),
|
||||
LLVMGetParam(ctx->main_fn, SI_PARAM_POS_Y_FLOAT),
|
||||
LLVMGetParam(ctx->main_fn, SI_PARAM_POS_Z_FLOAT),
|
||||
lp_build_emit_llvm_unary(&ctx->bld_base, TGSI_OPCODE_RCP,
|
||||
LLVMGetParam(ctx->main_fn,
|
||||
SI_PARAM_POS_W_FLOAT)),
|
||||
ac_build_fdiv(&ctx->ac, ctx->ac.f32_1,
|
||||
LLVMGetParam(ctx->main_fn, SI_PARAM_POS_W_FLOAT)),
|
||||
};
|
||||
value = ac_build_gather_values(&ctx->ac, pos, 4);
|
||||
break;
|
||||
|
|
@ -2164,10 +2163,8 @@ void si_load_system_value(struct si_shader_context *ctx,
|
|||
LLVMConstReal(ctx->f32, 0),
|
||||
LLVMConstReal(ctx->f32, 0)
|
||||
};
|
||||
pos[0] = lp_build_emit_llvm_unary(&ctx->bld_base,
|
||||
TGSI_OPCODE_FRC, pos[0]);
|
||||
pos[1] = lp_build_emit_llvm_unary(&ctx->bld_base,
|
||||
TGSI_OPCODE_FRC, pos[1]);
|
||||
pos[0] = ac_build_fract(&ctx->ac, pos[0], 32);
|
||||
pos[1] = ac_build_fract(&ctx->ac, pos[1], 32);
|
||||
value = ac_build_gather_values(&ctx->ac, pos, 4);
|
||||
break;
|
||||
}
|
||||
|
|
@ -4021,8 +4018,10 @@ static LLVMValueRef si_llvm_emit_ddxy_interp(
|
|||
for (i = 0; i < 2; i++) {
|
||||
a = LLVMBuildExtractElement(ctx->ac.builder, interp_ij,
|
||||
LLVMConstInt(ctx->i32, i, 0), "");
|
||||
result[i] = lp_build_emit_llvm_unary(bld_base, TGSI_OPCODE_DDX, a);
|
||||
result[2+i] = lp_build_emit_llvm_unary(bld_base, TGSI_OPCODE_DDY, a);
|
||||
result[i] = ac_build_ddxy(&ctx->ac, AC_TID_MASK_TOP_LEFT, 1,
|
||||
ac_to_integer(&ctx->ac, a)); /* DDX */
|
||||
result[2+i] = ac_build_ddxy(&ctx->ac, AC_TID_MASK_TOP_LEFT, 2,
|
||||
ac_to_integer(&ctx->ac, a)); /* DDY */
|
||||
}
|
||||
|
||||
return ac_build_gather_values(&ctx->ac, result, 4);
|
||||
|
|
|
|||
|
|
@ -244,7 +244,9 @@ static void emit_arl(const struct lp_build_tgsi_action *action,
|
|||
struct lp_build_emit_data *emit_data)
|
||||
{
|
||||
struct si_shader_context *ctx = si_shader_context(bld_base);
|
||||
LLVMValueRef floor_index = lp_build_emit_llvm_unary(bld_base, TGSI_OPCODE_FLR, emit_data->args[0]);
|
||||
LLVMValueRef floor_index =
|
||||
ac_build_intrinsic(&ctx->ac, "llvm.floor.f32", ctx->f32,
|
||||
&emit_data->args[0], 1, AC_FUNC_ATTR_READNONE);
|
||||
emit_data->output[emit_data->chan] = LLVMBuildFPToSI(ctx->ac.builder,
|
||||
floor_index, ctx->i32, "");
|
||||
}
|
||||
|
|
@ -556,10 +558,8 @@ static void emit_iabs(const struct lp_build_tgsi_action *action,
|
|||
struct si_shader_context *ctx = si_shader_context(bld_base);
|
||||
|
||||
emit_data->output[emit_data->chan] =
|
||||
lp_build_emit_llvm_binary(bld_base, TGSI_OPCODE_IMAX,
|
||||
emit_data->args[0],
|
||||
LLVMBuildNeg(ctx->ac.builder,
|
||||
emit_data->args[0], ""));
|
||||
ac_build_imax(&ctx->ac, emit_data->args[0],
|
||||
LLVMBuildNeg(ctx->ac.builder, emit_data->args[0], ""));
|
||||
}
|
||||
|
||||
static void emit_minmax_int(const struct lp_build_tgsi_action *action,
|
||||
|
|
@ -668,12 +668,11 @@ static void emit_rsq(const struct lp_build_tgsi_action *action,
|
|||
struct si_shader_context *ctx = si_shader_context(bld_base);
|
||||
|
||||
LLVMValueRef sqrt =
|
||||
lp_build_emit_llvm_unary(bld_base, TGSI_OPCODE_SQRT,
|
||||
emit_data->args[0]);
|
||||
ac_build_intrinsic(&ctx->ac, "llvm.sqrt.f32", ctx->f32,
|
||||
&emit_data->args[0], 1, AC_FUNC_ATTR_READNONE);
|
||||
|
||||
emit_data->output[emit_data->chan] =
|
||||
lp_build_emit_llvm_binary(bld_base, TGSI_OPCODE_DIV,
|
||||
ctx->ac.f32_1, sqrt);
|
||||
ac_build_fdiv(&ctx->ac, ctx->ac.f32_1, sqrt);
|
||||
}
|
||||
|
||||
static void dfracexp_fetch_args(struct lp_build_tgsi_context *bld_base,
|
||||
|
|
|
|||
|
|
@ -1286,8 +1286,7 @@ static void tex_fetch_args(
|
|||
emit_data->inst, 0,
|
||||
chan);
|
||||
if (opcode == TGSI_OPCODE_TXP)
|
||||
args.coords[chan] = lp_build_emit_llvm_binary(
|
||||
bld_base, TGSI_OPCODE_DIV,
|
||||
args.coords[chan] = ac_build_fdiv(&ctx->ac,
|
||||
args.coords[chan], args.coords[3]);
|
||||
}
|
||||
|
||||
|
|
@ -1640,9 +1639,7 @@ si_lower_gather4_integer(struct si_shader_context *ctx,
|
|||
LLVMBuildExtractElement(builder, txq_emit_data.output[0],
|
||||
LLVMConstInt(ctx->i32, c, 0), "");
|
||||
half_texel[c] = LLVMBuildUIToFP(builder, half_texel[c], ctx->f32, "");
|
||||
half_texel[c] =
|
||||
lp_build_emit_llvm_unary(&ctx->bld_base,
|
||||
TGSI_OPCODE_RCP, half_texel[c]);
|
||||
half_texel[c] = ac_build_fdiv(&ctx->ac, ctx->ac.f32_1, half_texel[c]);
|
||||
half_texel[c] = LLVMBuildFMul(builder, half_texel[c],
|
||||
LLVMConstReal(ctx->f32, -0.5), "");
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue