r600g: RSQ: clear NEG for operand
authorVadim Girlin <vadimgirlin@gmail.com>
Wed, 6 Jul 2011 01:29:09 +0000 (05:29 +0400)
committerAlex Deucher <alexdeucher@gmail.com>
Fri, 8 Jul 2011 21:21:32 +0000 (17:21 -0400)
Need to clear NEG bit because it applies after ABS, e.g. "RSQ ..., -1"
uses -|1| as operand.

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
src/gallium/drivers/r600/r600_shader.c

index f3cbf9807fdd3d977fd152720d55e0ab19c6c639..5aad3e359bc402c06f6fe041f14e2ae04435be44 100644 (file)
@@ -1506,6 +1506,7 @@ static int tgsi_rsq(struct r600_shader_ctx *ctx)
        for (i = 0; i < inst->Instruction.NumSrcRegs; i++) {
                r600_bc_src(&alu.src[i], &ctx->src[i], 0);
                alu.src[i].abs = 1;
+               alu.src[i].neg = 0;
        }
        alu.dst.sel = ctx->temp_reg;
        alu.dst.write = 1;