Reviewed-by: Ilia Mirkin <imir...@alum.mit.edu>

I'll run it on my collection on both nvc0 and nv50 to make sure this
doesn't subtly explode somehow, but looks great! I've been meaning to
do this myself but never got around to it.

On Mon, Jan 25, 2016 at 9:57 AM, Karol Herbst <nouv...@karolherbst.de> wrote:
> From: Karol Herbst <g...@karolherbst.de>
>
> helps shaders in multiple games
>
> total instructions in shared programs : 1911112 -> 1901958 (-0.48%)
> total gprs used in shared programs    : 251739 -> 251739 (0.00%)
> total local used in shared programs   : 5673 -> 5673 (0.00%)
> total bytes used in shared programs   : 17523440 -> 17440184 (-0.48%)
>
>                 local        gpr       inst      bytes
>     helped           0           0        1387        1387
>       hurt           0           0           0           0
>
> Signed-off-by: Karol Herbst <nouv...@karolherbst.de>
> ---
>  src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp 
> b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
> index 8dc0844..142d9a7 100644
> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
> @@ -1202,6 +1202,14 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue 
> &imm0, int s)
>              i->setSrc(1, bld.loadImm(NULL, imm0.reg.data.u32 + 
> imm1.reg.data.u32));
>           }
>           break;
> +      case OP_SHR:
> +         if (si->src(1).getImmediate(imm1) && imm0.reg.data.u32 == 
> imm1.reg.data.u32) {
> +            bld.setPosition(i, false);
> +            i->op = OP_AND;
> +            i->setSrc(0, si->getSrc(0));
> +            i->setSrc(1, bld.loadImm(NULL, ~((1 << imm0.reg.data.u32) - 1)));
> +         }
> +         break;
>        case OP_MUL:
>           int muls;
>           if (isFloatType(si->dType))
> --
> 2.7.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to