nv50/ir: optimize shl(shr(a, c), c) to and(a, ~((1 << c) - 1))
authorKarol Herbst <nouveau@karolherbst.de>
Wed, 27 Jan 2016 17:25:05 +0000 (18:25 +0100)
committerIlia Mirkin <imirkin@alum.mit.edu>
Thu, 28 Jan 2016 20:34:22 +0000 (15:34 -0500)
commit978ae28ca279354852a586b202e705db3d596041
treeaa35f2ce62383b7038411f33b0b7570f906b0e28
parent089f60543930fcdab3848d59e6182abcaaeb1b86
nv50/ir: optimize shl(shr(a, c), c) to and(a, ~((1 << c) - 1))

Following shader-db results on GK110:

total instructions in shared programs : 6141510 -> 6131491 (-0.16%)
total gprs used in shared programs    : 910187 -> 910157 (-0.00%)
total local used in shared programs   : 15328 -> 15328 (0.00%)

                local        gpr       inst      bytes
    helped           0          18         821         821
      hurt           0           0           0           0

Signed-off-by: Karol Herbst <nouveau@karolherbst.de>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp