From 49b2d9f428cc7a8d4010c78c4a1ae5238434f413 Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Tue, 29 Jan 2019 16:34:30 -0800 Subject: [PATCH] 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 Reviewed-by: Lionel Landwerlin Part-of: --- src/intel/compiler/brw_fs.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp index 9cd9a0cd926..00499e92759 100644 --- a/src/intel/compiler/brw_fs.cpp +++ b/src/intel/compiler/brw_fs.cpp @@ -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;