From: Eric Anholt Date: Fri, 11 Dec 2015 06:02:30 +0000 (-0800) Subject: vc4: When doing algebraic optimization into a MOV, use the right MOV. X-Git-Tag: upstream/17.1.0~13732 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e3efc4b02334897e0103f8cf926f376159ca1293;p=platform%2Fupstream%2Fmesa.git vc4: When doing algebraic optimization into a MOV, use the right MOV. If there were src unpacks, changing to the integer MOV instead of float (for example) would change the unpack operation. --- diff --git a/src/gallium/drivers/vc4/vc4_opt_algebraic.c b/src/gallium/drivers/vc4/vc4_opt_algebraic.c index f2e1938..207686b 100644 --- a/src/gallium/drivers/vc4/vc4_opt_algebraic.c +++ b/src/gallium/drivers/vc4/vc4_opt_algebraic.c @@ -94,7 +94,12 @@ static void replace_with_mov(struct vc4_compile *c, struct qinst *inst, struct qreg arg) { dump_from(c, inst); - inst->op = QOP_MOV; + if (qir_is_mul(inst)) + inst->op = QOP_MMOV; + else if (qir_is_float_input(inst)) + inst->op = QOP_FMOV; + else + inst->op = QOP_MOV; inst->src[0] = arg; inst->src[1] = c->undef; dump_to(c, inst);