Bitcasts between FP and INT values using direct moves
[oota-llvm.git] / lib / Target / PowerPC / PPCVSXCopy.cpp
index 11ee3051f984e0bb308920de1560acf1123635b7..782583ce3423d2e99c872f789d897f762cabc84e 100644 (file)
@@ -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");