intel/compiler: Don't cmod propagate into a saturated operation
Shader-db results on Sky Lake: total instructions in shared programs: 12954445 -> 12955125 (0.01%) instructions in affected programs: 141862 -> 142542 (0.48%) helped: 0 HURT: 626 Reviewed-by: Matt Turner <mattst88@gmail.com> Cc: mesa-stable@lists.freedesktop.org
This commit is contained in:
parent
17d78ece36
commit
b91ecee04a
|
@ -142,6 +142,14 @@ opt_cmod_propagation_local(const gen_device_info *devinfo, bblock_t *block)
|
|||
scan_inst->opcode == BRW_OPCODE_CMPN)
|
||||
break;
|
||||
|
||||
/* From the Sky Lake PRM Vol. 7 "Assigning Conditional Mods":
|
||||
*
|
||||
* * Note that the [post condition signal] bits generated at
|
||||
* the output of a compute are before the .sat.
|
||||
*/
|
||||
if (scan_inst->saturate)
|
||||
break;
|
||||
|
||||
/* Otherwise, try propagating the conditional. */
|
||||
enum brw_conditional_mod cond =
|
||||
inst->src[0].negate ? brw_swap_cmod(inst->conditional_mod)
|
||||
|
|
|
@ -129,6 +129,14 @@ opt_cmod_propagation_local(bblock_t *block)
|
|||
scan_inst->opcode == BRW_OPCODE_CMPN)
|
||||
break;
|
||||
|
||||
/* From the Sky Lake PRM Vol. 7 "Assigning Conditional Mods":
|
||||
*
|
||||
* * Note that the [post condition signal] bits generated at
|
||||
* the output of a compute are before the .sat.
|
||||
*/
|
||||
if (scan_inst->saturate)
|
||||
break;
|
||||
|
||||
/* Otherwise, try propagating the conditional. */
|
||||
enum brw_conditional_mod cond =
|
||||
inst->src[0].negate ? brw_swap_cmod(inst->conditional_mod)
|
||||
|
|
Loading…
Reference in New Issue