https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104857

--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tom de Vries <vr...@gcc.gnu.org>:

https://gcc.gnu.org/g:a2eacdbd4c4a698b3b6f27ef5e1f8dd3d836b2e5

commit r12-7893-ga2eacdbd4c4a698b3b6f27ef5e1f8dd3d836b2e5
Author: Tom de Vries <tdevr...@suse.de>
Date:   Tue Mar 29 16:04:09 2022 +0200

    [nvptx] Add __PTX_ISA_VERSION_{MAJOR,MINOR}__

    Add preprocessor macros __PTX_ISA_VERSION_MAJOR__ and
    __PTX_ISA_VERSION_MINOR__.

    For the default 6.0, we have:
    ...
     $ echo | cc1 -E -dD - 2>&1 | grep PTX_ISA_VERSION
     #define __PTX_ISA_VERSION_MAJOR__ 6
     #define __PTX_ISA_VERSION_MINOR__ 0
    ...
    and for 3.1, we have:
    ...
     $ echo | cc1 -mptx=3.1 -E -dD - 2>&1 | grep PTX_ISA_VERSION
     #define __PTX_ISA_VERSION_MAJOR__ 3
     #define __PTX_ISA_VERSION_MINOR__ 1
    ...

    These can be used to express things like:
    ...
     #if __PTX_ISA_VERSION_MAJOR__ >= 4 && __PTX_ISA_VERSION_MAJOR__ >= 1
       /* Code using %dynamic_smem_size.  */
     #else
       /* Fallback code.  */
     #endif
    ...

    Tested on nvptx.

    gcc/ChangeLog:

    2022-03-29  Tom de Vries  <tdevr...@suse.de>

            PR target/104857
            * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Emit
            __PTX_ISA_VERSION_MAJOR__ and __PTX_ISA_VERSION_MINOR__.
            * config/nvptx/nvptx.cc (ptx_version_to_number): New function.
            * config/nvptx/nvptx-protos.h (ptx_version_to_number): Declare.

    gcc/testsuite/ChangeLog:

    2022-03-29  Tom de Vries  <tdevr...@suse.de>

            PR target/104857
            * gcc.target/nvptx/ptx31.c: New test.
            * gcc.target/nvptx/ptx60.c: New test.
            * gcc.target/nvptx/ptx63.c: New test.
            * gcc.target/nvptx/ptx70.c: New test.

Reply via email to