[X86] Add AVX512 support to X86FastISel::fastMaterializeFloatZero.

llvm-svn: 317059
This commit is contained in:
Craig Topper 2017-11-01 00:47:45 +00:00
parent 198447a447
commit a827f84dcc
1 changed files with 5 additions and 4 deletions

View File

@ -3876,14 +3876,15 @@ unsigned X86FastISel::fastMaterializeFloatZero(const ConstantFP *CF) {
return 0;
// 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) {
Opc = X86::FsFLD0SS;
RC = &X86::FR32RegClass;
Opc = HasAVX512 ? X86::AVX512_FsFLD0SS : X86::FsFLD0SS;
RC = HasAVX512 ? &X86::FR32XRegClass : &X86::FR32RegClass;
} else {
Opc = X86::LD_Fp032;
RC = &X86::RFP32RegClass;
@ -3891,8 +3892,8 @@ unsigned X86FastISel::fastMaterializeFloatZero(const ConstantFP *CF) {
break;
case MVT::f64:
if (X86ScalarSSEf64) {
Opc = X86::FsFLD0SD;
RC = &X86::FR64RegClass;
Opc = HasAVX512 ? X86::AVX512_FsFLD0SD : X86::FsFLD0SD;
RC = HasAVX512 ? &X86::FR64XRegClass : &X86::FR64RegClass;
} else {
Opc = X86::LD_Fp064;
RC = &X86::RFP64RegClass;