diff --git a/llvm/lib/CodeGen/LivePhysRegs.cpp b/llvm/lib/CodeGen/LivePhysRegs.cpp index 96380d4084825..20b517b1e1a5c 100644 --- a/llvm/lib/CodeGen/LivePhysRegs.cpp +++ b/llvm/lib/CodeGen/LivePhysRegs.cpp @@ -214,17 +214,15 @@ void LivePhysRegs::addLiveOutsNoPristines(const MachineBasicBlock &MBB) { // Return blocks are a special case because we currently don't mark up // return instructions completely: specifically, there is no explicit // use for callee-saved registers. So we add all callee saved registers - // that are saved and restored (somewhere). This does not include - // callee saved registers that are unused and hence not saved and - // restored; they are called pristine. + // This does include callee saved registers that may be only used by the + // terminator instruction and unused otherwise. // FIXME: PEI should add explicit markings to return instructions // instead of implicitly handling them here. const MachineFunction &MF = *MBB.getParent(); const MachineFrameInfo &MFI = MF.getFrameInfo(); if (MFI.isCalleeSavedInfoValid()) { for (const CalleeSavedInfo &Info : MFI.getCalleeSavedInfo()) - if (Info.isRestored()) - addReg(Info.getReg()); + addReg(Info.getReg()); } } } diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/add_reduce.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/add_reduce.mir index 19147a2a2e92b..0b05a0be24aeb 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/add_reduce.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/add_reduce.mir @@ -161,7 +161,7 @@ body: | ; CHECK-NEXT: renamable $r12 = t2LDRi12 $sp, 48, 14 /* CC::al */, $noreg :: (load (s32) from %fixed-stack.6, align 8) ; CHECK-NEXT: renamable $r5 = t2ADDri renamable $r12, 3, 14 /* CC::al */, $noreg, $noreg ; CHECK-NEXT: renamable $r7, dead $cpsr = tLSRri killed renamable $r5, 2, 14 /* CC::al */, $noreg - ; CHECK-NEXT: dead $lr = t2WLS renamable $r7, %bb.3 + ; CHECK-NEXT: $lr = t2WLS renamable $r7, %bb.3 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.1.for.body.lr.ph: ; CHECK-NEXT: successors: %bb.2(0x80000000) @@ -195,9 +195,11 @@ body: | ; CHECK-NEXT: renamable $q2 = MVE_VMINu32 killed renamable $q2, renamable $q0, 1, killed renamable $vpr, $noreg, undef renamable $q2 ; CHECK-NEXT: renamable $r6 = MVE_VADDVu32no_acc killed renamable $q2, 0, $noreg, $noreg ; CHECK-NEXT: early-clobber renamable $r5 = t2STR_PRE killed renamable $r6, killed renamable $r5, 4, 14 /* CC::al */, $noreg :: (store (s32) into %ir.scevgep2) - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $r0, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg ; CHECK-NEXT: $sp = t2LDMIA_RET $sp, 14 /* CC::al */, $noreg, def $r4, def $r5, def $r6, def $r7, def $r8, def $pc, implicit killed $r0 bb.0.entry: diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/ctlz-non-zeros.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/ctlz-non-zeros.mir index e04e6e8cdc3dc..911742e5ee011 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/ctlz-non-zeros.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/ctlz-non-zeros.mir @@ -161,7 +161,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r4 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r4, -8 @@ -192,9 +192,11 @@ body: | ; CHECK-NEXT: renamable $q1 = MVE_VQSHRUNs16th killed renamable $q1, killed renamable $q0, 1, 0, $noreg, $noreg ; CHECK-NEXT: MVE_VPST 8, implicit $vpr ; CHECK-NEXT: renamable $r2 = MVE_VSTRHU16_post killed renamable $q1, killed renamable $r2, 16, 1, killed renamable $vpr, $noreg :: (store (s128) into %ir.addr.c, align 2) - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $pc bb.0.entry: successors: %bb.1(0x80000000) @@ -274,7 +276,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r4, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -304,10 +306,10 @@ body: | ; CHECK-NEXT: renamable $q1 = MVE_VQSHRUNs32th killed renamable $q1, killed renamable $q0, 3, 0, $noreg, $noreg ; CHECK-NEXT: MVE_VPST 8, implicit $vpr ; CHECK-NEXT: renamable $r2 = MVE_VSTRWU32_post killed renamable $q1, killed renamable $r2, 16, 1, killed renamable $vpr, $noreg :: (store (s128) into %ir.addr.c, align 4) - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: - ; CHECK-NEXT: liveins: $r4 + ; CHECK-NEXT: liveins: $lr, $r4 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def dead $r7, def $pc bb.0.entry: @@ -387,7 +389,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r4, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -417,10 +419,10 @@ body: | ; CHECK-NEXT: renamable $q0 = MVE_VQSHRUNs32th killed renamable $q0, killed renamable $q1, 3, 0, $noreg, $noreg ; CHECK-NEXT: MVE_VPST 8, implicit $vpr ; CHECK-NEXT: renamable $r2 = MVE_VSTRWU32_post killed renamable $q0, killed renamable $r2, 16, 1, killed renamable $vpr, $noreg :: (store (s128) into %ir.addr.c, align 4) - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: - ; CHECK-NEXT: liveins: $r4 + ; CHECK-NEXT: liveins: $lr, $r4 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def dead $r7, def $pc bb.0.entry: diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/disjoint-vcmp.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/disjoint-vcmp.mir index d8c9aeda0c9e5..b302971cc3358 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/disjoint-vcmp.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/disjoint-vcmp.mir @@ -123,7 +123,7 @@ body: | ; CHECK-NEXT: successors: %bb.3(0x30000000), %bb.1(0x50000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r4, $r5, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 16 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -169,6 +169,8 @@ body: | ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.bb27: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $sp = tADDspi $sp, 1, 14 /* CC::al */, $noreg ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r7, def $pc bb.0.bb: diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-remove-loop-update.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-remove-loop-update.mir index 7f046a376ddba..ff2808bc3939f 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-remove-loop-update.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-remove-loop-update.mir @@ -107,7 +107,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -143,6 +143,8 @@ body: | ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x80000000) diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/end-positive-offset.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/end-positive-offset.mir index 9ebb714bc4eea..2c19c414b44c2 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/end-positive-offset.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/end-positive-offset.mir @@ -154,7 +154,7 @@ body: | ; CHECK-NEXT: $r1 = tLDRspi $sp, 0, 14 /* CC::al */, $noreg :: (load (s32) from %stack.7) ; CHECK-NEXT: $lr = tMOVr killed $r1, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $lr = t2SUBri killed renamable $lr, 1, 14 /* CC::al */, $noreg, def $cpsr - ; CHECK-NEXT: $r12 = tMOVr killed $lr, 14 /* CC::al */, $noreg + ; CHECK-NEXT: $r12 = tMOVr $lr, 14 /* CC::al */, $noreg ; CHECK-NEXT: tSTRspi killed $r0, $sp, 7, 14 /* CC::al */, $noreg :: (store (s32) into %stack.0) ; CHECK-NEXT: tSTRspi killed $r2, $sp, 6, 14 /* CC::al */, $noreg :: (store (s32) into %stack.1) ; CHECK-NEXT: tSTRspi killed $r3, $sp, 5, 14 /* CC::al */, $noreg :: (store (s32) into %stack.2) @@ -163,6 +163,8 @@ body: | ; CHECK-NEXT: tB %bb.2, 14 /* CC::al */, $noreg ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.2.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $sp = tADDspi $sp, 8, 14 /* CC::al */, $noreg ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc ; CHECK-NEXT: {{ $}} diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/extract-element.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/extract-element.mir index 44bcaba4e3fd9..4fef108a26c03 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/extract-element.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/extract-element.mir @@ -135,7 +135,7 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.middle.block: - ; CHECK-NEXT: liveins: $q0 + ; CHECK-NEXT: liveins: $lr, $q0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $r0 = VMOVRS killed $s3, 14 /* CC::al */, $noreg, implicit killed $q0 ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit killed $r0 diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-16.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-16.mir index b7275f8b5ab6a..0bf988139d801 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-16.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-16.mir @@ -99,7 +99,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -132,6 +132,8 @@ body: | ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x80000000) diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-32.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-32.mir index a8cbeb13a01dd..ef35b3d2e2b09 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-32.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-32.mir @@ -107,7 +107,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -140,6 +140,8 @@ body: | ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x80000000) diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-8.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-8.mir index 4d892751115de..80f91d6d38f6f 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-8.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-8.mir @@ -100,7 +100,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -133,6 +133,8 @@ body: | ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x80000000) diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-1.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-1.mir index d364b56749cb7..71253c706216f 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-1.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-1.mir @@ -133,7 +133,7 @@ body: | ; CHECK-NEXT: successors: %bb.3(0x30000000), %bb.1(0x50000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r4, $r5, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 16 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -177,9 +177,11 @@ body: | ; CHECK-NEXT: renamable $vpr = MVE_VPNOT killed renamable $vpr, 0, $noreg, $noreg ; CHECK-NEXT: MVE_VPST 8, implicit $vpr ; CHECK-NEXT: renamable $r5 = MVE_VSTRWU32_post renamable $q0, killed renamable $r5, 16, 1, killed renamable $vpr, $noreg :: (store (s128) into %ir.lsr.cast.e, align 4) - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r7, def $pc bb.0.entry: successors: %bb.3(0x30000000), %bb.1(0x50000000) diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-2.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-2.mir index 466feba059dc0..d5cde58d5ccae 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-2.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-2.mir @@ -133,7 +133,7 @@ body: | ; CHECK-NEXT: successors: %bb.3(0x30000000), %bb.1(0x50000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r4, $r5, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 16 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -177,9 +177,11 @@ body: | ; CHECK-NEXT: MVE_VPST 4, implicit $vpr ; CHECK-NEXT: renamable $vpr = MVE_VPNOT killed renamable $vpr, 0, killed renamable $vpr, $noreg ; CHECK-NEXT: renamable $r5 = MVE_VSTRWU32_post renamable $q0, killed renamable $r5, 16, 1, killed renamable $vpr, $noreg :: (store (s128) into %ir.lsr.cast.e, align 4) - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r7, def $pc bb.0.entry: successors: %bb.3(0x30000000), %bb.1(0x50000000) diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-3.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-3.mir index 699629049a16e..ab231129b3fd6 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-3.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-3.mir @@ -133,7 +133,7 @@ body: | ; CHECK-NEXT: successors: %bb.3(0x30000000), %bb.1(0x50000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r4, $r5, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 16 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -177,9 +177,11 @@ body: | ; CHECK-NEXT: renamable $q0 = MVE_VADDi32 killed renamable $q1, killed renamable $q0, 0, renamable $vpr, $noreg, undef renamable $q0 ; CHECK-NEXT: renamable $r5 = MVE_VSTRWU32_post renamable $q0, killed renamable $r5, 16, 1, renamable $vpr, $noreg :: (store (s128) into %ir.lsr.cast.e, align 4) ; CHECK-NEXT: dead renamable $vpr = MVE_VPNOT killed renamable $vpr, 0, $noreg, $noreg - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r7, def $pc bb.0.entry: successors: %bb.3(0x30000000), %bb.1(0x50000000) diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpsel-1.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpsel-1.mir index 195154c61083f..d92abc49e2943 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpsel-1.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpsel-1.mir @@ -173,10 +173,10 @@ body: | ; CHECK-NEXT: renamable $q1 = MVE_VADDi32 killed renamable $q1, renamable $q0, 0, $noreg, $noreg, undef renamable $q1 ; CHECK-NEXT: renamable $r12 = t2SUBri killed renamable $r12, 4, 14 /* CC::al */, $noreg, $noreg ; CHECK-NEXT: renamable $q0 = MVE_VPSEL killed renamable $q1, killed renamable $q0, 0, killed renamable $vpr, $noreg - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.middle.block: - ; CHECK-NEXT: liveins: $q0 + ; CHECK-NEXT: liveins: $lr, $q0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $r0 = MVE_VADDVu32no_acc killed renamable $q0, 0, $noreg, $noreg ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r7, def $pc, implicit killed $r0 diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpsel-2.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpsel-2.mir index 724567f86bdea..651ef1d03d05e 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpsel-2.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpsel-2.mir @@ -174,10 +174,10 @@ body: | ; CHECK-NEXT: renamable $q1 = MVE_VADDi32 killed renamable $q1, renamable $q0, 0, $noreg, $noreg, undef renamable $q1 ; CHECK-NEXT: renamable $r12 = t2SUBri killed renamable $r12, 4, 14 /* CC::al */, $noreg, $noreg ; CHECK-NEXT: renamable $q0 = MVE_VPSEL killed renamable $q1, killed renamable $q0, 0, killed renamable $vpr, $noreg - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.middle.block: - ; CHECK-NEXT: liveins: $q0 + ; CHECK-NEXT: liveins: $lr, $q0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $r0 = MVE_VADDVu32no_acc killed renamable $q0, 0, $noreg, $noreg ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r7, def $pc, implicit killed $r0 diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/invariant-qreg.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/invariant-qreg.mir index 7b19827a3c31f..51cf216ea7c3c 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/invariant-qreg.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/invariant-qreg.mir @@ -158,7 +158,7 @@ body: | ; CHECK-NEXT: successors: %bb.3(0x30000000), %bb.1(0x50000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -184,7 +184,7 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: - ; CHECK-NEXT: liveins: $q0 + ; CHECK-NEXT: liveins: $lr, $q0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $r0, renamable $r1 = VMOVRRD renamable $d0, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r2, renamable $r3 = VMOVRRD killed renamable $d1, 14 /* CC::al */, $noreg, implicit killed $q0 @@ -303,10 +303,10 @@ body: | ; CHECK-NEXT: MVE_VPST 8, implicit $vpr ; CHECK-NEXT: renamable $r0, renamable $q1 = MVE_VLDRHS32_post killed renamable $r0, 8, 1, killed renamable $vpr, $noreg :: (load (s64) from %ir.lsr.iv17, align 2) ; CHECK-NEXT: renamable $r12 = MVE_VMLADAVu32 renamable $q0, killed renamable $q1, 0, $noreg, $noreg - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: - ; CHECK-NEXT: liveins: $r12 + ; CHECK-NEXT: liveins: $lr, $r12 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $r0 = tMOVr killed $r12, 14 /* CC::al */, $noreg ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit killed $r0 @@ -430,10 +430,10 @@ body: | ; CHECK-NEXT: renamable $r1, dead $cpsr = nsw tSUBi8 killed $r1, 1, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 4, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r12 = MVE_VADDVu32no_acc killed renamable $q1, 0, $noreg, $noreg - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: - ; CHECK-NEXT: liveins: $r12 + ; CHECK-NEXT: liveins: $lr, $r12 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $r0 = tMOVr killed $r12, 14 /* CC::al */, $noreg ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit killed $r0 diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-chain-store.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-chain-store.mir index f8414329ad58c..bea57987cdc22 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-chain-store.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-chain-store.mir @@ -151,9 +151,11 @@ body: | ; CHECK-NEXT: renamable $r0, renamable $q0 = MVE_VLDRWU32_post killed renamable $r0, 16, 0, $noreg, $noreg :: (load (s128) from %ir.pSrc.addr.02, align 4) ; CHECK-NEXT: renamable $q0 = MVE_VMULf32 killed renamable $q0, killed renamable $q0, 0, $noreg, $noreg, undef renamable $q0 ; CHECK-NEXT: renamable $r1 = MVE_VSTRWU32_post killed renamable $q0, killed renamable $r1, 16, 0, killed $noreg, $noreg :: (store (s128) into %ir.pDst.addr.01, align 4) - ; CHECK-NEXT: dead $lr = MVE_LETP killed renamable $lr, %bb.1 + ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.1 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.2.do.end: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x80000000) @@ -256,9 +258,11 @@ body: | ; CHECK-NEXT: renamable $r0, renamable $q0 = MVE_VLDRWU32_post killed renamable $r0, 16, 0, $noreg, $noreg :: (load (s128) from %ir.pSrc.addr.02, align 4) ; CHECK-NEXT: renamable $q0 = MVE_VMULf32 killed renamable $q0, killed renamable $q0, 0, $noreg, $noreg, undef renamable $q0 ; CHECK-NEXT: renamable $r1 = MVE_VSTRWU32_post killed renamable $q0, killed renamable $r1, 16, 0, killed $noreg, $noreg :: (store (s128) into %ir.pDst.addr.01, align 4) - ; CHECK-NEXT: dead $lr = MVE_LETP killed renamable $lr, %bb.1 + ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.1 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.2.do.end: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x80000000) diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-mov.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-mov.mir index 31e88ea49a1a0..1056619977fe9 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-mov.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-mov.mir @@ -111,7 +111,7 @@ body: | ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.5 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.6: - ; CHECK-NEXT: liveins: $q0, $r1, $r2 + ; CHECK-NEXT: liveins: $lr, $q0, $r1, $r2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $s4 = nnan ninf nsz VADDS renamable $s0, renamable $s1, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r0, dead $cpsr = tSUBi3 killed renamable $r1, 1, 14 /* CC::al */, $noreg diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/iv-two-vcmp-reordered.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/iv-two-vcmp-reordered.mir index d088bfaaa7d5c..319583d541c09 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/iv-two-vcmp-reordered.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/iv-two-vcmp-reordered.mir @@ -100,7 +100,7 @@ body: | ; CHECK-NEXT: successors: %bb.3(0x30000000), %bb.1(0x50000000) ; CHECK-NEXT: liveins: $lr, $d8, $d9, $r0, $r1, $r2, $r4 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r4, -8 @@ -142,9 +142,11 @@ body: | ; CHECK-NEXT: renamable $r1, renamable $q4 = MVE_VLDRWU32_post killed renamable $r1, 16, 1, renamable $vpr, $noreg :: (load (s128) from %ir.lsr.iv35, align 4) ; CHECK-NEXT: renamable $r0 = MVE_VSTRWU32_post killed renamable $q4, killed renamable $r0, 16, 1, killed renamable $vpr, $noreg :: (store (s128) into %ir.lsr.iv12, align 4) ; CHECK-NEXT: renamable $q0 = MVE_VADDi32 killed renamable $q0, renamable $q3, 0, $noreg, $noreg, undef renamable $q0 - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $sp = frame-destroy VLDMDIA_UPD $sp, 14 /* CC::al */, $noreg, def $d8, def $d9 ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $pc ; CHECK-NEXT: {{ $}} diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/iv-two-vcmp.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/iv-two-vcmp.mir index f341d128b50ca..f8f3912eca2b8 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/iv-two-vcmp.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/iv-two-vcmp.mir @@ -97,7 +97,7 @@ body: | ; CHECK-NEXT: successors: %bb.3(0x30000000), %bb.1(0x50000000) ; CHECK-NEXT: liveins: $lr, $d8, $d9, $r0, $r1, $r2, $r4 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r4, -8 @@ -139,9 +139,11 @@ body: | ; CHECK-NEXT: renamable $r1, renamable $q4 = MVE_VLDRWU32_post killed renamable $r1, 16, 1, renamable $vpr, $noreg :: (load (s128) from %ir.lsr.iv35, align 4) ; CHECK-NEXT: renamable $r0 = MVE_VSTRWU32_post killed renamable $q4, killed renamable $r0, 16, 1, killed renamable $vpr, $noreg :: (store (s128) into %ir.lsr.iv12, align 4) ; CHECK-NEXT: renamable $q0 = MVE_VADDi32 killed renamable $q0, renamable $q3, 0, $noreg, $noreg, undef renamable $q0 - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $sp = frame-destroy VLDMDIA_UPD $sp, 14 /* CC::al */, $noreg, def $d8, def $d9 ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $pc ; CHECK-NEXT: {{ $}} diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/iv-vcmp.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/iv-vcmp.mir index 541c518e0c3bb..24550c6e1a134 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/iv-vcmp.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/iv-vcmp.mir @@ -89,7 +89,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -121,6 +121,8 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.4 (align 16): diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/livereg-no-loop-def.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/livereg-no-loop-def.mir index 40cb3a00d61b8..6a3f188997679 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/livereg-no-loop-def.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/livereg-no-loop-def.mir @@ -89,7 +89,7 @@ body: | ; CHECK-NEXT: successors: %bb.3(0x30000000), %bb.1(0x50000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r4 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r4, -8 @@ -116,7 +116,7 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: - ; CHECK-NEXT: liveins: $q0 + ; CHECK-NEXT: liveins: $lr, $q0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $r0, renamable $r1 = VMOVRRD renamable $d0, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r2, renamable $r3 = VMOVRRD killed renamable $d1, 14 /* CC::al */, $noreg, implicit killed $q0 diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/massive.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/massive.mir index 9448a1ab00d3e..12af76a743aec 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/massive.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/massive.mir @@ -106,7 +106,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -138,6 +138,8 @@ body: | ; CHECK-NEXT: tB %bb.3, 14 /* CC::al */, $noreg ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x80000000) diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-after-dlstp.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-after-dlstp.mir index 57101b15243fb..7a247ee337a80 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-after-dlstp.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-after-dlstp.mir @@ -190,7 +190,7 @@ body: | ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.3 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.4.do.end: - ; CHECK-NEXT: liveins: $q0, $r1, $r2 + ; CHECK-NEXT: liveins: $lr, $q0, $r1, $r2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $r0, dead $cpsr = tSUBi3 killed renamable $r1, 1, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $s0 = nnan ninf nsz arcp contract afn reassoc VADDS killed renamable $s3, killed renamable $s3, 14 /* CC::al */, $noreg, implicit killed $q0 diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-lr-terminator.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-lr-terminator.mir index e0c79c6401439..83eeea4d75df6 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-lr-terminator.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-lr-terminator.mir @@ -102,7 +102,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r4 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r4, -8 @@ -133,6 +133,8 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $pc bb.0.entry: successors: %bb.1(0x80000000) diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/move-def-before-start.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/move-def-before-start.mir index c22660273158c..149c7be92f70f 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/move-def-before-start.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/move-def-before-start.mir @@ -107,7 +107,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r4 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r4, -8 @@ -149,6 +149,8 @@ body: | ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $pc bb.0.entry: successors: %bb.1(0x80000000) diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/move-start-after-def.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/move-start-after-def.mir index 255d4756abd95..23d9f39e7a56a 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/move-start-after-def.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/move-start-after-def.mir @@ -107,7 +107,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r4 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r4, -8 @@ -149,6 +149,8 @@ body: | ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $pc bb.0.entry: successors: %bb.1(0x80000000) diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/multi-block-cond-iter-count.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/multi-block-cond-iter-count.mir index 199e222ccf6aa..270330a6bcec7 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/multi-block-cond-iter-count.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/multi-block-cond-iter-count.mir @@ -195,7 +195,7 @@ body: | ; CHECK-NEXT: successors: %bb.4(0x30000000), %bb.1(0x50000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r8, $r9, $r10 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r6, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r6, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 20 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -248,6 +248,8 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.3 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.4 (%ir-block.64): + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $sp = t2LDMIA_UPD $sp, 14 /* CC::al */, $noreg, def $r8, def $r9, def $r10 ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r6, def $r7, def $pc ; CHECK-NEXT: {{ $}} @@ -305,7 +307,7 @@ body: | ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.9 (%ir-block.49): ; CHECK-NEXT: successors: %bb.4(0x40000000), %bb.10(0x40000000) - ; CHECK-NEXT: liveins: $r0, $r1, $r3, $r12 + ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r3, $r12 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: t2CMPri killed renamable $r12, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr ; CHECK-NEXT: tBcc %bb.4, 0 /* CC::eq */, killed $cpsr diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/multi-cond-iter-count.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/multi-cond-iter-count.mir index be255a0ee10de..ce6f4d52ad9f3 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/multi-cond-iter-count.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/multi-cond-iter-count.mir @@ -81,7 +81,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -117,6 +117,8 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3 (%ir-block.34): + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0 (%ir-block.4): successors: %bb.1(0x80000000) diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/multiblock-massive.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/multiblock-massive.mir index 06dae765c8e33..de5b2f12ea97d 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/multiblock-massive.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/multiblock-massive.mir @@ -106,7 +106,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r4 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r4, -8 @@ -155,6 +155,8 @@ body: | ; CHECK-NEXT: t2B %bb.2, 14 /* CC::al */, $noreg ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.5.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $pc bb.0.entry: successors: %bb.1(0x80000000) diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/multiple-do-loops.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/multiple-do-loops.mir index a86eec780b7f4..2b12051e65747 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/multiple-do-loops.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/multiple-do-loops.mir @@ -347,7 +347,7 @@ body: | ; CHECK-NEXT: successors: %bb.6(0x30000000), %bb.1(0x50000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r8 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r6, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r6, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 20 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -383,7 +383,7 @@ body: | ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond4.preheader: ; CHECK-NEXT: successors: %bb.6(0x30000000), %bb.4(0x50000000) - ; CHECK-NEXT: liveins: $r0, $r1, $r2, $r3 + ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tCBZ $r3, %bb.6 ; CHECK-NEXT: {{ $}} @@ -408,6 +408,8 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.5 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.6.for.cond.cleanup6: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $r8, $sp = t2LDR_POST $sp, 4, 14 /* CC::al */, $noreg ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r6, def $r7, def $pc bb.0.entry: @@ -562,7 +564,7 @@ body: | ; CHECK-NEXT: successors: %bb.3(0x30000000), %bb.1(0x50000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r8 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r6, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r6, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 20 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -599,7 +601,7 @@ body: | ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond4.preheader: ; CHECK-NEXT: successors: %bb.6(0x30000000), %bb.4(0x50000000) - ; CHECK-NEXT: liveins: $r0, $r1, $r2, $r3 + ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tCBZ $r3, %bb.6 ; CHECK-NEXT: {{ $}} @@ -624,6 +626,8 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.5 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.6.for.cond.cleanup6: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $r8, $sp = t2LDR_POST $sp, 4, 14 /* CC::al */, $noreg ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r6, def $r7, def $pc bb.0.entry: @@ -788,7 +792,7 @@ body: | ; CHECK-NEXT: successors: %bb.9(0x30000000), %bb.1(0x50000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r8, $r9, $r10 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r6, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r6, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 20 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -826,7 +830,7 @@ body: | ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond4.preheader: ; CHECK-NEXT: successors: %bb.6(0x30000000), %bb.4(0x50000000) - ; CHECK-NEXT: liveins: $r0, $r1, $r2, $r3 + ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $r6, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg ; CHECK-NEXT: t2CMPrs killed renamable $r6, renamable $r3, 11, 14 /* CC::al */, $noreg, implicit-def $cpsr @@ -858,7 +862,7 @@ body: | ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.6.for.cond15.preheader: ; CHECK-NEXT: successors: %bb.9(0x30000000), %bb.7(0x50000000) - ; CHECK-NEXT: liveins: $r0, $r1, $r2, $r3 + ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tCBZ $r3, %bb.9 ; CHECK-NEXT: {{ $}} @@ -883,6 +887,8 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.8 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.9.for.cond.cleanup17: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $sp = t2LDMIA_UPD $sp, 14 /* CC::al */, $noreg, def $r8, def $r9, def $r10 ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r6, def $r7, def $pc bb.0.entry: diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mve-reduct-livein-arg.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mve-reduct-livein-arg.mir index e36a8e2b8c666..fcd3ed930972a 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mve-reduct-livein-arg.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mve-reduct-livein-arg.mir @@ -117,7 +117,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x50000000), %bb.3(0x30000000) ; CHECK-NEXT: liveins: $lr, $q0, $r0, $r1, $r3, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -154,7 +154,7 @@ body: | ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.while.end: - ; CHECK-NEXT: liveins: $r12 + ; CHECK-NEXT: liveins: $lr, $r12 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $r0 = t2UXTB killed renamable $r12, 0, 14 /* CC::al */, $noreg ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit killed $r0 diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-vpsel-liveout.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-vpsel-liveout.mir index 2be11258eb258..65e0384ab8336 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-vpsel-liveout.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-vpsel-liveout.mir @@ -132,7 +132,7 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.middle.block: - ; CHECK-NEXT: liveins: $q0 + ; CHECK-NEXT: liveins: $lr, $q0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $r0 = MVE_VADDVu32no_acc killed renamable $q0, 0, $noreg, $noreg ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit killed $r0 diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/non-masked-store.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/non-masked-store.mir index af80a1f6e80cf..93016dc87b285 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/non-masked-store.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/non-masked-store.mir @@ -102,7 +102,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -136,6 +136,8 @@ body: | ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x80000000) diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/predicated-invariant.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/predicated-invariant.mir index 550602c1a9671..6df273eadabc5 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/predicated-invariant.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/predicated-invariant.mir @@ -106,7 +106,7 @@ body: | ; CHECK-NEXT: renamable $q1 = MVE_VMOVimmi32 0, 0, $noreg, $noreg, undef renamable $q1 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.4.exit: - ; CHECK-NEXT: liveins: $q1 + ; CHECK-NEXT: liveins: $lr, $q1 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $r0, renamable $r1 = VMOVRRD renamable $d2, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r2, renamable $r3 = VMOVRRD killed renamable $d3, 14 /* CC::al */, $noreg, implicit killed $q1 diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/predicated-liveout.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/predicated-liveout.mir index d540ea6f38732..c22738312c32b 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/predicated-liveout.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/predicated-liveout.mir @@ -106,7 +106,7 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.middle.block: - ; CHECK-NEXT: liveins: $q0 + ; CHECK-NEXT: liveins: $lr, $q0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $r0 = MVE_VADDVu16no_acc killed renamable $q0, 0, $noreg, $noreg ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit killed $r0 diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/reductions-vpt-liveout.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/reductions-vpt-liveout.mir index b2979018a4c11..0c3a246ff989c 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/reductions-vpt-liveout.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/reductions-vpt-liveout.mir @@ -348,7 +348,7 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.middle.block: - ; CHECK-NEXT: liveins: $q0 + ; CHECK-NEXT: liveins: $lr, $q0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $r0 = MVE_VADDVu32no_acc killed renamable $q0, 0, $noreg, $noreg ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit killed $r0 @@ -461,7 +461,7 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.middle.block: - ; CHECK-NEXT: liveins: $q0 + ; CHECK-NEXT: liveins: $lr, $q0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $r0 = MVE_VADDVu32no_acc killed renamable $q0, 0, $noreg, $noreg ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit killed $r0 @@ -575,7 +575,7 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.middle.block: - ; CHECK-NEXT: liveins: $q0 + ; CHECK-NEXT: liveins: $lr, $q0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $r0 = MVE_VADDVu32no_acc killed renamable $q0, 0, $noreg, $noreg ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit killed $r0 @@ -688,7 +688,7 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.middle.block: - ; CHECK-NEXT: liveins: $q0 + ; CHECK-NEXT: liveins: $lr, $q0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $r0 = MVE_VADDVu32no_acc killed renamable $q0, 0, $noreg, $noreg ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit killed $r0 @@ -801,7 +801,7 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.middle.block: - ; CHECK-NEXT: liveins: $q0 + ; CHECK-NEXT: liveins: $lr, $q0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $r0 = MVE_VADDVu32no_acc killed renamable $q0, 0, $noreg, $noreg ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit killed $r0 @@ -914,7 +914,7 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.middle.block: - ; CHECK-NEXT: liveins: $q0 + ; CHECK-NEXT: liveins: $lr, $q0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $r0 = MVE_VADDVu32no_acc killed renamable $q0, 0, $noreg, $noreg ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit killed $r0 diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/remove-elem-moves.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/remove-elem-moves.mir index 345fec361c69c..563140d1d7581 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/remove-elem-moves.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/remove-elem-moves.mir @@ -143,7 +143,7 @@ body: | ; CHECK-NEXT: successors: %bb.9(0x30000000), %bb.1(0x50000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r4, $r5, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 16 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -236,6 +236,8 @@ body: | ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.8 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.9.while.end: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r7, def $pc bb.0.entry: successors: %bb.9(0x30000000), %bb.1(0x50000000) diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-while.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-while.mir index 3a55b4905ec56..334525fc5441e 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-while.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-while.mir @@ -100,7 +100,7 @@ body: | ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 - ; CHECK-NEXT: dead $lr = t2SUBri $r3, 0, 14 /* CC::al */, $noreg, def $cpsr + ; CHECK-NEXT: $lr = t2SUBri $r3, 0, 14 /* CC::al */, $noreg, def $cpsr ; CHECK-NEXT: t2Bcc %bb.3, 0 /* CC::eq */, killed $cpsr ; CHECK-NEXT: tB %bb.1, 14 /* CC::al */, $noreg ; CHECK-NEXT: {{ $}} @@ -124,6 +124,8 @@ body: | ; CHECK-NEXT: tB %bb.3, 14 /* CC::al */, $noreg ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.if.end: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x40000000), %bb.3(0x40000000) diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/safe-retaining.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/safe-retaining.mir index 8e172f1553fc8..ef73a12b1f787 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/safe-retaining.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/safe-retaining.mir @@ -119,7 +119,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r4 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r4, -8 @@ -145,9 +145,11 @@ body: | ; CHECK-NEXT: renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 0, $noreg, $noreg :: (load (s128) from %ir.addr.a, align 4) ; CHECK-NEXT: renamable $q1 = MVE_VQSHRUNs32th killed renamable $q1, killed renamable $q0, 3, 0, $noreg, $noreg ; CHECK-NEXT: renamable $r2 = MVE_VSTRWU32_post killed renamable $q1, killed renamable $r2, 16, 0, killed $noreg, $noreg :: (store (s128) into %ir.addr.c, align 4) - ; CHECK-NEXT: dead $lr = MVE_LETP killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $pc bb.0.entry: successors: %bb.1(0x80000000) @@ -225,7 +227,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r4 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r4, -8 @@ -252,9 +254,11 @@ body: | ; CHECK-NEXT: $r0 = tMOVr $r1, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $q1 = MVE_VQSHRUNs16th killed renamable $q1, killed renamable $q0, 1, 0, $noreg, $noreg ; CHECK-NEXT: renamable $r2 = MVE_VSTRHU16_post killed renamable $q1, killed renamable $r2, 16, 0, killed $noreg, $noreg :: (store (s128) into %ir.addr.c, align 2) - ; CHECK-NEXT: dead $lr = MVE_LETP killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $pc bb.0.entry: successors: %bb.1(0x80000000) diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/size-limit.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/size-limit.mir index 8406720f02928..f1676fad44df2 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/size-limit.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/size-limit.mir @@ -106,7 +106,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -136,6 +136,8 @@ body: | ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x80000000) diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/subreg-liveness.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/subreg-liveness.mir index cacadab5e4361..120e6d5ae7126 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/subreg-liveness.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/subreg-liveness.mir @@ -112,7 +112,7 @@ body: | ; CHECK-NEXT: renamable $q0 = MVE_VMOVimmi32 1, 0, $noreg, $noreg, undef renamable $q0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.4.while.end: - ; CHECK-NEXT: liveins: $d0 + ; CHECK-NEXT: liveins: $lr, $d0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $r0, renamable $r1 = VMOVRRD killed renamable $d0, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r0 = nsw tADDhirr killed renamable $r0, killed renamable $r1, 14 /* CC::al */, $noreg diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unpredicated-max.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unpredicated-max.mir index 5610bbc67b8fa..a0ae095ffffe1 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unpredicated-max.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unpredicated-max.mir @@ -76,7 +76,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r5 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r5, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r5, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r5, -8 @@ -111,9 +111,11 @@ body: | ; CHECK-NEXT: early-clobber renamable $r1 = t2STRH_POST killed renamable $r3, killed renamable $r1, 2, 14 /* CC::al */, $noreg :: (store (s16) into %ir.lsr.iv.2) ; CHECK-NEXT: renamable $r5, dead $cpsr = nsw tSUBi8 killed $r5, 1, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 8, 14 /* CC::al */, $noreg - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r5, def $pc bb.0.entry: successors: %bb.1(0x80000000) diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unrolled-and-vector.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unrolled-and-vector.mir index 7abe42b652266..6ff1d20bf65ff 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unrolled-and-vector.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unrolled-and-vector.mir @@ -234,7 +234,7 @@ body: | ; CHECK-NEXT: successors: %bb.11(0x30000000), %bb.1(0x50000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r8, $r9, $r11 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r6, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r6, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 20 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -372,6 +372,8 @@ body: | ; CHECK-NEXT: tBcc %bb.12, 1 /* CC::ne */, killed $cpsr ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.11.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $sp = t2LDMIA_UPD $sp, 14 /* CC::al */, $noreg, def $r8, def $r9, def $r11 ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r6, def $r7, def $pc ; CHECK-NEXT: {{ $}} diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unsafe-retaining.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unsafe-retaining.mir index 8d6125e3459d7..8c1e0beb4398c 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unsafe-retaining.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unsafe-retaining.mir @@ -117,7 +117,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r4 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r4, -8 @@ -148,9 +148,11 @@ body: | ; CHECK-NEXT: renamable $q0 = MVE_VQSHRNbhs32 killed renamable $q0, killed renamable $q1, 15, 0, $noreg, $noreg ; CHECK-NEXT: MVE_VPST 8, implicit $vpr ; CHECK-NEXT: renamable $r2 = MVE_VSTRWU32_post killed renamable $q0, killed renamable $r2, 16, 1, killed renamable $vpr, $noreg :: (store (s128) into %ir.addr.c, align 4) - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $pc bb.0.entry: successors: %bb.1(0x80000000) @@ -229,7 +231,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r4 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r4, -8 @@ -260,9 +262,11 @@ body: | ; CHECK-NEXT: renamable $q1 = MVE_VQSHRUNs32th killed renamable $q1, killed renamable $q0, 3, 0, $noreg, $noreg ; CHECK-NEXT: MVE_VPST 8, implicit $vpr ; CHECK-NEXT: renamable $r2 = MVE_VSTRWU32_post killed renamable $q1, killed renamable $r2, 16, 1, killed renamable $vpr, $noreg :: (store (s128) into %ir.addr.c, align 4) - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $pc bb.0.entry: successors: %bb.1(0x80000000) diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vaddv.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vaddv.mir index 8f50632a3c6f2..182bb404d6a4d 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vaddv.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vaddv.mir @@ -847,7 +847,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -871,6 +871,8 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x80000000) @@ -952,7 +954,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -976,6 +978,8 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x80000000) @@ -1057,7 +1061,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -1081,6 +1085,8 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x80000000) @@ -1183,7 +1189,7 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: - ; CHECK-NEXT: liveins: $r2 + ; CHECK-NEXT: liveins: $lr, $r2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $r0 = tMOVr killed $r2, 14 /* CC::al */, $noreg ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit killed $r0 @@ -1278,7 +1284,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -1311,9 +1317,11 @@ body: | ; CHECK-NEXT: renamable $r3, dead $cpsr = nsw tSUBi8 killed $r3, 1, 14 /* CC::al */, $noreg ; CHECK-NEXT: early-clobber renamable $r1 = t2STR_POST killed renamable $r12, killed renamable $r1, 4, 14 /* CC::al */, $noreg :: (store (s32) into %ir.store.addr) ; CHECK-NEXT: renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 4, 14 /* CC::al */, $noreg - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x80000000) @@ -1426,10 +1434,10 @@ body: | ; CHECK-NEXT: renamable $r3, dead $cpsr = nsw tSUBi8 killed $r3, 1, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r1, dead $cpsr = tSUBi8 killed renamable $r1, 4, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r2 = MVE_VADDVu32acc killed renamable $r2, killed renamable $q0, 0, $noreg, $noreg - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: - ; CHECK-NEXT: liveins: $r2 + ; CHECK-NEXT: liveins: $lr, $r2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $r0 = tMOVr killed $r2, 14 /* CC::al */, $noreg ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit killed $r0 @@ -1525,7 +1533,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -1558,9 +1566,11 @@ body: | ; CHECK-NEXT: renamable $r3, dead $cpsr = nsw tSUBi8 killed $r3, 1, 14 /* CC::al */, $noreg ; CHECK-NEXT: early-clobber renamable $r1 = t2STR_POST killed renamable $r12, killed renamable $r1, 4, 14 /* CC::al */, $noreg :: (store (s32) into %ir.store.addr) ; CHECK-NEXT: renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 4, 14 /* CC::al */, $noreg - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x80000000) @@ -1673,10 +1683,10 @@ body: | ; CHECK-NEXT: renamable $r3, dead $cpsr = nsw tSUBi8 killed $r3, 1, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r1, dead $cpsr = tSUBi8 killed renamable $r1, 4, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r2 = MVE_VADDVu32acc killed renamable $r2, killed renamable $q0, 0, $noreg, $noreg - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: - ; CHECK-NEXT: liveins: $r2 + ; CHECK-NEXT: liveins: $lr, $r2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $r0 = tMOVr killed $r2, 14 /* CC::al */, $noreg ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit killed $r0 @@ -1775,7 +1785,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r4 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r4, -8 @@ -1811,9 +1821,11 @@ body: | ; CHECK-NEXT: renamable $r3 = t2SXTH killed renamable $r12, 0, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 8, 14 /* CC::al */, $noreg ; CHECK-NEXT: early-clobber renamable $r1 = t2STR_POST killed renamable $r3, killed renamable $r1, 4, 14 /* CC::al */, $noreg :: (store (s32) into %ir.store.addr) - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $pc bb.0.entry: @@ -1938,10 +1950,10 @@ body: | ; CHECK-NEXT: renamable $r4, dead $cpsr = nsw tSUBi8 killed $r4, 1, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r3 = t2SXTAH killed renamable $r3, killed renamable $r2, 0, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r1, dead $cpsr = tSUBi8 killed renamable $r1, 8, 14 /* CC::al */, $noreg - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: - ; CHECK-NEXT: liveins: $r3 + ; CHECK-NEXT: liveins: $lr, $r3 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $r0 = tMOVr killed $r3, 14 /* CC::al */, $noreg ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $pc, implicit killed $r0 @@ -2043,7 +2055,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r4 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r4, -8 @@ -2079,9 +2091,11 @@ body: | ; CHECK-NEXT: renamable $r3 = t2UXTH killed renamable $r12, 0, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 8, 14 /* CC::al */, $noreg ; CHECK-NEXT: early-clobber renamable $r1 = t2STR_POST killed renamable $r3, killed renamable $r1, 4, 14 /* CC::al */, $noreg :: (store (s32) into %ir.store.addr) - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $pc bb.0.entry: successors: %bb.1(0x80000000) @@ -2205,10 +2219,10 @@ body: | ; CHECK-NEXT: renamable $r4, dead $cpsr = nsw tSUBi8 killed $r4, 1, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r3 = t2UXTAH killed renamable $r3, killed renamable $r2, 0, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r1, dead $cpsr = tSUBi8 killed renamable $r1, 8, 14 /* CC::al */, $noreg - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: - ; CHECK-NEXT: liveins: $r3 + ; CHECK-NEXT: liveins: $lr, $r3 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $r0 = tMOVr killed $r3, 14 /* CC::al */, $noreg ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $pc, implicit killed $r0 @@ -2310,7 +2324,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r4 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r4, -8 @@ -2346,9 +2360,11 @@ body: | ; CHECK-NEXT: renamable $r3 = t2SXTB killed renamable $r12, 0, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 16, 14 /* CC::al */, $noreg ; CHECK-NEXT: early-clobber renamable $r1 = t2STR_POST killed renamable $r3, killed renamable $r1, 4, 14 /* CC::al */, $noreg :: (store (s32) into %ir.store.addr) - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $pc bb.0.entry: successors: %bb.1(0x80000000) @@ -2472,10 +2488,10 @@ body: | ; CHECK-NEXT: renamable $r4, dead $cpsr = nsw tSUBi8 killed $r4, 1, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r3 = t2SXTAB killed renamable $r3, killed renamable $r2, 0, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r1, dead $cpsr = tSUBi8 killed renamable $r1, 16, 14 /* CC::al */, $noreg - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: - ; CHECK-NEXT: liveins: $r3 + ; CHECK-NEXT: liveins: $lr, $r3 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $r0 = tMOVr killed $r3, 14 /* CC::al */, $noreg ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $pc, implicit killed $r0 @@ -2577,7 +2593,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r4 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r4, -8 @@ -2613,9 +2629,11 @@ body: | ; CHECK-NEXT: renamable $r3 = t2UXTB killed renamable $r12, 0, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 16, 14 /* CC::al */, $noreg ; CHECK-NEXT: early-clobber renamable $r1 = t2STR_POST killed renamable $r3, killed renamable $r1, 4, 14 /* CC::al */, $noreg :: (store (s32) into %ir.store.addr) - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $pc bb.0.entry: successors: %bb.1(0x80000000) @@ -2739,10 +2757,10 @@ body: | ; CHECK-NEXT: renamable $r4, dead $cpsr = nsw tSUBi8 killed $r4, 1, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r3 = t2UXTAB killed renamable $r3, killed renamable $r2, 0, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r1, dead $cpsr = tSUBi8 killed renamable $r1, 16, 14 /* CC::al */, $noreg - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.exit: - ; CHECK-NEXT: liveins: $r3 + ; CHECK-NEXT: liveins: $lr, $r3 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $r0 = tMOVr killed $r3, 14 /* CC::al */, $noreg ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $pc, implicit killed $r0 @@ -2866,7 +2884,7 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.while.end: - ; CHECK-NEXT: liveins: $r12 + ; CHECK-NEXT: liveins: $lr, $r12 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $r0 = tMOVr killed $r12, 14 /* CC::al */, $noreg ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit killed $r0 @@ -2990,7 +3008,7 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.while.end: - ; CHECK-NEXT: liveins: $r3 + ; CHECK-NEXT: liveins: $lr, $r3 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $r0 = tMOVr killed $r3, 14 /* CC::al */, $noreg ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit killed $r0 @@ -3126,7 +3144,7 @@ body: | ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.while.end: - ; CHECK-NEXT: liveins: $r2 + ; CHECK-NEXT: liveins: $lr, $r2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $r0 = tMOVr killed $r2, 14 /* CC::al */, $noreg ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit killed $r0 @@ -3256,10 +3274,10 @@ body: | ; CHECK-NEXT: renamable $r12 = nsw t2SUBri killed $r12, 1, 14 /* CC::al */, $noreg, $noreg ; CHECK-NEXT: renamable $r3, dead $cpsr = nsw tSUBi8 killed renamable $r3, 8, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r2 = MVE_VADDVu32acc killed renamable $r2, killed renamable $q0, 0, $noreg, $noreg - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.while.end: - ; CHECK-NEXT: liveins: $r2 + ; CHECK-NEXT: liveins: $lr, $r2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $r0 = tMOVr killed $r2, 14 /* CC::al */, $noreg ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit killed $r0 diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-add-operand-liveout.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-add-operand-liveout.mir index 8c3ce289a82c2..452fb62a7d3b5 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-add-operand-liveout.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-add-operand-liveout.mir @@ -148,10 +148,10 @@ body: | ; CHECK-NEXT: renamable $r3, dead $cpsr = nsw tSUBi8 killed $r3, 1, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 4, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $q1 = MVE_VADDi32 killed renamable $q1, renamable $q0, 0, $noreg, $noreg, undef renamable $q1 - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.middle.block: - ; CHECK-NEXT: liveins: $q0, $q1, $r2 + ; CHECK-NEXT: liveins: $lr, $q0, $q1, $r2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $r0, dead $cpsr = tADDi3 killed renamable $r2, 4, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $vpr = MVE_VCTP32 killed renamable $r0, 0, $noreg, $noreg diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-in-vpt-2.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-in-vpt-2.mir index a5ddb4bcd84d4..8e536f760d85c 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-in-vpt-2.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-in-vpt-2.mir @@ -107,7 +107,7 @@ body: | ; CHECK-NEXT: successors: %bb.3(0x30000000), %bb.1(0x50000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -141,6 +141,8 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.bb27: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $sp = tADDspi $sp, 1, 14 /* CC::al */, $noreg ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.bb: diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-in-vpt.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-in-vpt.mir index fdbbede4f46e9..c677e7acde2f7 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-in-vpt.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-in-vpt.mir @@ -138,7 +138,7 @@ body: | ; CHECK-NEXT: successors: %bb.3(0x30000000), %bb.1(0x50000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -171,6 +171,8 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.bb27: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $sp = tADDspi $sp, 1, 14 /* CC::al */, $noreg ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.bb: @@ -278,7 +280,7 @@ body: | ; CHECK-NEXT: successors: %bb.3(0x30000000), %bb.1(0x50000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -318,6 +320,8 @@ body: | ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.bb27: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $sp = tADDspi $sp, 1, 14 /* CC::al */, $noreg ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.bb: @@ -426,7 +430,7 @@ body: | ; CHECK-NEXT: successors: %bb.3(0x30000000), %bb.1(0x50000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -466,6 +470,8 @@ body: | ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.bb27: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $sp = tADDspi $sp, 1, 14 /* CC::al */, $noreg ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.bb: @@ -574,7 +580,7 @@ body: | ; CHECK-NEXT: successors: %bb.3(0x30000000), %bb.1(0x50000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -614,6 +620,8 @@ body: | ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.bb27: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $sp = tADDspi $sp, 1, 14 /* CC::al */, $noreg ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.bb: diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subi3.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subi3.mir index 5a449326e5e08..98aab3a360d05 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subi3.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subi3.mir @@ -102,7 +102,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -127,6 +127,8 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x80000000) diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subri.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subri.mir index 09eeab51d2c76..2b827b4cef6e4 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subri.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subri.mir @@ -101,7 +101,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -126,6 +126,8 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x80000000) diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subri12.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subri12.mir index 2869e501e8ea4..f09fd05aaf2f5 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subri12.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subri12.mir @@ -101,7 +101,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -126,6 +126,8 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x80000000) diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vmldava_in_vpt.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vmldava_in_vpt.mir index 8b64249dda386..4a15df79e2bfa 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vmldava_in_vpt.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vmldava_in_vpt.mir @@ -174,7 +174,7 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: - ; CHECK-NEXT: liveins: $r12 + ; CHECK-NEXT: liveins: $lr, $r12 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $r0 = tMOVr killed $r12, 14 /* CC::al */, $noreg ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r6, def $pc, implicit killed $r0 diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vpt-blocks.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vpt-blocks.mir index fb5e327b2cb31..68c87b08bb962 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vpt-blocks.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vpt-blocks.mir @@ -214,7 +214,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -241,6 +241,8 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x80000000) @@ -337,7 +339,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -373,6 +375,8 @@ body: | ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x80000000) @@ -470,7 +474,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -505,6 +509,8 @@ body: | ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x80000000) @@ -601,7 +607,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -628,6 +634,8 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x80000000) @@ -724,7 +732,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -751,6 +759,8 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x80000000) @@ -846,7 +856,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r1, $r2, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -871,6 +881,8 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x80000000) @@ -962,7 +974,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -994,6 +1006,8 @@ body: | ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.for.cond.cleanup: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x80000000) @@ -1058,7 +1072,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x50000000), %bb.3(0x30000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -1090,6 +1104,8 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: $sp = frame-destroy tADDspi $sp, 1, 14 /* CC::al */, $noreg ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit undef $r0 bb.0: @@ -1167,7 +1183,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -1195,6 +1211,8 @@ body: | ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.4 (align 8): @@ -1273,7 +1291,7 @@ body: | ; CHECK-NEXT: successors: %bb.1(0x80000000) ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r7 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, $lr, implicit-def $sp, implicit $sp ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 @@ -1308,6 +1326,8 @@ body: | ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.4 (align 8): diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/while.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/while.mir index bc739dea40ef6..6567a2f00b639 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/while.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/while.mir @@ -97,7 +97,7 @@ body: | ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8 - ; CHECK-NEXT: dead $lr = t2WLS $r2, %bb.3 + ; CHECK-NEXT: $lr = t2WLS $r2, %bb.3 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.1.while.body.preheader: ; CHECK-NEXT: successors: %bb.2(0x80000000) @@ -116,6 +116,8 @@ body: | ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.while.end: + ; CHECK-NEXT: liveins: $lr + ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc bb.0.entry: successors: %bb.1(0x40000000), %bb.3(0x40000000) diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-vctp-opcode-liveout.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-vctp-opcode-liveout.mir index c643723025e99..6063971ab2b29 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-vctp-opcode-liveout.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-vctp-opcode-liveout.mir @@ -154,10 +154,10 @@ body: | ; CHECK-NEXT: renamable $r12 = nsw t2SUBri killed $r12, 1, 14 /* CC::al */, $noreg, $noreg ; CHECK-NEXT: renamable $r3, dead $cpsr = tSUBi8 killed renamable $r3, 4, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $q1 = MVE_VADDi32 killed renamable $q1, renamable $q0, 0, $noreg, $noreg, undef renamable $q1 - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.middle.block: - ; CHECK-NEXT: liveins: $q0, $q1, $r2, $r3 + ; CHECK-NEXT: liveins: $lr, $q0, $q1, $r2, $r3 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $r0, dead $cpsr = tSUBi3 killed renamable $r2, 1, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $q2 = MVE_VDUP32 killed renamable $r0, 0, $noreg, $noreg, undef renamable $q2 diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-vctp-operand-liveout.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-vctp-operand-liveout.mir index 4dad166a58523..38f0561724b7c 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-vctp-operand-liveout.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-vctp-operand-liveout.mir @@ -145,10 +145,10 @@ body: | ; CHECK-NEXT: renamable $r3, dead $cpsr = nsw tSUBi8 killed $r3, 1, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 4, 14 /* CC::al */, $noreg ; CHECK-NEXT: renamable $q1 = MVE_VADDi32 killed renamable $q1, renamable $q0, 0, $noreg, $noreg, undef renamable $q1 - ; CHECK-NEXT: dead $lr = t2LEUpdate killed renamable $lr, %bb.2 + ; CHECK-NEXT: $lr = t2LEUpdate killed renamable $lr, %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.3.middle.block: - ; CHECK-NEXT: liveins: $q0, $q1, $r2 + ; CHECK-NEXT: liveins: $lr, $q0, $q1, $r2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $vpr = MVE_VCTP32 killed renamable $r2, 0, $noreg, $noreg ; CHECK-NEXT: renamable $q0 = MVE_VPSEL killed renamable $q1, killed renamable $q0, 0, killed renamable $vpr, $noreg diff --git a/llvm/test/CodeGen/Thumb2/mve-float16regloops.ll b/llvm/test/CodeGen/Thumb2/mve-float16regloops.ll index 1c95d28b5eed1..a75f445097f28 100644 --- a/llvm/test/CodeGen/Thumb2/mve-float16regloops.ll +++ b/llvm/test/CodeGen/Thumb2/mve-float16regloops.ll @@ -831,6 +831,7 @@ define void @arm_fir_f32_1_4_mve(ptr nocapture readonly %S, ptr nocapture readon ; CHECK-NEXT: mov r0, r1 ; CHECK-NEXT: .LBB15_10: @ %while.end55 ; CHECK-NEXT: ands r1, r9, #3 +; CHECK-NEXT: @ implicit-def: $lr ; CHECK-NEXT: beq .LBB15_12 ; CHECK-NEXT: @ %bb.11: @ %if.then59 ; CHECK-NEXT: vldrw.u32 q0, [r0] diff --git a/llvm/test/CodeGen/Thumb2/mve-float32regloops.ll b/llvm/test/CodeGen/Thumb2/mve-float32regloops.ll index 808626d9a0aeb..c29653e682726 100644 --- a/llvm/test/CodeGen/Thumb2/mve-float32regloops.ll +++ b/llvm/test/CodeGen/Thumb2/mve-float32regloops.ll @@ -822,6 +822,7 @@ define void @arm_fir_f32_1_4_mve(ptr nocapture readonly %S, ptr nocapture readon ; CHECK-NEXT: mov r0, r1 ; CHECK-NEXT: .LBB15_10: @ %while.end55 ; CHECK-NEXT: ands r1, r10, #3 +; CHECK-NEXT: @ implicit-def: $lr ; CHECK-NEXT: beq .LBB15_12 ; CHECK-NEXT: @ %bb.11: @ %if.then59 ; CHECK-NEXT: vldrw.u32 q0, [r0] diff --git a/llvm/test/CodeGen/Thumb2/outlined-fn-may-clobber-lr-in-caller.ll b/llvm/test/CodeGen/Thumb2/outlined-fn-may-clobber-lr-in-caller.ll index d81d008b44bed..34d93c985e720 100644 --- a/llvm/test/CodeGen/Thumb2/outlined-fn-may-clobber-lr-in-caller.ll +++ b/llvm/test/CodeGen/Thumb2/outlined-fn-may-clobber-lr-in-caller.ll @@ -22,11 +22,19 @@ define void @test(ptr nocapture noundef writeonly %arg, i32 noundef %arg1, i8 no ; CHECK-NEXT: cmp r1, #1 ; CHECK-NEXT: bne .LBB0_5 ; CHECK-NEXT: @ %bb.2: @ %bb4 -; CHECK-NEXT: bl OUTLINED_FUNCTION_0 +; CHECK-NEXT: movs r1, #1 +; CHECK-NEXT: strb.w r1, [r0, #36] +; CHECK-NEXT: movs r1, #30 +; CHECK-NEXT: strb.w r1, [r0, #34] +; CHECK-NEXT: add.w r1, r2, r2, lsl #3 ; CHECK-NEXT: ldr r2, .LCPI0_1 ; CHECK-NEXT: b .LBB0_4 ; CHECK-NEXT: .LBB0_3: @ %bb14 -; CHECK-NEXT: bl OUTLINED_FUNCTION_0 +; CHECK-NEXT: movs r1, #1 +; CHECK-NEXT: strb.w r1, [r0, #36] +; CHECK-NEXT: movs r1, #30 +; CHECK-NEXT: strb.w r1, [r0, #34] +; CHECK-NEXT: add.w r1, r2, r2, lsl #3 ; CHECK-NEXT: ldr r2, .LCPI0_0 ; CHECK-NEXT: .LBB0_4: @ %bb4 ; CHECK-NEXT: add.w r1, r2, r1, lsl #2