aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/aarch64/assembler_arch_1.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.target/aarch64/assembler_arch_1.c')
-rw-r--r--gcc/testsuite/gcc.target/aarch64/assembler_arch_1.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/aarch64/assembler_arch_1.c b/gcc/testsuite/gcc.target/aarch64/assembler_arch_1.c
new file mode 100644
index 00000000000..5deea5cf0ee
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/assembler_arch_1.c
@@ -0,0 +1,21 @@
+/* { dg-do assemble } */
+/* { dg-require-effective-target aarch64_asm_lse_ok } */
+/* { dg-options "-march=armv8-a" } */
+
+/* Make sure that the function header in assembly doesn't override
+ user asm arch_extension directives. */
+
+__asm__ (".arch_extension lse");
+
+void
+foo (int i, int *v)
+{
+ register int w0 asm ("w0") = i;
+ register int *x1 asm ("x1") = v;
+
+ asm volatile (
+ "\tstset %w[i], %[v]\n"
+ : [i] "+r" (w0), [v] "+Q" (v)
+ : "r" (x1)
+ : "x30");
+}