diff options
| author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2018-01-05 21:50:15 +0000 |
|---|---|---|
| committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2018-01-05 21:50:15 +0000 |
| commit | 9920dab75e648ce0e99f2e5eff132566a3ae6b6e (patch) | |
| tree | 5c7b46bd0ffea78d427370118c2673bb071fa374 /llvm/lib | |
| parent | 146ed408f44d517dfd671d4991148971baf64461 (diff) | |
| download | bcm5719-llvm-9920dab75e648ce0e99f2e5eff132566a3ae6b6e.tar.gz bcm5719-llvm-9920dab75e648ce0e99f2e5eff132566a3ae6b6e.zip | |
Revert r321897: affected testcases were not updated
Commit message:
[Hexagon] Even simpler patterns for sign- and zero-extending HVX vectors
llvm-svn: 321902
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/Hexagon/HexagonPatterns.td | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonPatterns.td b/llvm/lib/Target/Hexagon/HexagonPatterns.td index 33b347cb6c7..eb8ffd6c312 100644 --- a/llvm/lib/Target/Hexagon/HexagonPatterns.td +++ b/llvm/lib/Target/Hexagon/HexagonPatterns.td @@ -2924,10 +2924,22 @@ let Predicates = [UseHVX] in { def HexagonVZERO: SDNode<"HexagonISD::VZERO", SDTVecLeaf>; def vzero: PatFrag<(ops), (HexagonVZERO)>; -def VSxtb: OutPatFrag<(ops node:$Vs), (V6_vunpackb $Vs)>; -def VSxth: OutPatFrag<(ops node:$Vs), (V6_vunpackh $Vs)>; -def VZxtb: OutPatFrag<(ops node:$Vs), (V6_vunpackub $Vs)>; -def VZxth: OutPatFrag<(ops node:$Vs), (V6_vunpackuh $Vs)>; +def VSxtb: OutPatFrag<(ops node:$Vs), + (V6_vshuffvdd (HiVec (V6_vsb $Vs)), + (LoVec (V6_vsb $Vs)), + (A2_tfrsi -2))>; +def VSxth: OutPatFrag<(ops node:$Vs), + (V6_vshuffvdd (HiVec (V6_vsh $Vs)), + (LoVec (V6_vsh $Vs)), + (A2_tfrsi -4))>; +def VZxtb: OutPatFrag<(ops node:$Vs), + (V6_vshuffvdd (HiVec (V6_vzb $Vs)), + (LoVec (V6_vzb $Vs)), + (A2_tfrsi -2))>; +def VZxth: OutPatFrag<(ops node:$Vs), + (V6_vshuffvdd (HiVec (V6_vzh $Vs)), + (LoVec (V6_vzh $Vs)), + (A2_tfrsi -4))>; let Predicates = [UseHVX] in { def: Pat<(VecI8 vzero), (V6_vd0)>; |

