1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=thumbv8.1m.main -mattr=+mve.fp -run-pass=arm-low-overhead-loops %s -o - --verify-machineinstrs | FileCheck %s
5 define void @combine_previous() {
10 define void @combine_middle() {
15 define void @combine_last() {
20 define void @combine_kill_flags() {
25 define void @no_combination_diff_reg_value() {
30 define void @no_combination_vcmp_already_merged() {
37 name: combine_previous
39 exposesReturnsTwice: false
41 regBankSelected: false
44 tracksRegLiveness: true
48 - { reg: '$r0', virtual-reg: '' }
49 - { reg: '$r1', virtual-reg: '' }
50 - { reg: '$r2', virtual-reg: '' }
54 - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,
55 stack-id: default, callee-saved-register: '$lr', callee-saved-restored: false,
56 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
57 - { id: 1, name: '', type: spill-slot, offset: -8, size: 4, alignment: 4,
58 stack-id: default, callee-saved-register: '$r7', callee-saved-restored: true,
59 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
61 debugValueSubstitutions: []
64 value: float 0xC7EFFFFFE0000000
66 isTargetSpecific: false
67 machineFunctionInfo: {}
69 ; CHECK-LABEL: name: combine_previous
71 ; CHECK: successors: %bb.1(0x80000000)
72 ; CHECK: liveins: $r0, $r1
73 ; CHECK: renamable $q0 = MVE_VDUP32 renamable $r1, 0, $noreg, $noreg, undef renamable $q0
74 ; CHECK: $lr = MVE_DLSTP_32 killed renamable $r1
75 ; CHECK: bb.1 (align 4):
76 ; CHECK: successors: %bb.1(0x7c000000), %bb.2(0x04000000)
77 ; CHECK: liveins: $lr, $q0, $r0
78 ; CHECK: renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 0, $noreg, $noreg
79 ; CHECK: renamable $q0 = MVE_VORR renamable $q1, renamable $q1, 0, $noreg, $noreg, killed renamable $q0
80 ; CHECK: MVE_VPTv4f32 8, renamable $q1, renamable $q0, 12, implicit-def $vpr
81 ; CHECK: renamable $q0 = MVE_VORR killed renamable $q1, killed renamable $q1, 1, killed renamable $vpr, $noreg, killed renamable $q0
82 ; CHECK: $lr = MVE_LETP killed renamable $lr, %bb.1
84 ; CHECK: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc
85 ; CHECK: bb.3 (align 4):
86 ; CHECK: CONSTPOOL_ENTRY 0, %const.0, 4
88 successors: %bb.6(0x80000000)
89 liveins: $r0, $r1, $r2
91 renamable $r3, dead $cpsr = nuw nsw tADDi3 renamable $r1, 3, 14 /* CC::al */, $noreg
92 renamable $q0 = MVE_VDUP32 killed renamable $r1, 0, $noreg, $noreg, undef renamable $q0
93 renamable $r3 = t2ANDri killed renamable $r3, 4, 14 /* CC::al */, $noreg, $noreg
94 renamable $lr = t2SUBri killed renamable $r3, 4, 14 /* CC::al */, $noreg, $noreg
95 renamable $r3, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg
96 renamable $lr = nuw nsw t2ADDrs killed renamable $r3, killed renamable $lr, 19, 14 /* CC::al */, $noreg, $noreg
97 $lr = t2DoLoopStart renamable $lr
100 successors: %bb.6(0x7c000000), %bb.8(0x04000000)
101 liveins: $lr, $q0, $r0, $r1, $r2
103 renamable $lr = t2LoopDec killed renamable $lr, 1
104 renamable $vpr = MVE_VCTP32 renamable $r1, 0, $noreg, $noreg
105 renamable $r1, dead $cpsr = tSUBi8 killed renamable $r1, 4, 14 /* CC::al */, $noreg
106 MVE_VPST 8, implicit $vpr
107 renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 1, renamable $vpr, $noreg
108 MVE_VPST 4, implicit $vpr
109 renamable $q0 = MVE_VORR renamable $q1, renamable $q1, 1, renamable $vpr, $noreg, renamable $q0
110 renamable $vpr = MVE_VCMPf32 renamable $q1, renamable $q0, 12, 1, killed renamable $vpr, $noreg
111 MVE_VPST 8, implicit $vpr
112 renamable $q0 = MVE_VORR killed renamable $q1, renamable $q1, 1, killed renamable $vpr, $noreg, killed renamable $q0
113 t2LoopEnd renamable $lr, %bb.6, implicit-def dead $cpsr
114 tB %bb.8, 14 /* CC::al */, $noreg
117 liveins: $r2, $r12, $q0
118 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc
121 CONSTPOOL_ENTRY 0, %const.0, 4
127 exposesReturnsTwice: false
129 regBankSelected: false
132 tracksRegLiveness: true
136 - { reg: '$r0', virtual-reg: '' }
137 - { reg: '$r1', virtual-reg: '' }
138 - { reg: '$r2', virtual-reg: '' }
142 - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,
143 stack-id: default, callee-saved-register: '$lr', callee-saved-restored: false,
144 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
145 - { id: 1, name: '', type: spill-slot, offset: -8, size: 4, alignment: 4,
146 stack-id: default, callee-saved-register: '$r7', callee-saved-restored: true,
147 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
149 debugValueSubstitutions: []
152 value: float 0xC7EFFFFFE0000000
154 isTargetSpecific: false
155 machineFunctionInfo: {}
157 ; CHECK-LABEL: name: combine_middle
159 ; CHECK: successors: %bb.1(0x80000000)
160 ; CHECK: liveins: $q2, $r0, $r1
161 ; CHECK: renamable $q0 = MVE_VDUP32 renamable $r1, 0, $noreg, $noreg, undef renamable $q0
162 ; CHECK: $lr = MVE_DLSTP_32 killed renamable $r1
163 ; CHECK: bb.1 (align 4):
164 ; CHECK: successors: %bb.1(0x7c000000), %bb.2(0x04000000)
165 ; CHECK: liveins: $lr, $q0, $q2, $r0
166 ; CHECK: renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 0, $noreg, $noreg
167 ; CHECK: renamable $q2 = MVE_VORR renamable $q1, renamable $q1, 0, $noreg, $noreg, killed renamable $q2
168 ; CHECK: MVE_VPTv4f32 8, renamable $q1, renamable $q0, 12, implicit-def $vpr
169 ; CHECK: renamable $q2 = MVE_VORR renamable $q1, renamable $q1, 1, renamable $vpr, $noreg, killed renamable $q2
170 ; CHECK: MVE_VPST 8, implicit $vpr
171 ; CHECK: dead renamable $q1 = MVE_VORR killed renamable $q1, renamable $q0, 1, killed renamable $vpr, $noreg, killed renamable $q1
172 ; CHECK: $lr = MVE_LETP killed renamable $lr, %bb.1
174 ; CHECK: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc
175 ; CHECK: bb.3 (align 4):
176 ; CHECK: CONSTPOOL_ENTRY 0, %const.0, 4
178 successors: %bb.6(0x80000000)
179 liveins: $r0, $r1, $r2
181 renamable $r3, dead $cpsr = nuw nsw tADDi3 renamable $r1, 3, 14 /* CC::al */, $noreg
182 renamable $q0 = MVE_VDUP32 killed renamable $r1, 0, $noreg, $noreg, undef renamable $q0
183 renamable $r3 = t2ANDri killed renamable $r3, 4, 14 /* CC::al */, $noreg, $noreg
184 renamable $lr = t2SUBri killed renamable $r3, 4, 14 /* CC::al */, $noreg, $noreg
185 renamable $r3, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg
186 renamable $lr = nuw nsw t2ADDrs killed renamable $r3, killed renamable $lr, 19, 14 /* CC::al */, $noreg, $noreg
187 $lr = t2DoLoopStart renamable $lr
190 successors: %bb.6(0x7c000000), %bb.8(0x04000000)
191 liveins: $lr, $q0, $r0, $r1, $r2, $q2
193 renamable $lr = t2LoopDec killed renamable $lr, 1
194 renamable $vpr = MVE_VCTP32 renamable $r1, 0, $noreg, $noreg
195 renamable $r1, dead $cpsr = tSUBi8 killed renamable $r1, 4, 14 /* CC::al */, $noreg
196 MVE_VPST 2, implicit $vpr
197 renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 1, renamable $vpr, $noreg
198 renamable $q2 = MVE_VORR renamable $q1, renamable $q1, 1, renamable $vpr, $noreg, killed renamable $q2
199 renamable $vpr = MVE_VCMPf32 renamable $q1, renamable $q0, 12, 1, killed renamable $vpr, $noreg
200 MVE_VPST 8, implicit $vpr
201 renamable $q2 = MVE_VORR renamable $q1, renamable $q1, 1, renamable $vpr, $noreg, killed renamable $q2
202 MVE_VPST 8, implicit $vpr
203 renamable $q1 = MVE_VORR killed renamable $q1, renamable $q0, 1, renamable $vpr, $noreg, renamable $q1
204 t2LoopEnd renamable $lr, %bb.6, implicit-def dead $cpsr
205 tB %bb.8, 14 /* CC::al */, $noreg
208 liveins: $r2, $r12, $q0
209 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc
212 CONSTPOOL_ENTRY 0, %const.0, 4
218 exposesReturnsTwice: false
220 regBankSelected: false
223 tracksRegLiveness: true
227 - { reg: '$r0', virtual-reg: '' }
228 - { reg: '$r1', virtual-reg: '' }
229 - { reg: '$r2', virtual-reg: '' }
233 - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,
234 stack-id: default, callee-saved-register: '$lr', callee-saved-restored: false,
235 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
236 - { id: 1, name: '', type: spill-slot, offset: -8, size: 4, alignment: 4,
237 stack-id: default, callee-saved-register: '$r7', callee-saved-restored: true,
238 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
240 debugValueSubstitutions: []
243 value: float 0xC7EFFFFFE0000000
245 isTargetSpecific: false
246 machineFunctionInfo: {}
248 ; CHECK-LABEL: name: combine_last
250 ; CHECK: successors: %bb.1(0x80000000)
251 ; CHECK: liveins: $q2, $r0, $r1
252 ; CHECK: renamable $q0 = MVE_VDUP32 renamable $r1, 0, $noreg, $noreg, undef renamable $q0
253 ; CHECK: $lr = MVE_DLSTP_32 killed renamable $r1
254 ; CHECK: bb.1 (align 4):
255 ; CHECK: successors: %bb.1(0x7c000000), %bb.2(0x04000000)
256 ; CHECK: liveins: $lr, $q0, $q2, $r0
257 ; CHECK: renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 0, $noreg, $noreg
258 ; CHECK: MVE_VPTv4f32 8, renamable $q1, renamable $q0, 12, implicit-def $vpr
259 ; CHECK: renamable $q2 = MVE_VORR renamable $q1, renamable $q1, 1, killed renamable $vpr, $noreg, killed renamable $q2
260 ; CHECK: MVE_VPTv4f32 8, renamable $q2, renamable $q1, 12, implicit-def $vpr
261 ; CHECK: dead renamable $q1 = MVE_VORR killed renamable $q1, renamable $q0, 1, killed renamable $vpr, $noreg, killed renamable $q1
262 ; CHECK: $lr = MVE_LETP killed renamable $lr, %bb.1
264 ; CHECK: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc
265 ; CHECK: bb.3 (align 4):
266 ; CHECK: CONSTPOOL_ENTRY 0, %const.0, 4
268 successors: %bb.6(0x80000000)
269 liveins: $r0, $r1, $r2
271 renamable $r3, dead $cpsr = nuw nsw tADDi3 renamable $r1, 3, 14 /* CC::al */, $noreg
272 renamable $q0 = MVE_VDUP32 killed renamable $r1, 0, $noreg, $noreg, undef renamable $q0
273 renamable $r3 = t2ANDri killed renamable $r3, 4, 14 /* CC::al */, $noreg, $noreg
274 renamable $lr = t2SUBri killed renamable $r3, 4, 14 /* CC::al */, $noreg, $noreg
275 renamable $r3, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg
276 renamable $lr = nuw nsw t2ADDrs killed renamable $r3, killed renamable $lr, 19, 14 /* CC::al */, $noreg, $noreg
277 $lr = t2DoLoopStart renamable $lr
280 successors: %bb.6(0x7c000000), %bb.8(0x04000000)
281 liveins: $lr, $q0, $r0, $r1, $r2, $q2
283 renamable $lr = t2LoopDec killed renamable $lr, 1
284 renamable $vpr = MVE_VCTP32 renamable $r1, 0, $noreg, $noreg
285 renamable $r1, dead $cpsr = tSUBi8 killed renamable $r1, 4, 14 /* CC::al */, $noreg
286 MVE_VPST 8, implicit $vpr
287 renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 1, renamable $vpr, $noreg
288 MVE_VPST 2, implicit $vpr
289 renamable $vpr = MVE_VCMPf32 renamable $q1, renamable $q0, 12, 1, killed renamable $vpr, $noreg
290 renamable $q2 = MVE_VORR renamable $q1, renamable $q1, 1, renamable $vpr, $noreg, killed renamable $q2
291 renamable $vpr = MVE_VCMPf32 renamable $q2, renamable $q1, 12, 1, killed renamable $vpr, $noreg
292 MVE_VPST 8, implicit $vpr
293 renamable $q1 = MVE_VORR killed renamable $q1, renamable $q0, 1, renamable $vpr, $noreg, renamable $q1
294 t2LoopEnd renamable $lr, %bb.6, implicit-def dead $cpsr
295 tB %bb.8, 14 /* CC::al */, $noreg
298 liveins: $r2, $r12, $q0
299 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc
302 CONSTPOOL_ENTRY 0, %const.0, 4
306 name: combine_kill_flags
308 exposesReturnsTwice: false
310 regBankSelected: false
313 tracksRegLiveness: true
317 - { reg: '$r0', virtual-reg: '' }
318 - { reg: '$r1', virtual-reg: '' }
319 - { reg: '$r2', virtual-reg: '' }
323 - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,
324 stack-id: default, callee-saved-register: '$lr', callee-saved-restored: false,
325 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
326 - { id: 1, name: '', type: spill-slot, offset: -8, size: 4, alignment: 4,
327 stack-id: default, callee-saved-register: '$r7', callee-saved-restored: true,
328 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
330 debugValueSubstitutions: []
333 value: float 0xC7EFFFFFE0000000
335 isTargetSpecific: false
336 machineFunctionInfo: {}
338 ; CHECK-LABEL: name: combine_kill_flags
340 ; CHECK: successors: %bb.1(0x80000000)
341 ; CHECK: liveins: $q2, $r0, $r1
342 ; CHECK: renamable $q0 = MVE_VDUP32 renamable $r1, 0, $noreg, $noreg, undef renamable $q0
343 ; CHECK: $lr = MVE_DLSTP_32 killed renamable $r1
344 ; CHECK: bb.1 (align 4):
345 ; CHECK: successors: %bb.1(0x7c000000), %bb.2(0x04000000)
346 ; CHECK: liveins: $lr, $q0, $q2, $r0
347 ; CHECK: renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 0, $noreg, $noreg
348 ; CHECK: renamable $q2 = MVE_VORR killed renamable $q2, renamable $q1, 0, $noreg, $noreg, killed renamable $q2
349 ; CHECK: MVE_VPTv4f32 8, renamable $q0, killed renamable $q1, 12, implicit-def $vpr
350 ; CHECK: renamable $q0 = MVE_VORR killed renamable $q0, killed renamable $q0, 1, killed renamable $vpr, $noreg, killed renamable $q0
351 ; CHECK: $lr = MVE_LETP killed renamable $lr, %bb.1
353 ; CHECK: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc
354 ; CHECK: bb.3 (align 4):
355 ; CHECK: CONSTPOOL_ENTRY 0, %const.0, 4
357 successors: %bb.6(0x80000000)
358 liveins: $r0, $r1, $r2
360 renamable $r3, dead $cpsr = nuw nsw tADDi3 renamable $r1, 3, 14 /* CC::al */, $noreg
361 renamable $q0 = MVE_VDUP32 killed renamable $r1, 0, $noreg, $noreg, undef renamable $q0
362 renamable $r3 = t2ANDri killed renamable $r3, 4, 14 /* CC::al */, $noreg, $noreg
363 renamable $lr = t2SUBri killed renamable $r3, 4, 14 /* CC::al */, $noreg, $noreg
364 renamable $r3, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg
365 renamable $lr = nuw nsw t2ADDrs killed renamable $r3, killed renamable $lr, 19, 14 /* CC::al */, $noreg, $noreg
366 $lr = t2DoLoopStart renamable $lr
369 successors: %bb.6(0x7c000000), %bb.8(0x04000000)
370 liveins: $lr, $q0, $r0, $r1, $r2, $q2
372 renamable $lr = t2LoopDec killed renamable $lr, 1
373 renamable $vpr = MVE_VCTP32 renamable $r1, 0, $noreg, $noreg
374 renamable $r1, dead $cpsr = tSUBi8 killed renamable $r1, 4, 14 /* CC::al */, $noreg
375 MVE_VPST 2, implicit $vpr
376 renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 1, renamable $vpr, $noreg
377 renamable $vpr = MVE_VCMPf32 renamable $q0, renamable $q1, 12, 1, killed renamable $vpr, $noreg
378 renamable $q2 = MVE_VORR renamable $q2, killed renamable $q1, 0, $noreg, $noreg, killed renamable $q2
379 MVE_VPST 8, implicit $vpr
380 renamable $q0 = MVE_VORR renamable $q0, renamable $q0, 1, renamable $vpr, $noreg, killed renamable $q0
381 t2LoopEnd renamable $lr, %bb.6, implicit-def dead $cpsr
382 tB %bb.8, 14 /* CC::al */, $noreg
385 liveins: $r2, $r12, $q0
386 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc
389 CONSTPOOL_ENTRY 0, %const.0, 4
393 name: no_combination_diff_reg_value
395 exposesReturnsTwice: false
397 regBankSelected: false
400 tracksRegLiveness: true
404 - { reg: '$r0', virtual-reg: '' }
405 - { reg: '$r1', virtual-reg: '' }
406 - { reg: '$r2', virtual-reg: '' }
410 - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,
411 stack-id: default, callee-saved-register: '$lr', callee-saved-restored: false,
412 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
413 - { id: 1, name: '', type: spill-slot, offset: -8, size: 4, alignment: 4,
414 stack-id: default, callee-saved-register: '$r7', callee-saved-restored: true,
415 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
417 debugValueSubstitutions: []
420 value: float 0xC7EFFFFFE0000000
422 isTargetSpecific: false
423 machineFunctionInfo: {}
425 ; CHECK-LABEL: name: no_combination_diff_reg_value
427 ; CHECK: successors: %bb.1(0x80000000)
428 ; CHECK: liveins: $r0, $r1
429 ; CHECK: renamable $q0 = MVE_VDUP32 renamable $r1, 0, $noreg, $noreg, undef renamable $q0
430 ; CHECK: $lr = MVE_DLSTP_32 killed renamable $r1
431 ; CHECK: bb.1 (align 4):
432 ; CHECK: successors: %bb.1(0x7c000000), %bb.2(0x04000000)
433 ; CHECK: liveins: $lr, $q0, $r0
434 ; CHECK: renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 0, $noreg, $noreg
435 ; CHECK: renamable $q1 = MVE_VORR killed renamable $q1, renamable $q0, 0, $noreg, $noreg, killed renamable $q1
436 ; CHECK: renamable $vpr = MVE_VCMPf32 renamable $q1, renamable $q0, 12, 0, killed $noreg, $noreg
437 ; CHECK: renamable $q0 = MVE_VORR renamable $q1, renamable $q1, 0, $noreg, $noreg, killed renamable $q0
438 ; CHECK: MVE_VPST 8, implicit $vpr
439 ; CHECK: renamable $q0 = MVE_VORR killed renamable $q1, killed renamable $q1, 1, killed renamable $vpr, $noreg, killed renamable $q0
440 ; CHECK: $lr = MVE_LETP killed renamable $lr, %bb.1
442 ; CHECK: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc
443 ; CHECK: bb.3 (align 4):
444 ; CHECK: CONSTPOOL_ENTRY 0, %const.0, 4
446 successors: %bb.6(0x80000000)
447 liveins: $r0, $r1, $r2
449 renamable $r3, dead $cpsr = nuw nsw tADDi3 renamable $r1, 3, 14 /* CC::al */, $noreg
450 renamable $q0 = MVE_VDUP32 killed renamable $r1, 0, $noreg, $noreg, undef renamable $q0
451 renamable $r3 = t2ANDri killed renamable $r3, 4, 14 /* CC::al */, $noreg, $noreg
452 renamable $lr = t2SUBri killed renamable $r3, 4, 14 /* CC::al */, $noreg, $noreg
453 renamable $r3, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg
454 renamable $lr = nuw nsw t2ADDrs killed renamable $r3, killed renamable $lr, 19, 14 /* CC::al */, $noreg, $noreg
455 $lr = t2DoLoopStart renamable $lr
458 successors: %bb.6(0x7c000000), %bb.8(0x04000000)
459 liveins: $lr, $q0, $r0, $r1, $r2
461 renamable $lr = t2LoopDec killed renamable $lr, 1
462 renamable $vpr = MVE_VCTP32 renamable $r1, 0, $noreg, $noreg
463 renamable $r1, dead $cpsr = tSUBi8 killed renamable $r1, 4, 14 /* CC::al */, $noreg
464 MVE_VPST 8, implicit $vpr
465 renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 1, renamable $vpr, $noreg
466 MVE_VPST 4, implicit $vpr
467 renamable $q1 = MVE_VORR killed renamable $q1, renamable $q0, 1, renamable $vpr, $noreg, renamable $q1
468 renamable $vpr = MVE_VCMPf32 renamable $q1, renamable $q0, 12, 1, killed renamable $vpr, $noreg
469 renamable $q0 = MVE_VORR renamable $q1, renamable $q1, 0, $noreg, $noreg, killed renamable $q0
470 MVE_VPST 8, implicit $vpr
471 renamable $q0 = MVE_VORR killed renamable $q1, renamable $q1, 1, killed renamable $vpr, $noreg, killed renamable $q0
472 t2LoopEnd renamable $lr, %bb.6, implicit-def dead $cpsr
473 tB %bb.8, 14 /* CC::al */, $noreg
476 liveins: $r2, $r12, $q0
477 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc
480 CONSTPOOL_ENTRY 0, %const.0, 4
484 name: no_combination_vcmp_already_merged
486 exposesReturnsTwice: false
488 regBankSelected: false
491 tracksRegLiveness: true
495 - { reg: '$r0', virtual-reg: '' }
496 - { reg: '$r1', virtual-reg: '' }
497 - { reg: '$r2', virtual-reg: '' }
501 - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,
502 stack-id: default, callee-saved-register: '$lr', callee-saved-restored: false,
503 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
504 - { id: 1, name: '', type: spill-slot, offset: -8, size: 4, alignment: 4,
505 stack-id: default, callee-saved-register: '$r7', callee-saved-restored: true,
506 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
508 debugValueSubstitutions: []
511 value: float 0xC7EFFFFFE0000000
513 isTargetSpecific: false
514 machineFunctionInfo: {}
516 ; CHECK-LABEL: name: no_combination_vcmp_already_merged
518 ; CHECK: successors: %bb.1(0x80000000)
519 ; CHECK: liveins: $q2, $r0, $r1
520 ; CHECK: renamable $q0 = MVE_VDUP32 renamable $r1, 0, $noreg, $noreg, undef renamable $q0
521 ; CHECK: $lr = MVE_DLSTP_32 killed renamable $r1
522 ; CHECK: bb.1 (align 4):
523 ; CHECK: successors: %bb.1(0x7c000000), %bb.2(0x04000000)
524 ; CHECK: liveins: $lr, $q0, $q2, $r0
525 ; CHECK: renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 0, $noreg, $noreg
526 ; CHECK: MVE_VPTv4f32 8, renamable $q1, renamable $q0, 12, implicit-def $vpr
527 ; CHECK: renamable $q2 = MVE_VORR renamable $q1, renamable $q1, 1, renamable $vpr, $noreg, killed renamable $q2
528 ; CHECK: MVE_VPST 8, implicit $vpr
529 ; CHECK: dead renamable $q1 = MVE_VORR killed renamable $q1, renamable $q0, 1, killed renamable $vpr, $noreg, killed renamable $q1
530 ; CHECK: $lr = MVE_LETP killed renamable $lr, %bb.1
532 ; CHECK: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc
533 ; CHECK: bb.3 (align 4):
534 ; CHECK: CONSTPOOL_ENTRY 0, %const.0, 4
536 successors: %bb.6(0x80000000)
537 liveins: $r0, $r1, $r2
539 renamable $r3, dead $cpsr = nuw nsw tADDi3 renamable $r1, 3, 14 /* CC::al */, $noreg
540 renamable $q0 = MVE_VDUP32 killed renamable $r1, 0, $noreg, $noreg, undef renamable $q0
541 renamable $r3 = t2ANDri killed renamable $r3, 4, 14 /* CC::al */, $noreg, $noreg
542 renamable $lr = t2SUBri killed renamable $r3, 4, 14 /* CC::al */, $noreg, $noreg
543 renamable $r3, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg
544 renamable $lr = nuw nsw t2ADDrs killed renamable $r3, killed renamable $lr, 19, 14 /* CC::al */, $noreg, $noreg
545 $lr = t2DoLoopStart renamable $lr
548 successors: %bb.6(0x7c000000), %bb.8(0x04000000)
549 liveins: $lr, $q0, $r0, $r1, $r2, $q2
551 renamable $lr = t2LoopDec killed renamable $lr, 1
552 renamable $vpr = MVE_VCTP32 renamable $r1, 0, $noreg, $noreg
553 renamable $r1, dead $cpsr = tSUBi8 killed renamable $r1, 4, 14 /* CC::al */, $noreg
554 MVE_VPST 8, implicit $vpr
555 renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 1, renamable $vpr, $noreg
556 MVE_VPST 4, implicit $vpr
557 renamable $vpr = MVE_VCMPf32 renamable $q1, renamable $q0, 12, 1, killed renamable $vpr, $noreg
558 renamable $q2 = MVE_VORR renamable $q1, renamable $q1, 1, renamable $vpr, $noreg, killed renamable $q2
559 MVE_VPST 8, implicit $vpr
560 renamable $q1 = MVE_VORR killed renamable $q1, renamable $q0, 1, renamable $vpr, $noreg, renamable $q1
561 t2LoopEnd renamable $lr, %bb.6, implicit-def dead $cpsr
562 tB %bb.8, 14 /* CC::al */, $noreg
565 liveins: $r2, $r12, $q0
566 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc
569 CONSTPOOL_ENTRY 0, %const.0, 4