diff options
author | Craig Topper <craig.topper@intel.com> | 2019-05-11 16:00:19 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2019-05-11 16:00:19 +0000 |
commit | 74a436596d7381eed99bccca6037e0d698647eda (patch) | |
tree | 35d4b0662b630ef04e08a1345101d77129b5cab8 /llvm/lib/Target/X86/X86FastISel.cpp | |
parent | 26f2b13a65974f2f807c04c81adc166270c4b5dc (diff) | |
download | bcm5719-llvm-74a436596d7381eed99bccca6037e0d698647eda.tar.gz bcm5719-llvm-74a436596d7381eed99bccca6037e0d698647eda.zip |
[X86] Sink some fast isel code into the only if that uses it. NFC
llvm-svn: 360523
Diffstat (limited to 'llvm/lib/Target/X86/X86FastISel.cpp')
-rw-r--r-- | llvm/lib/Target/X86/X86FastISel.cpp | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/llvm/lib/Target/X86/X86FastISel.cpp b/llvm/lib/Target/X86/X86FastISel.cpp index cecd4d725d2..e9202a654ff 100644 --- a/llvm/lib/Target/X86/X86FastISel.cpp +++ b/llvm/lib/Target/X86/X86FastISel.cpp @@ -2172,19 +2172,6 @@ bool X86FastISel::X86FastEmitSSESelect(MVT RetVT, const Instruction *I) { if (NeedSwap) std::swap(CmpLHS, CmpRHS); - // Choose the SSE instruction sequence based on data type (float or double). - static const uint16_t OpcTable[2][4] = { - { X86::CMPSSrr, X86::ANDPSrr, X86::ANDNPSrr, X86::ORPSrr }, - { X86::CMPSDrr, X86::ANDPDrr, X86::ANDNPDrr, X86::ORPDrr } - }; - - const uint16_t *Opc = nullptr; - switch (RetVT.SimpleTy) { - default: return false; - case MVT::f32: Opc = &OpcTable[0][0]; break; - case MVT::f64: Opc = &OpcTable[1][0]; break; - } - const Value *LHS = I->getOperand(1); const Value *RHS = I->getOperand(2); @@ -2255,6 +2242,19 @@ bool X86FastISel::X86FastEmitSSESelect(MVT RetVT, const Instruction *I) { BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DbgLoc, TII.get(TargetOpcode::COPY), ResultReg).addReg(VBlendReg); } else { + // Choose the SSE instruction sequence based on data type (float or double). + static const uint16_t OpcTable[2][4] = { + { X86::CMPSSrr, X86::ANDPSrr, X86::ANDNPSrr, X86::ORPSrr }, + { X86::CMPSDrr, X86::ANDPDrr, X86::ANDNPDrr, X86::ORPDrr } + }; + + const uint16_t *Opc = nullptr; + switch (RetVT.SimpleTy) { + default: return false; + case MVT::f32: Opc = &OpcTable[0][0]; break; + case MVT::f64: Opc = &OpcTable[1][0]; break; + } + const TargetRegisterClass *VR128 = &X86::VR128RegClass; unsigned CmpReg = fastEmitInst_rri(Opc[0], RC, CmpLHSReg, CmpLHSIsKill, CmpRHSReg, CmpRHSIsKill, CC); |