i965/fs: Fix propagation of copies with strided source.
authorFrancisco Jerez <currojerez@riseup.net>
Mon, 25 Apr 2016 22:40:05 +0000 (15:40 -0700)
committerSamuel Iglesias Gonsálvez <siglesias@igalia.com>
Mon, 16 May 2016 07:55:32 +0000 (09:55 +0200)
commit70dc19f9d628f0459db93466fbf65af1bfe75af1
tree66b507d8b727db068acd13bfcd980f607fce52a1
parent17decd940c1e105506db74e8539a77db271adbc5
i965/fs: Fix propagation of copies with strided source.

This has likely been broken since we started propagating copies not
matching the offset of the instruction exactly
(1728e74957a62b1b4b9fbb62a7de2c12b77c8a75).  The copy source stride
needs to be taken into account to find out the offset at the origin
that corresponds to the offset at the destination of the copy which is
being read by the instruction.  This has led to program miscompilation
on both my SIMD32 branch and Igalia's FP64 branch.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp