i965/fs: Only do CSE when the dst types match.

We could potentially do some CSE even when the dst types aren't the same
on gen6 where there is no implicit dst type conversion iirc, or in the
case of uniform pull constant loads where the dst type doesn't impact
what's stored.  But it's not worth worrying about.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
NOTE: This is a candidate for the 9.1 branch.
(cherry picked from commit c2a6e529c3)
This commit is contained in:
Eric Anholt 2013-02-15 21:55:30 -08:00 committed by Ian Romanick
parent 808e01236b
commit 6d60f8cfc4

View file

@ -105,7 +105,8 @@ fs_visitor::opt_cse_local(bblock_t *block, exec_list *aeb)
/* Match current instruction's expression against those in AEB. */
if (inst->opcode == entry->generator->opcode &&
inst->saturate == entry->generator->saturate &&
operands_match(entry->generator->src, inst->src)) {
inst->dst.type == entry->generator->dst.type &&
operands_match(entry->generator->src, inst->src)) {
found = true;
progress = true;