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