mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 21:50:12 +01:00
nir: Delete bany, ball, fany, fall.
As in the previous patches, these can be implemented as any(v) -> any_nequal(v, false) all(v) -> all_equal(v, true) and their removal simplifies the code in the next patch. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
parent
21cd298aec
commit
c8a74e3a4e
7 changed files with 5 additions and 37 deletions
|
|
@ -1069,7 +1069,9 @@ ttn_kill(nir_builder *b, nir_op op, nir_alu_dest dest, nir_ssa_def **src)
|
|||
static void
|
||||
ttn_kill_if(nir_builder *b, nir_op op, nir_alu_dest dest, nir_ssa_def **src)
|
||||
{
|
||||
nir_ssa_def *cmp = nir_bany4(b, nir_flt(b, src[0], nir_imm_float(b, 0.0)));
|
||||
nir_ssa_def *cmp = nir_bany_inequal4(b, nir_flt(b, src[0],
|
||||
nir_imm_float(b, 0.0)),
|
||||
nir_imm_int(b, 0));
|
||||
nir_intrinsic_instr *discard =
|
||||
nir_intrinsic_instr_create(b->shader, nir_intrinsic_discard_if);
|
||||
discard->src[0] = nir_src_for_ssa(cmp);
|
||||
|
|
|
|||
|
|
@ -137,10 +137,6 @@ lower_alu_instr_scalar(nir_alu_instr *instr, nir_builder *b)
|
|||
LOWER_REDUCTION(nir_op_bany_inequal, nir_op_ine, nir_op_ior);
|
||||
LOWER_REDUCTION(nir_op_fall_equal, nir_op_seq, nir_op_fand);
|
||||
LOWER_REDUCTION(nir_op_fany_nequal, nir_op_sne, nir_op_for);
|
||||
LOWER_REDUCTION(nir_op_ball, nir_op_imov, nir_op_iand);
|
||||
LOWER_REDUCTION(nir_op_bany, nir_op_imov, nir_op_ior);
|
||||
LOWER_REDUCTION(nir_op_fall, nir_op_fmov, nir_op_fand);
|
||||
LOWER_REDUCTION(nir_op_fany, nir_op_fmov, nir_op_for);
|
||||
|
||||
default:
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -167,13 +167,6 @@ unop_convert("i2b", tint, tbool, "src0 != 0")
|
|||
unop_convert("b2i", tbool, tint, "src0 ? 1 : 0") # Boolean-to-int conversion
|
||||
unop_convert("u2f", tuint, tfloat, "src0") # Unsigned-to-float conversion.
|
||||
|
||||
unop_reduce("bany", 1, tbool, tbool, "{src}", "{src0} || {src1}", "{src}")
|
||||
unop_reduce("ball", 1, tbool, tbool, "{src}", "{src0} && {src1}", "{src}")
|
||||
unop_reduce("fany", 1, tfloat, tfloat, "{src} != 0.0f", "{src0} || {src1}",
|
||||
"{src} ? 1.0f : 0.0f")
|
||||
unop_reduce("fall", 1, tfloat, tfloat, "{src} != 0.0f", "{src0} && {src1}",
|
||||
"{src} ? 1.0f : 0.0f")
|
||||
|
||||
# Unary floating-point rounding operations.
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -841,12 +841,6 @@ fs_visitor::nir_emit_alu(const fs_builder &bld, nir_alu_instr *instr)
|
|||
case nir_op_fdot2:
|
||||
case nir_op_fdot3:
|
||||
case nir_op_fdot4:
|
||||
case nir_op_bany2:
|
||||
case nir_op_bany3:
|
||||
case nir_op_bany4:
|
||||
case nir_op_ball2:
|
||||
case nir_op_ball3:
|
||||
case nir_op_ball4:
|
||||
case nir_op_ball_fequal2:
|
||||
case nir_op_ball_iequal2:
|
||||
case nir_op_ball_fequal3:
|
||||
|
|
|
|||
|
|
@ -109,9 +109,6 @@ analyze_boolean_resolves_block(nir_block *block, void *void_state)
|
|||
uint8_t resolve_status;
|
||||
nir_alu_instr *alu = nir_instr_as_alu(instr);
|
||||
switch (alu->op) {
|
||||
case nir_op_bany2:
|
||||
case nir_op_bany3:
|
||||
case nir_op_bany4:
|
||||
case nir_op_ball_fequal2:
|
||||
case nir_op_ball_iequal2:
|
||||
case nir_op_ball_fequal3:
|
||||
|
|
|
|||
|
|
@ -1419,20 +1419,6 @@ vec4_visitor::nir_emit_alu(nir_alu_instr *instr)
|
|||
inst->saturate = instr->dest.saturate;
|
||||
break;
|
||||
|
||||
case nir_op_bany2:
|
||||
case nir_op_bany3:
|
||||
case nir_op_bany4: {
|
||||
unsigned swiz =
|
||||
brw_swizzle_for_size(nir_op_infos[instr->op].input_sizes[0]);
|
||||
|
||||
emit(CMP(dst_null_d(), swizzle(op[0], swiz), brw_imm_d(0),
|
||||
BRW_CONDITIONAL_NZ));
|
||||
emit(MOV(dst, brw_imm_d(0)));
|
||||
inst = emit(MOV(dst, brw_imm_d(~0)));
|
||||
inst->predicate = BRW_PREDICATE_ALIGN16_ANY4H;
|
||||
break;
|
||||
}
|
||||
|
||||
case nir_op_fabs:
|
||||
case nir_op_iabs:
|
||||
case nir_op_fneg:
|
||||
|
|
|
|||
|
|
@ -554,8 +554,8 @@ static void
|
|||
ptn_kil(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
|
||||
{
|
||||
nir_ssa_def *cmp = b->shader->options->native_integers ?
|
||||
nir_bany4(b, nir_flt(b, src[0], nir_imm_float(b, 0.0))) :
|
||||
nir_fany4(b, nir_slt(b, src[0], nir_imm_float(b, 0.0)));
|
||||
nir_bany_inequal4(b, nir_flt(b, src[0], nir_imm_float(b, 0.0)), nir_imm_int(b, 0)) :
|
||||
nir_fany_nequal4(b, nir_slt(b, src[0], nir_imm_float(b, 0.0)), nir_imm_float(b, 0.0));
|
||||
|
||||
nir_intrinsic_instr *discard =
|
||||
nir_intrinsic_instr_create(b->shader, nir_intrinsic_discard_if);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue