From: Craig Topper Date: Sun, 25 Sep 2016 16:34:06 +0000 (+0000) Subject: [AVX-512] Replace get512BitSuperRegister with calls to TargetRegisterInfo::getMatchin... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=444f89a2735e00b0eafd75dc9c16de3960bc8393;p=llvm [AVX-512] Replace get512BitSuperRegister with calls to TargetRegisterInfo::getMatchingSuperReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282359 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/X86InstrInfo.cpp b/lib/Target/X86/X86InstrInfo.cpp index bb9fda883ae..66d750fe7c0 100644 --- a/lib/Target/X86/X86InstrInfo.cpp +++ b/lib/Target/X86/X86InstrInfo.cpp @@ -4816,8 +4816,11 @@ void X86InstrInfo::copyPhysReg(MachineBasicBlock &MBB, // If this an extended register and we don't have VLX we need to use a // 512-bit move. Opc = X86::VMOVAPSZrr; - DestReg = get512BitSuperRegister(DestReg); - SrcReg = get512BitSuperRegister(SrcReg); + const TargetRegisterInfo *TRI = &getRegisterInfo(); + DestReg = TRI->getMatchingSuperReg(DestReg, X86::sub_xmm, + &X86::VR512RegClass); + SrcReg = TRI->getMatchingSuperReg(SrcReg, X86::sub_xmm, + &X86::VR512RegClass); } } else if (X86::VR256XRegClass.contains(DestReg, SrcReg)) { if (HasVLX) @@ -4828,8 +4831,11 @@ void X86InstrInfo::copyPhysReg(MachineBasicBlock &MBB, // If this an extended register and we don't have VLX we need to use a // 512-bit move. Opc = X86::VMOVAPSZrr; - DestReg = get512BitSuperRegister(DestReg); - SrcReg = get512BitSuperRegister(SrcReg); + const TargetRegisterInfo *TRI = &getRegisterInfo(); + DestReg = TRI->getMatchingSuperReg(DestReg, X86::sub_ymm, + &X86::VR512RegClass); + SrcReg = TRI->getMatchingSuperReg(SrcReg, X86::sub_ymm, + &X86::VR512RegClass); } } else if (X86::VR512RegClass.contains(DestReg, SrcReg)) Opc = X86::VMOVAPSZrr; diff --git a/lib/Target/X86/X86RegisterInfo.cpp b/lib/Target/X86/X86RegisterInfo.cpp index 6324bd4a954..1b2fece6052 100644 --- a/lib/Target/X86/X86RegisterInfo.cpp +++ b/lib/Target/X86/X86RegisterInfo.cpp @@ -691,13 +691,3 @@ X86RegisterInfo::getPtrSizedFrameRegister(const MachineFunction &MF) const { FrameReg = getX86SubSuperRegister(FrameReg, 32); return FrameReg; } - -unsigned llvm::get512BitSuperRegister(unsigned Reg) { - if (Reg >= X86::XMM0 && Reg <= X86::XMM31) - return X86::ZMM0 + (Reg - X86::XMM0); - if (Reg >= X86::YMM0 && Reg <= X86::YMM31) - return X86::ZMM0 + (Reg - X86::YMM0); - if (Reg >= X86::ZMM0 && Reg <= X86::ZMM31) - return Reg; - llvm_unreachable("Unexpected SIMD register"); -} diff --git a/lib/Target/X86/X86RegisterInfo.h b/lib/Target/X86/X86RegisterInfo.h index 8d0094cbf3d..468012b4394 100644 --- a/lib/Target/X86/X86RegisterInfo.h +++ b/lib/Target/X86/X86RegisterInfo.h @@ -137,9 +137,6 @@ public: unsigned getSlotSize() const { return SlotSize; } }; -//get512BitRegister - X86 utility - returns 512-bit super register -unsigned get512BitSuperRegister(unsigned Reg); - } // End llvm namespace #endif