// RUN: %clang_cc1 -triple arm64-apple-ios -emit-llvm -o - %s | FileCheck %s

// rdar://9167275

int t1()
{
  int x;
  __asm__("mov %0, 7" : "=r" (x));
  return x;
}

long t2()
{
  long x;
  __asm__("mov %0, 7" : "=r" (x));
  return x;
}

long t3()
{
  long x;
  __asm__("mov %w0, 7" : "=r" (x));
  return x;
}

// rdar://9281206

void t4(long op) {
  long x1;
  asm ("mov x0, %1; svc #0;" : "=r"(x1) :"r"(op),"r"(x1) :"x0" );
}

// rdar://9394290

float t5(float x) {
  __asm__("fadd %0, %0, %0" : "+w" (x));
  return x;
}

// rdar://9865712
void t6 (void *f, int g) {
  // CHECK: t6
  // CHECK: call void asm "str $1, $0", "=*Q,r"
  asm("str %1, %0" : "=Q"(f) : "r"(g));
}
