diff options
author | Tim Northover <tnorthover@apple.com> | 2014-07-18 13:01:19 +0000 |
---|---|---|
committer | Tim Northover <tnorthover@apple.com> | 2014-07-18 13:01:19 +0000 |
commit | 4e80b584fe2728a2657f0c338d99f7cde64777ec (patch) | |
tree | 9487dc8f5e1fd4b92ce1d891d8e13a7280880195 /llvm/lib/Target/ARM/ARMISelLowering.cpp | |
parent | 20bd0ced303d62bda805b5e5f9e86d6974425385 (diff) | |
download | bcm5719-llvm-4e80b584fe2728a2657f0c338d99f7cde64777ec.tar.gz bcm5719-llvm-4e80b584fe2728a2657f0c338d99f7cde64777ec.zip |
ARM: support legalisation of "fptrunc ... to half" operations.
llvm-svn: 213373
Diffstat (limited to 'llvm/lib/Target/ARM/ARMISelLowering.cpp')
-rw-r--r-- | llvm/lib/Target/ARM/ARMISelLowering.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp index 27048f9a10d..f6f937a7dd5 100644 --- a/llvm/lib/Target/ARM/ARMISelLowering.cpp +++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp @@ -396,8 +396,6 @@ ARMTargetLowering::ARMTargetLowering(TargetMachine &TM) addRegisterClass(MVT::f32, &ARM::SPRRegClass); if (!Subtarget->isFPOnlySP()) addRegisterClass(MVT::f64, &ARM::DPRRegClass); - - setTruncStoreAction(MVT::f64, MVT::f32, Expand); } for (unsigned VT = (unsigned)MVT::FIRST_VECTOR_VALUETYPE; @@ -582,8 +580,14 @@ ARMTargetLowering::ARMTargetLowering(TargetMachine &TM) computeRegisterProperties(); - // ARM does not have f32 extending load. + // ARM does not have floating-point extending loads. setLoadExtAction(ISD::EXTLOAD, MVT::f32, Expand); + setLoadExtAction(ISD::EXTLOAD, MVT::f16, Expand); + + // ... or truncating stores + setTruncStoreAction(MVT::f64, MVT::f32, Expand); + setTruncStoreAction(MVT::f32, MVT::f16, Expand); + setTruncStoreAction(MVT::f64, MVT::f16, Expand); // ARM does not have i1 sign extending load. setLoadExtAction(ISD::SEXTLOAD, MVT::i1, Promote); |