Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / X86 / pr11415.ll
blobee632189ef9ce49d88080a62e46f836d7fb20f17
1 ; RUN: llc -mtriple=x86_64-pc-linux %s -o - -regalloc=fast -optimize-regalloc=0 | FileCheck %s
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
7 ; CHECK:        #APP
8 ; CHECK-NEXT:   #NO_APP
9 ; CHECK-NEXT:   movq    %rcx, %rdx
10 ; CHECK-NEXT:   #APP
11 ; CHECK-NEXT:   #NO_APP
12 ; CHECK-NEXT:   movq    %rcx, -8(%rsp)
13 ; CHECK-NEXT:   movq    -8(%rsp), %rax
14 ; CHECK-NEXT:   ret
16 define i64 @foo() {
17 entry:
18   %0 = tail call i64 asm "", "={cx}"() nounwind
19   %1 = tail call i64 asm "", "=&r,0,r,~{rax}"(i64 %0, i64 %0) nounwind
20   ret i64 %1