diff options
| author | David Green <david.green@arm.com> | 2019-05-26 10:59:21 +0000 |
|---|---|---|
| committer | David Green <david.green@arm.com> | 2019-05-26 10:59:21 +0000 |
| commit | c9f4b7d201cce6343939f741ffdb5f622b6768b0 (patch) | |
| tree | 5de65436d05e24cf3bbf0d5b81b6175a73502954 /llvm/lib/Target | |
| parent | 58a8541dcc3fb72803ac828b7730c4bd0fc5bf30 (diff) | |
| download | bcm5719-llvm-c9f4b7d201cce6343939f741ffdb5f622b6768b0.tar.gz bcm5719-llvm-c9f4b7d201cce6343939f741ffdb5f622b6768b0.zip | |
[ARM] Promote various fp16 math intrinsics
Promote a number of fp16 math intrinsics to float, so that the relevant float
math routines can be used. Copysign is expanded so as to be handled in-place.
Differential Revision: https://reviews.llvm.org/D62325
llvm-svn: 361717
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMISelLowering.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp index 8e5c0767358..24e67010908 100644 --- a/llvm/lib/Target/ARM/ARMISelLowering.cpp +++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp @@ -1145,6 +1145,17 @@ ARMTargetLowering::ARMTargetLowering(const TargetMachine &TM, // FP16 often need to be promoted to call lib functions if (Subtarget->hasFullFP16()) { setOperationAction(ISD::FREM, MVT::f16, Promote); + setOperationAction(ISD::FCOPYSIGN, MVT::f16, Expand); + setOperationAction(ISD::FSIN, MVT::f16, Promote); + setOperationAction(ISD::FCOS, MVT::f16, Promote); + setOperationAction(ISD::FSINCOS, MVT::f16, Promote); + setOperationAction(ISD::FPOWI, MVT::f16, Promote); + setOperationAction(ISD::FPOW, MVT::f16, Promote); + setOperationAction(ISD::FEXP, MVT::f16, Promote); + setOperationAction(ISD::FEXP2, MVT::f16, Promote); + setOperationAction(ISD::FLOG, MVT::f16, Promote); + setOperationAction(ISD::FLOG10, MVT::f16, Promote); + setOperationAction(ISD::FLOG2, MVT::f16, Promote); } if (Subtarget->hasNEON()) { |

