Skip to content
Snippets Groups Projects
Commit a2eacdbd authored by Tom de Vries's avatar Tom de Vries
Browse files

[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  <tdevries@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  <tdevries@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.
parent 1625e893
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment