diff options
author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2016-07-26 20:30:30 +0000 |
---|---|---|
committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2016-07-26 20:30:30 +0000 |
commit | 2a480599bb688dc9bb4fc24b60958c15968a3b85 (patch) | |
tree | 9099ea96dd42db51342491762624af2a9b5d1aad /llvm/lib/Target/Hexagon/HexagonISelLowering.cpp | |
parent | ad2b717f2c8fcc279cf13aa51349012c3710c987 (diff) | |
download | bcm5719-llvm-2a480599bb688dc9bb4fc24b60958c15968a3b85.tar.gz bcm5719-llvm-2a480599bb688dc9bb4fc24b60958c15968a3b85.zip |
[Hexagon] Post-increment loads/stores enhancements
- Generate vector post-increment stores more aggressively.
- Predicate post-increment and vector stores in early if-conversion.
llvm-svn: 276800
Diffstat (limited to 'llvm/lib/Target/Hexagon/HexagonISelLowering.cpp')
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonISelLowering.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp b/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp index 2362ef8048f..f17616f4185 100644 --- a/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp +++ b/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp @@ -2055,13 +2055,20 @@ HexagonTargetLowering::HexagonTargetLowering(const TargetMachine &TM, // Handling of indexed loads/stores: default is "expand". // - for (MVT LSXTy : {MVT::i8, MVT::i16, MVT::i32, MVT::i64}) { - setIndexedLoadAction(ISD::POST_INC, LSXTy, Legal); - setIndexedStoreAction(ISD::POST_INC, LSXTy, Legal); + for (MVT VT : {MVT::i8, MVT::i16, MVT::i32, MVT::i64}) { + setIndexedLoadAction(ISD::POST_INC, VT, Legal); + setIndexedStoreAction(ISD::POST_INC, VT, Legal); } - if (UseHVXDbl) { - for (MVT VT : {MVT::v128i8, MVT::v64i16, MVT::v32i32, MVT::v16i64}) { + if (UseHVXSgl) { + for (MVT VT : {MVT::v64i8, MVT::v32i16, MVT::v16i32, MVT::v8i64, + MVT::v128i8, MVT::v64i16, MVT::v32i32, MVT::v16i64}) { + setIndexedLoadAction(ISD::POST_INC, VT, Legal); + setIndexedStoreAction(ISD::POST_INC, VT, Legal); + } + } else if (UseHVXDbl) { + for (MVT VT : {MVT::v128i8, MVT::v64i16, MVT::v32i32, MVT::v16i64, + MVT::v256i8, MVT::v128i16, MVT::v64i32, MVT::v32i64}) { setIndexedLoadAction(ISD::POST_INC, VT, Legal); setIndexedStoreAction(ISD::POST_INC, VT, Legal); } |