]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Move from 'gcc.target/nvptx/nvptx.exp' into 'target-supports.exp' additions for nvptx...
authorThomas Schwinge <tschwinge@baylibre.com>
Mon, 22 Jul 2024 12:40:34 +0000 (14:40 +0200)
committerThomas Schwinge <tschwinge@baylibre.com>
Thu, 5 Sep 2024 12:19:07 +0000 (14:19 +0200)
gcc/testsuite/
* gcc.target/nvptx/nvptx.exp
(check_effective_target_default_ptx_isa_version_at_least)
(check_effective_target_default_ptx_isa_version_at_least_6_0)
(check_effective_target_runtime_ptx_isa_version_at_least)
(check_effective_target_runtime_ptx_alias)
(add_options_for_ptx_alias): Move...
* lib/target-supports.exp
(check_nvptx_default_ptx_isa_version_at_least)
(check_effective_target_nvptx_default_ptx_isa_version_at_least_6_0)
(check_nvptx_runtime_ptx_isa_version_at_least)
(check_effective_target_nvptx_runtime_alias_ptx)
(add_options_for_nvptx_alias_ptx): ... here.
* gcc.target/nvptx/alias-1.c: Adjust.
* gcc.target/nvptx/alias-2.c: Likewise.
* gcc.target/nvptx/alias-3.c: Likewise.
* gcc.target/nvptx/alias-4.c: Likewise.
* gcc.target/nvptx/alias-to-alias-1.c: Likewise.
* gcc.target/nvptx/alias-weak-1.c: Likewise.
* gcc.target/nvptx/uniform-simt-5.c: Likewise.
gcc/
* doc/sourcebuild.texi (Effective-Target Keywords): Document
'nvptx_default_ptx_isa_version_at_least_6_0',
'nvptx_runtime_alias_ptx'.
(Add Options): Document 'nvptx_alias_ptx'.

gcc/doc/sourcebuild.texi
gcc/testsuite/gcc.target/nvptx/alias-1.c
gcc/testsuite/gcc.target/nvptx/alias-2.c
gcc/testsuite/gcc.target/nvptx/alias-3.c
gcc/testsuite/gcc.target/nvptx/alias-4.c
gcc/testsuite/gcc.target/nvptx/alias-to-alias-1.c
gcc/testsuite/gcc.target/nvptx/alias-weak-1.c
gcc/testsuite/gcc.target/nvptx/nvptx.exp
gcc/testsuite/gcc.target/nvptx/uniform-simt-5.c
gcc/testsuite/lib/target-supports.exp

index 7c7094dc5a9221de01b5b2fbeea29f1963e66c38..6ba72fd44a2bb4a921c9437352029543240f3c52 100644 (file)
@@ -2424,6 +2424,17 @@ MSP430 target has the small memory model enabled (@code{-msmall}).
 MSP430 target has the large memory model enabled (@code{-mlarge}).
 @end table
 
+@subsubsection nvptx-specific attributes
+
+@table @code
+@item nvptx_default_ptx_isa_version_at_least_6_0
+nvptx code by default compiles for at least PTX ISA version 6.0.
+
+@item nvptx_runtime_alias_ptx
+The nvptx runtime environment supports the PTX ISA directive
+@code{.alias}.
+@end table
+
 @subsubsection PowerPC-specific attributes
 
 @table @code
@@ -3302,6 +3313,9 @@ compliance mode.
 @code{mips16} function attributes.
 Only MIPS targets support this feature, and only then in certain modes.
 
+@item nvptx_alias_ptx
+Enable using the PTX ISA directive @code{.alias} on nvptx targets.
+
 @item riscv_a
 Add the 'A' extension to the -march string on RISC-V targets.
 
index d251eee6e423e22affeb36455474e92cb595f9dc..1c0642b14d91b6a115052b27158fa51a960bb8a3 100644 (file)
@@ -1,7 +1,7 @@
 /* { dg-do link } */
-/* { dg-do run { target runtime_ptx_alias } } */
+/* { dg-do run { target nvptx_runtime_alias_ptx } } */
 /* { dg-options "-save-temps" } */
-/* { dg-add-options ptx_alias } */
+/* { dg-add-options nvptx_alias_ptx } */
 
 int v;
 
