diff options
author | Nemanja Ivanovic <nemanja.i.ibm@gmail.com> | 2015-12-15 14:50:34 +0000 |
---|---|---|
committer | Nemanja Ivanovic <nemanja.i.ibm@gmail.com> | 2015-12-15 14:50:34 +0000 |
commit | 8922476bcbf1344cd4a8bc97c08b6fbac19457d9 (patch) | |
tree | 78c1e357c4f3ce8eee873b27033d913f7925a342 /llvm/lib/Target/PowerPC/PPCVSXCopy.cpp | |
parent | 724d02a21e56996d63211030678c5bf078bb954d (diff) | |
download | llvm-8922476bcbf1344cd4a8bc97c08b6fbac19457d9.zip llvm-8922476bcbf1344cd4a8bc97c08b6fbac19457d9.tar.gz llvm-8922476bcbf1344cd4a8bc97c08b6fbac19457d9.tar.bz2 |
Bitcasts between FP and INT values using direct moves
This patch corresponds to review:
http://reviews.llvm.org/D15286
This patch was meant to land in revision 255246, but I accidentally uploaded
the patch that corresponds to http://reviews.llvm.org/D15372 in that revision
accidentally.
Thereby, this patch is the actual Bitcasts using direct moves patch, whereas
http://reviews.llvm.org/rL255246 actually corresponds to
http://reviews.llvm.org/D15372.
llvm-svn: 255649
Diffstat (limited to 'llvm/lib/Target/PowerPC/PPCVSXCopy.cpp')
-rw-r--r-- | llvm/lib/Target/PowerPC/PPCVSXCopy.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCVSXCopy.cpp b/llvm/lib/Target/PowerPC/PPCVSXCopy.cpp index 11ee305..782583c 100644 --- a/llvm/lib/Target/PowerPC/PPCVSXCopy.cpp +++ b/llvm/lib/Target/PowerPC/PPCVSXCopy.cpp @@ -81,6 +81,10 @@ namespace { return IsRegInClass(Reg, &PPC::VSFRCRegClass, MRI); } + bool IsVSSReg(unsigned Reg, MachineRegisterInfo &MRI) { + return IsRegInClass(Reg, &PPC::VSSRCRegClass, MRI); + } + protected: bool processBlock(MachineBasicBlock &MBB) { bool Changed = false; @@ -105,6 +109,7 @@ protected: &PPC::VSLRCRegClass; assert((IsF8Reg(SrcMO.getReg(), MRI) || IsVRReg(SrcMO.getReg(), MRI) || + IsVSSReg(SrcMO.getReg(), MRI) || IsVSFReg(SrcMO.getReg(), MRI)) && "Unknown source for a VSX copy"); @@ -129,6 +134,7 @@ protected: &PPC::VSLRCRegClass; assert((IsF8Reg(DstMO.getReg(), MRI) || IsVSFReg(DstMO.getReg(), MRI) || + IsVSSReg(DstMO.getReg(), MRI) || IsVRReg(DstMO.getReg(), MRI)) && "Unknown destination for a VSX copy"); |