nv50/ir: optimize SUB(a, b) to MOV(a - b)
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Sun, 18 Sep 2016 10:33:12 +0000 (12:33 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Sun, 18 Sep 2016 14:42:39 +0000 (16:42 +0200)
commit557a29b51fa3324cfbeecff100a54c7c6a6d87cd
treeced4f6588b2248781fe8ac18773b3c5e192d8e85
parentd8b4f5fcca2ce299b8ef248b6f57896c7b85d18c
nv50/ir: optimize SUB(a, b) to MOV(a - b)

This helps shaders in UE4 demos, especially with Elemental
(+1% perf). This optimization reduces spilling usage in one
shader which explains the little gain.

GF100/GK104:

total instructions in shared programs :2838551 -> 2838045 (-0.02%)
total gprs used in shared programs    :396706 -> 396684 (-0.01%)
total local used in shared programs   :34432 -> 34416 (-0.05%)

                local        gpr       inst      bytes
    helped           1          19         112         112
      hurt           0           0           0           0

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp