Simplify this code. The case where one class is GR64RegClass and the

other is a subclass of it is effectively handled by the prior tests.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78676 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman 2009-08-11 15:59:48 +00:00
parent b2d746ce6d
commit 3108222c2c

View File

@ -1699,15 +1699,11 @@ bool X86InstrInfo::copyRegToReg(MachineBasicBlock &MBB,
// Neither of GR64_NOREX or GR64_NOSP is a superclass of the other,
// but we want to copy then as GR64. Similarly, for GR32_NOREX and
// GR32_NOSP, copy as GR32.
if ((SrcRC == &X86::GR64RegClass ||
SrcRC->hasSuperClass(&X86::GR64RegClass)) &&
(DestRC == &X86::GR64RegClass ||
DestRC->hasSuperClass(&X86::GR64RegClass)))
if (SrcRC->hasSuperClass(&X86::GR64RegClass) &&
DestRC->hasSuperClass(&X86::GR64RegClass))
CommonRC = &X86::GR64RegClass;
else if ((SrcRC == &X86::GR32RegClass ||
SrcRC->hasSuperClass(&X86::GR32RegClass)) &&
(DestRC == &X86::GR32RegClass ||
DestRC->hasSuperClass(&X86::GR32RegClass)))
else if (SrcRC->hasSuperClass(&X86::GR32RegClass) &&
DestRC->hasSuperClass(&X86::GR32RegClass))
CommonRC = &X86::GR32RegClass;
else
CommonRC = 0;