[Mesa-dev] [PATCH 036/133] i965/fs: Allow reinterpretation in constant propagation
Jason Ekstrand
jason at jlekstrand.net
Mon Dec 15 22:04:46 PST 2014
Because NIR is typeless, it treats all constants as uint32 values and
reinterprets them when they are used later. This commit allows those
values to be properly propagated.
---
src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
index 611cff1..70f417f 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
@@ -433,8 +433,7 @@ fs_visitor::try_constant_propagate(fs_inst *inst, acp_entry *entry)
continue;
assert(entry->dst.file == GRF);
- if (inst->src[i].reg != entry->dst.reg ||
- inst->src[i].type != entry->dst.type)
+ if (inst->src[i].reg != entry->dst.reg)
continue;
/* Bail if inst is reading a range that isn't contained in the range
@@ -454,6 +453,7 @@ fs_visitor::try_constant_propagate(fs_inst *inst, acp_entry *entry)
fs_reg val = entry->src;
val.effective_width = inst->src[i].effective_width;
+ val.type = inst->src[i].type;
switch (inst->opcode) {
case BRW_OPCODE_MOV:
--
2.2.0
More information about the mesa-dev
mailing list