[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / AArch64 / machine-outliner-overlap.mir
blob649bb33828c32c217e22ee081cedf174e4e0395a
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --include-generated-funcs
2 # RUN: llc %s -mtriple aarch64 -debug-only=machine-outliner -run-pass=machine-outliner -o - 2>&1 | FileCheck %s
3 # REQUIRES: asserts
5 # CHECK: *** Discarding overlapping candidates ***
6 # CHECK-NEXT:Searching for overlaps in all repeated sequences...
7 # CHECK-DAG:  Sequence length: 7
8 # CHECK-NEXT:    Candidates discarded: 0
9 # CHECK-NEXT:    Candidates kept: 2
10 # CHECK-DAG:  Sequence length: 8
11 # CHECK-NEXT:    .. DISCARD candidate @ [5, 12]; overlaps with candidate @ [12, 19]
12 # CHECK-NEXT:    Candidates discarded: 1
13 # CHECK-NEXT:    Candidates kept: 1
14 # CHECK-DAG:   Sequence length: 9
15 # CHECK-NEXT:    .. DISCARD candidate @ [4, 12]; overlaps with candidate @ [11, 19]
16 # CHECK-NEXT:    Candidates discarded: 1
17 # CHECK-NEXT:    Candidates kept: 1
18 # CHECK-DAG:   Sequence length: 10
19 # CHECK-NEXT:    .. DISCARD candidate @ [3, 12]; overlaps with candidate @ [10, 19]
20 # CHECK-NEXT:    Candidates discarded: 1
21 # CHECK-NEXT:    Candidates kept: 1
22 # CHECK-DAG:   Sequence length: 11
23 # CHECK-NEXT:    .. DISCARD candidate @ [2, 12]; overlaps with candidate @ [9, 19]
24 # CHECK-NEXT:    Candidates discarded: 1
25 # CHECK-NEXT:    Candidates kept: 1
26 # CHECK-DAG:   Sequence length: 12
27 # CHECK-NEXT:    .. DISCARD candidate @ [1, 12]; overlaps with candidate @ [8, 19]
28 # CHECK-NEXT:    Candidates discarded: 1
29 # CHECK-NEXT:    Candidates kept: 1
30 # CHECK-DAG:   Sequence length: 13
31 # CHECK-NEXT:    .. DISCARD candidate @ [0, 12]; overlaps with candidate @ [7, 19]
32 # CHECK-NEXT:    Candidates discarded: 1
33 # CHECK-NEXT:    Candidates kept: 1
35 ...
36 ---
37 name:           overlap
38 tracksRegLiveness: true
39 machineFunctionInfo:
40   hasRedZone:      false
41 body:             |
42   bb.0:
43     liveins: $x0, $x9
44     ; CHECK-LABEL: name: overlap
45     ; CHECK: liveins: $x0, $x9
46     ; CHECK-NEXT: {{  $}}
47     ; CHECK-NEXT: $x9 = ADDXri $x9, 16, 0
48     ; CHECK-NEXT: $x9 = ADDXri $x9, 16, 0
49     ; CHECK-NEXT: $x9 = ADDXri $x9, 16, 0
50     ; CHECK-NEXT: $x9 = ADDXri $x9, 16, 0
51     ; CHECK-NEXT: $x9 = ADDXri $x9, 16, 0
52     ; CHECK-NEXT: $x9 = ADDXri $x9, 16, 0
53     ; CHECK-NEXT: BL @OUTLINED_FUNCTION_0, implicit-def $lr, implicit $sp, implicit-def $lr, implicit-def $x8, implicit-def $x9, implicit $sp, implicit $x0, implicit $x9
54     ; CHECK-NEXT: BL @OUTLINED_FUNCTION_0, implicit-def $lr, implicit $sp, implicit-def $lr, implicit-def $x8, implicit-def $x9, implicit $sp, implicit $x0, implicit $x9
55     ; CHECK-NEXT: RET undef $x9
57     ; fixme: outline!
58     $x9 = ADDXri $x9, 16, 0
59     $x9 = ADDXri $x9, 16, 0
60     $x9 = ADDXri $x9, 16, 0
61     $x9 = ADDXri $x9, 16, 0
62     $x9 = ADDXri $x9, 16, 0
63     $x9 = ADDXri $x9, 16, 0
65     $x8 = ADDXri $x0, 3, 0
67     ; outline
68     $x9 = ADDXri $x9, 16, 0
69     $x9 = ADDXri $x9, 16, 0
70     $x9 = ADDXri $x9, 16, 0
71     $x9 = ADDXri $x9, 16, 0
72     $x9 = ADDXri $x9, 16, 0
73     $x9 = ADDXri $x9, 16, 0
75     $x8 = ADDXri $x0, 3, 0
77     ; outline
78     $x9 = ADDXri $x9, 16, 0
79     $x9 = ADDXri $x9, 16, 0
80     $x9 = ADDXri $x9, 16, 0
81     $x9 = ADDXri $x9, 16, 0
82     $x9 = ADDXri $x9, 16, 0
83     $x9 = ADDXri $x9, 16, 0
84     RET undef $x9