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