[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / CodeGen / Thumb2 / LowOverheadLoops / vcmp-vpst-combination-across-blocks.mir
blobcb059cc6796d6fbbc54d4b6081de8173ec7cb3c2
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
4 --- |
5   define void @combine_previous() {
6   while.end6:
7     ret void
8   }
10   define void @combine_middle() {
11   while.end6:
12     ret void
13   }
15   define void @combine_last() {
16   while.end6:
17     ret void
18   }
20   define void @combine_kill_flags() {
21   while.end6:
22     ret void
23   }
25   define void @no_combination_diff_reg_value() {
26   while.end6:
27     ret void
28   }
30   define void @no_combination_vcmp_already_merged() {
31   while.end6:
32     ret void
33   }
35 ...
36 ---
37 name:            combine_previous
38 alignment:       8
39 exposesReturnsTwice: false
40 legalized:       false
41 regBankSelected: false
42 selected:        false
43 failedISel:      false
44 tracksRegLiveness: true
45 hasWinCFI:       false
46 registers:       []
47 liveins:
48   - { reg: '$r0', virtual-reg: '' }
49   - { reg: '$r1', virtual-reg: '' }
50   - { reg: '$r2', virtual-reg: '' }
51 frameInfo:
52 fixedStack:      []
53 stack:
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: '' }
60 callSites:       []
61 debugValueSubstitutions: []
62 constants:
63   - id:              0
64     value:           float 0xC7EFFFFFE0000000
65     alignment:       4
66     isTargetSpecific: false
67 machineFunctionInfo: {}
68 body:             |
69   ; CHECK-LABEL: name: combine_previous
70   ; CHECK: bb.0:
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
83   ; CHECK: bb.2:
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
87   bb.0:
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
99   bb.6 (align 4):
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
116   bb.8:
117     liveins: $r2, $r12, $q0
118     frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc
120   bb.9 (align 4):
121     CONSTPOOL_ENTRY 0, %const.0, 4
125 name:            combine_middle
126 alignment:       8
127 exposesReturnsTwice: false
128 legalized:       false
129 regBankSelected: false
130 selected:        false
131 failedISel:      false
132 tracksRegLiveness: true
133 hasWinCFI:       false
134 registers:       []
135 liveins:
136   - { reg: '$r0', virtual-reg: '' }
137   - { reg: '$r1', virtual-reg: '' }
138   - { reg: '$r2', virtual-reg: '' }
139 frameInfo:
140 fixedStack:      []
141 stack:
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: '' }
148 callSites:       []
149 debugValueSubstitutions: []
150 constants:
151   - id:              0
152     value:           float 0xC7EFFFFFE0000000
153     alignment:       4
154     isTargetSpecific: false
155 machineFunctionInfo: {}
156 body:             |
157   ; CHECK-LABEL: name: combine_middle
158   ; CHECK: bb.0:
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
173   ; CHECK: bb.2:
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
177   bb.0:
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
189   bb.6 (align 4):
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
207   bb.8:
208     liveins: $r2, $r12, $q0
209     frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc
211   bb.9 (align 4):
212     CONSTPOOL_ENTRY 0, %const.0, 4
216 name:            combine_last
217 alignment:       8
218 exposesReturnsTwice: false
219 legalized:       false
220 regBankSelected: false
221 selected:        false
222 failedISel:      false
223 tracksRegLiveness: true
224 hasWinCFI:       false
225 registers:       []
226 liveins:
227   - { reg: '$r0', virtual-reg: '' }
228   - { reg: '$r1', virtual-reg: '' }
229   - { reg: '$r2', virtual-reg: '' }
230 frameInfo:
231 fixedStack:      []
232 stack:
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: '' }
239 callSites:       []
240 debugValueSubstitutions: []
241 constants:
242   - id:              0
243     value:           float 0xC7EFFFFFE0000000
244     alignment:       4
245     isTargetSpecific: false
246 machineFunctionInfo: {}
247 body:             |
248   ; CHECK-LABEL: name: combine_last
249   ; CHECK: bb.0:
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
263   ; CHECK: bb.2:
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
267   bb.0:
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
279   bb.6 (align 4):
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
297   bb.8:
298     liveins: $r2, $r12, $q0
299     frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc
301   bb.9 (align 4):
302     CONSTPOOL_ENTRY 0, %const.0, 4
306 name:            combine_kill_flags
307 alignment:       8
308 exposesReturnsTwice: false
309 legalized:       false
310 regBankSelected: false
311 selected:        false
312 failedISel:      false
313 tracksRegLiveness: true
314 hasWinCFI:       false
315 registers:       []
316 liveins:
317   - { reg: '$r0', virtual-reg: '' }
318   - { reg: '$r1', virtual-reg: '' }
319   - { reg: '$r2', virtual-reg: '' }
320 frameInfo:
321 fixedStack:      []
322 stack:
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: '' }
329 callSites:       []
330 debugValueSubstitutions: []
331 constants:
332   - id:              0
333     value:           float 0xC7EFFFFFE0000000
334     alignment:       4
335     isTargetSpecific: false
336 machineFunctionInfo: {}
337 body:             |
338   ; CHECK-LABEL: name: combine_kill_flags
339   ; CHECK: bb.0:
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
352   ; CHECK: bb.2:
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
356   bb.0:
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
368   bb.6 (align 4):
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
384   bb.8:
385     liveins: $r2, $r12, $q0
386     frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc
388   bb.9 (align 4):
389     CONSTPOOL_ENTRY 0, %const.0, 4
393 name:            no_combination_diff_reg_value
394 alignment:       8
395 exposesReturnsTwice: false
396 legalized:       false
397 regBankSelected: false
398 selected:        false
399 failedISel:      false
400 tracksRegLiveness: true
401 hasWinCFI:       false
402 registers:       []
403 liveins:
404   - { reg: '$r0', virtual-reg: '' }
405   - { reg: '$r1', virtual-reg: '' }
406   - { reg: '$r2', virtual-reg: '' }
407 frameInfo:
408 fixedStack:      []
409 stack:
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: '' }
416 callSites:       []
417 debugValueSubstitutions: []
418 constants:
419   - id:              0
420     value:           float 0xC7EFFFFFE0000000
421     alignment:       4
422     isTargetSpecific: false
423 machineFunctionInfo: {}
424 body:             |
425   ; CHECK-LABEL: name: no_combination_diff_reg_value
426   ; CHECK: bb.0:
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
441   ; CHECK: bb.2:
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
445   bb.0:
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
457   bb.6 (align 4):
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
475   bb.8:
476     liveins: $r2, $r12, $q0
477     frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc
479   bb.9 (align 4):
480     CONSTPOOL_ENTRY 0, %const.0, 4
484 name:            no_combination_vcmp_already_merged
485 alignment:       8
486 exposesReturnsTwice: false
487 legalized:       false
488 regBankSelected: false
489 selected:        false
490 failedISel:      false
491 tracksRegLiveness: true
492 hasWinCFI:       false
493 registers:       []
494 liveins:
495   - { reg: '$r0', virtual-reg: '' }
496   - { reg: '$r1', virtual-reg: '' }
497   - { reg: '$r2', virtual-reg: '' }
498 frameInfo:
499 fixedStack:      []
500 stack:
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: '' }
507 callSites:       []
508 debugValueSubstitutions: []
509 constants:
510   - id:              0
511     value:           float 0xC7EFFFFFE0000000
512     alignment:       4
513     isTargetSpecific: false
514 machineFunctionInfo: {}
515 body:             |
516   ; CHECK-LABEL: name: no_combination_vcmp_already_merged
517   ; CHECK: bb.0:
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
531   ; CHECK: bb.2:
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
535   bb.0:
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
547   bb.6 (align 4):
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
564   bb.8:
565     liveins: $r2, $r12, $q0
566     frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc
568   bb.9 (align 4):
569     CONSTPOOL_ENTRY 0, %const.0, 4