Revert r354244 "[DAGCombiner] Eliminate dead stores to stack."
[llvm-complete.git] / test / CodeGen / X86 / tail-merge-after-mbp.mir
blob29b6ead510cfddff8430fadad429cba15a8126a5
1 # RUN: llc -mtriple=x86_64-linux -run-pass=block-placement -o - %s | FileCheck %s
3 ---
4 # check loop bb.7 is not merged with bb.10, bb.13
5 # check loop bb.9 is not merged with bb.12
6 # CHECK:  bb.2:
7 # CHECK-NEXT:    successors: %bb.3(0x30000000), %bb.4(0x50000000)
8 # CHECK:    $rax = MOV64rm $r14, 1, $noreg, 0, $noreg
9 # CHECK-NEXT:    TEST64rr $rax, $rax
10 # CHECK-NEXT:    JE_1 %bb.3
11 # CHECK:  bb.4:
12 # CHECK-NEXT:    successors: %bb.5(0x30000000), %bb.10(0x50000000)
13 # CHECK:    CMP64mi8 killed $rax, 1, $noreg, 8, $noreg, 0
14 # CHECK-NEXT:    JNE_1 %bb.10
15 # CHECK:  bb.5:
16 # CHECK-NEXT:    successors: %bb.6(0x30000000), %bb.7(0x50000000)
17 # CHECK:    $rax = MOV64rm $r14, 1, $noreg, 0, $noreg
18 # CHECK-NEXT:    TEST64rr $rax, $rax
19 # CHECK-NEXT:    JE_1 %bb.6
20 # CHECK:  bb.7
21 # CHECK-NEXT:    successors: %bb.8(0x71555555), %bb.10(0x0eaaaaab)
22 # CHECK:    CMP64mi8 killed $rax, 1, $noreg, 8, $noreg, 0
23 # CHECK-NEXT:    JNE_1 %bb.10
24 # CHECK:  bb.8:
25 # CHECK-NEXT:    successors: %bb.9(0x04000000), %bb.7(0x7c000000)
26 # CHECK:    $rax = MOV64rm $r14, 1, $noreg, 0, $noreg
27 # CHECK-NEXT:    TEST64rr $rax, $rax
28 # CHECK-NEXT:    JNE_1 %bb.7
30 name:            foo
31 body:             |
32   bb.0:
33     successors: %bb.1(0x40000000), %bb.7(0x40000000)
35     TEST8ri $dl, 1, implicit-def $eflags, implicit killed $edx
36     JE_1 %bb.7, implicit $eflags
38   bb.1:
39     successors: %bb.16(0x80000000)
41     $ebp = XOR32rr undef $ebp, undef $ebp, implicit-def dead $eflags
42     JMP_1 %bb.16
44   bb.7:
45     successors: %bb.8(0x30000000), %bb.9(0x50000000)
47     $rax = MOV64rm $r14, 1, $noreg, 0, $noreg :: (load 8)
48     TEST64rr $rax, $rax, implicit-def $eflags
49     JNE_1 %bb.9, implicit killed $eflags
51   bb.8:
52     successors: %bb.16(0x80000000)
54     $ebp = XOR32rr undef $ebp, undef $ebp, implicit-def dead $eflags
55     JMP_1 %bb.16
57   bb.9:
58     successors: %bb.10(0x30000000), %bb.15(0x50000000)
60     CMP64mi8 killed $rax, 1, $noreg, 8, $noreg, 0, implicit-def $eflags :: (load 8)
61     JNE_1 %bb.15, implicit $eflags
63   bb.10:
64     successors: %bb.11(0x30000000), %bb.12(0x50000000)
66     $rax = MOV64rm $r14, 1, $noreg, 0, $noreg :: (load 8)
67     TEST64rr $rax, $rax, implicit-def $eflags
68     JNE_1 %bb.12, implicit $eflags
70   bb.11:
71     successors: %bb.16(0x80000000)
73     $ebp = XOR32rr undef $ebp, undef $ebp, implicit-def dead $eflags
74     JMP_1 %bb.16
76   bb.12:
77     successors: %bb.13(0x71555555), %bb.15(0x0eaaaaab)
79     CMP64mi8 killed $rax, 1, $noreg, 8, $noreg, 0, implicit-def $eflags :: (load 8), (load 8)
80     JNE_1 %bb.15, implicit $eflags
82   bb.13:
83     successors: %bb.14(0x04000000), %bb.12(0x7c000000)
85     $rax = MOV64rm $r14, 1, $noreg, 0, $noreg :: (load 8)
86     TEST64rr $rax, $rax, implicit-def $eflags
87     JNE_1 %bb.12, implicit $eflags
89   bb.14:
90     successors: %bb.16(0x80000000)
92     $ebp = XOR32rr undef $ebp, undef $ebp, implicit-def dead $eflags
93     JMP_1 %bb.16
95   bb.15:
96     successors: %bb.16(0x80000000)
98     $ebp = XOR32rr undef $ebp, undef $ebp, implicit-def dead $eflags
99     dead $eax = XOR32rr undef $eax, undef $eax, implicit-def dead $eflags, implicit-def $al
101   bb.16:
103     RETQ $eax