mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-04 00:30:11 +01:00
nir: add atomic isub
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37702>
This commit is contained in:
parent
2bfc62e825
commit
b0d3db3733
4 changed files with 10 additions and 0 deletions
|
|
@ -3804,6 +3804,8 @@ nir_atomic_op_to_alu(nir_atomic_op op)
|
|||
switch (op) {
|
||||
case nir_atomic_op_iadd:
|
||||
return nir_op_iadd;
|
||||
case nir_atomic_op_isub:
|
||||
return nir_op_isub;
|
||||
case nir_atomic_op_imin:
|
||||
return nir_op_imin;
|
||||
case nir_atomic_op_umin:
|
||||
|
|
|
|||
|
|
@ -1251,6 +1251,7 @@ nir_op nir_type_conversion_op(nir_alu_type src, nir_alu_type dst,
|
|||
*/
|
||||
typedef enum {
|
||||
nir_atomic_op_iadd,
|
||||
nir_atomic_op_isub,
|
||||
nir_atomic_op_imin,
|
||||
nir_atomic_op_umin,
|
||||
nir_atomic_op_imax,
|
||||
|
|
@ -1284,6 +1285,7 @@ nir_atomic_op_type(nir_atomic_op op)
|
|||
return nir_type_float;
|
||||
|
||||
case nir_atomic_op_iadd:
|
||||
case nir_atomic_op_isub:
|
||||
case nir_atomic_op_iand:
|
||||
case nir_atomic_op_ior:
|
||||
case nir_atomic_op_ixor:
|
||||
|
|
|
|||
|
|
@ -191,6 +191,9 @@ static void
|
|||
reduce_data(nir_builder *b, nir_op op, nir_def *data,
|
||||
nir_def **reduce, nir_def **scan)
|
||||
{
|
||||
if (op == nir_op_isub)
|
||||
op = nir_op_iadd;
|
||||
|
||||
if (scan) {
|
||||
*scan = nir_exclusive_scan(b, data, .reduction_op = op);
|
||||
if (reduce) {
|
||||
|
|
|
|||
|
|
@ -1268,6 +1268,9 @@ print_intrinsic_instr(nir_intrinsic_instr *instr, print_state *state)
|
|||
case nir_atomic_op_iadd:
|
||||
fprintf(fp, "iadd");
|
||||
break;
|
||||
case nir_atomic_op_isub:
|
||||
fprintf(fp, "isub");
|
||||
break;
|
||||
case nir_atomic_op_imin:
|
||||
fprintf(fp, "imin");
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue