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

commit fb62d374442045583ea4d68f3c215fdc441da7cb
Author: Thomas Schwinge <[email protected]>
Date:   Fri Dec 13 11:40:01 2024 +0100

    nvptx: Add '__builtin_stack_address()' test case
    
    Documenting the status quo.
    
            gcc/testsuite/
            * gcc.target/nvptx/__builtin_stack_address-1.c: New.
    
    (cherry picked from commit 91dec10f8b7502bdd333d75ab7a9e23a58c3f32d)

Diff:
---
 gcc/testsuite/ChangeLog.omp                        |  5 +++
 .../gcc.target/nvptx/__builtin_stack_address-1.c   | 36 ++++++++++++++++++++++
 2 files changed, 41 insertions(+)

diff --git a/gcc/testsuite/ChangeLog.omp b/gcc/testsuite/ChangeLog.omp
index 4591c70519bf..bc3dfa8d0805 100644
--- a/gcc/testsuite/ChangeLog.omp
+++ b/gcc/testsuite/ChangeLog.omp
@@ -1,5 +1,10 @@
 2025-02-18  Thomas Schwinge  <[email protected]>
 
+       Backported from trunk:
+       2025-01-10  Thomas Schwinge  <[email protected]>
+
+       * gcc.target/nvptx/__builtin_stack_address-1.c: New.
+
        Backported from trunk:
        2025-01-08  Thomas Schwinge  <[email protected]>
 
diff --git a/gcc/testsuite/gcc.target/nvptx/__builtin_stack_address-1.c 
b/gcc/testsuite/gcc.target/nvptx/__builtin_stack_address-1.c
new file mode 100644
index 000000000000..5e976dc384bc
--- /dev/null
+++ b/gcc/testsuite/gcc.target/nvptx/__builtin_stack_address-1.c
@@ -0,0 +1,36 @@
+/* Document what we do for '__builtin_stack_address()'.  */
+
+/* { dg-do compile }
+   TODO We can't 'assemble' this -- it's invalid PTX code.  */
+/* { dg-options -O3 } */
+/* { dg-additional-options -save-temps } */
+/* { dg-final { check-function-bodies {** } {} } } */
+
+void sink(void *);
+
+void f(void)
+{
+  void *p;
+  p = __builtin_stack_address();
+  sink(p);
+}
+/*
+** f:
+** \.visible \.func f
+** {
+**     {
+**             \.param\.u64 %out_arg1;
+**             st\.param\.u64 \[%out_arg1\], %stack;
+**             call sink, \(%out_arg1\);
+**     }
+**     ret;
+*/
+
+/* The concept of a '%stack' pointer doesn't apply like this for
+   '-mno-soft-stack': PTX "native" stacks (TODO), and for '-msoft-stack' in
+   this form also constitutes invalid PTX code (TODO).
+
+   { dg-final { scan-assembler-not {%stack} { xfail *-*-* } } } */
+
+/* As this is an internal-use built-in function, we don't bother with
+   emitting proper error diagnostics.  */

Reply via email to