602 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=thumbv8.1m.main -mattr=+mve.fp -run-pass=arm-low-overhead-loops %s -o - --verify-machineinstrs | FileCheck %s3 4--- |5 define void @combine_previous() {6 while.end6:7 ret void8 }9 10 define void @combine_middle() {11 while.end6:12 ret void13 }14 15 define void @combine_last() {16 while.end6:17 ret void18 }19 20 define void @combine_kill_flags() {21 while.end6:22 ret void23 }24 25 define void @no_combination_diff_reg_value() {26 while.end6:27 ret void28 }29 30 define void @no_combination_vcmp_already_merged() {31 while.end6:32 ret void33 }34 35...36---37name: combine_previous38alignment: 839exposesReturnsTwice: false40legalized: false41regBankSelected: false42selected: false43failedISel: false44tracksRegLiveness: true45hasWinCFI: false46registers: []47liveins:48 - { reg: '$r0', virtual-reg: '' }49 - { reg: '$r1', virtual-reg: '' }50 - { reg: '$r2', virtual-reg: '' }51frameInfo:52fixedStack: []53stack: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: '' }60callSites: []61debugValueSubstitutions: []62constants:63 - id: 064 value: float 0xC7EFFFFFE000000065 alignment: 466 isTargetSpecific: false67machineFunctionInfo: {}68body: |69 ; CHECK-LABEL: name: combine_previous70 ; CHECK: bb.0:71 ; CHECK-NEXT: successors: %bb.1(0x80000000)72 ; CHECK-NEXT: liveins: $r0, $r173 ; CHECK-NEXT: {{ $}}74 ; CHECK-NEXT: renamable $q0 = MVE_VDUP32 renamable $r1, 0, $noreg, $noreg, undef renamable $q075 ; CHECK-NEXT: $lr = MVE_DLSTP_32 killed renamable $r176 ; CHECK-NEXT: {{ $}}77 ; CHECK-NEXT: bb.1 (align 4):78 ; CHECK-NEXT: successors: %bb.1(0x7c000000), %bb.2(0x04000000)79 ; CHECK-NEXT: liveins: $lr, $q0, $r080 ; CHECK-NEXT: {{ $}}81 ; CHECK-NEXT: renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 0, $noreg, $noreg82 ; CHECK-NEXT: renamable $q0 = MVE_VORR renamable $q1, renamable $q1, 0, $noreg, $noreg, killed renamable $q083 ; CHECK-NEXT: MVE_VPTv4f32 8, renamable $q1, renamable $q0, 12, implicit-def $vpr84 ; CHECK-NEXT: renamable $q0 = MVE_VORR killed renamable $q1, killed renamable $q1, 1, killed renamable $vpr, $noreg, killed renamable $q085 ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.186 ; CHECK-NEXT: {{ $}}87 ; CHECK-NEXT: bb.2:88 ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc89 ; CHECK-NEXT: {{ $}}90 ; CHECK-NEXT: bb.3 (align 4):91 ; CHECK-NEXT: CONSTPOOL_ENTRY 0, %const.0, 492 bb.0:93 successors: %bb.6(0x80000000)94 liveins: $r0, $r1, $r295 96 renamable $r3, dead $cpsr = nuw nsw tADDi3 renamable $r1, 3, 14 /* CC::al */, $noreg97 renamable $q0 = MVE_VDUP32 killed renamable $r1, 0, $noreg, $noreg, undef renamable $q098 renamable $r3 = t2ANDri killed renamable $r3, 4, 14 /* CC::al */, $noreg, $noreg99 renamable $lr = t2SUBri killed renamable $r3, 4, 14 /* CC::al */, $noreg, $noreg100 renamable $r3, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg101 renamable $lr = nuw nsw t2ADDrs killed renamable $r3, killed renamable $lr, 19, 14 /* CC::al */, $noreg, $noreg102 $lr = t2DoLoopStart renamable $lr103 104 bb.6 (align 4):105 successors: %bb.6(0x7c000000), %bb.8(0x04000000)106 liveins: $lr, $q0, $r0, $r1, $r2107 108 renamable $lr = t2LoopDec killed renamable $lr, 1109 renamable $vpr = MVE_VCTP32 renamable $r1, 0, $noreg, $noreg110 renamable $r1, dead $cpsr = tSUBi8 killed renamable $r1, 4, 14 /* CC::al */, $noreg111 MVE_VPST 8, implicit $vpr112 renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 1, renamable $vpr, $noreg113 MVE_VPST 4, implicit $vpr114 renamable $q0 = MVE_VORR renamable $q1, renamable $q1, 1, renamable $vpr, $noreg, renamable $q0115 renamable $vpr = MVE_VCMPf32 renamable $q1, renamable $q0, 12, 1, killed renamable $vpr, $noreg116 MVE_VPST 8, implicit $vpr117 renamable $q0 = MVE_VORR killed renamable $q1, renamable $q1, 1, killed renamable $vpr, $noreg, killed renamable $q0118 t2LoopEnd renamable $lr, %bb.6, implicit-def dead $cpsr119 tB %bb.8, 14 /* CC::al */, $noreg120 121 bb.8:122 liveins: $r2, $r12, $q0123 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc124 125 bb.9 (align 4):126 CONSTPOOL_ENTRY 0, %const.0, 4127 128...129---130name: combine_middle131alignment: 8132exposesReturnsTwice: false133legalized: false134regBankSelected: false135selected: false136failedISel: false137tracksRegLiveness: true138hasWinCFI: false139registers: []140liveins:141 - { reg: '$r0', virtual-reg: '' }142 - { reg: '$r1', virtual-reg: '' }143 - { reg: '$r2', virtual-reg: '' }144frameInfo:145fixedStack: []146stack:147 - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,148 stack-id: default, callee-saved-register: '$lr', callee-saved-restored: false,149 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }150 - { id: 1, name: '', type: spill-slot, offset: -8, size: 4, alignment: 4,151 stack-id: default, callee-saved-register: '$r7', callee-saved-restored: true,152 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }153callSites: []154debugValueSubstitutions: []155constants:156 - id: 0157 value: float 0xC7EFFFFFE0000000158 alignment: 4159 isTargetSpecific: false160machineFunctionInfo: {}161body: |162 ; CHECK-LABEL: name: combine_middle163 ; CHECK: bb.0:164 ; CHECK-NEXT: successors: %bb.1(0x80000000)165 ; CHECK-NEXT: liveins: $q2, $r0, $r1166 ; CHECK-NEXT: {{ $}}167 ; CHECK-NEXT: renamable $q0 = MVE_VDUP32 renamable $r1, 0, $noreg, $noreg, undef renamable $q0168 ; CHECK-NEXT: $lr = MVE_DLSTP_32 killed renamable $r1169 ; CHECK-NEXT: {{ $}}170 ; CHECK-NEXT: bb.1 (align 4):171 ; CHECK-NEXT: successors: %bb.1(0x7c000000), %bb.2(0x04000000)172 ; CHECK-NEXT: liveins: $lr, $q0, $q2, $r0173 ; CHECK-NEXT: {{ $}}174 ; CHECK-NEXT: renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 0, $noreg, $noreg175 ; CHECK-NEXT: renamable $q2 = MVE_VORR renamable $q1, renamable $q1, 0, $noreg, $noreg, killed renamable $q2176 ; CHECK-NEXT: MVE_VPTv4f32 8, renamable $q1, renamable $q0, 12, implicit-def $vpr177 ; CHECK-NEXT: renamable $q2 = MVE_VORR renamable $q1, renamable $q1, 1, renamable $vpr, $noreg, killed renamable $q2178 ; CHECK-NEXT: MVE_VPST 8, implicit $vpr179 ; CHECK-NEXT: dead renamable $q1 = MVE_VORR killed renamable $q1, renamable $q0, 1, killed renamable $vpr, $noreg, killed renamable $q1180 ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.1181 ; CHECK-NEXT: {{ $}}182 ; CHECK-NEXT: bb.2:183 ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc184 ; CHECK-NEXT: {{ $}}185 ; CHECK-NEXT: bb.3 (align 4):186 ; CHECK-NEXT: CONSTPOOL_ENTRY 0, %const.0, 4187 bb.0:188 successors: %bb.6(0x80000000)189 liveins: $r0, $r1, $r2190 191 renamable $r3, dead $cpsr = nuw nsw tADDi3 renamable $r1, 3, 14 /* CC::al */, $noreg192 renamable $q0 = MVE_VDUP32 killed renamable $r1, 0, $noreg, $noreg, undef renamable $q0193 renamable $r3 = t2ANDri killed renamable $r3, 4, 14 /* CC::al */, $noreg, $noreg194 renamable $lr = t2SUBri killed renamable $r3, 4, 14 /* CC::al */, $noreg, $noreg195 renamable $r3, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg196 renamable $lr = nuw nsw t2ADDrs killed renamable $r3, killed renamable $lr, 19, 14 /* CC::al */, $noreg, $noreg197 $lr = t2DoLoopStart renamable $lr198 199 bb.6 (align 4):200 successors: %bb.6(0x7c000000), %bb.8(0x04000000)201 liveins: $lr, $q0, $r0, $r1, $r2, $q2202 203 renamable $lr = t2LoopDec killed renamable $lr, 1204 renamable $vpr = MVE_VCTP32 renamable $r1, 0, $noreg, $noreg205 renamable $r1, dead $cpsr = tSUBi8 killed renamable $r1, 4, 14 /* CC::al */, $noreg206 MVE_VPST 2, implicit $vpr207 renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 1, renamable $vpr, $noreg208 renamable $q2 = MVE_VORR renamable $q1, renamable $q1, 1, renamable $vpr, $noreg, killed renamable $q2209 renamable $vpr = MVE_VCMPf32 renamable $q1, renamable $q0, 12, 1, killed renamable $vpr, $noreg210 MVE_VPST 8, implicit $vpr211 renamable $q2 = MVE_VORR renamable $q1, renamable $q1, 1, renamable $vpr, $noreg, killed renamable $q2212 MVE_VPST 8, implicit $vpr213 renamable $q1 = MVE_VORR killed renamable $q1, renamable $q0, 1, renamable $vpr, $noreg, renamable $q1214 t2LoopEnd renamable $lr, %bb.6, implicit-def dead $cpsr215 tB %bb.8, 14 /* CC::al */, $noreg216 217 bb.8:218 liveins: $r2, $r12, $q0219 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc220 221 bb.9 (align 4):222 CONSTPOOL_ENTRY 0, %const.0, 4223 224...225---226name: combine_last227alignment: 8228exposesReturnsTwice: false229legalized: false230regBankSelected: false231selected: false232failedISel: false233tracksRegLiveness: true234hasWinCFI: false235registers: []236liveins:237 - { reg: '$r0', virtual-reg: '' }238 - { reg: '$r1', virtual-reg: '' }239 - { reg: '$r2', virtual-reg: '' }240frameInfo:241fixedStack: []242stack:243 - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,244 stack-id: default, callee-saved-register: '$lr', callee-saved-restored: false,245 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }246 - { id: 1, name: '', type: spill-slot, offset: -8, size: 4, alignment: 4,247 stack-id: default, callee-saved-register: '$r7', callee-saved-restored: true,248 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }249callSites: []250debugValueSubstitutions: []251constants:252 - id: 0253 value: float 0xC7EFFFFFE0000000254 alignment: 4255 isTargetSpecific: false256machineFunctionInfo: {}257body: |258 ; CHECK-LABEL: name: combine_last259 ; CHECK: bb.0:260 ; CHECK-NEXT: successors: %bb.1(0x80000000)261 ; CHECK-NEXT: liveins: $q2, $r0, $r1262 ; CHECK-NEXT: {{ $}}263 ; CHECK-NEXT: renamable $q0 = MVE_VDUP32 renamable $r1, 0, $noreg, $noreg, undef renamable $q0264 ; CHECK-NEXT: $lr = MVE_DLSTP_32 killed renamable $r1265 ; CHECK-NEXT: {{ $}}266 ; CHECK-NEXT: bb.1 (align 4):267 ; CHECK-NEXT: successors: %bb.1(0x7c000000), %bb.2(0x04000000)268 ; CHECK-NEXT: liveins: $lr, $q0, $q2, $r0269 ; CHECK-NEXT: {{ $}}270 ; CHECK-NEXT: renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 0, $noreg, $noreg271 ; CHECK-NEXT: MVE_VPTv4f32 8, renamable $q1, renamable $q0, 12, implicit-def $vpr272 ; CHECK-NEXT: renamable $q2 = MVE_VORR renamable $q1, renamable $q1, 1, killed renamable $vpr, $noreg, killed renamable $q2273 ; CHECK-NEXT: MVE_VPTv4f32 8, renamable $q2, renamable $q1, 12, implicit-def $vpr274 ; CHECK-NEXT: dead renamable $q1 = MVE_VORR killed renamable $q1, renamable $q0, 1, killed renamable $vpr, $noreg, killed renamable $q1275 ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.1276 ; CHECK-NEXT: {{ $}}277 ; CHECK-NEXT: bb.2:278 ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc279 ; CHECK-NEXT: {{ $}}280 ; CHECK-NEXT: bb.3 (align 4):281 ; CHECK-NEXT: CONSTPOOL_ENTRY 0, %const.0, 4282 bb.0:283 successors: %bb.6(0x80000000)284 liveins: $r0, $r1, $r2285 286 renamable $r3, dead $cpsr = nuw nsw tADDi3 renamable $r1, 3, 14 /* CC::al */, $noreg287 renamable $q0 = MVE_VDUP32 killed renamable $r1, 0, $noreg, $noreg, undef renamable $q0288 renamable $r3 = t2ANDri killed renamable $r3, 4, 14 /* CC::al */, $noreg, $noreg289 renamable $lr = t2SUBri killed renamable $r3, 4, 14 /* CC::al */, $noreg, $noreg290 renamable $r3, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg291 renamable $lr = nuw nsw t2ADDrs killed renamable $r3, killed renamable $lr, 19, 14 /* CC::al */, $noreg, $noreg292 $lr = t2DoLoopStart renamable $lr293 294 bb.6 (align 4):295 successors: %bb.6(0x7c000000), %bb.8(0x04000000)296 liveins: $lr, $q0, $r0, $r1, $r2, $q2297 298 renamable $lr = t2LoopDec killed renamable $lr, 1299 renamable $vpr = MVE_VCTP32 renamable $r1, 0, $noreg, $noreg300 renamable $r1, dead $cpsr = tSUBi8 killed renamable $r1, 4, 14 /* CC::al */, $noreg301 MVE_VPST 8, implicit $vpr302 renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 1, renamable $vpr, $noreg303 MVE_VPST 2, implicit $vpr304 renamable $vpr = MVE_VCMPf32 renamable $q1, renamable $q0, 12, 1, killed renamable $vpr, $noreg305 renamable $q2 = MVE_VORR renamable $q1, renamable $q1, 1, renamable $vpr, $noreg, killed renamable $q2306 renamable $vpr = MVE_VCMPf32 renamable $q2, renamable $q1, 12, 1, killed renamable $vpr, $noreg307 MVE_VPST 8, implicit $vpr308 renamable $q1 = MVE_VORR killed renamable $q1, renamable $q0, 1, renamable $vpr, $noreg, renamable $q1309 t2LoopEnd renamable $lr, %bb.6, implicit-def dead $cpsr310 tB %bb.8, 14 /* CC::al */, $noreg311 312 bb.8:313 liveins: $r2, $r12, $q0314 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc315 316 bb.9 (align 4):317 CONSTPOOL_ENTRY 0, %const.0, 4318 319...320---321name: combine_kill_flags322alignment: 8323exposesReturnsTwice: false324legalized: false325regBankSelected: false326selected: false327failedISel: false328tracksRegLiveness: true329hasWinCFI: false330registers: []331liveins:332 - { reg: '$r0', virtual-reg: '' }333 - { reg: '$r1', virtual-reg: '' }334 - { reg: '$r2', virtual-reg: '' }335frameInfo:336fixedStack: []337stack:338 - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,339 stack-id: default, callee-saved-register: '$lr', callee-saved-restored: false,340 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }341 - { id: 1, name: '', type: spill-slot, offset: -8, size: 4, alignment: 4,342 stack-id: default, callee-saved-register: '$r7', callee-saved-restored: true,343 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }344callSites: []345debugValueSubstitutions: []346constants:347 - id: 0348 value: float 0xC7EFFFFFE0000000349 alignment: 4350 isTargetSpecific: false351machineFunctionInfo: {}352body: |353 ; CHECK-LABEL: name: combine_kill_flags354 ; CHECK: bb.0:355 ; CHECK-NEXT: successors: %bb.1(0x80000000)356 ; CHECK-NEXT: liveins: $q2, $r0, $r1357 ; CHECK-NEXT: {{ $}}358 ; CHECK-NEXT: renamable $q0 = MVE_VDUP32 renamable $r1, 0, $noreg, $noreg, undef renamable $q0359 ; CHECK-NEXT: $lr = MVE_DLSTP_32 killed renamable $r1360 ; CHECK-NEXT: {{ $}}361 ; CHECK-NEXT: bb.1 (align 4):362 ; CHECK-NEXT: successors: %bb.1(0x7c000000), %bb.2(0x04000000)363 ; CHECK-NEXT: liveins: $lr, $q0, $q2, $r0364 ; CHECK-NEXT: {{ $}}365 ; CHECK-NEXT: renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 0, $noreg, $noreg366 ; CHECK-NEXT: renamable $q2 = MVE_VORR killed renamable $q2, renamable $q1, 0, $noreg, $noreg, killed renamable $q2367 ; CHECK-NEXT: MVE_VPTv4f32 8, renamable $q0, killed renamable $q1, 12, implicit-def $vpr368 ; CHECK-NEXT: renamable $q0 = MVE_VORR killed renamable $q0, killed renamable $q0, 1, killed renamable $vpr, $noreg, killed renamable $q0369 ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.1370 ; CHECK-NEXT: {{ $}}371 ; CHECK-NEXT: bb.2:372 ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc373 ; CHECK-NEXT: {{ $}}374 ; CHECK-NEXT: bb.3 (align 4):375 ; CHECK-NEXT: CONSTPOOL_ENTRY 0, %const.0, 4376 bb.0:377 successors: %bb.6(0x80000000)378 liveins: $r0, $r1, $r2379 380 renamable $r3, dead $cpsr = nuw nsw tADDi3 renamable $r1, 3, 14 /* CC::al */, $noreg381 renamable $q0 = MVE_VDUP32 killed renamable $r1, 0, $noreg, $noreg, undef renamable $q0382 renamable $r3 = t2ANDri killed renamable $r3, 4, 14 /* CC::al */, $noreg, $noreg383 renamable $lr = t2SUBri killed renamable $r3, 4, 14 /* CC::al */, $noreg, $noreg384 renamable $r3, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg385 renamable $lr = nuw nsw t2ADDrs killed renamable $r3, killed renamable $lr, 19, 14 /* CC::al */, $noreg, $noreg386 $lr = t2DoLoopStart renamable $lr387 388 bb.6 (align 4):389 successors: %bb.6(0x7c000000), %bb.8(0x04000000)390 liveins: $lr, $q0, $r0, $r1, $r2, $q2391 392 renamable $lr = t2LoopDec killed renamable $lr, 1393 renamable $vpr = MVE_VCTP32 renamable $r1, 0, $noreg, $noreg394 renamable $r1, dead $cpsr = tSUBi8 killed renamable $r1, 4, 14 /* CC::al */, $noreg395 MVE_VPST 2, implicit $vpr396 renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 1, renamable $vpr, $noreg397 renamable $vpr = MVE_VCMPf32 renamable $q0, renamable $q1, 12, 1, killed renamable $vpr, $noreg398 renamable $q2 = MVE_VORR renamable $q2, killed renamable $q1, 0, $noreg, $noreg, killed renamable $q2399 MVE_VPST 8, implicit $vpr400 renamable $q0 = MVE_VORR renamable $q0, renamable $q0, 1, renamable $vpr, $noreg, killed renamable $q0401 t2LoopEnd renamable $lr, %bb.6, implicit-def dead $cpsr402 tB %bb.8, 14 /* CC::al */, $noreg403 404 bb.8:405 liveins: $r2, $r12, $q0406 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc407 408 bb.9 (align 4):409 CONSTPOOL_ENTRY 0, %const.0, 4410 411...412---413name: no_combination_diff_reg_value414alignment: 8415exposesReturnsTwice: false416legalized: false417regBankSelected: false418selected: false419failedISel: false420tracksRegLiveness: true421hasWinCFI: false422registers: []423liveins:424 - { reg: '$r0', virtual-reg: '' }425 - { reg: '$r1', virtual-reg: '' }426 - { reg: '$r2', virtual-reg: '' }427frameInfo:428fixedStack: []429stack:430 - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,431 stack-id: default, callee-saved-register: '$lr', callee-saved-restored: false,432 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }433 - { id: 1, name: '', type: spill-slot, offset: -8, size: 4, alignment: 4,434 stack-id: default, callee-saved-register: '$r7', callee-saved-restored: true,435 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }436callSites: []437debugValueSubstitutions: []438constants:439 - id: 0440 value: float 0xC7EFFFFFE0000000441 alignment: 4442 isTargetSpecific: false443machineFunctionInfo: {}444body: |445 ; CHECK-LABEL: name: no_combination_diff_reg_value446 ; CHECK: bb.0:447 ; CHECK-NEXT: successors: %bb.1(0x80000000)448 ; CHECK-NEXT: liveins: $r0, $r1449 ; CHECK-NEXT: {{ $}}450 ; CHECK-NEXT: renamable $q0 = MVE_VDUP32 renamable $r1, 0, $noreg, $noreg, undef renamable $q0451 ; CHECK-NEXT: $lr = MVE_DLSTP_32 killed renamable $r1452 ; CHECK-NEXT: {{ $}}453 ; CHECK-NEXT: bb.1 (align 4):454 ; CHECK-NEXT: successors: %bb.1(0x7c000000), %bb.2(0x04000000)455 ; CHECK-NEXT: liveins: $lr, $q0, $r0456 ; CHECK-NEXT: {{ $}}457 ; CHECK-NEXT: renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 0, $noreg, $noreg458 ; CHECK-NEXT: renamable $q1 = MVE_VORR killed renamable $q1, renamable $q0, 0, $noreg, $noreg, killed renamable $q1459 ; CHECK-NEXT: renamable $vpr = MVE_VCMPf32 renamable $q1, renamable $q0, 12, 0, killed $noreg, $noreg460 ; CHECK-NEXT: renamable $q0 = MVE_VORR renamable $q1, renamable $q1, 0, $noreg, $noreg, killed renamable $q0461 ; CHECK-NEXT: MVE_VPST 8, implicit $vpr462 ; CHECK-NEXT: renamable $q0 = MVE_VORR killed renamable $q1, killed renamable $q1, 1, killed renamable $vpr, $noreg, killed renamable $q0463 ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.1464 ; CHECK-NEXT: {{ $}}465 ; CHECK-NEXT: bb.2:466 ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc467 ; CHECK-NEXT: {{ $}}468 ; CHECK-NEXT: bb.3 (align 4):469 ; CHECK-NEXT: CONSTPOOL_ENTRY 0, %const.0, 4470 bb.0:471 successors: %bb.6(0x80000000)472 liveins: $r0, $r1, $r2473 474 renamable $r3, dead $cpsr = nuw nsw tADDi3 renamable $r1, 3, 14 /* CC::al */, $noreg475 renamable $q0 = MVE_VDUP32 killed renamable $r1, 0, $noreg, $noreg, undef renamable $q0476 renamable $r3 = t2ANDri killed renamable $r3, 4, 14 /* CC::al */, $noreg, $noreg477 renamable $lr = t2SUBri killed renamable $r3, 4, 14 /* CC::al */, $noreg, $noreg478 renamable $r3, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg479 renamable $lr = nuw nsw t2ADDrs killed renamable $r3, killed renamable $lr, 19, 14 /* CC::al */, $noreg, $noreg480 $lr = t2DoLoopStart renamable $lr481 482 bb.6 (align 4):483 successors: %bb.6(0x7c000000), %bb.8(0x04000000)484 liveins: $lr, $q0, $r0, $r1, $r2485 486 renamable $lr = t2LoopDec killed renamable $lr, 1487 renamable $vpr = MVE_VCTP32 renamable $r1, 0, $noreg, $noreg488 renamable $r1, dead $cpsr = tSUBi8 killed renamable $r1, 4, 14 /* CC::al */, $noreg489 MVE_VPST 8, implicit $vpr490 renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 1, renamable $vpr, $noreg491 MVE_VPST 4, implicit $vpr492 renamable $q1 = MVE_VORR killed renamable $q1, renamable $q0, 1, renamable $vpr, $noreg, renamable $q1493 renamable $vpr = MVE_VCMPf32 renamable $q1, renamable $q0, 12, 1, killed renamable $vpr, $noreg494 renamable $q0 = MVE_VORR renamable $q1, renamable $q1, 0, $noreg, $noreg, killed renamable $q0495 MVE_VPST 8, implicit $vpr496 renamable $q0 = MVE_VORR killed renamable $q1, renamable $q1, 1, killed renamable $vpr, $noreg, killed renamable $q0497 t2LoopEnd renamable $lr, %bb.6, implicit-def dead $cpsr498 tB %bb.8, 14 /* CC::al */, $noreg499 500 bb.8:501 liveins: $r2, $r12, $q0502 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc503 504 bb.9 (align 4):505 CONSTPOOL_ENTRY 0, %const.0, 4506 507...508---509name: no_combination_vcmp_already_merged510alignment: 8511exposesReturnsTwice: false512legalized: false513regBankSelected: false514selected: false515failedISel: false516tracksRegLiveness: true517hasWinCFI: false518registers: []519liveins:520 - { reg: '$r0', virtual-reg: '' }521 - { reg: '$r1', virtual-reg: '' }522 - { reg: '$r2', virtual-reg: '' }523frameInfo:524fixedStack: []525stack:526 - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,527 stack-id: default, callee-saved-register: '$lr', callee-saved-restored: false,528 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }529 - { id: 1, name: '', type: spill-slot, offset: -8, size: 4, alignment: 4,530 stack-id: default, callee-saved-register: '$r7', callee-saved-restored: true,531 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }532callSites: []533debugValueSubstitutions: []534constants:535 - id: 0536 value: float 0xC7EFFFFFE0000000537 alignment: 4538 isTargetSpecific: false539machineFunctionInfo: {}540body: |541 ; CHECK-LABEL: name: no_combination_vcmp_already_merged542 ; CHECK: bb.0:543 ; CHECK-NEXT: successors: %bb.1(0x80000000)544 ; CHECK-NEXT: liveins: $q2, $r0, $r1545 ; CHECK-NEXT: {{ $}}546 ; CHECK-NEXT: renamable $q0 = MVE_VDUP32 renamable $r1, 0, $noreg, $noreg, undef renamable $q0547 ; CHECK-NEXT: $lr = MVE_DLSTP_32 killed renamable $r1548 ; CHECK-NEXT: {{ $}}549 ; CHECK-NEXT: bb.1 (align 4):550 ; CHECK-NEXT: successors: %bb.1(0x7c000000), %bb.2(0x04000000)551 ; CHECK-NEXT: liveins: $lr, $q0, $q2, $r0552 ; CHECK-NEXT: {{ $}}553 ; CHECK-NEXT: renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 0, $noreg, $noreg554 ; CHECK-NEXT: MVE_VPTv4f32 8, renamable $q1, renamable $q0, 12, implicit-def $vpr555 ; CHECK-NEXT: renamable $q2 = MVE_VORR renamable $q1, renamable $q1, 1, renamable $vpr, $noreg, killed renamable $q2556 ; CHECK-NEXT: MVE_VPST 8, implicit $vpr557 ; CHECK-NEXT: dead renamable $q1 = MVE_VORR killed renamable $q1, renamable $q0, 1, killed renamable $vpr, $noreg, killed renamable $q1558 ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.1559 ; CHECK-NEXT: {{ $}}560 ; CHECK-NEXT: bb.2:561 ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc562 ; CHECK-NEXT: {{ $}}563 ; CHECK-NEXT: bb.3 (align 4):564 ; CHECK-NEXT: CONSTPOOL_ENTRY 0, %const.0, 4565 bb.0:566 successors: %bb.6(0x80000000)567 liveins: $r0, $r1, $r2568 569 renamable $r3, dead $cpsr = nuw nsw tADDi3 renamable $r1, 3, 14 /* CC::al */, $noreg570 renamable $q0 = MVE_VDUP32 killed renamable $r1, 0, $noreg, $noreg, undef renamable $q0571 renamable $r3 = t2ANDri killed renamable $r3, 4, 14 /* CC::al */, $noreg, $noreg572 renamable $lr = t2SUBri killed renamable $r3, 4, 14 /* CC::al */, $noreg, $noreg573 renamable $r3, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg574 renamable $lr = nuw nsw t2ADDrs killed renamable $r3, killed renamable $lr, 19, 14 /* CC::al */, $noreg, $noreg575 $lr = t2DoLoopStart renamable $lr576 577 bb.6 (align 4):578 successors: %bb.6(0x7c000000), %bb.8(0x04000000)579 liveins: $lr, $q0, $r0, $r1, $r2, $q2580 581 renamable $lr = t2LoopDec killed renamable $lr, 1582 renamable $vpr = MVE_VCTP32 renamable $r1, 0, $noreg, $noreg583 renamable $r1, dead $cpsr = tSUBi8 killed renamable $r1, 4, 14 /* CC::al */, $noreg584 MVE_VPST 8, implicit $vpr585 renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 1, renamable $vpr, $noreg586 MVE_VPST 4, implicit $vpr587 renamable $vpr = MVE_VCMPf32 renamable $q1, renamable $q0, 12, 1, killed renamable $vpr, $noreg588 renamable $q2 = MVE_VORR renamable $q1, renamable $q1, 1, renamable $vpr, $noreg, killed renamable $q2589 MVE_VPST 8, implicit $vpr590 renamable $q1 = MVE_VORR killed renamable $q1, renamable $q0, 1, renamable $vpr, $noreg, renamable $q1591 t2LoopEnd renamable $lr, %bb.6, implicit-def dead $cpsr592 tB %bb.8, 14 /* CC::al */, $noreg593 594 bb.8:595 liveins: $r2, $r12, $q0596 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc597 598 bb.9 (align 4):599 CONSTPOOL_ENTRY 0, %const.0, 4600 601...602