diff options
author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2018-12-05 21:01:07 +0000 |
---|---|---|
committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2018-12-05 21:01:07 +0000 |
commit | 545a68ca4bf912d57beecf5ea63f4e8726b5150d (patch) | |
tree | 8e6f4801b232250eb3593f4f59cdf176687f98b0 /llvm/lib/Target/Hexagon/HexagonISelLowering.cpp | |
parent | 0da68bae8980bb69e498fc1a2867ff68fd0f72cc (diff) | |
download | bcm5719-llvm-545a68ca4bf912d57beecf5ea63f4e8726b5150d.tar.gz bcm5719-llvm-545a68ca4bf912d57beecf5ea63f4e8726b5150d.zip |
[Hexagon] Add instruction definitions for Hexagon V66
llvm-svn: 348411
Diffstat (limited to 'llvm/lib/Target/Hexagon/HexagonISelLowering.cpp')
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonISelLowering.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp b/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp index dc2a4eff204..b5be507bb97 100644 --- a/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp +++ b/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp @@ -1505,13 +1505,6 @@ HexagonTargetLowering::HexagonTargetLowering(const TargetMachine &TM, setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v4i16, Custom); setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v8i8, Custom); - // Subtarget-specific operation actions. - // - if (Subtarget.hasV60Ops()) { - setOperationAction(ISD::ROTL, MVT::i32, Custom); - setOperationAction(ISD::ROTL, MVT::i64, Custom); - } - // V5+. setOperationAction(ISD::FMA, MVT::f64, Expand); setOperationAction(ISD::FADD, MVT::f64, Expand); @@ -1542,6 +1535,17 @@ HexagonTargetLowering::HexagonTargetLowering(const TargetMachine &TM, setIndexedStoreAction(ISD::POST_INC, VT, Legal); } + // Subtarget-specific operation actions. + // + if (Subtarget.hasV60Ops()) { + setOperationAction(ISD::ROTL, MVT::i32, Custom); + setOperationAction(ISD::ROTL, MVT::i64, Custom); + } + if (Subtarget.hasV66Ops()) { + setOperationAction(ISD::FADD, MVT::f64, Legal); + setOperationAction(ISD::FSUB, MVT::f64, Legal); + } + if (Subtarget.useHVXOps()) initializeHVXLowering(); |