mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 06:48:06 +02:00
i965: Fix multiplication of immediates on Cherryview/Broxton.
Cherryview and Broxton don't support DW x DW multiplication. We have
piles of code to handle this, but apparently weren't retyping in the
immediate case.
For example,
tests/spec/arb_tessellation_shader/execution/dvec3-vs-tcs-tes
makes the simulator angry about instructions such as:
mul(8) r18<1>:D r10.0<8;8,1>:D 0x00000003:D
Just retype to W or UW. It should be safe on all platforms.
Cc: "12.0" <mesa-stable@lists.freedesktop.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=95462
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
(cherry picked from commit cd89c834a8)
This commit is contained in:
parent
09a098bdeb
commit
a0235eb0f7
1 changed files with 4 additions and 1 deletions
|
|
@ -3564,7 +3564,10 @@ fs_visitor::lower_integer_multiplication()
|
|||
ibld.MOV(imm, inst->src[1]);
|
||||
ibld.MUL(inst->dst, imm, inst->src[0]);
|
||||
} else {
|
||||
ibld.MUL(inst->dst, inst->src[0], inst->src[1]);
|
||||
const bool ud = (inst->src[1].type == BRW_REGISTER_TYPE_UD);
|
||||
ibld.MUL(inst->dst, inst->src[0],
|
||||
ud ? brw_imm_uw(inst->src[1].ud)
|
||||
: brw_imm_w(inst->src[1].d));
|
||||
}
|
||||
} else {
|
||||
/* Gen < 8 (and some Gen8+ low-power parts like Cherryview) cannot
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue