nir/algebraic: Optimize some u2f of bfi
authorIan Romanick <ian.d.romanick@intel.com>
Tue, 26 Jul 2022 19:30:04 +0000 (12:30 -0700)
committerMarge Bot <emma+marge@anholt.net>
Wed, 14 Jun 2023 18:49:53 +0000 (18:49 +0000)
commit541e7eb3898bef4878e6eb356a5942acfb8431ee
tree06115d9a2db713735c34da84eea64c9fcde32540
parent96cde9cc01dc0cfa4d4edf70d47df118ca57e5c0
nir/algebraic: Optimize some u2f of bfi

v2: Fix a copy-and-paste bug s/('find_lsb', a)/a/ in the patterns. See
piglit!819.

DG2, Tiger Lake, Ice Lake, Skylake, and Broadwell had similar results (Ice Lake shown)
total instructions in shared programs: 20570063 -> 20570033 (<.01%)
instructions in affected programs: 452 -> 422 (-6.64%)
helped: 30 / HURT: 0

total cycles in shared programs: 902118723 -> 902118781 (<.01%)
cycles in affected programs: 1762 -> 1820 (3.29%)
helped: 0 / HURT: 29

DG2, Tiger Lake, Ice Lake, and Skylake had similar results (Ice Lake shown)
Totals:
Instrs: 152819969 -> 152819500 (-0.00%)
Cycles: 15014628652 -> 15014627187 (-0.00%); split: -0.00%, +0.00%

Totals from 469 (0.07% of 662497) affected shaders:
Instrs: 7644 -> 7175 (-6.14%)
Cycles: 31787 -> 30322 (-4.61%); split: -4.90%, +0.29%

Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19968>
src/compiler/nir/nir_opt_algebraic.py