R600/SI: Use VALU instructions for copying i1 values
[oota-llvm.git] / lib / Target / R600 / SIFixSGPRCopies.cpp
index a9a7c5ce0fe6a6c285b1295c194bb4d9535136b7..f6b8b783d0216c0669088b3d50c2b3260e8079a7 100644 (file)
@@ -185,7 +185,8 @@ bool SIFixSGPRCopies::isVGPRToSGPRCopy(const MachineInstr &Copy,
   const TargetRegisterClass *SrcRC;
 
   if (!TargetRegisterInfo::isVirtualRegister(SrcReg) ||
-      DstRC == &AMDGPU::M0RegRegClass)
+      DstRC == &AMDGPU::M0RegRegClass ||
+      MRI.getRegClass(SrcReg) == &AMDGPU::VReg_1RegClass)
     return false;
 
   SrcRC = TRI->getSubRegClass(MRI.getRegClass(SrcReg), SrcSubReg);