v3d: Don't generate temps for comparisons.
This was just generated work for vir_opt_dead_code and cluttered up the dumps.
This commit is contained in:
parent
ebde5afb93
commit
20e3526298
|
@ -504,48 +504,49 @@ ntq_emit_comparison(struct v3d_compile *c, struct qreg *dest,
|
|||
if (nir_op_infos[compare_instr->op].num_inputs > 1)
|
||||
src1 = ntq_get_alu_src(c, compare_instr, 1);
|
||||
bool cond_invert = false;
|
||||
struct qreg nop = vir_reg(QFILE_NULL, 0);
|
||||
|
||||
switch (compare_instr->op) {
|
||||
case nir_op_feq32:
|
||||
case nir_op_seq:
|
||||
vir_PF(c, vir_FCMP(c, src0, src1), V3D_QPU_PF_PUSHZ);
|
||||
vir_set_pf(vir_FCMP_dest(c, nop, src0, src1), V3D_QPU_PF_PUSHZ);
|
||||
break;
|
||||
case nir_op_ieq32:
|
||||
vir_PF(c, vir_XOR(c, src0, src1), V3D_QPU_PF_PUSHZ);
|
||||
vir_set_pf(vir_XOR_dest(c, nop, src0, src1), V3D_QPU_PF_PUSHZ);
|
||||
break;
|
||||
|
||||
case nir_op_fne32:
|
||||
case nir_op_sne:
|
||||
vir_PF(c, vir_FCMP(c, src0, src1), V3D_QPU_PF_PUSHZ);
|
||||
vir_set_pf(vir_FCMP_dest(c, nop, src0, src1), V3D_QPU_PF_PUSHZ);
|
||||
cond_invert = true;
|
||||
break;
|
||||
case nir_op_ine32:
|
||||
vir_PF(c, vir_XOR(c, src0, src1), V3D_QPU_PF_PUSHZ);
|
||||
vir_set_pf(vir_XOR_dest(c, nop, src0, src1), V3D_QPU_PF_PUSHZ);
|
||||
cond_invert = true;
|
||||
break;
|
||||
|
||||
case nir_op_fge32:
|
||||
case nir_op_sge:
|
||||
vir_PF(c, vir_FCMP(c, src1, src0), V3D_QPU_PF_PUSHC);
|
||||
vir_set_pf(vir_FCMP_dest(c, nop, src1, src0), V3D_QPU_PF_PUSHC);
|
||||
break;
|
||||
case nir_op_ige32:
|
||||
vir_PF(c, vir_MIN(c, src1, src0), V3D_QPU_PF_PUSHC);
|
||||
vir_set_pf(vir_MIN_dest(c, nop, src1, src0), V3D_QPU_PF_PUSHC);
|
||||
cond_invert = true;
|
||||
break;
|
||||
case nir_op_uge32:
|
||||
vir_PF(c, vir_SUB(c, src0, src1), V3D_QPU_PF_PUSHC);
|
||||
vir_set_pf(vir_SUB_dest(c, nop, src0, src1), V3D_QPU_PF_PUSHC);
|
||||
cond_invert = true;
|
||||
break;
|
||||
|
||||
case nir_op_slt:
|
||||
case nir_op_flt32:
|
||||
vir_PF(c, vir_FCMP(c, src0, src1), V3D_QPU_PF_PUSHN);
|
||||
vir_set_pf(vir_FCMP_dest(c, nop, src0, src1), V3D_QPU_PF_PUSHN);
|
||||
break;
|
||||
case nir_op_ilt32:
|
||||
vir_PF(c, vir_MIN(c, src1, src0), V3D_QPU_PF_PUSHC);
|
||||
vir_set_pf(vir_MIN_dest(c, nop, src1, src0), V3D_QPU_PF_PUSHC);
|
||||
break;
|
||||
case nir_op_ult32:
|
||||
vir_PF(c, vir_SUB(c, src0, src1), V3D_QPU_PF_PUSHC);
|
||||
vir_set_pf(vir_SUB_dest(c, nop, src0, src1), V3D_QPU_PF_PUSHC);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -1691,8 +1692,9 @@ ntq_emit_intrinsic(struct v3d_compile *c, nir_intrinsic_instr *instr)
|
|||
static void
|
||||
ntq_activate_execute_for_block(struct v3d_compile *c)
|
||||
{
|
||||
vir_PF(c, vir_XOR(c, c->execute, vir_uniform_ui(c, c->cur_block->index)),
|
||||
V3D_QPU_PF_PUSHZ);
|
||||
vir_set_pf(vir_XOR_dest(c, vir_reg(QFILE_NULL, 0),
|
||||
c->execute, vir_uniform_ui(c, c->cur_block->index)),
|
||||
V3D_QPU_PF_PUSHZ);
|
||||
|
||||
vir_MOV_cond(c, V3D_QPU_COND_IFA, c->execute, vir_uniform_ui(c, 0));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue