[Mesa-dev] [PATCH v3 39/42] intel/compiler: remove MAD/LRP algebraic optimizations from the backend

Jason Ekstrand jason at jlekstrand.net
Fri Jan 18 00:07:40 UTC 2019


Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>

On Tue, Jan 15, 2019 at 7:54 AM Iago Toral Quiroga <itoral at igalia.com>
wrote:

> NIR already has these so they are redundant. A run of shader-db confirms
> that the only cases where these backend optimizations are activated
> are some Tomb Raider shaders where the affected variables are qualified
> as "precise", which is why NIR won't apply them and why the backend
> shouldn't either (so it is actually a bug).
>
> Suggested-by: Jason Ekstrand <jason at jlekstrand.net>
> ---
>  src/intel/compiler/brw_fs.cpp | 37 -----------------------------------
>  1 file changed, 37 deletions(-)
>
> diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp
> index 77c955ac435..e7f5a8822a3 100644
> --- a/src/intel/compiler/brw_fs.cpp
> +++ b/src/intel/compiler/brw_fs.cpp
> @@ -2568,16 +2568,6 @@ fs_visitor::opt_algebraic()
>              break;
>           }
>           break;
> -      case BRW_OPCODE_LRP:
> -         if (inst->src[1].equals(inst->src[2])) {
> -            inst->opcode = BRW_OPCODE_MOV;
> -            inst->src[0] = inst->src[1];
> -            inst->src[1] = reg_undef;
> -            inst->src[2] = reg_undef;
> -            progress = true;
> -            break;
> -         }
> -         break;
>        case BRW_OPCODE_CMP:
>           if ((inst->conditional_mod == BRW_CONDITIONAL_Z ||
>                inst->conditional_mod == BRW_CONDITIONAL_NZ) &&
> @@ -2654,33 +2644,6 @@ fs_visitor::opt_algebraic()
>              }
>           }
>           break;
> -      case BRW_OPCODE_MAD:
> -         if (inst->src[1].is_zero() || inst->src[2].is_zero()) {
> -            inst->opcode = BRW_OPCODE_MOV;
> -            inst->src[1] = reg_undef;
> -            inst->src[2] = reg_undef;
> -            progress = true;
> -         } else if (inst->src[0].is_zero()) {
> -            inst->opcode = BRW_OPCODE_MUL;
> -            inst->src[0] = inst->src[2];
> -            inst->src[2] = reg_undef;
> -            progress = true;
> -         } else if (inst->src[1].is_one()) {
> -            inst->opcode = BRW_OPCODE_ADD;
> -            inst->src[1] = inst->src[2];
> -            inst->src[2] = reg_undef;
> -            progress = true;
> -         } else if (inst->src[2].is_one()) {
> -            inst->opcode = BRW_OPCODE_ADD;
> -            inst->src[2] = reg_undef;
> -            progress = true;
> -         } else if (inst->src[1].file == IMM && inst->src[2].file == IMM)
> {
> -            inst->opcode = BRW_OPCODE_ADD;
> -            inst->src[1].f *= inst->src[2].f;
> -            inst->src[2] = reg_undef;
> -            progress = true;
> -         }
> -         break;
>        case SHADER_OPCODE_BROADCAST:
>           if (is_uniform(inst->src[0])) {
>              inst->opcode = BRW_OPCODE_MOV;
> --
> 2.17.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20190117/9d6392d8/attachment.html>


More information about the mesa-dev mailing list