diff options
author | Kevin P. Neal <kevin.neal@sas.com> | 2019-05-13 13:23:30 +0000 |
---|---|---|
committer | Kevin P. Neal <kevin.neal@sas.com> | 2019-05-13 13:23:30 +0000 |
commit | 5987749e33bbe4d8dd43b26f39165fcfd9cdcfdf (patch) | |
tree | 2f62678e66e88a512fab9be089c691a38db0a5c7 /llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp | |
parent | d5fb162563986951ddc4d20dccd735b8257605e0 (diff) | |
download | llvm-5987749e33bbe4d8dd43b26f39165fcfd9cdcfdf.zip llvm-5987749e33bbe4d8dd43b26f39165fcfd9cdcfdf.tar.gz llvm-5987749e33bbe4d8dd43b26f39165fcfd9cdcfdf.tar.bz2 |
Add constrained fptrunc and fpext intrinsics.
The new fptrunc and fpext intrinsics are constrained versions of the
regular fptrunc and fpext instructions.
Reviewed by: Andrew Kaylor, Craig Topper, Cameron McInally, Conner Abbot
Approved by: Craig Topper
Differential Revision: https://reviews.llvm.org/D55897
llvm-svn: 360581
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp index 28190ac5..09a46db 100644 --- a/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp @@ -331,6 +331,8 @@ SDValue VectorLegalizer::LegalizeOp(SDValue Op) { case ISD::STRICT_FFLOOR: case ISD::STRICT_FROUND: case ISD::STRICT_FTRUNC: + case ISD::STRICT_FP_ROUND: + case ISD::STRICT_FP_EXTEND: // These pseudo-ops get legalized as if they were their non-strict // equivalent. For instance, if ISD::FSQRT is legal then ISD::STRICT_FSQRT // is also legal, but if ISD::FSQRT requires expansion then so does @@ -1301,7 +1303,7 @@ SDValue VectorLegalizer::ExpandStrictFPOp(SDValue Op) { if (OperVT.isVector()) Oper = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, - EltVT, Oper, Idx); + OperVT.getVectorElementType(), Oper, Idx); Opers.push_back(Oper); } |