/* { 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"); }