From fd5e0ec9efeb30d308b71beec6e978567ce6ef0c Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Sat, 11 May 2019 16:00:13 +0000 Subject: [PATCH] [X86] Use TLI.getRegClassFor to simplify some more fast isel code. NFCI git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360522 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86FastISel.cpp | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/lib/Target/X86/X86FastISel.cpp b/lib/Target/X86/X86FastISel.cpp index 1af68065c9e..cecd4d725d2 100644 --- a/lib/Target/X86/X86FastISel.cpp +++ b/lib/Target/X86/X86FastISel.cpp @@ -2498,8 +2498,7 @@ bool X86FastISel::X86SelectFPExt(const Instruction *I) { unsigned Opc = HasAVX512 ? X86::VCVTSS2SDZrr : Subtarget->hasAVX() ? X86::VCVTSS2SDrr : X86::CVTSS2SDrr; - return X86SelectFPExtOrFPTrunc( - I, Opc, HasAVX512 ? &X86::FR64XRegClass : &X86::FR64RegClass); + return X86SelectFPExtOrFPTrunc(I, Opc, TLI.getRegClassFor(MVT::f64)); } return false; @@ -2513,8 +2512,7 @@ bool X86FastISel::X86SelectFPTrunc(const Instruction *I) { unsigned Opc = HasAVX512 ? X86::VCVTSD2SSZrr : Subtarget->hasAVX() ? X86::VCVTSD2SSrr : X86::CVTSD2SSrr; - return X86SelectFPExtOrFPTrunc( - I, Opc, HasAVX512 ? &X86::FR32XRegClass : &X86::FR32RegClass); + return X86SelectFPExtOrFPTrunc(I, Opc, TLI.getRegClassFor(MVT::f32)); } return false; @@ -3887,33 +3885,26 @@ unsigned X86FastISel::fastMaterializeFloatZero(const ConstantFP *CF) { // Get opcode and regclass for the given zero. bool HasAVX512 = Subtarget->hasAVX512(); unsigned Opc = 0; - const TargetRegisterClass *RC = nullptr; switch (VT.SimpleTy) { default: return 0; case MVT::f32: - if (X86ScalarSSEf32) { + if (X86ScalarSSEf32) Opc = HasAVX512 ? X86::AVX512_FsFLD0SS : X86::FsFLD0SS; - RC = HasAVX512 ? &X86::FR32XRegClass : &X86::FR32RegClass; - } else { + else Opc = X86::LD_Fp032; - RC = &X86::RFP32RegClass; - } break; case MVT::f64: - if (X86ScalarSSEf64) { + if (X86ScalarSSEf64) Opc = HasAVX512 ? X86::AVX512_FsFLD0SD : X86::FsFLD0SD; - RC = HasAVX512 ? &X86::FR64XRegClass : &X86::FR64RegClass; - } else { + else Opc = X86::LD_Fp064; - RC = &X86::RFP64RegClass; - } break; case MVT::f80: // No f80 support yet. return 0; } - unsigned ResultReg = createResultReg(RC); + unsigned ResultReg = createResultReg(TLI.getRegClassFor(VT)); BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DbgLoc, TII.get(Opc), ResultReg); return ResultReg; } -- 2.50.1