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)
|
scan_inst->opcode == BRW_OPCODE_CMPN)
|
||||||
break;
|
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. */
|
/* Otherwise, try propagating the conditional. */
|
||||||
enum brw_conditional_mod cond =
|
enum brw_conditional_mod cond =
|
||||||
inst->src[0].negate ? brw_swap_cmod(inst->conditional_mod)
|
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)
|
scan_inst->opcode == BRW_OPCODE_CMPN)
|
||||||
break;
|
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. */
|
/* Otherwise, try propagating the conditional. */
|
||||||
enum brw_conditional_mod cond =
|
enum brw_conditional_mod cond =
|
||||||
inst->src[0].negate ? brw_swap_cmod(inst->conditional_mod)
|
inst->src[0].negate ? brw_swap_cmod(inst->conditional_mod)
|
||||||
|
|
Loading…
Reference in New Issue