diff options
| author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2018-04-19 14:46:44 +0000 |
|---|---|---|
| committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2018-04-19 14:46:44 +0000 |
| commit | d92c37e0909e7b72fd13e7fbb67151664d5a9002 (patch) | |
| tree | 34d9ed84bdf0143768d7889d2dd8b1e8694f308c /llvm/lib | |
| parent | f21ace6cdd6a406bfa80403f9386700d48b24d98 (diff) | |
| download | bcm5719-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.td | 5 |
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> |

