diff options
author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2018-01-05 22:31:11 +0000 |
---|---|---|
committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2018-01-05 22:31:11 +0000 |
commit | b0b52618c03c3410cae7b86b7fc59e10ee63ea6c (patch) | |
tree | 45edfde9013cde67b3f2642ff1182200322711e1 /llvm/lib/Target/Hexagon/HexagonPatterns.td | |
parent | 5ffb1c0ff02d389b0feebf864332188b83cb9fdf (diff) | |
download | bcm5719-llvm-b0b52618c03c3410cae7b86b7fc59e10ee63ea6c.tar.gz bcm5719-llvm-b0b52618c03c3410cae7b86b7fc59e10ee63ea6c.zip |
[Hexagon] Even simpler patterns for sign- and zero-extending HVX vectors
Recommit r321897 with updated testcases.
llvm-svn: 321908
Diffstat (limited to 'llvm/lib/Target/Hexagon/HexagonPatterns.td')
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonPatterns.td | 20 |
1 files changed, 4 insertions, 16 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonPatterns.td b/llvm/lib/Target/Hexagon/HexagonPatterns.td index 9c3df1fdc01..7355b2d8eb8 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)>; |