vkd3d-shader/ir: Require signed operands for IREM instructions.

This commit is contained in:
Henri Verbeet
2025-09-23 11:53:15 +02:00
parent b6acac49f1
commit c89fd93859
Notes: Henri Verbeet 2025-10-14 16:33:22 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1787
2 changed files with 2 additions and 2 deletions

View File

@@ -4675,12 +4675,12 @@ static void sm6_parser_emit_binop(struct sm6_parser *sm6, const struct dxil_reco
silence_warning = !(flags & ~(OB_NO_UNSIGNED_WRAP | OB_NO_SIGNED_WRAP));
break;
case VSIR_OP_IDIV:
case VSIR_OP_IREM:
case VSIR_OP_ISHR:
type_flags |= DXIL_TYPE_SIGNED;
/* fall through */
case VSIR_OP_USHR:
case VSIR_OP_UDIV_SIMPLE:
case VSIR_OP_IREM:
case VSIR_OP_UREM:
silence_warning = !(flags & ~PEB_EXACT);
break;

View File

@@ -12844,7 +12844,7 @@ static const struct vsir_validator_instruction_desc vsir_validator_instructions[
[VSIR_OP_IMIN] = {1, 2, vsir_validate_signed_integer_elementwise_operation},
[VSIR_OP_INE] = {1, 2, vsir_validate_integer_comparison_operation},
[VSIR_OP_INEG] = {1, 1, vsir_validate_integer_elementwise_operation},
[VSIR_OP_IREM] = {1, 2, vsir_validate_integer_elementwise_operation},
[VSIR_OP_IREM] = {1, 2, vsir_validate_signed_integer_elementwise_operation},
[VSIR_OP_ISFINITE] = {1, 1, vsir_validate_float_comparison_operation},
[VSIR_OP_ISHL] = {1, 2, vsir_validate_ishl},
[VSIR_OP_ISHR] = {1, 2, vsir_validate_ishr},