index 96cb7e2c1ef9d7715d1b186e868489971bf41544..5c4b9c787e1559cd393a9e28be91c95fdef869aa 100644 (file)
@@ -1,7 +1,7 @@
 /* { dg-do link } */
-/* { dg-do run { target runtime_ptx_alias } } */
+/* { dg-do run { target nvptx_runtime_alias_ptx } } */
 /* { dg-options "-save-temps -O2" } */
-/* { dg-add-options ptx_alias } */
+/* { dg-add-options nvptx_alias_ptx } */
 
 #include "alias-1.c"
 
index 39649e30b91d1c114fd8ee87b0b3f0e048ab7926..b55ff26269e1db873ee33a98295ce97cc4a2f217 100644 (file)
@@ -1,7 +1,7 @@
 /* { dg-do link } */
-/* { dg-do run { target runtime_ptx_alias } } */
+/* { dg-do run { target nvptx_runtime_alias_ptx } } */
 /* { dg-options "-save-temps" } */
-/* { dg-add-options ptx_alias } */
+/* { dg-add-options nvptx_alias_ptx } */
 
 /* Copy of alias-1.c, with static __f and f.  */
 
index 28163c0faa0ccde43476a29b7328af4a591c5428..b36fa420aa7e922092bbc323707b1d6eca934d70 100644 (file)
@@ -1,7 +1,7 @@
 /* { dg-do link } */
-/* { dg-do run { target runtime_ptx_alias } } */
+/* { dg-do run { target nvptx_runtime_alias_ptx } } */
 /* { dg-options "-save-temps -O2" } */
-/* { dg-add-options ptx_alias } */
+/* { dg-add-options nvptx_alias_ptx } */
 
 #include "alias-3.c"
 
index 3db79d1fc0bd295e34c79f04d4f234835cc2015b..273baca89c4a229430bc16d6ea04183093a2498d 100644 (file)
@@ -1,7 +1,7 @@
 /* Alias to alias; 'libgomp.c-c++-common/pr96390.c'.  */
 
 /* { dg-do compile } */
-/* { dg-add-options ptx_alias } */
+/* { dg-add-options nvptx_alias_ptx } */
 
 int v;
 
