Use Align for TFL::TransientStackAlignment
[llvm-core.git] / test / CodeGen / X86 / tail-merge-after-mbp.mir
blobbf9b0decc9df3b88642597bfc560f897ae6a058a
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=x86_64-linux -run-pass=block-placement -o - %s | FileCheck %s
4 ---
5 # check loop bb.7 is not merged with bb.10, bb.13
6 # check loop bb.9 is not merged with bb.12
8 name:            foo
9 body:             |
10   ; CHECK-LABEL: name: foo
11   ; CHECK: bb.0:
12   ; CHECK:   successors: %bb.1(0x40000000), %bb.2(0x40000000)
13   ; CHECK:   TEST8ri $dl, 1, implicit-def $eflags, implicit killed $edx
14   ; CHECK:   JCC_1 %bb.1, 5, implicit $eflags
15   ; CHECK: bb.2:
16   ; CHECK:   successors: %bb.1(0x30000000), %bb.3(0x50000000)
17   ; CHECK:   $rax = MOV64rm $r14, 1, $noreg, 0, $noreg :: (load 8)
18   ; CHECK:   TEST64rr $rax, $rax, implicit-def $eflags
19   ; CHECK:   JCC_1 %bb.1, 4, implicit $eflags
20   ; CHECK: bb.3:
21   ; CHECK:   successors: %bb.4(0x30000000), %bb.8(0x50000000)
22   ; CHECK:   CMP64mi8 killed $rax, 1, $noreg, 8, $noreg, 0, implicit-def $eflags :: (load 8)
23   ; CHECK:   JCC_1 %bb.8, 5, implicit $eflags
24   ; CHECK: bb.4:
25   ; CHECK:   successors: %bb.1(0x30000000), %bb.5(0x50000000)
26   ; CHECK:   $rax = MOV64rm $r14, 1, $noreg, 0, $noreg :: (load 8)
27   ; CHECK:   TEST64rr $rax, $rax, implicit-def $eflags
28   ; CHECK:   JCC_1 %bb.1, 4, implicit $eflags
29   ; CHECK: bb.5 (align 16):
30   ; CHECK:   successors: %bb.6(0x71555555), %bb.8(0x0eaaaaab)
31   ; CHECK:   CMP64mi8 killed $rax, 1, $noreg, 8, $noreg, 0, implicit-def $eflags :: (load 8), (load 8)
32   ; CHECK:   JCC_1 %bb.8, 5, implicit $eflags
33   ; CHECK: bb.6:
34   ; CHECK:   successors: %bb.1(0x04000000), %bb.5(0x7c000000)
35   ; CHECK:   $rax = MOV64rm $r14, 1, $noreg, 0, $noreg :: (load 8)
36   ; CHECK:   TEST64rr $rax, $rax, implicit-def $eflags
37   ; CHECK:   JCC_1 %bb.5, 5, implicit $eflags
38   ; CHECK: bb.1:
39   ; CHECK:   $ebp = XOR32rr undef $ebp, undef $ebp, implicit-def dead $eflags
40   ; CHECK:   RETQ $eax
41   ; CHECK: bb.8:
42   ; CHECK:   $ebp = XOR32rr undef $ebp, undef $ebp, implicit-def dead $eflags
43   ; CHECK:   dead $eax = XOR32rr undef $eax, undef $eax, implicit-def dead $eflags, implicit-def $al
44   ; CHECK:   RETQ $eax
45   bb.0:
46     successors: %bb.1(0x40000000), %bb.7(0x40000000)
48     TEST8ri $dl, 1, implicit-def $eflags, implicit killed $edx
49     JCC_1 %bb.7, 4, implicit $eflags
51   bb.1:
52     successors: %bb.16(0x80000000)
54     $ebp = XOR32rr undef $ebp, undef $ebp, implicit-def dead $eflags
55     JMP_1 %bb.16
57   bb.7:
58     successors: %bb.8(0x30000000), %bb.9(0x50000000)
60     $rax = MOV64rm $r14, 1, $noreg, 0, $noreg :: (load 8)
61     TEST64rr $rax, $rax, implicit-def $eflags
62     JCC_1 %bb.9, 5, implicit killed $eflags
64   bb.8:
65     successors: %bb.16(0x80000000)
67     $ebp = XOR32rr undef $ebp, undef $ebp, implicit-def dead $eflags
68     JMP_1 %bb.16
70   bb.9:
71     successors: %bb.10(0x30000000), %bb.15(0x50000000)
73     CMP64mi8 killed $rax, 1, $noreg, 8, $noreg, 0, implicit-def $eflags :: (load 8)
74     JCC_1 %bb.15, 5, implicit $eflags
76   bb.10:
77     successors: %bb.11(0x30000000), %bb.12(0x50000000)
79     $rax = MOV64rm $r14, 1, $noreg, 0, $noreg :: (load 8)
80     TEST64rr $rax, $rax, implicit-def $eflags
81     JCC_1 %bb.12, 5, implicit $eflags
83   bb.11:
84     successors: %bb.16(0x80000000)
86     $ebp = XOR32rr undef $ebp, undef $ebp, implicit-def dead $eflags
87     JMP_1 %bb.16
89   bb.12:
90     successors: %bb.13(0x71555555), %bb.15(0x0eaaaaab)
92     CMP64mi8 killed $rax, 1, $noreg, 8, $noreg, 0, implicit-def $eflags :: (load 8), (load 8)
93     JCC_1 %bb.15, 5, implicit $eflags
95   bb.13:
96     successors: %bb.14(0x04000000), %bb.12(0x7c000000)
98     $rax = MOV64rm $r14, 1, $noreg, 0, $noreg :: (load 8)
99     TEST64rr $rax, $rax, implicit-def $eflags
100     JCC_1 %bb.12, 5, implicit $eflags
102   bb.14:
103     successors: %bb.16(0x80000000)
105     $ebp = XOR32rr undef $ebp, undef $ebp, implicit-def dead $eflags
106     JMP_1 %bb.16
108   bb.15:
109     successors: %bb.16(0x80000000)
111     $ebp = XOR32rr undef $ebp, undef $ebp, implicit-def dead $eflags
112     dead $eax = XOR32rr undef $eax, undef $eax, implicit-def dead $eflags, implicit-def $al
114   bb.16:
116     RETQ $eax