This was not fully baked. I'll send out a fixed version later.
On 05/08/2015 07:05 PM, Ian Romanick wrote:
> From: Ian Romanick
>
> Shader-db results:
>
> GM45 and Iron Lake:
> total instructions in shared programs: 7888585 -> 7888585 (0.00%)
> instructions in affected programs: 0 -> 0
>
> Sandy Bridge, Ivy Bridge, Haswell, and Broadwell:
> total instructions in shared programs: 9598608 -> 9598572 (-0.00%)
> instructions in affected programs: 6506 -> 6470 (-0.55%)
> helped:36
>
> Signed-off-by: Ian Romanick
> ---
> src/mesa/drivers/dri/i965/brw_fs_cmod_propagation.cpp | 8 +++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_fs_cmod_propagation.cpp
> b/src/mesa/drivers/dri/i965/brw_fs_cmod_propagation.cpp
> index 469f2ea..d72a83a 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs_cmod_propagation.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_fs_cmod_propagation.cpp
> @@ -59,7 +59,8 @@ opt_cmod_propagation_local(bblock_t *block)
>
>if ((inst->opcode != BRW_OPCODE_AND &&
> inst->opcode != BRW_OPCODE_CMP &&
> - inst->opcode != BRW_OPCODE_MOV) ||
> + inst->opcode != BRW_OPCODE_MOV &&
> + inst->opcode != BRW_OPCODE_NOT) ||
>inst->predicate != BRW_PREDICATE_NONE ||
>!inst->dst.is_null() ||
>inst->src[0].file != GRF ||
> @@ -86,6 +87,11 @@ opt_cmod_propagation_local(bblock_t *block)
>inst->conditional_mod != BRW_CONDITIONAL_NZ)
> continue;
>
> + if (inst->opcode == BRW_OPCODE_NOT &&
> + inst->conditional_mod != BRW_CONDITIONAL_Z &&
> + inst->conditional_mod != BRW_CONDITIONAL_NZ)
> + continue;
> +
>bool read_flag = false;
>foreach_inst_in_block_reverse_starting_from(fs_inst, scan_inst, inst,
>block) {
>
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev