[Hexagon] Only allow single HVX vector loads/stores in lowering

This will prevent store widening from forming vector pair stores,
which eventually end up broken up into single stores.
This commit is contained in:
Krzysztof Parzyszek 2020-03-13 08:37:57 -05:00
parent 103678d66a
commit 3656558cec
1 changed files with 4 additions and 0 deletions

View File

@ -304,6 +304,10 @@ HexagonTargetLowering::allowsHvxMemoryAccess(MVT VecTy, unsigned Alignment,
MachineMemOperand::Flags Flags, bool *Fast) const {
// Bool vectors are excluded by default, but make it explicit to
// emphasize that bool vectors cannot be loaded or stored.
// Also, disallow double vector stores (to prevent unnecessary
// store widening in DAG combiner).
if (VecTy.getSizeInBits() > 8*Subtarget.getVectorLength())
return false;
if (!Subtarget.isHVXVectorType(VecTy, /*IncludeBool=*/false))
return false;
if (Fast)