i965: Fix copy propagation type changes.
commit 472ef9a02f introduced code to
change the types of SEL and MOV instructions for moves that simply
"copy bits around". It didn't account for type conversion moves,
however. So it would happily turn this:
mov(8) vgrf6:D, -vgrf5:D
mov(8) vgrf7:F, vgrf6:UD
into this:
mov(8) vgrf6:D, -vgrf5:D
mov(8) vgrf7:D, -vgrf5:D
which erroneously drops the conversion to float.
Cc: "11.0 10.6" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
@@ -279,6 +279,7 @@ static bool
|
||||
can_change_source_types(fs_inst *inst)
|
||||
{
|
||||
return !inst->src[0].abs && !inst->src[0].negate &&
|
||||
inst->dst.type == inst->src[0].type &&
|
||||
(inst->opcode == BRW_OPCODE_MOV ||
|
||||
(inst->opcode == BRW_OPCODE_SEL &&
|
||||
inst->predicate != BRW_PREDICATE_NONE &&
|
||||
|
||||
Reference in New Issue
Block a user