mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 17:30:12 +01: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>
This commit is contained in:
parent
eb6764c4a7
commit
cd89c834a8
1 changed files with 4 additions and 1 deletions
|
|
@ -3551,7 +3551,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