3735ac6165
I've elected to go with the more aggressive CSE heuristic here in addition to scalar math, which shaves another 1% on instruction count in exchange for a small hit to max waves. With either CSE or scalar, we take a notable hit to spilling (STP/LDP) on Aztec Ruins, Civ 6, Fallout 4, and Monster Hunter World, and with CSE those get worse. Totals (A750): MaxWaves: 6803894 -> 6795012 (-0.13%); split: +0.20%, -0.33% Instrs: 154246248 -> 151508232 (-1.78%); split: -1.92%, +0.15% CodeSize: 324303600 -> 322969162 (-0.41%); split: -0.84%, +0.43% NOPs: 24723513 -> 24536554 (-0.76%); split: -3.04%, +2.29% MOVs: 4729771 -> 4711212 (-0.39%); split: -3.75%, +3.36% COVs: 1762268 -> 1762432 (+0.01%); split: -0.05%, +0.06% Full: 4679471 -> 4688316 (+0.19%); split: -0.46%, +0.65% (ss): 3443963 -> 3450363 (+0.19%); split: -2.33%, +2.51% (sy): 1811290 -> 1811142 (-0.01%); split: -1.15%, +1.15% (ss)-stall: 12438303 -> 12597798 (+1.28%); split: -3.17%, +4.45% (sy)-stall: 47647687 -> 47720784 (+0.15%); split: -1.56%, +1.71% STPs: 35424 -> 35846 (+1.19%); split: -0.26%, +1.45% LDPs: 28110 -> 28643 (+1.90%); split: -0.45%, +2.34% Preamble Instrs: 38170428 -> 39461432 (+3.38%); split: -0.33%, +3.71% Early Preamble: 355599 -> 355772 (+0.05%); split: +0.16%, -0.11% Subgroup size: 41463040 -> 41355072 (-0.26%); split: +0.17%, -0.43% Cat0: 27282700 -> 27094195 (-0.69%); split: -2.77%, +2.08% Cat1: 6609687 -> 6589640 (-0.30%); split: -2.84%, +2.54% Cat2: 75455473 -> 72725047 (-3.62%); split: -3.77%, +0.15% Cat3: 32359423 -> 32526926 (+0.52%); split: -0.35%, +0.87% Cat4: 4691910 -> 4694398 (+0.05%); split: -0.00%, +0.05% Cat5: 3316443 -> 3316276 (-0.01%); split: -0.01%, +0.00% Cat6: 1031600 -> 1032185 (+0.06%); split: -0.03%, +0.09% Cat7: 3499012 -> 3529565 (+0.87%); split: -2.02%, +2.89% Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36342>