broadcom/compiler: implement NIR mali opcodes for clamping
These translate directly to new unpack modifiers on V3D 7.x. Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31480>
This commit is contained in:
committed by
Marge Bot
parent
a13bf51a9f
commit
c57be33d96
@@ -1783,11 +1783,23 @@ ntq_emit_alu(struct v3d_compile *c, nir_alu_instr *instr)
|
||||
break;
|
||||
|
||||
case nir_op_fsat:
|
||||
assert(c->devinfo->ver >= 71);
|
||||
assert(v3d_device_has_unpack_sat(c->devinfo));
|
||||
result = vir_FMOV(c, src[0]);
|
||||
vir_set_unpack(c->defs[result.index], 0, V3D71_QPU_UNPACK_SAT);
|
||||
break;
|
||||
|
||||
case nir_op_fsat_signed:
|
||||
assert(v3d_device_has_unpack_sat(c->devinfo));
|
||||
result = vir_FMOV(c, src[0]);
|
||||
vir_set_unpack(c->defs[result.index], 0, V3D71_QPU_UNPACK_NSAT);
|
||||
break;
|
||||
|
||||
case nir_op_fclamp_pos:
|
||||
assert(v3d_device_has_unpack_max0(c->devinfo));
|
||||
result = vir_FMOV(c, src[0]);
|
||||
vir_set_unpack(c->defs[result.index], 0, V3D71_QPU_UNPACK_MAX0);
|
||||
break;
|
||||
|
||||
default:
|
||||
fprintf(stderr, "unknown NIR ALU inst: ");
|
||||
nir_print_instr(&instr->instr, stderr);
|
||||
|
||||
Reference in New Issue
Block a user