diff options
| author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2018-02-05 15:46:41 +0000 |
|---|---|---|
| committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2018-02-05 15:46:41 +0000 |
| commit | 67079be139eaf2648f1ea7fb9f3912e62edd3d15 (patch) | |
| tree | 604f3a59f21f53af018b7cb8627871be17956872 /llvm/lib | |
| parent | 5a95c477305d0f25be289461eb3277f97b84ab08 (diff) | |
| download | bcm5719-llvm-67079be139eaf2648f1ea7fb9f3912e62edd3d15.tar.gz bcm5719-llvm-67079be139eaf2648f1ea7fb9f3912e62edd3d15.zip | |
[Hexagon] Don't use garbage mask in HvxSelector::shuffp2
The function shuffp2 was breaking up a wide shuffle into a pair of
narrower ones, except that the narrower shuffle masks were actually
uninitialized.
llvm-svn: 324243
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp b/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp index 85340e47f2c..8566aa6ae2f 100644 --- a/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp +++ b/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp @@ -1271,6 +1271,8 @@ OpRef HvxSelector::shuffp2(ShuffleMask SM, OpRef Va, OpRef Vb, return shuffp1(ShuffleMask(PackedMask), P, Results); SmallVector<int,256> MaskL(VecLen), MaskR(VecLen); + splitMask(SM.Mask, MaskL, MaskR); + OpRef L = shuffp1(ShuffleMask(MaskL), Va, Results); OpRef R = shuffp1(ShuffleMask(MaskR), Vb, Results); if (!L.isValid() || !R.isValid()) |

