diff options
author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2018-08-07 20:33:47 +0000 |
---|---|---|
committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2018-08-07 20:33:47 +0000 |
commit | e7ce247dd77bb6324cb7a0c99c9629c4cf0a6e37 (patch) | |
tree | 76c3ae2f100f3920be86ae7fdbc1fc127c69f4cf /llvm/lib | |
parent | 9b073470334adfedfe265728382c7c5e07af319b (diff) | |
download | bcm5719-llvm-e7ce247dd77bb6324cb7a0c99c9629c4cf0a6e37.tar.gz bcm5719-llvm-e7ce247dd77bb6324cb7a0c99c9629c4cf0a6e37.zip |
[Hexagon] Allow use of gather intrinsics even with no-packets
Vgather requires must be in a packet with a store, which contradicts
the no-packets feature. As a consequence, gather/scatter could not be
used with no-packets. Relax this, and allow gather packets as exceptions
to the no-packets requirements.
llvm-svn: 339177
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp | 1 | ||||
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp | 8 |
2 files changed, 0 insertions, 9 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp b/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp index 0ac83ea7c5f..f44fb16e2d8 100644 --- a/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp +++ b/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp @@ -755,7 +755,6 @@ void HexagonAsmPrinter::EmitInstruction(const MachineInstr *MI) { const MCInstrInfo &MCII = *Subtarget->getInstrInfo(); if (MI->isBundle()) { - assert(Subtarget->usePackets() && "Support for packets is disabled"); const MachineBasicBlock* MBB = MI->getParent(); MachineBasicBlock::const_instr_iterator MII = MI->getIterator(); diff --git a/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp b/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp index 8aef9b4560d..530f0622e8d 100644 --- a/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp +++ b/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp @@ -2048,10 +2048,6 @@ void HexagonDAGToDAGISel::SelectHvxVAlign(SDNode *N) { } void HexagonDAGToDAGISel::SelectV65GatherPred(SDNode *N) { - if (!HST->usePackets()) { - report_fatal_error("Support for gather requires packets, " - "which are disabled"); - } const SDLoc &dl(N); SDValue Chain = N->getOperand(0); SDValue Address = N->getOperand(2); @@ -2091,10 +2087,6 @@ void HexagonDAGToDAGISel::SelectV65GatherPred(SDNode *N) { } void HexagonDAGToDAGISel::SelectV65Gather(SDNode *N) { - if (!HST->usePackets()) { - report_fatal_error("Support for gather requires packets, " - "which are disabled"); - } const SDLoc &dl(N); SDValue Chain = N->getOperand(0); SDValue Address = N->getOperand(2); |