forked from OSchip/llvm-project
[X86] Add AVX512 support to X86FastISel::fastMaterializeFloatZero.
llvm-svn: 317059
This commit is contained in:
parent
198447a447
commit
a827f84dcc
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue