summaryrefslogtreecommitdiff
path: root/src/gallium
diff options
context:
space:
mode:
authorChristoph Bumiller <e0425955@student.tuwien.ac.at>2010-08-17 15:27:56 +0200
committerChristoph Bumiller <e0425955@student.tuwien.ac.at>2010-08-17 15:30:35 +0200
commit3e27785f3ebe6620805f97cb5c17ec8bd28bc1e8 (patch)
tree846816d420888aabf78bcd85c9707e40baca9c40 /src/gallium
parentcb75082768d516d684a69588266b92b06e19b7bd (diff)
nv50: check dst compatibility in CSE
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/nv50/nv50_pc_optimize.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gallium/drivers/nv50/nv50_pc_optimize.c b/src/gallium/drivers/nv50/nv50_pc_optimize.c
index 3e6e09a904..80f3bb34b0 100644
--- a/src/gallium/drivers/nv50/nv50_pc_optimize.c
+++ b/src/gallium/drivers/nv50/nv50_pc_optimize.c
@@ -1007,6 +1007,13 @@ nv_pass_cse(struct nv_pass *ctx, struct nv_basic_block *b)
ik->flags_def || ir->flags_def)
continue; /* and also not with flags, for now */
+ assert(ik->def[0] && ir->def[0]);
+
+ if (ik->def[0]->reg.file == NV_FILE_OUT ||
+ ir->def[0]->reg.file == NV_FILE_OUT ||
+ !values_equal(ik->def[0], ir->def[0]))
+ continue;
+
for (s = 0; s < 3; ++s) {
struct nv_value *a, *b;