i965/fs: Reject copy propagation into SEL if not min/max.
authorMatt Turner <mattst88@gmail.com>
Mon, 28 Nov 2016 23:21:51 +0000 (15:21 -0800)
committerMatt Turner <mattst88@gmail.com>
Mon, 12 Dec 2016 20:38:55 +0000 (12:38 -0800)
commit7bed52bb5fb4cfd5f91c902a654b3452f921da17
treed206bd989782da9d1edd4a6e698c477a9535f26a
parent091a8a04adb28a2044e3baadba0af52a185b3bd0
i965/fs: Reject copy propagation into SEL if not min/max.

We shouldn't ever see a SEL with conditional mod other than GE (for max)
or L (for min), but we might see one with predication and no conditional
mod.

total instructions in shared programs: 8241806 -> 8241902 (0.00%)
instructions in affected programs: 13284 -> 13380 (0.72%)
HURT: 62

total cycles in shared programs: 84165104 -> 84166244 (0.00%)
cycles in affected programs: 75364 -> 76504 (1.51%)
helped: 10
HURT: 34

Fixes generated code in at least Sanctum 2, Borderlands 2, Goat
Simulator, XCOM: Enemy Unknown, and Shogun 2.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92234
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
src/mesa/drivers/dri/i965/test_fs_copy_propagation.cpp