1; RUN: llc -mtriple=x86_64-pc-linux %s -o - -regalloc=fast -optimize-regalloc=0 | FileCheck %s
2
3; We used to consider the early clobber in the second asm statement as
4; defining %0 before it was read. This caused us to omit the
5; movq	-8(%rsp), %rdx
6
7; CHECK: 	#APP
8; CHECK-NEXT:	#NO_APP
9; CHECK-NEXT:	movq	%rcx, %rax
10; CHECK-NEXT:	movq	%rax, -8(%rsp)
11; CHECK-NEXT:	movq	-8(%rsp), %rdx
12; CHECK-NEXT:	#APP
13; CHECK-NEXT:	#NO_APP
14; CHECK-NEXT:	movq	%rdx, %rax
15; CHECK-NEXT:	movq	%rdx, -8(%rsp)
16; CHECK-NEXT:	ret
17
18define i64 @foo() {
19entry:
20  %0 = tail call i64 asm "", "={cx}"() nounwind
21  %1 = tail call i64 asm "", "=&r,0,r,~{rax}"(i64 %0, i64 %0) nounwind
22  ret i64 %1
23}
24