diff --git a/src/freedreno/ir3/ir3_compiler_nir.c b/src/freedreno/ir3/ir3_compiler_nir.c index 00d7a0b1b5b..d43f44feb52 100644 --- a/src/freedreno/ir3/ir3_compiler_nir.c +++ b/src/freedreno/ir3/ir3_compiler_nir.c @@ -826,6 +826,14 @@ emit_alu(struct ir3_context *ctx, nir_alu_instr *alu) dst[0] = ir3_ADD_S(b, src[0], 0, src[1], 0); dst[0]->flags |= IR3_INSTR_SAT; break; + case nir_op_usub_sat: + dst[0] = ir3_SUB_U(b, src[0], 0, src[1], 0); + dst[0]->flags |= IR3_INSTR_SAT; + break; + case nir_op_isub_sat: + dst[0] = ir3_SUB_S(b, src[0], 0, src[1], 0); + dst[0]->flags |= IR3_INSTR_SAT; + break; case nir_op_udot_4x8_uadd: case nir_op_udot_4x8_uadd_sat: