Changeset View
Changeset View
Standalone View
Standalone View
llvm/trunk/lib/Target/Mips/MipsISelLowering.cpp
Show First 20 Lines • Show All 324 Lines • ▼ Show 20 Lines | MipsTargetLowering::MipsTargetLowering(const MipsTargetMachine &TM, | ||||
// MIPS doesn't have extending float->double load/store. Set LoadExtAction | // MIPS doesn't have extending float->double load/store. Set LoadExtAction | ||||
// for f32, f16 | // for f32, f16 | ||||
for (MVT VT : MVT::fp_valuetypes()) { | for (MVT VT : MVT::fp_valuetypes()) { | ||||
setLoadExtAction(ISD::EXTLOAD, VT, MVT::f32, Expand); | setLoadExtAction(ISD::EXTLOAD, VT, MVT::f32, Expand); | ||||
setLoadExtAction(ISD::EXTLOAD, VT, MVT::f16, Expand); | setLoadExtAction(ISD::EXTLOAD, VT, MVT::f16, Expand); | ||||
} | } | ||||
// Set LoadExtAction for f16 vectors to Expand | // Set LoadExtAction for f16 vectors to Expand | ||||
for (MVT VT : MVT::fp_vector_valuetypes()) { | for (MVT VT : MVT::fp_fixedlen_vector_valuetypes()) { | ||||
MVT F16VT = MVT::getVectorVT(MVT::f16, VT.getVectorNumElements()); | MVT F16VT = MVT::getVectorVT(MVT::f16, VT.getVectorNumElements()); | ||||
if (F16VT.isValid()) | if (F16VT.isValid()) | ||||
setLoadExtAction(ISD::EXTLOAD, VT, F16VT, Expand); | setLoadExtAction(ISD::EXTLOAD, VT, F16VT, Expand); | ||||
} | } | ||||
setTruncStoreAction(MVT::f32, MVT::f16, Expand); | setTruncStoreAction(MVT::f32, MVT::f16, Expand); | ||||
setTruncStoreAction(MVT::f64, MVT::f16, Expand); | setTruncStoreAction(MVT::f64, MVT::f16, Expand); | ||||
▲ Show 20 Lines • Show All 4,250 Lines • Show Last 20 Lines |