xref: /aosp_15_r20/external/clang/test/CodeGen/asm_arm64.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 -triple arm64-apple-ios -emit-llvm -o - %s | FileCheck %s
2*67e74705SXin Li 
3*67e74705SXin Li // rdar://9167275
4*67e74705SXin Li 
t1()5*67e74705SXin Li int t1()
6*67e74705SXin Li {
7*67e74705SXin Li   int x;
8*67e74705SXin Li   __asm__("mov %0, 7" : "=r" (x));
9*67e74705SXin Li   return x;
10*67e74705SXin Li }
11*67e74705SXin Li 
t2()12*67e74705SXin Li long t2()
13*67e74705SXin Li {
14*67e74705SXin Li   long x;
15*67e74705SXin Li   __asm__("mov %0, 7" : "=r" (x));
16*67e74705SXin Li   return x;
17*67e74705SXin Li }
18*67e74705SXin Li 
t3()19*67e74705SXin Li long t3()
20*67e74705SXin Li {
21*67e74705SXin Li   long x;
22*67e74705SXin Li   __asm__("mov %w0, 7" : "=r" (x));
23*67e74705SXin Li   return x;
24*67e74705SXin Li }
25*67e74705SXin Li 
26*67e74705SXin Li // rdar://9281206
27*67e74705SXin Li 
t4(long op)28*67e74705SXin Li void t4(long op) {
29*67e74705SXin Li   long x1;
30*67e74705SXin Li   asm ("mov x0, %1; svc #0;" : "=r"(x1) :"r"(op),"r"(x1) :"x0" );
31*67e74705SXin Li }
32*67e74705SXin Li 
33*67e74705SXin Li // rdar://9394290
34*67e74705SXin Li 
t5(float x)35*67e74705SXin Li float t5(float x) {
36*67e74705SXin Li   __asm__("fadd %0, %0, %0" : "+w" (x));
37*67e74705SXin Li   return x;
38*67e74705SXin Li }
39*67e74705SXin Li 
40*67e74705SXin Li // rdar://9865712
t6(void * f,int g)41*67e74705SXin Li void t6 (void *f, int g) {
42*67e74705SXin Li   // CHECK: t6
43*67e74705SXin Li   // CHECK: call void asm "str $1, $0", "=*Q,r"
44*67e74705SXin Li   asm("str %1, %0" : "=Q"(f) : "r"(g));
45*67e74705SXin Li }
46