blob: 92c530bb9e7e74378d2d50027982ebad5fab12f8 [file] [log] [blame]
Rafael Espindola254a1322011-11-22 06:27:18 +00001; RUN: llc %s -o - -regalloc=fast | 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}