diff options
Diffstat (limited to 'llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp')
| -rw-r--r-- | llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp b/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp index 2551fe5a140..d0cd143a4d4 100644 --- a/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp +++ b/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp @@ -754,7 +754,6 @@ void HexagonDAGToDAGISel::SelectBitcast(SDNode *N) { CurDAG->RemoveDeadNode(N); } - void HexagonDAGToDAGISel::Select(SDNode *N) { if (N->isMachineOpcode()) return N->setNodeId(-1); // Already selected. @@ -772,6 +771,13 @@ void HexagonDAGToDAGISel::Select(SDNode *N) { case ISD::INTRINSIC_WO_CHAIN: return SelectIntrinsicWOChain(N); } + if (HST->useHVXOps()) { + switch (N->getOpcode()) { + case ISD::VECTOR_SHUFFLE: return SelectHvxShuffle(N); + case HexagonISD::VROR: return SelectHvxRor(N); + } + } + SelectCode(N); } |

