[Mesa-dev] [PATCH] i965: in MAD->MUL, switch last argument to be immediate
Francisco Jerez
currojerez at riseup.net
Fri Mar 13 07:35:06 PDT 2015
Tapani Pälli <tapani.palli at intel.com> writes:
> Commit bb33a31 introduced MAD->MUL optimization which did not
> take account case where one of the remaining sources is immediate
> and did not report progress. Patch changes last one of the sources
> to be immediate and adds progress reporting. If both are, this is
> taken care of by the same opt_algebraic pass on later run.
>
> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89569
> ---
> src/mesa/drivers/dri/i965/brw_fs.cpp | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
> index 8702ea8..710a7e6 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
> @@ -2490,7 +2490,14 @@ fs_visitor::opt_algebraic()
> } else if (inst->src[0].is_zero()) {
> inst->opcode = BRW_OPCODE_MUL;
> inst->src[0] = inst->src[2];
> + /* Last one needs to be immediate. */
> + if (inst->src[0].file == IMM) {
> + inst->src[2] = inst->src[1];
> + inst->src[1] = inst->src[0];
> + inst->src[0] = inst->src[2];
I wish it weren't a heresy to std::swap(inst->src[0], inst->src[1])
here. Anyway:
Reviewed-by: Francisco Jerez <currojerez at riseup.net>
> + }
> inst->src[2] = reg_undef;
> + progress = true;
> } else if (inst->src[1].is_one()) {
> inst->opcode = BRW_OPCODE_ADD;
> inst->src[1] = inst->src[2];
> --
> 2.1.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 212 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150313/db7b875e/attachment.sig>
More information about the mesa-dev
mailing list