On Sat, Apr 29, 2017 at 6:09 PM, Karol Herbst <karolher...@gmail.com> wrote:
> helps two alien isolation shaders
>
> shader-db:
> total instructions in shared programs : 4251497 -> 4251494 (-0.00%)
> total gprs used in shared programs    : 513962 -> 513962 (0.00%)
> total local used in shared programs   : 29797 -> 29797 (0.00%)
> total bytes used in shared programs   : 38960264 -> 38960232 (-0.00%)
>
>                 local        gpr       inst      bytes
>     helped           0           0           2           2
>       hurt           0           0           0           0
>
> v2: handle potential mods on src0
>
> Signed-off-by: Karol Herbst <karolher...@gmail.com>
> Reviewed-by: Samuel Pitoiset <samuel.pitoi...@gmail.com>
> Reviewed-by: Ilia Mirkin <imir...@alum.mit.edu>
> ---
>  src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp 
> b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
> index 015def0391..82da0d3e48 100644
> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
> @@ -1284,6 +1284,13 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue 
> &imm0, int s)
>
>     case OP_SHL:
>     {
> +      if (s == 1 && imm0.isInteger(0)) {
> +         i->op = i->src(0).mod.getOp();
> +         if (i->op != OP_CVT)
> +            i->src(0).mod = 0;

Is this necessary? Presumably if the op != 0, then op == OP_CVT...

> +         i->setSrc(1, NULL);
> +         break;
> +      }
>        if (s != 1 || i->src(0).mod != Modifier(0))
>           break;
>        // try to concatenate shifts
> --
> 2.12.2
>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to