forked from OSchip/llvm-project
[X86] Remove fast-isel code for handling i8 shifts. This is handled by auto generated code.
llvm-svn: 316797
This commit is contained in:
parent
b904c70005
commit
d69453290e
|
@ -1785,16 +1785,9 @@ bool X86FastISel::X86SelectBranch(const Instruction *I) {
|
|||
bool X86FastISel::X86SelectShift(const Instruction *I) {
|
||||
unsigned CReg = 0, OpReg = 0;
|
||||
const TargetRegisterClass *RC = nullptr;
|
||||
if (I->getType()->isIntegerTy(8)) {
|
||||
CReg = X86::CL;
|
||||
RC = &X86::GR8RegClass;
|
||||
switch (I->getOpcode()) {
|
||||
case Instruction::LShr: OpReg = X86::SHR8rCL; break;
|
||||
case Instruction::AShr: OpReg = X86::SAR8rCL; break;
|
||||
case Instruction::Shl: OpReg = X86::SHL8rCL; break;
|
||||
default: return false;
|
||||
}
|
||||
} else if (I->getType()->isIntegerTy(16)) {
|
||||
assert(!I->getType()->isIntegerTy(8) &&
|
||||
"i8 shifts should be handled by autogenerated table");
|
||||
if (I->getType()->isIntegerTy(16)) {
|
||||
CReg = X86::CX;
|
||||
RC = &X86::GR16RegClass;
|
||||
switch (I->getOpcode()) {
|
||||
|
@ -1839,10 +1832,10 @@ bool X86FastISel::X86SelectShift(const Instruction *I) {
|
|||
|
||||
// The shift instruction uses X86::CL. If we defined a super-register
|
||||
// of X86::CL, emit a subreg KILL to precisely describe what we're doing here.
|
||||
if (CReg != X86::CL)
|
||||
BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DbgLoc,
|
||||
TII.get(TargetOpcode::KILL), X86::CL)
|
||||
.addReg(CReg, RegState::Kill);
|
||||
assert(CReg != X86::CL && "CReg should be a super register of CL");
|
||||
BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DbgLoc,
|
||||
TII.get(TargetOpcode::KILL), X86::CL)
|
||||
.addReg(CReg, RegState::Kill);
|
||||
|
||||
unsigned ResultReg = createResultReg(RC);
|
||||
BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DbgLoc, TII.get(OpReg), ResultReg)
|
||||
|
|
Loading…
Reference in New Issue