blob: 6c32a2206a7eafd6596a0f87b10fee81b1543ae4 [file] [log] [blame]
Jakob Stoklund Olesen6660ed52012-06-08 23:15:12 +00001; RUN: llc -mtriple=x86_64-pc-linux %s -o - -regalloc=fast -optimize-regalloc=0 | FileCheck %s
Rafael Espindola254a1322011-11-22 06:27:18 +00002
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}