[MIPS GlobalISel] NarrowScalar G_UMULH
[llvm-complete.git] / test / Other / opt-O3-pipeline.ll
blob1eb79159d0d16c63421418aaf2696b02b41c27af
1 ; RUN: opt -mtriple=x86_64-- -O3 -debug-pass=Structure < %s -o /dev/null 2>&1 | FileCheck %s
3 ; REQUIRES: asserts
5 ; CHECK-LABEL: Pass Arguments:
6 ; CHECK-NEXT: Target Transform Information
7 ; CHECK-NEXT: Type-Based Alias Analysis
8 ; CHECK-NEXT: Scoped NoAlias Alias Analysis
9 ; CHECK-NEXT: Assumption Cache Tracker
10 ; CHECK-NEXT: Target Library Information
11 ; CHECK-NEXT:   FunctionPass Manager
12 ; CHECK-NEXT:     Module Verifier
13 ; CHECK-NEXT:     Instrument function entry/exit with calls to e.g. mcount() (pre inlining)
14 ; CHECK-NEXT:     Simplify the CFG
15 ; CHECK-NEXT:     Dominator Tree Construction
16 ; CHECK-NEXT:     SROA
17 ; CHECK-NEXT:     Early CSE
18 ; CHECK-NEXT:     Lower 'expect' Intrinsics
19 ; CHECK-NEXT: Pass Arguments:
20 ; CHECK-NEXT: Target Library Information
21 ; CHECK-NEXT: Target Transform Information
22 ;             Target Pass Configuration
23 ; CHECK:      Type-Based Alias Analysis
24 ; CHECK-NEXT: Scoped NoAlias Alias Analysis
25 ; CHECK-NEXT: Assumption Cache Tracker
26 ; CHECK-NEXT: Profile summary info
27 ; CHECK-NEXT:   ModulePass Manager
28 ; CHECK-NEXT:     Force set function attributes
29 ; CHECK-NEXT:     Infer set function attributes
30 ; CHECK-NEXT:     FunctionPass Manager
31 ; CHECK-NEXT:       Dominator Tree Construction
32 ; CHECK-NEXT:       Call-site splitting
33 ; CHECK-NEXT:     Interprocedural Sparse Conditional Constant Propagation
34 ; CHECK-NEXT:       Unnamed pass: implement Pass::getPassName()
35 ; CHECK-NEXT:     Called Value Propagation
36 ; CHECK-NEXT:     Global Variable Optimizer
37 ; CHECK-NEXT:       Unnamed pass: implement Pass::getPassName()
38 ; CHECK-NEXT:     FunctionPass Manager
39 ; CHECK-NEXT:       Dominator Tree Construction
40 ; CHECK-NEXT:       Promote Memory to Register
41 ; CHECK-NEXT:     Dead Argument Elimination
42 ; CHECK-NEXT:     FunctionPass Manager
43 ; CHECK-NEXT:       Dominator Tree Construction
44 ; CHECK-NEXT:       Basic Alias Analysis (stateless AA impl)
45 ; CHECK-NEXT:       Function Alias Analysis Results
46 ; CHECK-NEXT:       Natural Loop Information
47 ; CHECK-NEXT:       Lazy Branch Probability Analysis
48 ; CHECK-NEXT:       Lazy Block Frequency Analysis
49 ; CHECK-NEXT:       Optimization Remark Emitter
50 ; CHECK-NEXT:       Combine redundant instructions
51 ; CHECK-NEXT:       Simplify the CFG
52 ; CHECK-NEXT:     CallGraph Construction
53 ; CHECK-NEXT:     Globals Alias Analysis
54 ; CHECK-NEXT:     Call Graph SCC Pass Manager
55 ; CHECK-NEXT:       Remove unused exception handling info
56 ; CHECK-NEXT:       Function Integration/Inlining
57 ; CHECK-NEXT:       Deduce function attributes
58 ; CHECK-NEXT:       Promote 'by reference' arguments to scalars
59 ; CHECK-NEXT:       FunctionPass Manager
60 ; CHECK-NEXT:         Dominator Tree Construction
61 ; CHECK-NEXT:         SROA
62 ; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
63 ; CHECK-NEXT:         Function Alias Analysis Results
64 ; CHECK-NEXT:         Memory SSA
65 ; CHECK-NEXT:         Early CSE w/ MemorySSA
66 ; CHECK-NEXT:         Speculatively execute instructions if target has divergent branches
67 ; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
68 ; CHECK-NEXT:         Function Alias Analysis Results
69 ; CHECK-NEXT:         Lazy Value Information Analysis
70 ; CHECK-NEXT:         Jump Threading
71 ; CHECK-NEXT:         Value Propagation
72 ; CHECK-NEXT:         Simplify the CFG
73 ; CHECK-NEXT:         Dominator Tree Construction
74 ; CHECK-NEXT:         Combine pattern based expressions
75 ; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
76 ; CHECK-NEXT:         Function Alias Analysis Results
77 ; CHECK-NEXT:         Natural Loop Information
78 ; CHECK-NEXT:         Lazy Branch Probability Analysis
79 ; CHECK-NEXT:         Lazy Block Frequency Analysis
80 ; CHECK-NEXT:         Optimization Remark Emitter
81 ; CHECK-NEXT:         Combine redundant instructions
82 ; CHECK-NEXT:         Conditionally eliminate dead library calls
83 ; CHECK-NEXT:         Natural Loop Information
84 ; CHECK-NEXT:         Branch Probability Analysis
85 ; CHECK-NEXT:         Block Frequency Analysis
86 ; CHECK-NEXT:         Lazy Branch Probability Analysis
87 ; CHECK-NEXT:         Lazy Block Frequency Analysis
88 ; CHECK-NEXT:         Optimization Remark Emitter
89 ; CHECK-NEXT:         PGOMemOPSize
90 ; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
91 ; CHECK-NEXT:         Function Alias Analysis Results
92 ; CHECK-NEXT:         Natural Loop Information
93 ; CHECK-NEXT:         Lazy Branch Probability Analysis
94 ; CHECK-NEXT:         Lazy Block Frequency Analysis
95 ; CHECK-NEXT:         Optimization Remark Emitter
96 ; CHECK-NEXT:         Tail Call Elimination
97 ; CHECK-NEXT:         Simplify the CFG
98 ; CHECK-NEXT:         Reassociate expressions
99 ; CHECK-NEXT:         Dominator Tree Construction
100 ; CHECK-NEXT:         Natural Loop Information
101 ; CHECK-NEXT:         Canonicalize natural loops
102 ; CHECK-NEXT:         LCSSA Verifier
103 ; CHECK-NEXT:         Loop-Closed SSA Form Pass
104 ; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
105 ; CHECK-NEXT:         Function Alias Analysis Results
106 ; CHECK-NEXT:         Scalar Evolution Analysis
107 ; CHECK-NEXT:         Loop Pass Manager
108 ; CHECK-NEXT:           Rotate Loops
109 ; CHECK-NEXT:           Loop Invariant Code Motion
110 ; CHECK-NEXT:           Unswitch loops
111 ; CHECK-NEXT:         Simplify the CFG
112 ; CHECK-NEXT:         Dominator Tree Construction
113 ; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
114 ; CHECK-NEXT:         Function Alias Analysis Results
115 ; CHECK-NEXT:         Natural Loop Information
116 ; CHECK-NEXT:         Lazy Branch Probability Analysis
117 ; CHECK-NEXT:         Lazy Block Frequency Analysis
118 ; CHECK-NEXT:         Optimization Remark Emitter
119 ; CHECK-NEXT:         Combine redundant instructions
120 ; CHECK-NEXT:         Canonicalize natural loops
121 ; CHECK-NEXT:         LCSSA Verifier
122 ; CHECK-NEXT:         Loop-Closed SSA Form Pass
123 ; CHECK-NEXT:         Scalar Evolution Analysis
124 ; CHECK-NEXT:         Loop Pass Manager
125 ; CHECK-NEXT:           Induction Variable Simplification
126 ; CHECK-NEXT:           Recognize loop idioms
127 ; CHECK-NEXT:           Delete dead loops
128 ; CHECK-NEXT:           Unroll loops
129 ; CHECK-NEXT:         MergedLoadStoreMotion
130 ; CHECK-NEXT:         Phi Values Analysis
131 ; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
132 ; CHECK-NEXT:         Function Alias Analysis Results
133 ; CHECK-NEXT:         Memory Dependence Analysis
134 ; CHECK-NEXT:         Lazy Branch Probability Analysis
135 ; CHECK-NEXT:         Lazy Block Frequency Analysis
136 ; CHECK-NEXT:         Optimization Remark Emitter
137 ; CHECK-NEXT:         Global Value Numbering
138 ; CHECK-NEXT:         Phi Values Analysis
139 ; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
140 ; CHECK-NEXT:         Function Alias Analysis Results
141 ; CHECK-NEXT:         Memory Dependence Analysis
142 ; CHECK-NEXT:         MemCpy Optimization
143 ; CHECK-NEXT:         Sparse Conditional Constant Propagation
144 ; CHECK-NEXT:         Demanded bits analysis
145 ; CHECK-NEXT:         Bit-Tracking Dead Code Elimination
146 ; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
147 ; CHECK-NEXT:         Function Alias Analysis Results
148 ; CHECK-NEXT:         Natural Loop Information
149 ; CHECK-NEXT:         Lazy Branch Probability Analysis
150 ; CHECK-NEXT:         Lazy Block Frequency Analysis
151 ; CHECK-NEXT:         Optimization Remark Emitter
152 ; CHECK-NEXT:         Combine redundant instructions
153 ; CHECK-NEXT:         Lazy Value Information Analysis
154 ; CHECK-NEXT:         Jump Threading
155 ; CHECK-NEXT:         Value Propagation
156 ; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
157 ; CHECK-NEXT:         Function Alias Analysis Results
158 ; CHECK-NEXT:         Phi Values Analysis
159 ; CHECK-NEXT:         Memory Dependence Analysis
160 ; CHECK-NEXT:         Dead Store Elimination
161 ; CHECK-NEXT:         Natural Loop Information
162 ; CHECK-NEXT:         Canonicalize natural loops
163 ; CHECK-NEXT:         LCSSA Verifier
164 ; CHECK-NEXT:         Loop-Closed SSA Form Pass
165 ; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
166 ; CHECK-NEXT:         Function Alias Analysis Results
167 ; CHECK-NEXT:         Scalar Evolution Analysis
168 ; CHECK-NEXT:         Loop Pass Manager
169 ; CHECK-NEXT:           Loop Invariant Code Motion
170 ; CHECK-NEXT:         Post-Dominator Tree Construction
171 ; CHECK-NEXT:         Aggressive Dead Code Elimination
172 ; CHECK-NEXT:         Simplify the CFG
173 ; CHECK-NEXT:         Dominator Tree Construction
174 ; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
175 ; CHECK-NEXT:         Function Alias Analysis Results
176 ; CHECK-NEXT:         Natural Loop Information
177 ; CHECK-NEXT:         Lazy Branch Probability Analysis
178 ; CHECK-NEXT:         Lazy Block Frequency Analysis
179 ; CHECK-NEXT:         Optimization Remark Emitter
180 ; CHECK-NEXT:         Combine redundant instructions
181 ; CHECK-NEXT:     A No-Op Barrier Pass
182 ; CHECK-NEXT:     Eliminate Available Externally Globals
183 ; CHECK-NEXT:     CallGraph Construction
184 ; CHECK-NEXT:     Deduce function attributes in RPO
185 ; CHECK-NEXT:     Global Variable Optimizer
186 ; CHECK-NEXT:       Unnamed pass: implement Pass::getPassName()
187 ; CHECK-NEXT:     Dead Global Elimination
188 ; CHECK-NEXT:     CallGraph Construction
189 ; CHECK-NEXT:     Globals Alias Analysis
190 ; CHECK-NEXT:     FunctionPass Manager
191 ; CHECK-NEXT:       Float to int
192 ; CHECK-NEXT:       Dominator Tree Construction
193 ; CHECK-NEXT:       Natural Loop Information
194 ; CHECK-NEXT:       Canonicalize natural loops
195 ; CHECK-NEXT:       LCSSA Verifier
196 ; CHECK-NEXT:       Loop-Closed SSA Form Pass
197 ; CHECK-NEXT:       Basic Alias Analysis (stateless AA impl)
198 ; CHECK-NEXT:       Function Alias Analysis Results
199 ; CHECK-NEXT:       Scalar Evolution Analysis
200 ; CHECK-NEXT:       Loop Pass Manager
201 ; CHECK-NEXT:         Rotate Loops
202 ; CHECK-NEXT:       Loop Access Analysis
203 ; CHECK-NEXT:       Lazy Branch Probability Analysis
204 ; CHECK-NEXT:       Lazy Block Frequency Analysis
205 ; CHECK-NEXT:       Optimization Remark Emitter
206 ; CHECK-NEXT:       Loop Distribution
207 ; CHECK-NEXT:       Branch Probability Analysis
208 ; CHECK-NEXT:       Block Frequency Analysis
209 ; CHECK-NEXT:       Scalar Evolution Analysis
210 ; CHECK-NEXT:       Basic Alias Analysis (stateless AA impl)
211 ; CHECK-NEXT:       Function Alias Analysis Results
212 ; CHECK-NEXT:       Loop Access Analysis
213 ; CHECK-NEXT:       Demanded bits analysis
214 ; CHECK-NEXT:       Lazy Branch Probability Analysis
215 ; CHECK-NEXT:       Lazy Block Frequency Analysis
216 ; CHECK-NEXT:       Optimization Remark Emitter
217 ; CHECK-NEXT:       Loop Vectorization
218 ; CHECK-NEXT:       Canonicalize natural loops
219 ; CHECK-NEXT:       Scalar Evolution Analysis
220 ; CHECK-NEXT:       Function Alias Analysis Results
221 ; CHECK-NEXT:       Loop Access Analysis
222 ; CHECK-NEXT:       Loop Load Elimination
223 ; CHECK-NEXT:       Basic Alias Analysis (stateless AA impl)
224 ; CHECK-NEXT:       Function Alias Analysis Results
225 ; CHECK-NEXT:       Lazy Branch Probability Analysis
226 ; CHECK-NEXT:       Lazy Block Frequency Analysis
227 ; CHECK-NEXT:       Optimization Remark Emitter
228 ; CHECK-NEXT:       Combine redundant instructions
229 ; CHECK-NEXT:       Simplify the CFG
230 ; CHECK-NEXT:       Dominator Tree Construction
231 ; CHECK-NEXT:       Natural Loop Information
232 ; CHECK-NEXT:       Scalar Evolution Analysis
233 ; CHECK-NEXT:       Basic Alias Analysis (stateless AA impl)
234 ; CHECK-NEXT:       Function Alias Analysis Results
235 ; CHECK-NEXT:       Demanded bits analysis
236 ; CHECK-NEXT:       Lazy Branch Probability Analysis
237 ; CHECK-NEXT:       Lazy Block Frequency Analysis
238 ; CHECK-NEXT:       Optimization Remark Emitter
239 ; CHECK-NEXT:       SLP Vectorizer
240 ; CHECK-NEXT:       Optimization Remark Emitter
241 ; CHECK-NEXT:       Combine redundant instructions
242 ; CHECK-NEXT:       Canonicalize natural loops
243 ; CHECK-NEXT:       LCSSA Verifier
244 ; CHECK-NEXT:       Loop-Closed SSA Form Pass
245 ; CHECK-NEXT:       Scalar Evolution Analysis
246 ; CHECK-NEXT:       Loop Pass Manager
247 ; CHECK-NEXT:         Unroll loops
248 ; CHECK-NEXT:       Lazy Branch Probability Analysis
249 ; CHECK-NEXT:       Lazy Block Frequency Analysis
250 ; CHECK-NEXT:       Optimization Remark Emitter
251 ; CHECK-NEXT:       Combine redundant instructions
252 ; CHECK-NEXT:       Canonicalize natural loops
253 ; CHECK-NEXT:       LCSSA Verifier
254 ; CHECK-NEXT:       Loop-Closed SSA Form Pass
255 ; CHECK-NEXT:       Scalar Evolution Analysis
256 ; CHECK-NEXT:       Loop Pass Manager
257 ; CHECK-NEXT:         Loop Invariant Code Motion
258 ; CHECK-NEXT:       Lazy Branch Probability Analysis
259 ; CHECK-NEXT:       Lazy Block Frequency Analysis
260 ; CHECK-NEXT:       Optimization Remark Emitter
261 ; CHECK-NEXT:       Warn about non-applied transformations
262 ; CHECK-NEXT:       Alignment from assumptions
263 ; CHECK-NEXT:     Strip Unused Function Prototypes
264 ; CHECK-NEXT:     Dead Global Elimination
265 ; CHECK-NEXT:     Merge Duplicate Global Constants
266 ; CHECK-NEXT:     FunctionPass Manager
267 ; CHECK-NEXT:       Dominator Tree Construction
268 ; CHECK-NEXT:       Natural Loop Information
269 ; CHECK-NEXT:       Branch Probability Analysis
270 ; CHECK-NEXT:       Block Frequency Analysis
271 ; CHECK-NEXT:       Canonicalize natural loops
272 ; CHECK-NEXT:       LCSSA Verifier
273 ; CHECK-NEXT:       Loop-Closed SSA Form Pass
274 ; CHECK-NEXT:       Basic Alias Analysis (stateless AA impl)
275 ; CHECK-NEXT:       Function Alias Analysis Results
276 ; CHECK-NEXT:       Scalar Evolution Analysis
277 ; CHECK-NEXT:       Branch Probability Analysis
278 ; CHECK-NEXT:       Block Frequency Analysis
279 ; CHECK-NEXT:       Loop Pass Manager
280 ; CHECK-NEXT:         Loop Sink
281 ; CHECK-NEXT:       Lazy Branch Probability Analysis
282 ; CHECK-NEXT:       Lazy Block Frequency Analysis
283 ; CHECK-NEXT:       Optimization Remark Emitter
284 ; CHECK-NEXT:       Remove redundant instructions
285 ; CHECK-NEXT:       Hoist/decompose integer division and remainder
286 ; CHECK-NEXT:       Simplify the CFG
287 ; CHECK-NEXT:       Module Verifier
288 ; CHECK-NEXT:     Bitcode Writer
289 ; CHECK-NEXT: Pass Arguments:
290 ; CHECK-NEXT:  FunctionPass Manager
291 ; CHECK-NEXT:     Dominator Tree Construction
292 ; CHECK-NEXT: Pass Arguments:
293 ; CHECK-NEXT: Target Library Information
294 ; CHECK-NEXT:   FunctionPass Manager
295 ; CHECK-NEXT:     Dominator Tree Construction
296 ; CHECK-NEXT:     Natural Loop Information
297 ; CHECK-NEXT:     Branch Probability Analysis
298 ; CHECK-NEXT:     Block Frequency Analysis
299 ; CHECK-NEXT: Pass Arguments:
300 ; CHECK-NEXT: Target Library Information
301 ; CHECK-NEXT:   FunctionPass Manager
302 ; CHECK-NEXT:     Dominator Tree Construction
303 ; CHECK-NEXT:     Natural Loop Information
304 ; CHECK-NEXT:     Branch Probability Analysis
305 ; CHECK-NEXT:     Block Frequency Analysis
307 define void @f() {
308   ret void