summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorKrzysztof Parzyszek <kparzysz@codeaurora.org>2018-04-19 14:46:44 +0000
committerKrzysztof Parzyszek <kparzysz@codeaurora.org>2018-04-19 14:46:44 +0000
commitd92c37e0909e7b72fd13e7fbb67151664d5a9002 (patch)
tree34d9ed84bdf0143768d7889d2dd8b1e8694f308c /llvm/lib
parentf21ace6cdd6a406bfa80403f9386700d48b24d98 (diff)
downloadbcm5719-llvm-d92c37e0909e7b72fd13e7fbb67151664d5a9002.tar.gz
bcm5719-llvm-d92c37e0909e7b72fd13e7fbb67151664d5a9002.zip
[Hexagon] Generate code for vector bswap intrinsics
llvm-svn: 330333
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/Hexagon/HexagonPatternsHVX.td5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonPatternsHVX.td b/llvm/lib/Target/Hexagon/HexagonPatternsHVX.td
index 510c3cf83be..6217df504f1 100644
--- a/llvm/lib/Target/Hexagon/HexagonPatternsHVX.td
+++ b/llvm/lib/Target/Hexagon/HexagonPatternsHVX.td
@@ -357,6 +357,11 @@ let Predicates = [UseHVX] in {
(V6_vpackeb (HiVec $Vss), (LoVec $Vss))>;
def: Pat<(VecI16 (trunc HWI32:$Vss)),
(V6_vpackeh (HiVec $Vss), (LoVec $Vss))>;
+
+ def: Pat<(VecI16 (bswap HVI16:$Vs)),
+ (V6_vdelta HvxVR:$Vs, (V6_lvsplatw (A2_tfrsi 0x01010101)))>;
+ def: Pat<(VecI32 (bswap HVI32:$Vs)),
+ (V6_vdelta HvxVR:$Vs, (V6_lvsplatw (A2_tfrsi 0x03030303)))>;
}
class HvxSel_pat<InstHexagon MI, PatFrag RegPred>
OpenPOWER on IntegriCloud