index 37d9543fc7f898814fe56af79184c460b2867426..6e4267c404d3f9fc0ff20b6bd94548451c59b90a 100644 (file)
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-add-options ptx_alias } */
+/* { dg-add-options nvptx_alias_ptx } */
 
 void __f ()
 {
index 3151381f51ad6f3618bd50c16c43ecd25a943207..d526b5822f9122082935b7cb6e5bc6ae78a25e9b 100644 (file)
@@ -25,72 +25,6 @@ if ![istarget nvptx*-*-*] then {
 # Load support procs.
 load_lib gcc-dg.exp
 
-# Return 1 if code by default compiles for at least PTX ISA version
-# major.minor.
-proc check_effective_target_default_ptx_isa_version_at_least { major minor } {
-    set name default_ptx_isa_version_at_least_${major}_${minor}
-
-    set supported_p \
-       [concat \
-            "((__PTX_ISA_VERSION_MAJOR__ == $major" \
-            "  && __PTX_ISA_VERSION_MINOR__ >= $minor)" \
-            " || (__PTX_ISA_VERSION_MAJOR__ > $major))"]
-
-    set src \
-       [list \
-            "#if $supported_p" \
-            "#else" \
-            "#error unsupported" \
-            "#endif"]
-    set src [join $src "\n"]
-    
-    set res [check_no_compiler_messages $name assembly $src ""]
-
-    return $res
-}
-
-# Return 1 if code by default compiles for at least PTX ISA version 6.0.
-proc check_effective_target_default_ptx_isa_version_at_least_6_0 { } {
-    return [check_effective_target_default_ptx_isa_version_at_least 6 0]
-}
-
-# Return 1 if code with PTX ISA version major.minor or higher can be run.
-proc check_effective_target_runtime_ptx_isa_version_at_least { major minor } {
-    set name runtime_ptx_isa_version_${major}_${minor}
-
-    set default \
-       [check_effective_target_default_ptx_isa_version_at_least \
-            ${major} ${minor}]
-
-    if { $default } {
-       set flag ""
-    } else {
-       set flag "-mptx=$major.$minor"
-    }
-
-    set res [check_runtime $name {
-       int main (void) { return 0; }
-    } $flag]
-
-    return $res
-}
-
-# Return 1 if runtime environment support the PTX ISA directive .alias.
-proc check_effective_target_runtime_ptx_alias { } {
-    return [check_effective_target_runtime_ptx_isa_version_at_least 6 3]
-}
-
-# Add options to enable using PTX ISA directive .alias.
-proc add_options_for_ptx_alias { flags } {
-    append flags " -malias"
-
-    if { ![check_effective_target_default_ptx_isa_version_at_least 6 3] } {
-       append flags " -mptx=6.3"
-    }
-
-    return $flags
-}
-
 # If a testcase doesn't have special options, use these.
 global DEFAULT_CFLAGS
 if ![info exists DEFAULT_CFLAGS] then {
index cd6ea82d293ae34d19ebd730a1cc748c88ad8583..12b9f786c0f76d447e9429de7aca13718067550a 100644 (file)
@@ -22,7 +22,7 @@ main()
 
 /* Per 'omp_simt_exit':
      - 'nvptx_warpsync'
-       { dg-final { scan-assembler-times {bar\.warp\.sync\t0xffffffff;} 1 { target default_ptx_isa_version_at_least_6_0 } } }
+       { dg-final { scan-assembler-times {bar\.warp\.sync\t0xffffffff;} 1 { target nvptx_default_ptx_isa_version_at_least_6_0 } } }
      - 'nvptx_uniform_warp_check'
-       { dg-final { scan-assembler-times {vote\.all\.pred\t%r_sync, 1;} 1 { target { ! default_ptx_isa_version_at_least_6_0 } } } }
+       { dg-final { scan-assembler-times {vote\.all\.pred\t%r_sync, 1;} 1 { target { ! nvptx_default_ptx_isa_version_at_least_6_0 } } } }
 */
index d537d3055b34387b26433f2a3bf5a3ef4cda99b7..cb9971d53980840f7688dbba8210a63322bae829 100644 (file)
@@ -13728,3 +13728,75 @@ proc check_effective_target_check_jsonschema { } {
         return 0;
     }
 }
+
+# Return 1 if nvptx code by default compiles for at least PTX ISA version
+# major.minor.
+
+proc check_nvptx_default_ptx_isa_version_at_least { major minor } {
+    set name nvptx_default_ptx_isa_version_at_least_${major}_${minor}
+
+    set supported_p \
+       [concat \
+            "((__PTX_ISA_VERSION_MAJOR__ == $major" \
+            "  && __PTX_ISA_VERSION_MINOR__ >= $minor)" \
+            " || (__PTX_ISA_VERSION_MAJOR__ > $major))"]
+
+    set src \
+       [list \
+            "#if $supported_p" \
+            "#else" \
+            "#error unsupported" \
+            "#endif"]
+    set src [join $src "\n"]
+    
+    set res [check_no_compiler_messages $name assembly $src ""]
+
+    return $res
+}
+
+# Return 1 if nvptx code by default compiles for at least PTX ISA version 6.0.
+
+proc check_effective_target_nvptx_default_ptx_isa_version_at_least_6_0 { } {
+    return [check_nvptx_default_ptx_isa_version_at_least 6 0]
+}
+
+# Return 1 if nvptx code with PTX ISA version major.minor or higher can be run.
+
+proc check_nvptx_runtime_ptx_isa_version_at_least { major minor } {
+    set name nvptx_runtime_ptx_isa_version_${major}_${minor}
+
+    set default \
+       [check_nvptx_default_ptx_isa_version_at_least \
+            ${major} ${minor}]
+
+    if { $default } {
+       set flag ""
+    } else {
+       set flag "-mptx=$major.$minor"
+    }
+
+    set res [check_runtime $name {
+       int main (void) { return 0; }
+    } $flag]
+
+    return $res
+}
+
+# Return 1 if the nvptx runtime environment supports the PTX ISA directive
+# '.alias'.
+
+proc check_effective_target_nvptx_runtime_alias_ptx { } {
+    return [check_nvptx_runtime_ptx_isa_version_at_least 6 3]
+}
+
+# Add options to enable nvptx using the PTX ISA directive '.alias'.
+
+proc add_options_for_nvptx_alias_ptx { flags } {
+    append flags " -malias"
+
+    if { ![check_nvptx_default_ptx_isa_version_at_least 6 3] } {
+       append flags " -mptx=6.3"
+    }
+
+    return $flags
+}