summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorKrzysztof Parzyszek <kparzysz@codeaurora.org>2018-08-07 20:33:47 +0000
committerKrzysztof Parzyszek <kparzysz@codeaurora.org>2018-08-07 20:33:47 +0000
commite7ce247dd77bb6324cb7a0c99c9629c4cf0a6e37 (patch)
tree76c3ae2f100f3920be86ae7fdbc1fc127c69f4cf /llvm/lib
parent9b073470334adfedfe265728382c7c5e07af319b (diff)
downloadbcm5719-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.cpp1
-rw-r--r--llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp8
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);
OpenPOWER on IntegriCloud