nv50/ir/gk110: fix set with f32 dest
authorIlia Mirkin <imirkin@alum.mit.edu>
Tue, 6 May 2014 23:54:59 +0000 (19:54 -0400)
committerIlia Mirkin <imirkin@alum.mit.edu>
Thu, 8 May 2014 00:40:46 +0000 (20:40 -0400)
Should fix comparison opcodes like SGE/SLT/etc which expected a float to
be returned. These were previously getting integer 0/-1 values.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Ben Skeggs <bskeggs@redhat.com>
Cc: 10.2 <mesa-stable@lists.freedesktop.org>
src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp

index 5992c54..b8d0d3e 100644 (file)
@@ -915,6 +915,9 @@ CodeEmitterGK110::emitSET(const CmpInstruction *i)
          modNegAbsF32_3b(i, 1);
       }
       FTZ_(3a);
+
+      if (i->dType == TYPE_F32)
+         code[1] |= 1 << 23;
    }
    if (i->sType == TYPE_S32)
       code[1] |= 1 << 19;