intel/fs: Lower dword integer multiplies on XeHP.

From the BSpec:

 "When multiplying DW X DW, resulting dst can only be QW precision. If
 DW precision is required at output than MUL/MACH macro must be used."

So for now simply lower it. We might want to revisit it later.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10000>
This commit is contained in:
Rafael Antognolli 2019-01-29 16:34:30 -08:00 committed by Marge Bot
parent 3f50dde8b3
commit 49b2d9f428
1 changed files with 2 additions and 1 deletions

View File

@ -4231,7 +4231,8 @@ fs_visitor::lower_integer_multiplication()
} else if (!inst->dst.is_accumulator() &&
(inst->dst.type == BRW_REGISTER_TYPE_D ||
inst->dst.type == BRW_REGISTER_TYPE_UD) &&
!devinfo->has_integer_dword_mul) {
(!devinfo->has_integer_dword_mul ||
devinfo->verx10 >= 125)) {
lower_mul_dword_inst(inst, block);
inst->remove(block);
progress = true;