aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Schwinge <tschwinge@baylibre.com>2025-02-26 17:17:44 +0100
committerThomas Schwinge <tschwinge@baylibre.com>2025-02-27 21:48:15 +0100
commit39e1ec22dbaad6cf8e3dc16fd4a576d03215201e (patch)
treec448d0f08c430ac1eea94ced5fb303774a8faa09
parentbac2d8a246892334e24dfa7d62be0cd0648c5606 (diff)
downloadgcc-39e1ec22dbaad6cf8e3dc16fd4a576d03215201e.zip
gcc-39e1ec22dbaad6cf8e3dc16fd4a576d03215201e.tar.gz
gcc-39e1ec22dbaad6cf8e3dc16fd4a576d03215201e.tar.bz2
Add 'gcc.target/nvptx/stack_frame-1.c'
gcc/testsuite/ * gcc.target/nvptx/stack_frame-1.c: New.
-rw-r--r--gcc/testsuite/gcc.target/nvptx/stack_frame-1.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/nvptx/stack_frame-1.c b/gcc/testsuite/gcc.target/nvptx/stack_frame-1.c
new file mode 100644
index 0000000..476d0ac
--- /dev/null
+++ b/gcc/testsuite/gcc.target/nvptx/stack_frame-1.c
@@ -0,0 +1,34 @@
+/* GCC emits an unused stack frame. */
+
+/* { dg-do assemble } */
+/* { dg-options {-O2 -mno-soft-stack} } */
+/* { dg-additional-options -save-temps } */
+/* { dg-final { check-function-bodies {** } {} } } */
+
+/* Greatly reduced from libgcc code, where this issue is visible for
+ '_divdi3.o:__divti3', '_divmoddi4.o:__divmodti4', '_moddi3.o:__modti3',
+ '_udivdi3.o:__udivti3', '_udivmoddi4.o:__udivmodti4',
+ '_umoddi3.o:__umodti3'. */
+
+int f (int n)
+{
+ const union {
+ struct { long low, high; };
+ __int128 ll;
+ } ww = {{.low = n, .high = 0}};
+ return (int) ww.ll;
+}
+/*
+** f:
+** \.visible \.func \(\.param\.u32 %value_out\) f \(\.param\.u32 %in_ar0\)
+** {
+** \.reg\.u32 %value;
+** \.reg\.u32 %ar0;
+** ld\.param\.u32 %ar0, \[%in_ar0\];
+** \.local \.align 16 \.b8 %frame_ar\[16\];
+** \.reg\.u64 %frame;
+** cvta\.local\.u64 %frame, %frame_ar;
+** mov\.u32 %value, %ar0;
+** st\.param\.u32 \[%value_out\], %value;
+** ret;
+*/