Mesa (master): i965/fs: Use source's original type in register_coalesce().

Matt Turner mattst88 at kemper.freedesktop.org
Wed Nov 20 23:05:29 UTC 2013


Module: Mesa
Branch: master
Commit: 9793fc1335f11b4131d6db680bec567dcfccfb5f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9793fc1335f11b4131d6db680bec567dcfccfb5f

Author: Matt Turner <mattst88 at gmail.com>
Date:   Fri Nov 15 11:09:47 2013 -0800

i965/fs: Use source's original type in register_coalesce().

Previously, register_coalesce() would modify

   mov   vgrf1:f  vgrf2:f
   cmp   null     vgrf3:d  vgrf1:d

to be

   cmp   null     vgrf3:d  vgrf2:f

and incorrectly use vgrf2's type in the instruction that the mov was
coalesced into.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

---

 src/mesa/drivers/dri/i965/brw_fs.cpp |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index 8b3f8df..5b20b1c 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -2429,6 +2429,7 @@ fs_visitor::register_coalesce()
 		scan_inst->src[i].reg == inst->dst.reg &&
 		scan_inst->src[i].reg_offset == inst->dst.reg_offset) {
 	       fs_reg new_src = inst->src[0];
+               new_src.type = scan_inst->src[i].type;
                if (scan_inst->src[i].abs) {
                   new_src.negate = 0;
                   new_src.abs = 1;




More information about the mesa-commit mailing list