[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / AArch64 / machine-outliner-ordering.mir
blob7395df641f5542dc84e01d8ac3c2135d39800cf4
1 # RUN: llc -mtriple=aarch64-unknown-unknown -run-pass=machine-outliner \
2 # RUN: -verify-machineinstrs %s -o - | FileCheck %s
4 # Ensure that outlined function names appear as expected. Currently, they are
5 # output in order of benefit.
7 --- |
8   define void @should_have_fn2() #0 { ret void }
9   define void @should_have_fn0() #0 { ret void }
10   define void @should_have_fn1() #0 { ret void }
11   attributes #0 = { noredzone optsize minsize }
12 ...
13 ---
15 name: should_have_fn2
16 tracksRegLiveness: true
17 body:             |
18     bb.0:
19         ; CHECK-LABEL: name:        should_have_fn2
20         ; CHECK-NOT: OUTLINED_FUNCTION_1
21         ; CHECK-NOT: OUTLINED_FUNCTION_0
22         ; CHECK: OUTLINED_FUNCTION_2
23         $w0 = ORRWri $wzr, 1
24         $w0 = ORRWri $wzr, 1
25         $w0 = ORRWri $wzr, 1
26     bb.1:
27         ; CHECK-DAG: OUTLINED_FUNCTION_2
28         $w0 = ORRWri $wzr, 1
29         $w0 = ORRWri $wzr, 1
30         $w0 = ORRWri $wzr, 1
31     bb.2:
32         ; CHECK-DAG: OUTLINED_FUNCTION_2
33         $w0 = ORRWri $wzr, 1
34         $w0 = ORRWri $wzr, 1
35         $w0 = ORRWri $wzr, 1
36     bb.3:
37         ; CHECK-DAG: OUTLINED_FUNCTION_2
38         $w0 = ORRWri $wzr, 1
39         $w0 = ORRWri $wzr, 1
40         $w0 = ORRWri $wzr, 1
41     bb.4:
42         RET undef $lr
44 ...
45 ---
47 name: should_have_fn0
49 tracksRegLiveness: true
50 body:             |
51     bb.0:
52         ; CHECK-LABEL: name: should_have_fn0
53         ; CHECK-NOT: OUTLINED_FUNCTION_1
54         ; CHECK-NOT: OUTLINED_FUNCTION_2
55         ; CHECK: OUTLINED_FUNCTION_0
56         $w1 = ORRWri $wzr, 1
57         $w1 = ORRWri $wzr, 1
58         $w1 = ORRWri $wzr, 1
59         $w1 = ORRWri $wzr, 1
60         $w1 = ORRWri $wzr, 1
61     bb.1:
62         ; CHECK-DAG: OUTLINED_FUNCTION_0
63         $w1 = ORRWri $wzr, 1
64         $w1 = ORRWri $wzr, 1
65         $w1 = ORRWri $wzr, 1
66         $w1 = ORRWri $wzr, 1
67         $w1 = ORRWri $wzr, 1
68     bb.3:
69         ; CHECK-DAG: OUTLINED_FUNCTION_0
70         $w1 = ORRWri $wzr, 1
71         $w1 = ORRWri $wzr, 1
72         $w1 = ORRWri $wzr, 1
73         $w1 = ORRWri $wzr, 1
74         $w1 = ORRWri $wzr, 1
75     bb.4:
76         RET undef $lr
78 ...
79 ---
81 name: should_have_fn1
82 tracksRegLiveness: true
83 body:             |
84     bb.0:
85         ; CHECK-LABEL: name: should_have_fn1
86         ; CHECK-NOT: OUTLINED_FUNCTION_0
87         ; CHECK-NOT: OUTLINED_FUNCTION_2
88         ; CHECK: OUTLINED_FUNCTION_1
89         $w2 = ORRWri $wzr, 1
90         $w2 = ORRWri $wzr, 1
91         $w2 = ORRWri $wzr, 1
92         $w2 = ORRWri $wzr, 1
93     bb.1:
94         ; CHECK-DAG: OUTLINED_FUNCTION_1
95         $w2 = ORRWri $wzr, 1
96         $w2 = ORRWri $wzr, 1
97         $w2 = ORRWri $wzr, 1
98         $w2 = ORRWri $wzr, 1
99     bb.3:
100         ; CHECK-DAG: OUTLINED_FUNCTION_1
101         $w2 = ORRWri $wzr, 1
102         $w2 = ORRWri $wzr, 1
103         $w2 = ORRWri $wzr, 1
104         $w2 = ORRWri $wzr, 1
105     bb.4:
106         RET undef $lr