diff options
author | Ilia Mirkin <imirkin@alum.mit.edu> | 2015-09-10 05:02:26 -0400 |
---|---|---|
committer | Ilia Mirkin <imirkin@alum.mit.edu> | 2015-09-10 05:03:24 -0400 |
commit | 74b86b971f3bf9b0482341b07c1cbc2e520fb1d0 (patch) | |
tree | be41ce6ba08f4a8aea5405153e2ae1c25d5d1f96 | |
parent | ce28ca713364dbe83cb3c371ca034bc2c2947616 (diff) |
nv50/ir: don't fold immediate into mad if registers are too high
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91551
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "11.0" <mesa-stable@lists.freedesktop.org>
-rw-r--r-- | src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp index b01ef4128c..44f74c6130 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp @@ -2602,6 +2602,10 @@ NV50PostRaConstantFolding::visit(BasicBlock *bb) !isFloatType(i->dType)) break; + if (i->getDef(0)->reg.data.id >= 64 || + i->getSrc(0)->reg.data.id >= 64) + break; + def = i->getSrc(1)->getInsn(); if (def->op == OP_MOV && def->src(0).getFile() == FILE_IMMEDIATE) { vtmp = i->getSrc(1); |