[Beignet] [PATCH 7/7] Backend: for BDW and after, According to BSpec no need to split CMP when src is DW DF
Song, Ruiling
ruiling.song at intel.com
Tue Mar 7 05:53:56 UTC 2017
LGTM
Ruiling
> -----Original Message-----
> From: Beignet [mailto:beignet-bounces at lists.freedesktop.org] On Behalf Of
> rander
> Sent: Tuesday, March 7, 2017 10:25 AM
> To: beignet at freedesktop.org
> Cc: Wang, Rander <rander.wang at intel.com>
> 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 <rander.wang at intel.com>
> ---
> 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
> Beignet at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/beignet
More information about the Beignet
mailing list