aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrzysztof Parzyszek <kparzysz@codeaurora.org>2018-01-05 20:49:26 +0000
committerKrzysztof Parzyszek <kparzysz@codeaurora.org>2018-01-05 20:49:26 +0000
commit577d2f2fbd6cd85d55119f6f9de71109f71090c5 (patch)
treec7c6547db85af28e5890cb0e8d830b43e8c7eecf
parentbf02a09103347f7b56309864aaf5a5c294b1af9f (diff)
downloadllvm-577d2f2fbd6cd85d55119f6f9de71109f71090c5.zip
llvm-577d2f2fbd6cd85d55119f6f9de71109f71090c5.tar.gz
llvm-577d2f2fbd6cd85d55119f6f9de71109f71090c5.tar.bz2
[Hexagon] Even simpler patterns for sign- and zero-extending HVX vectors
llvm-svn: 321897
-rw-r--r--llvm/lib/Target/Hexagon/HexagonPatterns.td20
1 files changed, 4 insertions, 16 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonPatterns.td b/llvm/lib/Target/Hexagon/HexagonPatterns.td
index eb8ffd6c..33b347c 100644
--- a/llvm/lib/Target/Hexagon/HexagonPatterns.td
+++ b/llvm/lib/Target/Hexagon/HexagonPatterns.td
@@ -2924,22 +2924,10 @@ let Predicates = [UseHVX] in {
def HexagonVZERO: SDNode<"HexagonISD::VZERO", SDTVecLeaf>;
def vzero: PatFrag<(ops), (HexagonVZERO)>;
-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))>;
+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)>;
let Predicates = [UseHVX] in {
def: Pat<(VecI8 vzero), (V6_vd0)>;