// RUN: %llvmgcc %s -c -O3 -m64 -emit-llvm -o - | llc -march=x86-64 -mtriple=x86_64-apple-darwin | FileCheck %s // r9 used to be clobbered before its value was moved to r10. 7993104. void foo(int x, int y) { // CHECK: bar // CHECK: movq %r9, %r10 // CHECK: movq %rdi, %r9 // CHECK: bar register int lr9 asm("r9") = x; register int lr10 asm("r10") = y; int foo; asm volatile("bar" : "=r"(lr9) : "r"(lr9), "r"(lr10)); foo = lr9; lr9 = x; lr10 = foo; asm volatile("bar" : "=r"(lr9) : "r"(lr9), "r"(lr10)); }