LGTM

Ruiling
> -----Original Message-----
> From: Beignet [mailto:[email protected]] On Behalf Of
> rander
> Sent: Tuesday, March 7, 2017 10:25 AM
> To: [email protected]
> Cc: Wang, Rander <[email protected]>
> Subject: [Beignet] [PATCH 7/7] Backend: for BDW and after, According to BSpec
> no need to split CMP when src is DW DF
> 
> Signed-off-by: rander <[email protected]>
> ---
>  backend/src/backend/gen8_encoder.cpp | 5 +++++
>  backend/src/backend/gen_encoder.cpp  | 4 ++++
>  backend/src/backend/gen_encoder.hpp  | 1 +
>  3 files changed, 10 insertions(+)
> 
> diff --git a/backend/src/backend/gen8_encoder.cpp
> b/backend/src/backend/gen8_encoder.cpp
> index a33fbac..cbee83f 100644
> --- a/backend/src/backend/gen8_encoder.cpp
> +++ b/backend/src/backend/gen8_encoder.cpp
> @@ -883,4 +883,9 @@ namespace gbe
>                     msg_length,
>                     response_length);
>     }
> +
> +    /* for BDW and after, no need to split CMP when src is DW*/
> +    bool Gen8Encoder::needToSplitCmpBySrcType(GenEncoder *p, GenRegister
> src0, GenRegister src1) {
> +      return false;
> +    }
>  } /* End of the name space. */
> diff --git a/backend/src/backend/gen_encoder.cpp
> b/backend/src/backend/gen_encoder.cpp
> index 03ce0e2..217a2d8 100644
> --- a/backend/src/backend/gen_encoder.cpp
> +++ b/backend/src/backend/gen_encoder.cpp
> @@ -192,6 +192,10 @@ namespace gbe
>      if (isSrcDstDiffSpan(dst, src0) == true) return true;
>      if (isSrcDstDiffSpan(dst, src1) == true) return true;
> 
> +    return p->needToSplitCmpBySrcType(p, src0, src1);
> +  }
> +
> +  bool GenEncoder::needToSplitCmpBySrcType(GenEncoder *p, GenRegister
> src0, GenRegister src1) {
>      if (src0.type == GEN_TYPE_D || src0.type == GEN_TYPE_UD || src0.type ==
> GEN_TYPE_F)
>        return true;
>      if (src1.type == GEN_TYPE_D || src1.type == GEN_TYPE_UD || src1.type ==
> GEN_TYPE_F)
> diff --git a/backend/src/backend/gen_encoder.hpp
> b/backend/src/backend/gen_encoder.hpp
> index 3e45c81..040b94a 100644
> --- a/backend/src/backend/gen_encoder.hpp
> +++ b/backend/src/backend/gen_encoder.hpp
> @@ -162,6 +162,7 @@ namespace gbe
>      void BRD(GenRegister src);
>      /*! Compare instructions */
>      void CMP(uint32_t conditional, GenRegister src0, GenRegister src1,
> GenRegister dst = GenRegister::null());
> +    virtual bool needToSplitCmpBySrcType(GenEncoder *p, GenRegister src0,
> GenRegister src1);
>      /*! Select with embedded compare (like sel.le ...) */
>      void SEL_CMP(uint32_t conditional, GenRegister dst, GenRegister src0,
> GenRegister src1);
>      /*! EOT is used to finish GPGPU threads */
> --
> 2.7.4
> 
> _______________________________________________
> Beignet mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/beignet
_______________________________________________
Beignet mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/beignet

Reply via email to