From 24e4e160cffab014e0adebeb5ab86ba77063155e Mon Sep 17 00:00:00 2001 From: Niwin Anto Date: Mon, 27 Jan 2025 06:53:52 +0000 Subject: [PATCH] [AIE2P] Introduce 32-bit spill pseudos for better code reuse --- llvm/lib/Target/AIE/aie2p/AIE2PInstrInfo.cpp | 16 +++++---- llvm/lib/Target/AIE/aie2p/AIE2PInstrInfo.td | 7 ++++ .../Target/AIE/aie2p/AIE2PRegisterInfo.cpp | 35 ++----------------- .../AIE/GlobalISel/legalize-dyn-stackalloc.ll | 10 +++--- .../AIE/aie2p/eliminate-frame-index.mir | 10 +++--- .../CodeGen/AIE/aie2p/spill/spill-dcreg.mir | 4 +-- .../CodeGen/AIE/aie2p/spill/spill-djreg.mir | 4 +-- .../CodeGen/AIE/aie2p/spill/spill-dnreg.mir | 4 +-- .../CodeGen/AIE/aie2p/spill/spill-mreg.mir | 4 +-- .../spill-reload-dj-high-gpr-pressure.mir | 4 +-- .../spill-reload-m-high-gpr-pressure.mir | 4 +-- .../AIE/aie2p/spill/spill-reload-m.mir | 8 ++--- .../spill/spill-sreg-high-gpr-pressure.mir | 8 ++--- .../CodeGen/AIE/aie2p/spill/spill-sreg.mir | 8 ++--- llvm/test/CodeGen/AIE/dyn-stackalloc.ll | 10 +++--- .../CodeGen/AIE/spill/spill-reload-dc.mir | 12 +++---- .../CodeGen/AIE/spill/spill-reload-dj.mir | 8 ++--- .../CodeGen/AIE/spill/spill-reload-dn.mir | 12 +++---- .../test/CodeGen/AIE/spill/spill-reload-p.mir | 4 +-- 19 files changed, 76 insertions(+), 96 deletions(-) diff --git a/llvm/lib/Target/AIE/aie2p/AIE2PInstrInfo.cpp b/llvm/lib/Target/AIE/aie2p/AIE2PInstrInfo.cpp index 618a5d7833fc..bfbf428376cc 100644 --- a/llvm/lib/Target/AIE/aie2p/AIE2PInstrInfo.cpp +++ b/llvm/lib/Target/AIE/aie2p/AIE2PInstrInfo.cpp @@ -748,7 +748,7 @@ Register AIE2PInstrInfo::isLoadFromStackSlot(const MachineInstr &MI, switch (MI.getOpcode()) { default: return 0; - case AIE2P::LDA_dms_lda_spill: + case AIE2P::LDA_R_SPILL: case AIE2P::LDA_dmv_lda_q_spill: case AIE2P::VLDA_128_dmv_lda_w_spill: case AIE2P::VLDA_dmw_lda_w_spill: @@ -779,7 +779,7 @@ Register AIE2PInstrInfo::isStoreToStackSlot(const MachineInstr &MI, switch (MI.getOpcode()) { default: return 0; - case AIE2P::ST_dms_sts_spill: + case AIE2P::ST_R_SPILL: case AIE2P::ST_dmv_sts_q_spill: case AIE2P::VST_128_dmv_sts_w_spill: case AIE2P::VST_dmw_sts_w_spill: @@ -831,7 +831,7 @@ void AIE2PInstrInfo::storeRegToStackSlot(MachineBasicBlock &MBB, LLVM_DEBUG(dbgs() << "Attempting to Store: " << SrcReg << " To " << FI << "\n"); if (regClassMatches(AIE2P::mSclStRegClass, RC, SrcReg)) { - Opcode = AIE2P::ST_dms_sts_spill; + Opcode = AIE2P::ST_R_SPILL; } else if (regClassMatches(AIE2P::mQQssRegClass, RC, SrcReg)) { Opcode = AIE2P::ST_dmv_sts_q_spill; } else if (regClassMatches(AIE2P::mWsRegClass, RC, SrcReg)) { @@ -872,7 +872,7 @@ void AIE2PInstrInfo::storeRegToStackSlot(MachineBasicBlock &MBB, Register ScratchReg = MRI.createVirtualRegister(&AIE2P::eRRegClass); BuildMI(MBB, I, DL, get(AIE2P::MOV_alu_mv_mv_mv_scl), ScratchReg) .addReg(SrcReg, getKillRegState(IsKill)); - Opcode = AIE2P::ST_dms_sts_spill; + Opcode = AIE2P::ST_R_SPILL; SrcReg = ScratchReg; IsKill = true; } else { @@ -915,7 +915,7 @@ void AIE2PInstrInfo::loadRegFromStackSlot(MachineBasicBlock &MBB, }; RC = constrainRegClass(MBB.getParent()->getRegInfo(), RC, DstReg); if (regClassMatches(AIE2P::mLdaSclRegClass, RC, DstReg)) { - Opcode = AIE2P::LDA_dms_lda_spill; + Opcode = AIE2P::LDA_R_SPILL; } else if (regClassMatches(AIE2P::mQQssRegClass, RC, DstReg)) { Opcode = AIE2P::LDA_dmv_lda_q_spill; } else if (regClassMatches(AIE2P::mWsRegClass, RC, DstReg)) { @@ -952,7 +952,7 @@ void AIE2PInstrInfo::loadRegFromStackSlot(MachineBasicBlock &MBB, // Can't spill these directly. Need to bounce through a GPR. MachineRegisterInfo &MRI = MBB.getParent()->getRegInfo(); Register Reg = MRI.createVirtualRegister(&AIE2P::eRRegClass); - BuildMI(MBB, I, DL, get(AIE2P::LDA_dms_lda_spill), Reg) + BuildMI(MBB, I, DL, get(AIE2P::LDA_R_SPILL), Reg) .addFrameIndex(FI) .addMemOperand(CreateMMO(FI)); BuildMI(MBB, I, DL, get(AIE2P::MOV_alu_mv_mv_mv_scl), DstReg) @@ -979,6 +979,8 @@ AIE2PInstrInfo::getSpillPseudoExpandInfo(const MachineInstr &MI) const { return {}; switch (MI.getOpcode()) { + case AIE2P::ST_R_SPILL: + return {{AIE2P::ST_dms_sts_spill, AIE2P::NoSubRegister, 4}}; case AIE2P::VST_L_SPILL: return {{AIE2P::ST_dms_sts_spill, AIE2P::sub_l_even}, {AIE2P::ST_dms_sts_spill, AIE2P::sub_l_odd}}; @@ -1014,6 +1016,8 @@ AIE2PInstrInfo::getSpillPseudoExpandInfo(const MachineInstr &MI) const { {AIE2P::ST_dms_sts_spill, AIE2P::sub_hi_dim_then_sub_dim_stride}, {AIE2P::ST_dms_sts_spill, AIE2P::sub_hi_dim_then_sub_dim_count}}; + case AIE2P::LDA_R_SPILL: + return {{AIE2P::LDA_dms_lda_spill, AIE2P::NoSubRegister, 4}}; case AIE2P::VLDA_L_SPILL: return {{AIE2P::LDA_dms_lda_spill, AIE2P::sub_l_even}, {AIE2P::LDA_dms_lda_spill, AIE2P::sub_l_odd}}; diff --git a/llvm/lib/Target/AIE/aie2p/AIE2PInstrInfo.td b/llvm/lib/Target/AIE/aie2p/AIE2PInstrInfo.td index f3c4baf3d110..1a6d785713cd 100644 --- a/llvm/lib/Target/AIE/aie2p/AIE2PInstrInfo.td +++ b/llvm/lib/Target/AIE/aie2p/AIE2PInstrInfo.td @@ -145,6 +145,12 @@ foreach instr = [PADDA_3D, PADDB_3D, PADDS_3D] in let hasSideEffects = 0, Uses = [sp] in { let mayLoad = false, mayStore = true in { +// Although it is ideal to avoid the use of ST_R_SPILL and LDA_R_SPILL, +// these instructions are included to simplify handling in certain +// scenarios. For example, they help eliminate the need for custom handling +// in places like eliminateFrameIndex. By including these instructions, we +// can streamline the code and improve readability. +def ST_R_SPILL : Pseudo<(outs ), (ins OP_mSclSt:$src, c12n_step4:$imm), "vst_r_spill", "$src, [sp, $imm]">; def VST_L_SPILL : Pseudo<(outs ), (ins eL:$src, c12n_step4:$imm), "vst_l_spill", "$src, [sp, $imm]">; def VST_Y_SPILL : Pseudo<(outs ), (ins VEC1024:$src, c16n_step64:$imm), "vst_y_spill", "${src}, [sp, $imm]">; def VST_CM_SPILL : Pseudo<(outs ), (ins ACC1024:$src, c16n_step64:$imm), "vst_cm_spill", "${src}, [sp, $imm]">; @@ -156,6 +162,7 @@ def VST_PLFR_SPILL : Pseudo<(outs ), (ins ePSRFLdF:$src, c16n_step64:$imm), "vst } let mayLoad = true, mayStore = false in { +def LDA_R_SPILL : Pseudo<(outs OP_mLdaScl:$dst), (ins c12n_step4:$imm), "vlda_r_spill", "$dst, [sp, $imm]">; def VLDA_L_SPILL : Pseudo<(outs eL:$dst), (ins c12n_step4:$imm), "vlda_l_spill", "$dst, [sp, $imm]">; def VLDA_Y_SPILL : Pseudo<(outs VEC1024:$dst), (ins c16n_step64:$imm), "vlda_y_spill", "${dst}, [sp, $imm]">; def VLDA_CM_SPILL : Pseudo<(outs ACC1024:$dst), (ins c16n_step64:$imm), "vlda_cm_spill", "${dst}, [sp, $imm]">; diff --git a/llvm/lib/Target/AIE/aie2p/AIE2PRegisterInfo.cpp b/llvm/lib/Target/AIE/aie2p/AIE2PRegisterInfo.cpp index 2650f2aaa0c2..c249c7b7bb0a 100644 --- a/llvm/lib/Target/AIE/aie2p/AIE2PRegisterInfo.cpp +++ b/llvm/lib/Target/AIE/aie2p/AIE2PRegisterInfo.cpp @@ -161,39 +161,6 @@ bool AIE2PRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II, // Note that LDB path does not support SPILL instructions - case AIE2P::LDA_dms_lda_spill: - case AIE2P::ST_dms_sts_spill: { - if (isEncodableAsNegativeInt<9, 4>(Offset)) { - MI.getOperand(FIOperandNum).ChangeToImmediate(Offset); - } else { - // TODO: May be we should consider creating PSEUDO instructions for real - // spill instructions, then special handling like here not needed anymore. - Register OffsetReg = - MF.getRegInfo().createVirtualRegister(&AIE2P::eDJRegClass); - Register SPReg = - MF.getRegInfo().createVirtualRegister(&AIE2P::ePRegClass); - - BuildMI(MBB, II, DL, TII->get(AIE2P::MOVXM), OffsetReg).addImm(Offset); - BuildMI(MBB, II, DL, TII->get(TII->getMvSclOpcode()), SPReg) - .addReg(getStackPointerRegister()); - - if (Opc == AIE2P::LDA_dms_lda_spill) { - auto LoadMI = BuildMI(MBB, II, DL, TII->get(AIE2P::LDA_dms_lda_idx)) - .addDef(MI.getOperand(0).getReg()) - .addReg(SPReg) - .addReg(OffsetReg); - LoadMI.cloneMemRefs(MI); - } else { - auto StoreMI = BuildMI(MBB, II, DL, TII->get(AIE2P::ST_dms_sts_idx)) - .addReg(MI.getOperand(0).getReg()) - .addReg(SPReg) - .addReg(OffsetReg); - StoreMI.cloneMemRefs(MI); - } - II->removeFromParent(); - } - return false; - } case AIE2P::LDA_dmv_lda_q_spill: case AIE2P::VLDA_128_dmv_lda_w_spill: case AIE2P::VLDA_dmw_lda_w_spill: @@ -208,6 +175,8 @@ bool AIE2PRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II, case AIE2P::VST_dmx_sts_x_spill: MI.getOperand(FIOperandNum).ChangeToImmediate(Offset); return false; + case AIE2P::LDA_R_SPILL: + case AIE2P::ST_R_SPILL: case AIE2P::VLDA_L_SPILL: case AIE2P::VST_L_SPILL: case AIE2P::LDA_D_SPILL: diff --git a/llvm/test/CodeGen/AIE/GlobalISel/legalize-dyn-stackalloc.ll b/llvm/test/CodeGen/AIE/GlobalISel/legalize-dyn-stackalloc.ll index 9d1c15877307..8da3e5784bbb 100644 --- a/llvm/test/CodeGen/AIE/GlobalISel/legalize-dyn-stackalloc.ll +++ b/llvm/test/CodeGen/AIE/GlobalISel/legalize-dyn-stackalloc.ll @@ -310,14 +310,14 @@ define void @test_huge_stack(i32 noundef %n) #0 { ; AIE2P-NEXT: mov p0, sp ; AIE2P-NEXT: mov p1, sp ; AIE2P-NEXT: st lr, [p0, dj0] // 4-byte Folded Spill -; AIE2P-NEXT: movxm dj0, #-40056 ; AIE2P-NEXT: mov p0, sp +; AIE2P-NEXT: movxm dj0, #-40056 ; AIE2P-NEXT: st r8, [p0, dj0] // 4-byte Folded Spill -; AIE2P-NEXT: movxm dj0, #-40060 ; AIE2P-NEXT: mov p0, sp +; AIE2P-NEXT: movxm dj0, #-40060 ; AIE2P-NEXT: st p6, [p0, dj0] // 4-byte Folded Spill -; AIE2P-NEXT: movxm dj0, #-40064 ; AIE2P-NEXT: mov p0, sp +; AIE2P-NEXT: movxm dj0, #-40064 ; AIE2P-NEXT: st p7, [p0, dj0] // 4-byte Folded Spill ; AIE2P-NEXT: mov p7, sp ; AIE2P-NEXT: padda [p7], m0 @@ -366,11 +366,11 @@ define void @test_huge_stack(i32 noundef %n) #0 { ; AIE2P-NEXT: mov sp, p7 ; AIE2P-NEXT: mov p0, sp ; AIE2P-NEXT: lda p7, [p0, dj0] // 4-byte Folded Reload -; AIE2P-NEXT: movxm dj0, #-40060 ; AIE2P-NEXT: mov p0, sp +; AIE2P-NEXT: movxm dj0, #-40060 ; AIE2P-NEXT: lda p6, [p0, dj0] // 4-byte Folded Reload -; AIE2P-NEXT: movxm dj0, #-40056 ; AIE2P-NEXT: mov p0, sp +; AIE2P-NEXT: movxm dj0, #-40056 ; AIE2P-NEXT: lda r8, [p0, dj0] // 4-byte Folded Reload ; AIE2P-NEXT: mov p0, sp ; AIE2P-NEXT: movxm dj0, #-40052 diff --git a/llvm/test/CodeGen/AIE/aie2p/eliminate-frame-index.mir b/llvm/test/CodeGen/AIE/aie2p/eliminate-frame-index.mir index ef909f7171fe..639e2a6800a8 100644 --- a/llvm/test/CodeGen/AIE/aie2p/eliminate-frame-index.mir +++ b/llvm/test/CodeGen/AIE/aie2p/eliminate-frame-index.mir @@ -22,8 +22,8 @@ body: | ; CHECK: frame-setup PADDXM_pstm_sp_imm 64, implicit-def $sp, implicit $sp ; CHECK-NEXT: $r2 = LDA_dms_lda_spill -60, implicit $sp ; CHECK-NEXT: ST_dms_sts_spill $r2, -60, implicit $sp - $r2 = LDA_dms_lda_spill %stack.1, implicit $sp - ST_dms_sts_spill $r2, %stack.1, implicit $sp + $r2 = LDA_R_SPILL %stack.1, implicit $sp + ST_R_SPILL $r2, %stack.1, implicit $sp ... --- @@ -261,15 +261,15 @@ body: | bb.0.entry: ; CHECK-LABEL: name: test_scl_big_offset ; CHECK: frame-setup PADDXM_pstm_sp_imm 2240, implicit-def $sp, implicit $sp - ; CHECK-NEXT: $dj0 = MOVXM -2240 ; CHECK-NEXT: $p0 = MOV_alu_mv_mv_mv_scl $sp - ; CHECK-NEXT: ST_dms_sts_idx $lr, killed $p0, killed $dj0 :: (store (s32) into %stack.1) + ; CHECK-NEXT: $dj0 = MOVXM -2240 + ; CHECK-NEXT: ST_dms_sts_idx killed $lr, killed $p0, killed $dj0 :: (store (s32) into %stack.1) ; CHECK-NEXT: $p0 = MOV_alu_mv_mv_mv_scl $sp ; CHECK-NEXT: $m0 = MOVXM -2224 ; CHECK-NEXT: $p0 = PADD_mod_pseudo $p0, killed $m0 ; CHECK-NEXT: PseudoJL 10, csr_aie2p, implicit-def $lr, implicit $p0 - ; CHECK-NEXT: $dj0 = MOVXM -2240 ; CHECK-NEXT: $p0 = MOV_alu_mv_mv_mv_scl $sp + ; CHECK-NEXT: $dj0 = MOVXM -2240 ; CHECK-NEXT: $lr = LDA_dms_lda_idx killed $p0, killed $dj0 :: (load (s32) from %stack.1) ; CHECK-NEXT: frame-destroy PADDXM_pstm_sp_imm -2240, implicit-def $sp, implicit $sp ; CHECK-NEXT: PseudoRET implicit $lr diff --git a/llvm/test/CodeGen/AIE/aie2p/spill/spill-dcreg.mir b/llvm/test/CodeGen/AIE/aie2p/spill/spill-dcreg.mir index 288fbef1db11..153a621a15e7 100644 --- a/llvm/test/CodeGen/AIE/aie2p/spill/spill-dcreg.mir +++ b/llvm/test/CodeGen/AIE/aie2p/spill/spill-dcreg.mir @@ -20,9 +20,9 @@ body: | ; CHECK-LABEL: name: test ; CHECK: liveins: $dc5 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: ST_dms_sts_spill $dc5, %stack.0, implicit $sp :: (store (s32) into %stack.0) + ; CHECK-NEXT: ST_R_SPILL $dc5, %stack.0, implicit $sp :: (store (s32) into %stack.0) ; CHECK-NEXT: PseudoJL 32, csr_aie2p, implicit-def $lr - ; CHECK-NEXT: $dc5 = LDA_dms_lda_spill %stack.0, implicit $sp :: (load (s32) from %stack.0) + ; CHECK-NEXT: $dc5 = LDA_R_SPILL %stack.0, implicit $sp :: (load (s32) from %stack.0) ; CHECK-NEXT: PseudoRET implicit $lr, implicit killed renamable $dc5 %0:edc = COPY $dc5 PseudoJL 32, csr_aie2p, implicit-def $lr diff --git a/llvm/test/CodeGen/AIE/aie2p/spill/spill-djreg.mir b/llvm/test/CodeGen/AIE/aie2p/spill/spill-djreg.mir index 1d5090f323fe..07522849119b 100644 --- a/llvm/test/CodeGen/AIE/aie2p/spill/spill-djreg.mir +++ b/llvm/test/CodeGen/AIE/aie2p/spill/spill-djreg.mir @@ -20,9 +20,9 @@ body: | ; CHECK-LABEL: name: test ; CHECK: liveins: $dj4 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: ST_dms_sts_spill $dj4, %stack.0, implicit $sp :: (store (s32) into %stack.0) + ; CHECK-NEXT: ST_R_SPILL $dj4, %stack.0, implicit $sp :: (store (s32) into %stack.0) ; CHECK-NEXT: PseudoJL 32, csr_aie2p, implicit-def $lr - ; CHECK-NEXT: $dj4 = LDA_dms_lda_spill %stack.0, implicit $sp :: (load (s32) from %stack.0) + ; CHECK-NEXT: $dj4 = LDA_R_SPILL %stack.0, implicit $sp :: (load (s32) from %stack.0) ; CHECK-NEXT: PseudoRET implicit $lr, implicit killed renamable $dj4 %0:edj = COPY $dj4 PseudoJL 32, csr_aie2p, implicit-def $lr diff --git a/llvm/test/CodeGen/AIE/aie2p/spill/spill-dnreg.mir b/llvm/test/CodeGen/AIE/aie2p/spill/spill-dnreg.mir index b449029ea7bf..f661422dd618 100644 --- a/llvm/test/CodeGen/AIE/aie2p/spill/spill-dnreg.mir +++ b/llvm/test/CodeGen/AIE/aie2p/spill/spill-dnreg.mir @@ -20,9 +20,9 @@ body: | ; CHECK-LABEL: name: test ; CHECK: liveins: $dn4 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: ST_dms_sts_spill $dn4, %stack.0, implicit $sp :: (store (s32) into %stack.0) + ; CHECK-NEXT: ST_R_SPILL $dn4, %stack.0, implicit $sp :: (store (s32) into %stack.0) ; CHECK-NEXT: PseudoJL 32, csr_aie2p, implicit-def $lr - ; CHECK-NEXT: $dn4 = LDA_dms_lda_spill %stack.0, implicit $sp :: (load (s32) from %stack.0) + ; CHECK-NEXT: $dn4 = LDA_R_SPILL %stack.0, implicit $sp :: (load (s32) from %stack.0) ; CHECK-NEXT: PseudoRET implicit $lr, implicit killed renamable $dn4 %0:edn = COPY $dn4 PseudoJL 32, csr_aie2p, implicit-def $lr diff --git a/llvm/test/CodeGen/AIE/aie2p/spill/spill-mreg.mir b/llvm/test/CodeGen/AIE/aie2p/spill/spill-mreg.mir index 1ae00fb85a9a..9b6502f99cf6 100644 --- a/llvm/test/CodeGen/AIE/aie2p/spill/spill-mreg.mir +++ b/llvm/test/CodeGen/AIE/aie2p/spill/spill-mreg.mir @@ -20,9 +20,9 @@ body: | ; CHECK-LABEL: name: test ; CHECK: liveins: $m3 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: ST_dms_sts_spill $m3, %stack.0, implicit $sp :: (store (s32) into %stack.0) + ; CHECK-NEXT: ST_R_SPILL $m3, %stack.0, implicit $sp :: (store (s32) into %stack.0) ; CHECK-NEXT: PseudoJL 32, csr_aie2p, implicit-def $lr - ; CHECK-NEXT: $m3 = LDA_dms_lda_spill %stack.0, implicit $sp :: (load (s32) from %stack.0) + ; CHECK-NEXT: $m3 = LDA_R_SPILL %stack.0, implicit $sp :: (load (s32) from %stack.0) ; CHECK-NEXT: PseudoRET implicit $lr, implicit killed renamable $m3 %0:em = COPY $m3 PseudoJL 32, csr_aie2p, implicit-def $lr diff --git a/llvm/test/CodeGen/AIE/aie2p/spill/spill-reload-dj-high-gpr-pressure.mir b/llvm/test/CodeGen/AIE/aie2p/spill/spill-reload-dj-high-gpr-pressure.mir index d32e4b3fe06c..4ca82e292411 100644 --- a/llvm/test/CodeGen/AIE/aie2p/spill/spill-reload-dj-high-gpr-pressure.mir +++ b/llvm/test/CodeGen/AIE/aie2p/spill/spill-reload-dj-high-gpr-pressure.mir @@ -54,10 +54,10 @@ ; CHECK-LABEL: name: spill_to_mem ; CHECK: liveins: $dj0, $dj1, $dj2, $dj3, $dj4, $dj5, $dj6, $dj7, $dn0, $dn1, $dn2, $dn3, $dn4, $dn5, $dn6, $dn7, $p0 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: ST_dms_sts_spill $dj0, %stack.0, implicit $sp :: (store (s32) into %stack.0) + ; CHECK-NEXT: ST_R_SPILL $dj0, %stack.0, implicit $sp :: (store (s32) into %stack.0) ; CHECK-NEXT: $dj0 = COPY $dj1 ; CHECK-NEXT: ST_dms_sts_idx_imm $dj0, $p0, 0, implicit $dj1, implicit $dj2, implicit $dj3, implicit $dj4, implicit $dj5, implicit $dj6, implicit $dj7, implicit $dn0, implicit $dn1, implicit $dn2, implicit $dn3, implicit $dn4, implicit $dn5, implicit $dn6, implicit $dn7 - ; CHECK-NEXT: renamable $dj0 = LDA_dms_lda_spill %stack.0, implicit $sp :: (load (s32) from %stack.0) + ; CHECK-NEXT: renamable $dj0 = LDA_R_SPILL %stack.0, implicit $sp :: (load (s32) from %stack.0) ; CHECK-NEXT: ST_dms_sts_idx $r0, $p0, killed renamable $dj0 %0:edj = COPY $dj0 ; -> only $dj0 is available diff --git a/llvm/test/CodeGen/AIE/aie2p/spill/spill-reload-m-high-gpr-pressure.mir b/llvm/test/CodeGen/AIE/aie2p/spill/spill-reload-m-high-gpr-pressure.mir index 171901071fbe..2688e3b53c4c 100644 --- a/llvm/test/CodeGen/AIE/aie2p/spill/spill-reload-m-high-gpr-pressure.mir +++ b/llvm/test/CodeGen/AIE/aie2p/spill/spill-reload-m-high-gpr-pressure.mir @@ -54,10 +54,10 @@ ; CHECK-LABEL: name: spill_to_mem ; CHECK: liveins: $dn0, $dn1, $dn2, $dn3, $dn4, $dn5, $dn6, $dn7, $m0, $m1, $m2, $m3, $m4, $m5, $m6, $m7, $p0 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: ST_dms_sts_spill $m0, %stack.0, implicit $sp :: (store (s32) into %stack.0) + ; CHECK-NEXT: ST_R_SPILL $m0, %stack.0, implicit $sp :: (store (s32) into %stack.0) ; CHECK-NEXT: $m0 = COPY $m1 ; CHECK-NEXT: ST_dms_sts_idx_imm $m0, $p0, 0, implicit $m1, implicit $m2, implicit $m3, implicit $m4, implicit $m5, implicit $m6, implicit $m7, implicit $dn0, implicit $dn1, implicit $dn2, implicit $dn3, implicit $dn4, implicit $dn5, implicit $dn6, implicit $dn7 - ; CHECK-NEXT: renamable $m0 = LDA_dms_lda_spill %stack.0, implicit $sp :: (load (s32) from %stack.0) + ; CHECK-NEXT: renamable $m0 = LDA_R_SPILL %stack.0, implicit $sp :: (load (s32) from %stack.0) ; CHECK-NEXT: $p0 = PADDA_pstm_nrm $p0, killed renamable $m0 %0:em = COPY $m0 ; -> only $m0 is available diff --git a/llvm/test/CodeGen/AIE/aie2p/spill/spill-reload-m.mir b/llvm/test/CodeGen/AIE/aie2p/spill/spill-reload-m.mir index 1bfe9d012f82..6c564a266fd1 100644 --- a/llvm/test/CodeGen/AIE/aie2p/spill/spill-reload-m.mir +++ b/llvm/test/CodeGen/AIE/aie2p/spill/spill-reload-m.mir @@ -26,10 +26,10 @@ ; CHECK-LABEL: name: spill_to_mem ; CHECK: liveins: $m0, $m1, $m2, $m3, $m4, $m5, $m6, $m7, $p0 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: ST_dms_sts_spill $m0, %stack.0, implicit $sp :: (store (s32) into %stack.0) + ; CHECK-NEXT: ST_R_SPILL $m0, %stack.0, implicit $sp :: (store (s32) into %stack.0) ; CHECK-NEXT: $m0 = COPY $m1 ; CHECK-NEXT: ST_dms_sts_idx_imm $m0, $p0, 0, implicit $m1, implicit $m2, implicit $m3, implicit $m4, implicit $m5, implicit $m6, implicit $m7 - ; CHECK-NEXT: renamable $m0 = LDA_dms_lda_spill %stack.0, implicit $sp :: (load (s32) from %stack.0) + ; CHECK-NEXT: renamable $m0 = LDA_R_SPILL %stack.0, implicit $sp :: (load (s32) from %stack.0) ; CHECK-NEXT: PseudoRET implicit $lr, implicit killed renamable $m0 %0:em = COPY $m0 ; -> only $m0 is available @@ -57,10 +57,10 @@ ; CHECK: liveins: $m1, $m2, $m3, $m4, $m5, $m6, $m7, $p0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $m0 = LDA_dms_lda_idx_imm $p0, 0 - ; CHECK-NEXT: ST_dms_sts_spill killed renamable $m0, %stack.0, implicit $sp :: (store (s32) into %stack.0) + ; CHECK-NEXT: ST_R_SPILL killed renamable $m0, %stack.0, implicit $sp :: (store (s32) into %stack.0) ; CHECK-NEXT: $m0 = COPY $m1 ; CHECK-NEXT: ST_dms_sts_idx_imm $m0, $p0, 0, implicit $m1, implicit $m2, implicit $m3, implicit $m4, implicit $m5, implicit $m6, implicit $m7 - ; CHECK-NEXT: renamable $m0 = LDA_dms_lda_spill %stack.0, implicit $sp :: (load (s32) from %stack.0) + ; CHECK-NEXT: renamable $m0 = LDA_R_SPILL %stack.0, implicit $sp :: (load (s32) from %stack.0) ; CHECK-NEXT: ST_dms_sts_idx_imm killed renamable $m0, $p0, 4 %0:em_as_32bit = LDA_dms_lda_idx_imm $p0, 0 ; -> only $m0 is available diff --git a/llvm/test/CodeGen/AIE/aie2p/spill/spill-sreg-high-gpr-pressure.mir b/llvm/test/CodeGen/AIE/aie2p/spill/spill-sreg-high-gpr-pressure.mir index e764b1f67829..76a7304f964a 100644 --- a/llvm/test/CodeGen/AIE/aie2p/spill/spill-sreg-high-gpr-pressure.mir +++ b/llvm/test/CodeGen/AIE/aie2p/spill/spill-sreg-high-gpr-pressure.mir @@ -24,9 +24,9 @@ body: | ; CHECK-LABEL: name: spill_to_mem ; CHECK: liveins: $p0, $r0, $r1, $s0, $s1, $s2, $s3, $x0 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: ST_dms_sts_spill $r1, %stack.0, implicit $sp :: (store (s32) into %stack.0) + ; CHECK-NEXT: ST_R_SPILL $r1, %stack.0, implicit $sp :: (store (s32) into %stack.0) ; CHECK-NEXT: ST_dms_sts_idx_imm $r0, $p0, 0, implicit $s0 - ; CHECK-NEXT: renamable $r0 = LDA_dms_lda_spill %stack.0, implicit $sp :: (load (s32) from %stack.0) + ; CHECK-NEXT: renamable $r0 = LDA_R_SPILL %stack.0, implicit $sp :: (load (s32) from %stack.0) ; CHECK-NEXT: renamable $s0 = MOV_alu_mv_mv_mv_scl killed renamable $r0 ; CHECK-NEXT: renamable $cml0 = VUPS_2x_mv_ups_x2c_upsSign0 $x0, killed renamable $s0, implicit-def $srups_of, implicit $crsat, implicit $crupsmode, implicit $upssign0 ; CHECK-NEXT: PseudoRET implicit $lr, implicit killed renamable $cml0, implicit $s1, implicit $s2, implicit $s3 @@ -52,9 +52,9 @@ body: | ; CHECK: liveins: $s0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $r0 = MOV_alu_mv_mv_mv_scl $s0 - ; CHECK-NEXT: ST_dms_sts_spill killed renamable $r0, %stack.0, implicit $sp :: (store (s32) into %stack.0) + ; CHECK-NEXT: ST_R_SPILL killed renamable $r0, %stack.0, implicit $sp :: (store (s32) into %stack.0) ; CHECK-NEXT: PseudoJL 32, csr_aie2p, implicit-def $lr - ; CHECK-NEXT: renamable $r0 = LDA_dms_lda_spill %stack.0, implicit $sp :: (load (s32) from %stack.0) + ; CHECK-NEXT: renamable $r0 = LDA_R_SPILL %stack.0, implicit $sp :: (load (s32) from %stack.0) ; CHECK-NEXT: renamable $s0 = MOV_alu_mv_mv_mv_scl killed renamable $r0 ; CHECK-NEXT: PseudoRET implicit $lr, implicit killed renamable $s0 %0:spill_es_to_er = COPY $s0 diff --git a/llvm/test/CodeGen/AIE/aie2p/spill/spill-sreg.mir b/llvm/test/CodeGen/AIE/aie2p/spill/spill-sreg.mir index 753010070d29..4a890b074241 100644 --- a/llvm/test/CodeGen/AIE/aie2p/spill/spill-sreg.mir +++ b/llvm/test/CodeGen/AIE/aie2p/spill/spill-sreg.mir @@ -24,7 +24,7 @@ body: | ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $r0 = MOVA 32 ; CHECK-NEXT: renamable $r0 = MOV_alu_mv_mv_mv_scl killed renamable $r0 - ; CHECK-NEXT: ST_dms_sts_spill killed renamable $r0, %stack.0, implicit $sp :: (store (s32) into %stack.0) + ; CHECK-NEXT: ST_R_SPILL killed renamable $r0, %stack.0, implicit $sp :: (store (s32) into %stack.0) ; CHECK-NEXT: renamable $r0 = MOVA 32 ; CHECK-NEXT: renamable $s2 = COPY killed renamable $r0 ; CHECK-NEXT: renamable $r0 = MOVA 32 @@ -32,7 +32,7 @@ body: | ; CHECK-NEXT: renamable $r0 = MOVA 32 ; CHECK-NEXT: renamable $s1 = COPY killed renamable $r0 ; CHECK-NEXT: renamable $cml0 = VUPS_2x_mv_ups_x2c_upsSign0 $x0, $s0, implicit-def $srups_of, implicit $crsat, implicit $crupsmode, implicit $upssign0 - ; CHECK-NEXT: renamable $r0 = LDA_dms_lda_spill %stack.0, implicit $sp :: (load (s32) from %stack.0) + ; CHECK-NEXT: renamable $r0 = LDA_R_SPILL %stack.0, implicit $sp :: (load (s32) from %stack.0) ; CHECK-NEXT: renamable $s0 = MOV_alu_mv_mv_mv_scl killed renamable $r0 ; CHECK-NEXT: PseudoRET implicit $lr, implicit killed renamable $s0, implicit killed renamable $s2, implicit killed renamable $s3, implicit killed renamable $s1, implicit killed renamable $cml0 %10:er = MOVA 32 @@ -109,9 +109,9 @@ body: | ; CHECK: liveins: $s0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $r0 = MOV_alu_mv_mv_mv_scl $s0 - ; CHECK-NEXT: ST_dms_sts_spill killed renamable $r0, %stack.0, implicit $sp :: (store (s32) into %stack.0) + ; CHECK-NEXT: ST_R_SPILL killed renamable $r0, %stack.0, implicit $sp :: (store (s32) into %stack.0) ; CHECK-NEXT: PseudoJL 32, csr_aie2p, implicit-def $lr - ; CHECK-NEXT: renamable $r0 = LDA_dms_lda_spill %stack.0, implicit $sp :: (load (s32) from %stack.0) + ; CHECK-NEXT: renamable $r0 = LDA_R_SPILL %stack.0, implicit $sp :: (load (s32) from %stack.0) ; CHECK-NEXT: renamable $s0 = MOV_alu_mv_mv_mv_scl killed renamable $r0 ; CHECK-NEXT: PseudoRET implicit $lr, implicit killed renamable $s0 %0:es = COPY $s0 diff --git a/llvm/test/CodeGen/AIE/dyn-stackalloc.ll b/llvm/test/CodeGen/AIE/dyn-stackalloc.ll index f3e7e1c838d4..783f65587ec4 100644 --- a/llvm/test/CodeGen/AIE/dyn-stackalloc.ll +++ b/llvm/test/CodeGen/AIE/dyn-stackalloc.ll @@ -310,14 +310,14 @@ define void @test_huge_stack(i32 noundef %n) #0 { ; AIE2P-NEXT: mov p0, sp ; AIE2P-NEXT: mov p1, sp ; AIE2P-NEXT: st lr, [p0, dj0] // 4-byte Folded Spill -; AIE2P-NEXT: movxm dj0, #-40056 ; AIE2P-NEXT: mov p0, sp +; AIE2P-NEXT: movxm dj0, #-40056 ; AIE2P-NEXT: st r8, [p0, dj0] // 4-byte Folded Spill -; AIE2P-NEXT: movxm dj0, #-40060 ; AIE2P-NEXT: mov p0, sp +; AIE2P-NEXT: movxm dj0, #-40060 ; AIE2P-NEXT: st p6, [p0, dj0] // 4-byte Folded Spill -; AIE2P-NEXT: movxm dj0, #-40064 ; AIE2P-NEXT: mov p0, sp +; AIE2P-NEXT: movxm dj0, #-40064 ; AIE2P-NEXT: st p7, [p0, dj0] // 4-byte Folded Spill ; AIE2P-NEXT: mov p7, sp ; AIE2P-NEXT: padda [p7], m0 @@ -366,11 +366,11 @@ define void @test_huge_stack(i32 noundef %n) #0 { ; AIE2P-NEXT: mov sp, p7 ; AIE2P-NEXT: mov p0, sp ; AIE2P-NEXT: lda p7, [p0, dj0] // 4-byte Folded Reload -; AIE2P-NEXT: movxm dj0, #-40060 ; AIE2P-NEXT: mov p0, sp +; AIE2P-NEXT: movxm dj0, #-40060 ; AIE2P-NEXT: lda p6, [p0, dj0] // 4-byte Folded Reload -; AIE2P-NEXT: movxm dj0, #-40056 ; AIE2P-NEXT: mov p0, sp +; AIE2P-NEXT: movxm dj0, #-40056 ; AIE2P-NEXT: lda r8, [p0, dj0] // 4-byte Folded Reload ; AIE2P-NEXT: mov p0, sp ; AIE2P-NEXT: movxm dj0, #-40052 diff --git a/llvm/test/CodeGen/AIE/spill/spill-reload-dc.mir b/llvm/test/CodeGen/AIE/spill/spill-reload-dc.mir index efb0d096d0e6..14dd9dd62ec0 100644 --- a/llvm/test/CodeGen/AIE/spill/spill-reload-dc.mir +++ b/llvm/test/CodeGen/AIE/spill/spill-reload-dc.mir @@ -36,10 +36,10 @@ ; AIE2P-LABEL: name: spill_to_mem ; AIE2P: liveins: $dc0, $dc1, $dc2, $dc3, $dc4, $dc5, $dc6, $dc7, $p0 ; AIE2P-NEXT: {{ $}} - ; AIE2P-NEXT: ST_dms_sts_spill $dc0, %stack.0, implicit $sp :: (store (s32) into %stack.0) + ; AIE2P-NEXT: ST_R_SPILL $dc0, %stack.0, implicit $sp :: (store (s32) into %stack.0) ; AIE2P-NEXT: $dc0 = COPY $dc1 ; AIE2P-NEXT: ST_dms_sts_idx_imm $dc0, $p0, 0, implicit $dc1, implicit $dc2, implicit $dc3, implicit $dc4, implicit $dc5, implicit $dc6, implicit $dc7 - ; AIE2P-NEXT: renamable $dc0 = LDA_dms_lda_spill %stack.0, implicit $sp :: (load (s32) from %stack.0) + ; AIE2P-NEXT: renamable $dc0 = LDA_R_SPILL %stack.0, implicit $sp :: (load (s32) from %stack.0) ; AIE2P-NEXT: PseudoRET implicit $lr, implicit killed renamable $dc0 %0:edc = COPY $dc0 ; -> only $dc0 is available @@ -77,10 +77,10 @@ ; AIE2P: liveins: $dc1, $dc2, $dc3, $dc4, $dc5, $dc6, $dc7, $p0 ; AIE2P-NEXT: {{ $}} ; AIE2P-NEXT: renamable $dc0 = LDA_dms_lda_idx_imm $p0, 0 - ; AIE2P-NEXT: ST_dms_sts_spill killed renamable $dc0, %stack.0, implicit $sp :: (store (s32) into %stack.0) + ; AIE2P-NEXT: ST_R_SPILL killed renamable $dc0, %stack.0, implicit $sp :: (store (s32) into %stack.0) ; AIE2P-NEXT: $dc0 = COPY $dc1 ; AIE2P-NEXT: ST_dms_sts_idx_imm $dc0, $p0, 0, implicit $dc1, implicit $dc2, implicit $dc3, implicit $dc4, implicit $dc5, implicit $dc6, implicit $dc7 - ; AIE2P-NEXT: renamable $dc0 = LDA_dms_lda_spill %stack.0, implicit $sp :: (load (s32) from %stack.0) + ; AIE2P-NEXT: renamable $dc0 = LDA_R_SPILL %stack.0, implicit $sp :: (load (s32) from %stack.0) ; AIE2P-NEXT: ST_dms_sts_idx_imm killed renamable $dc0, $p0, 4 %0:edc_as_32bit = LDA_dms_lda_idx_imm $p0, 0 ; -> only $dc0 is available @@ -115,10 +115,10 @@ ; AIE2P-LABEL: name: spill_to_reg ; AIE2P: liveins: $dc0, $dc1, $dc2, $dc3, $dc4, $dc5, $dc6, $dc7, $p0 ; AIE2P-NEXT: {{ $}} - ; AIE2P-NEXT: ST_dms_sts_spill $dc0, %stack.0, implicit $sp :: (store (s32) into %stack.0) + ; AIE2P-NEXT: ST_R_SPILL $dc0, %stack.0, implicit $sp :: (store (s32) into %stack.0) ; AIE2P-NEXT: $dc0 = COPY $dc1 ; AIE2P-NEXT: ST_dms_sts_idx_imm $dc0, $p0, 0, implicit $dc1, implicit $dc2, implicit $dc3, implicit $dc4, implicit $dc5, implicit $dc6, implicit $dc7 - ; AIE2P-NEXT: $dc0 = LDA_dms_lda_spill %stack.0, implicit $sp :: (load (s32) from %stack.0) + ; AIE2P-NEXT: $dc0 = LDA_R_SPILL %stack.0, implicit $sp :: (load (s32) from %stack.0) ; AIE2P-NEXT: $p0, $dc0 = PADDA_2D $p0, $d0 %0:edc = COPY $dc0 ; -> only $dc0 is available diff --git a/llvm/test/CodeGen/AIE/spill/spill-reload-dj.mir b/llvm/test/CodeGen/AIE/spill/spill-reload-dj.mir index 2bd3b03479c3..8835beeef409 100644 --- a/llvm/test/CodeGen/AIE/spill/spill-reload-dj.mir +++ b/llvm/test/CodeGen/AIE/spill/spill-reload-dj.mir @@ -36,10 +36,10 @@ ; AIE2P-LABEL: name: spill_to_mem ; AIE2P: liveins: $dj0, $dj1, $dj2, $dj3, $dj4, $dj5, $dj6, $dj7, $p0 ; AIE2P-NEXT: {{ $}} - ; AIE2P-NEXT: ST_dms_sts_spill $dj0, %stack.0, implicit $sp :: (store (s32) into %stack.0) + ; AIE2P-NEXT: ST_R_SPILL $dj0, %stack.0, implicit $sp :: (store (s32) into %stack.0) ; AIE2P-NEXT: $dj0 = COPY $dj1 ; AIE2P-NEXT: ST_dms_sts_idx_imm $dj0, $p0, 0, implicit $dj1, implicit $dj2, implicit $dj3, implicit $dj4, implicit $dj5, implicit $dj6, implicit $dj7 - ; AIE2P-NEXT: renamable $dj0 = LDA_dms_lda_spill %stack.0, implicit $sp :: (load (s32) from %stack.0) + ; AIE2P-NEXT: renamable $dj0 = LDA_R_SPILL %stack.0, implicit $sp :: (load (s32) from %stack.0) ; AIE2P-NEXT: PseudoRET implicit $lr, implicit killed renamable $dj0 %0:edj = COPY $dj0 ; -> only $dj0 is available @@ -77,10 +77,10 @@ ; AIE2P: liveins: $dj1, $dj2, $dj3, $dj4, $dj5, $dj6, $dj7, $p0 ; AIE2P-NEXT: {{ $}} ; AIE2P-NEXT: renamable $dj0 = LDA_dms_lda_idx_imm $p0, 0 - ; AIE2P-NEXT: ST_dms_sts_spill killed renamable $dj0, %stack.0, implicit $sp :: (store (s32) into %stack.0) + ; AIE2P-NEXT: ST_R_SPILL killed renamable $dj0, %stack.0, implicit $sp :: (store (s32) into %stack.0) ; AIE2P-NEXT: $dj0 = COPY $dj1 ; AIE2P-NEXT: ST_dms_sts_idx_imm $dj0, $p0, 0, implicit $dj1, implicit $dj2, implicit $dj3, implicit $dj4, implicit $dj5, implicit $dj6, implicit $dj7 - ; AIE2P-NEXT: renamable $dj0 = LDA_dms_lda_spill %stack.0, implicit $sp :: (load (s32) from %stack.0) + ; AIE2P-NEXT: renamable $dj0 = LDA_R_SPILL %stack.0, implicit $sp :: (load (s32) from %stack.0) ; AIE2P-NEXT: ST_dms_sts_idx_imm killed renamable $dj0, $p0, 4 %0:edj_as_32bit = LDA_dms_lda_idx_imm $p0, 0 ; -> only $dj0 is available diff --git a/llvm/test/CodeGen/AIE/spill/spill-reload-dn.mir b/llvm/test/CodeGen/AIE/spill/spill-reload-dn.mir index c94d87640d58..d55d696459ff 100644 --- a/llvm/test/CodeGen/AIE/spill/spill-reload-dn.mir +++ b/llvm/test/CodeGen/AIE/spill/spill-reload-dn.mir @@ -36,10 +36,10 @@ ; AIE2P-LABEL: name: spill_to_mem ; AIE2P: liveins: $dn0, $dn1, $dn2, $dn3, $dn4, $dn5, $dn6, $dn7, $p0 ; AIE2P-NEXT: {{ $}} - ; AIE2P-NEXT: ST_dms_sts_spill $dn0, %stack.0, implicit $sp :: (store (s32) into %stack.0) + ; AIE2P-NEXT: ST_R_SPILL $dn0, %stack.0, implicit $sp :: (store (s32) into %stack.0) ; AIE2P-NEXT: $dn0 = COPY $dn1 ; AIE2P-NEXT: ST_dms_sts_idx_imm $dn0, $p0, 0, implicit $dn1, implicit $dn2, implicit $dn3, implicit $dn4, implicit $dn5, implicit $dn6, implicit $dn7 - ; AIE2P-NEXT: renamable $dn0 = LDA_dms_lda_spill %stack.0, implicit $sp :: (load (s32) from %stack.0) + ; AIE2P-NEXT: renamable $dn0 = LDA_R_SPILL %stack.0, implicit $sp :: (load (s32) from %stack.0) ; AIE2P-NEXT: PseudoRET implicit $lr, implicit killed renamable $dn0 %0:edn = COPY $dn0 ; -> only $dn0 is available @@ -77,10 +77,10 @@ ; AIE2P: liveins: $dn1, $dn2, $dn3, $dn4, $dn5, $dn6, $dn7, $p0 ; AIE2P-NEXT: {{ $}} ; AIE2P-NEXT: renamable $dn0 = LDA_dms_lda_idx_imm $p0, 0 - ; AIE2P-NEXT: ST_dms_sts_spill killed renamable $dn0, %stack.0, implicit $sp :: (store (s32) into %stack.0) + ; AIE2P-NEXT: ST_R_SPILL killed renamable $dn0, %stack.0, implicit $sp :: (store (s32) into %stack.0) ; AIE2P-NEXT: $dn0 = COPY $dn1 ; AIE2P-NEXT: ST_dms_sts_idx_imm $dn0, $p0, 0, implicit $dn1, implicit $dn2, implicit $dn3, implicit $dn4, implicit $dn5, implicit $dn6, implicit $dn7 - ; AIE2P-NEXT: renamable $dn0 = LDA_dms_lda_spill %stack.0, implicit $sp :: (load (s32) from %stack.0) + ; AIE2P-NEXT: renamable $dn0 = LDA_R_SPILL %stack.0, implicit $sp :: (load (s32) from %stack.0) ; AIE2P-NEXT: ST_dms_sts_idx_imm killed renamable $dn0, $p0, 4 %0:edn_as_32bit = LDA_dms_lda_idx_imm $p0, 0 ; -> only $dn0 is available @@ -115,10 +115,10 @@ ; AIE2P-LABEL: name: spill_to_reg ; AIE2P: liveins: $dn0, $dn1, $dn2, $dn3, $dn4, $dn5, $dn6, $dn7, $p0 ; AIE2P-NEXT: {{ $}} - ; AIE2P-NEXT: ST_dms_sts_spill $dn0, %stack.0, implicit $sp :: (store (s32) into %stack.0) + ; AIE2P-NEXT: ST_R_SPILL $dn0, %stack.0, implicit $sp :: (store (s32) into %stack.0) ; AIE2P-NEXT: $dn0 = COPY $dn1 ; AIE2P-NEXT: ST_dms_sts_idx_imm $dn0, $p0, 0, implicit $dn1, implicit $dn2, implicit $dn3, implicit $dn4, implicit $dn5, implicit $dn6, implicit $dn7 - ; AIE2P-NEXT: $dn0 = LDA_dms_lda_spill %stack.0, implicit $sp :: (load (s32) from %stack.0) + ; AIE2P-NEXT: $dn0 = LDA_R_SPILL %stack.0, implicit $sp :: (load (s32) from %stack.0) ; AIE2P-NEXT: $p0, $dc0 = PADDA_2D $p0, $d0 %0:edn = COPY $dn0 ; -> only $dn0 is available diff --git a/llvm/test/CodeGen/AIE/spill/spill-reload-p.mir b/llvm/test/CodeGen/AIE/spill/spill-reload-p.mir index bc519ff46851..bb0790682c87 100644 --- a/llvm/test/CodeGen/AIE/spill/spill-reload-p.mir +++ b/llvm/test/CodeGen/AIE/spill/spill-reload-p.mir @@ -35,10 +35,10 @@ ; AIE2P: liveins: $m0, $p0, $p1, $p2, $p3, $p4, $p5, $p6, $p7, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11, $r12, $r13, $r14, $r15, $r16, $r17, $r18, $r19, $r20, $r21, $r22, $r23, $r24, $r25, $r26, $r27, $r28, $r29, $r30, $r31 ; AIE2P-NEXT: {{ $}} ; AIE2P-NEXT: renamable $p0 = PADD_mod_pseudo $p0, $m0 - ; AIE2P-NEXT: ST_dms_sts_spill killed renamable $p0, %stack.0, implicit $sp :: (store (s32) into %stack.0) + ; AIE2P-NEXT: ST_R_SPILL killed renamable $p0, %stack.0, implicit $sp :: (store (s32) into %stack.0) ; AIE2P-NEXT: $p0 = COPY $p1 ; AIE2P-NEXT: ST_dms_sts_idx_imm $p0, $p0, 0, implicit $p0, implicit $p1, implicit $p2, implicit $p3, implicit $p4, implicit $p5, implicit $p6, implicit $p7, implicit $r0, implicit $r1, implicit $r2, implicit $r3, implicit $r4, implicit $r5, implicit $r6, implicit $r7, implicit $r8, implicit $r9, implicit $r10, implicit $r11, implicit $r12, implicit $r13, implicit $r14, implicit $r15, implicit $r16, implicit $r17, implicit $r18, implicit $r19, implicit $r20, implicit $r21, implicit $r22, implicit $r23, implicit $r24, implicit $r25, implicit $r26, implicit $r27, implicit $r28, implicit $r29, implicit $r30, implicit $r31 - ; AIE2P-NEXT: renamable $p0 = LDA_dms_lda_spill %stack.0, implicit $sp :: (load (s32) from %stack.0) + ; AIE2P-NEXT: renamable $p0 = LDA_R_SPILL %stack.0, implicit $sp :: (load (s32) from %stack.0) ; AIE2P-NEXT: PseudoRET implicit $lr, implicit $r31, implicit killed renamable $p0 %0:ep = PADD_mod_pseudo $p0, $m0 $p0 = COPY $p1