[Beignet] [PATCH 00/31 V2] Add long type support for BDW.

Zhigang Gong zhigang.gong at linux.intel.com
Tue Jan 20 17:52:27 PST 2015


This patchset LGTM. Just pushed. Thanks for bringing native long
support to BDW platform.

On Mon, Jan 19, 2015 at 03:31:08PM +0800, junyan.he at inbox.com wrote:
> From: Junyan He <junyan.he at linux.intel.com>
> 
> This patch set will fully enable the native long type
> support for BDW. Most the I64 functions in the backend
> will be rewritten.
> Notice there are 2 biggest limitations:
> 1. The untyped read and write for I64 can just support
>    stateless surface. This is unaccepitable for us because
>    it can cause overwrite problems. We need to fallback to
>    use the old manner which read and  write the long as the
>    vec2 of int into/from top and bottom  halves, and then
>    assemble the data.
>    This limitation seems not exist in later platform.
> 2. The DIV and REM instruction, which will need to use MATH
>    shared function do not support I64. So we fallback to
>    old manner.
>    This limitation may be overcomed by handling the DIV and
>    REM instructions in LLVM level.
> 
> V2:
> 1. Fix one Assert in insn_selection, because we append a vector
>    before generate the instruction.
> 2. Fix bitcast logic for i64.
> 3. Add the upsample_long logic.
> ------
>  backend/src/backend/gen/gen_mesa_disasm.c          |   25 +-
>  backend/src/backend/gen8_context.cpp               |  680 ++++++++++++++++++++
>  backend/src/backend/gen8_context.hpp               |   25 +
>  backend/src/backend/gen8_encoder.cpp               |   23 +-
>  backend/src/backend/gen8_encoder.hpp               |    3 +
>  backend/src/backend/gen8_instruction.hpp           |    2 +
>  backend/src/backend/gen_context.cpp                |   10 +-
>  backend/src/backend/gen_context.hpp                |   38 +-
>  backend/src/backend/gen_encoder.cpp                |   87 ++-
>  backend/src/backend/gen_encoder.hpp                |    6 +-
>  .../src/backend/gen_insn_gen7_schedule_info.hxx    |    2 +
>  backend/src/backend/gen_insn_scheduling.cpp        |    6 +-
>  backend/src/backend/gen_insn_selection.cpp         |  662 ++++++++++++++-----
>  backend/src/backend/gen_insn_selection.hxx         |    2 +
>  backend/src/backend/gen_reg_allocation.cpp         |    5 +-
>  backend/src/backend/gen_register.hpp               |  115 +++-
>  kernels/compiler_long_bitcast.cl                   |   47 ++
>  kernels/compiler_long_div.cl                       |   12 +
>  kernels/compiler_long_hi_sat.cl                    |   19 +
>  kernels/compiler_long_not.cl                       |    6 +
>  utests/CMakeLists.txt                              |    4 +
>  utests/compiler_long_bitcast.cpp                   |  227 +++++++
>  utests/compiler_long_div.cpp                       |   88 +++
>  utests/compiler_long_hi_sat.cpp                    |  188 ++++++
>  utests/compiler_long_not.cpp                       |   52 ++
>  25 files changed, 2117 insertions(+), 217 deletions(-)
> -- 
> 1.7.9.5
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet


More information about the Beignet mailing list