nv50/ir: fix imad emission when dst == src2
authorIlia Mirkin <imirkin@alum.mit.edu>
Thu, 2 Apr 2015 22:33:55 +0000 (18:33 -0400)
committerIlia Mirkin <imirkin@alum.mit.edu>
Thu, 2 Apr 2015 22:35:59 +0000 (18:35 -0400)
Commit fb63df22151f added 4-byte mad support, but only supported
emission for floats. Disable it for ints for now.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nv50.cpp

index b1e740954f56d6d561884d6c692e5c52586eaafc..1bfc8e32e849e4b6211c7c41fa6803a9decf1533 100644 (file)
@@ -1942,7 +1942,7 @@ CodeEmitterNV50::getMinEncodingSize(const Instruction *i) const
 
    // check constraints on short MAD
    if (info.srcNr >= 2 && i->srcExists(2)) {
-      if (!i->defExists(0) ||
+      if (!i->defExists(0) || !isFloatType(i->dType) ||
           i->def(0).rep()->reg.data.id != i->src(2).rep()->reg.data.id)
          return 8;
    }