vkd3d-shader/ir: Introduce VSIR_OP_IREM.

It is meant to compute the signed integer remainder.
This commit is contained in:
Giovanni Mascellani
2025-06-10 19:20:12 +02:00
committed by Henri Verbeet
parent f4a4e2afec
commit 823a8724de
Notes: Henri Verbeet 2025-06-25 17:09:38 +02:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1603
4 changed files with 40 additions and 3 deletions

View File

@@ -4528,7 +4528,7 @@ static enum vkd3d_shader_opcode map_binary_op(uint64_t code, const struct sm6_ty
is_valid = !is_bool;
break;
case BINOP_SREM:
op = is_int ? VSIR_OP_IDIV : VSIR_OP_FREM;
op = is_int ? VSIR_OP_IREM : VSIR_OP_FREM;
is_valid = !is_bool;
break;
case BINOP_SHL:
@@ -4611,6 +4611,7 @@ static void sm6_parser_emit_binop(struct sm6_parser *sm6, const struct dxil_reco
case VSIR_OP_USHR:
case VSIR_OP_IDIV:
case VSIR_OP_UDIV:
case VSIR_OP_IREM:
silence_warning = !(flags & ~PEB_EXACT);
break;
default: