Skip to content

Commit fe6b611

Browse files
authored
[RISCV] Unaligned vec mem => prefer alt opc vec
Return `true` in `RISCVTTIImpl::preferAlternateOpcodeVectorization` if subtarget supports unaligned memory accesses.
1 parent aa491fc commit fe6b611

File tree

3 files changed

+400
-117
lines changed

3 files changed

+400
-117
lines changed

llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2731,6 +2731,10 @@ unsigned RISCVTTIImpl::getMinTripCountTailFoldingThreshold() const {
27312731
return RVVMinTripCount;
27322732
}
27332733

2734+
bool RISCVTTIImpl::preferAlternateOpcodeVectorization() const {
2735+
return ST->enableUnalignedVectorMem();
2736+
}
2737+
27342738
TTI::AddressingModeKind
27352739
RISCVTTIImpl::getPreferredAddressingMode(const Loop *L,
27362740
ScalarEvolution *SE) const {

llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ class RISCVTTIImpl final : public BasicTTIImplBase<RISCVTTIImpl> {
132132

133133
unsigned getMaximumVF(unsigned ElemWidth, unsigned Opcode) const override;
134134

135-
bool preferAlternateOpcodeVectorization() const override { return false; }
135+
bool preferAlternateOpcodeVectorization() const override;
136136

137137
bool preferEpilogueVectorization() const override {
138138
// Epilogue vectorization is usually unprofitable - tail folding or

0 commit comments

Comments
 (0)