xref: /llvm-project/llvm/test/CodeGen/X86/branchfolding-landingpad-cfg.mir (revision 112fba974ce42a6e552f7391d20a858a128283a1)
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 4
2# RUN: llc -mtriple=x86_64-pc-windows-msvc -run-pass=branch-folder -o - %s | FileCheck %s
3---
4name:            main
5body:             |
6  ; CHECK-LABEL: name: main
7  ; CHECK: bb.0:
8  ; CHECK-NEXT:   successors: %bb.1(0x7ffff800), %bb.3(0x00000800)
9  ; CHECK-NEXT: {{  $}}
10  ; CHECK-NEXT: bb.1:
11  ; CHECK-NEXT:   successors: %bb.2(0x00000800)
12  ; CHECK-NEXT: {{  $}}
13  ; CHECK-NEXT:   RET 0
14  ; CHECK-NEXT: {{  $}}
15  ; CHECK-NEXT: bb.2 (machine-block-address-taken, landing-pad, ehfunclet-entry):
16  ; CHECK-NEXT:   successors: %bb.3(0x80000000)
17  ; CHECK-NEXT: {{  $}}
18  ; CHECK-NEXT:   CLEANUPRET
19  ; CHECK-NEXT: {{  $}}
20  ; CHECK-NEXT: bb.3 (landing-pad, ehfunclet-entry):
21  ; CHECK-NEXT:   CLEANUPRET
22  bb.0:
23    successors: %bb.1(0x7ffff800), %bb.5(0x00000800)
24    JMP_1 %bb.1
25
26  bb.1:
27    successors: %bb.2(0x7ffff800), %bb.4(0x00000800)
28
29    JMP_1 %bb.2
30
31  bb.2:
32    successors: %bb.3(0x7ffff800), %bb.4(0x00000800)
33
34    JMP_1 %bb.3
35
36  bb.3:
37    successors: %bb.6(0x7ffff800)
38
39    JMP_1 %bb.6
40
41  bb.4 (machine-block-address-taken, landing-pad, ehfunclet-entry):
42    successors: %bb.5(0x80000000)
43    CLEANUPRET
44
45  bb.5 (landing-pad, ehfunclet-entry):
46    CLEANUPRET
47
48  bb.6:
49    RET 0
50...
51---
52name:            foo
53body:             |
54  ; CHECK-LABEL: name: foo
55  ; CHECK: bb.0:
56  ; CHECK-NEXT:   successors: %bb.1(0x7ffff800), %bb.2(0x00000800)
57  ; CHECK-NEXT:   liveins: $rcx
58  ; CHECK-NEXT: {{  $}}
59  ; CHECK-NEXT:   renamable $eax = MOV32rm renamable $rcx, 1, $noreg, 0, $noreg
60  ; CHECK-NEXT:   TEST32rr renamable $eax, renamable $eax, implicit-def $eflags
61  ; CHECK-NEXT:   JCC_1 %bb.2, 14, implicit killed $eflags
62  ; CHECK-NEXT: {{  $}}
63  ; CHECK-NEXT: bb.1:
64  ; CHECK-NEXT:   successors: %bb.3(0x80000000)
65  ; CHECK-NEXT: {{  $}}
66  ; CHECK-NEXT:   INT 3
67  ; CHECK-NEXT: {{  $}}
68  ; CHECK-NEXT: bb.2:
69  ; CHECK-NEXT:   RET 0
70  ; CHECK-NEXT: {{  $}}
71  ; CHECK-NEXT: bb.3 (machine-block-address-taken, landing-pad, ehfunclet-entry):
72  ; CHECK-NEXT:   CLEANUPRET
73  bb.0:
74    successors: %bb.1(0x7ffff800), %bb.2(0x00000800)
75    liveins: $rcx
76
77    renamable $eax = MOV32rm renamable $rcx, 1, $noreg, 0, $noreg
78    TEST32rr renamable $eax, renamable $eax, implicit-def $eflags
79    JCC_1 %bb.2, 14, implicit killed $eflags
80    JMP_1 %bb.1
81
82  bb.1:
83    successors: %bb.3(0x80000000)
84    INT 3
85
86  bb.2:
87    RET 0
88
89  bb.3 (machine-block-address-taken, landing-pad, ehfunclet-entry):
90    CLEANUPRET
91...
92